Commit | Line | Data |
---|---|---|
3c74c164 AO |
1 | ! Verify that minimum support is provided as per SH-5/ST50-047-02. |
2 | ||
3 | .text | |
4 | .mode shmedia | |
5 | start: | |
6 | ||
7 | ! Both all-upper and all-lower must be supported. PTA/PTB without /L | |
8 | ! or /U is equivalent to with /L | |
9 | ||
10 | ld.l r1,4,r1 | |
11 | LD.L r1,4,r1 | |
12 | pta/l .L1,tr0 | |
13 | PTA/L .L1,tr0 | |
14 | pta/u .L1,tr0 | |
15 | PTA/U .L1,tr0 | |
16 | pta/l .L1,tr0 | |
17 | PTA/L .L1,tr0 | |
18 | ptb/u .L2,tr0 | |
19 | PTB/U .L2,tr0 | |
20 | ptb/l .L2,tr0 | |
21 | PTB/L .L2,tr0 | |
22 | pta .L1,tr0 | |
23 | PTA .L1,tr0 | |
24 | ptb .L2,tr0 | |
25 | PTB .L2,tr0 | |
26 | .L1: | |
27 | .mode shcompact | |
28 | .L2: | |
29 | .align 2 | |
30 | .mode shmedia | |
31 | ||
32 | ! All register names accepted, either case. | |
33 | ||
34 | or r0,r32,r63 | |
35 | GETCON CR0,R0 | |
36 | getcon cr63,r0 | |
37 | GETTR TR0,R0 | |
38 | gettr tr7,r0 | |
39 | FMOV.S FR0,FR63 | |
40 | fmov.d dr0,dr62 | |
41 | FTRV.S MTRX0,FV0,fv0 | |
42 | ftrv.s mtrx48,FV60,FV60 | |
43 | ||
44 | ! All control register names | |
45 | ||
46 | getcon sr,r0 | |
47 | getcon ssr,r0 | |
48 | getcon pssr,r0 | |
49 | getcon intevt,r0 | |
50 | getcon expevt,r0 | |
51 | getcon pexpevt,r0 | |
52 | getcon tra,r0 | |
53 | getcon spc,r0 | |
54 | getcon pspc,r0 | |
55 | getcon resvec,r0 | |
56 | getcon vbr,r0 | |
57 | getcon tea,r0 | |
58 | getcon dcr,r0 | |
59 | getcon kcr0,r0 | |
60 | getcon kcr1,r0 | |
61 | getcon ctc,r0 | |
62 | getcon usr,r0 | |
63 | ||
64 | ! immediates | |
65 | ||
66 | .mode shcompact | |
67 | s1: | |
68 | mov #4,r0 | |
69 | ||
70 | .align 2 | |
71 | .mode shmedia | |
72 | s2: | |
73 | movi 4,r0 | |
74 | ||
75 | ! Scaled operands - user gives scaled value | |
76 | ||
77 | .mode shcompact | |
78 | s3: | |
79 | mov.l @(8,r0),r0 | |
80 | ||
81 | .align 2 | |
82 | .mode shmedia | |
83 | s4: | |
84 | ld.uw r0,2,r0 | |
85 | ld.w r0,2,r0 | |
86 | st.w r0,2,r0 | |
87 | ld.l r0,4,r0 | |
88 | st.l r0,4,r0 | |
89 | fld.s r0,4,fr0 | |
90 | fst.s r0,4,fr0 | |
91 | pta .+4,tr0 | |
92 | ptb .+7,tr0 | |
93 | ld.q r0,8,r0 | |
94 | st.q r0,8,r0 | |
95 | fld.d r0,8,dr0 | |
96 | fst.d r0,8,dr0 | |
97 | fld.p r0,8,fp0 | |
98 | fst.p r0,8,fp0 | |
99 | alloco r0,32 | |
100 | icbi r0,32 | |
101 | ocbi r0,32 | |
102 | ocbp r0,32 | |
103 | ocbwb r0,32 | |
104 | prefi r0,32 | |
105 | ||
106 | .mode shcompact | |
107 | s5: | |
108 | mov.w @(6,pc),r0 | |
109 | mov.w @(2,r0),r0 | |
110 | mov.w @(2,gbr),r0 | |
111 | mov.w r0,@(2,r0) | |
112 | mov.w r0,@(2,gbr) | |
113 | bf .+6 | |
114 | bt .+6 | |
115 | bra .+6 | |
116 | bsr .+6 | |
6af0f152 | 117 | mov.l @(2,pc),r0 |
3c74c164 AO |
118 | mov.l @(4,r0),r0 |
119 | mov.l @(4,gbr),r0 | |
6af0f152 | 120 | mova @(8,pc),r0 |
3c74c164 AO |
121 | mov.l r0,@(4,r0) |
122 | mov.l r0,@(4,gbr) | |
123 | ||
124 | ! branchlabel vs datalabel | |
125 | ||
126 | .align 2 | |
127 | .mode shmedia | |
128 | s6: | |
129 | .long .L3 | |
130 | .long .L3 + 4 | |
131 | .long datalabel .L3 | |
132 | .long DATALABEL .L3 | |
133 | .L3: | |
134 | .mode shcompact | |
135 | ||
136 | s7: | |
137 | .long .L4 | |
138 | .long .L5 | |
139 | .L4: | |
140 | ||
141 | .align 2 | |
142 | .mode shmedia | |
143 | s8: | |
144 | ||
145 | movi (.L4 >> 16) & 65535,r0 | |
146 | shori .L4 & 65535, r0 | |
147 | ptabs r0,tr0 | |
148 | blink tr0,r18 | |
149 | ||
150 | movi (.L5 >> 16) & 65535,r0 | |
151 | shori .L5 & 65535, r0 | |
152 | ptabs r0,tr0 | |
153 | blink tr0,r18 | |
154 | .L5: | |
155 | ||
156 | movi (.L4-DATALABEL .L6), r0 | |
157 | .L6: | |
158 | movi (.L5-DATALABEL .L7), r0 | |
159 | .L7: | |
160 | ||
161 | pt .L5,tr0 | |
162 | ||
163 | ! Expressions | |
164 | ||
165 | ! Symbols | |
166 | ||
167 | abcdefghijklmnopqrstuvwxyz0123456789_: | |
168 | .long abcdefghijklmnopqrstuvwxyz0123456789_ | |
169 | _x: | |
170 | .long _x | |
171 | ||
172 | ! program counter | |
173 | ||
174 | movi .L7-$,r0 | |
175 | .L8: movi .L7-.L8,r0 | |
176 | ||
177 | .mode shcompact | |
178 | s9: | |
179 | mova @(litpool-$,pc), r0 | |
180 | mov.l @r1,r0 | |
181 | add r1,r0 | |
182 | bsrf r0 | |
183 | litpool: | |
184 | .long s10 - DATALABEL $ | |
185 | ||
186 | ! operators | |
187 | ||
188 | .align 2 | |
189 | .mode shmedia | |
190 | s10: | |
191 | movi 8+1,r0 | |
192 | movi 8-1,r0 | |
193 | movi 8<<1,r0 | |
194 | movi 8>>1,r0 | |
195 | movi ~1,r0 | |
196 | movi 5&3,r0 | |
197 | movi 8|1,r0 | |
198 | movi 8*3,r0 | |
199 | movi 24/3,r0 |