Commit | Line | Data |
---|---|---|
8afc772b AC |
1 | .h8300s |
2 | .section .text | |
3 | .align 2 | |
4 | .global _main | |
5 | .global movb_tests | |
6 | .global movw_tests | |
7 | .global movl_tests | |
8 | .global ldm_stm_tests | |
9 | .global movfpe_movtpe_tests | |
10 | .global add_sub_addx_subx_tests | |
11 | .global inc_dec_adds_subs_tests | |
12 | .global daa_das_tests | |
13 | .global mul_div_tests | |
14 | .global cmp_tests | |
15 | .global neg_tests | |
16 | .global ext_tests | |
17 | .global tas_mac_tests | |
18 | .global logic_operations_tests | |
19 | .global sha_shl_tests | |
20 | .global rot_rotx_tests | |
21 | .global bset_bclr_tests | |
22 | .global bnot_btst_tests | |
23 | .global band_bor_bxor_tests | |
24 | .global bld_bst_tests | |
25 | .global branch_tests | |
26 | .global system_control_tests | |
27 | .global block_data_transfer_tests | |
28 | _main: | |
29 | nop | |
30 | ||
31 | movb_tests: | |
32 | mov.b r0l,r0h | |
33 | mov.b #0x12,r1l | |
34 | mov.b @er0,r1h | |
35 | mov.b @(0x1234:16,er0),r2l | |
36 | mov.b @(0x12345678:32,er0),r2h | |
37 | mov.b @er0+,r3l | |
38 | mov.b @0x12:8,r3h | |
39 | mov.b @0x1234:16,r4l | |
40 | mov.b @0x12345678:32,r4h | |
41 | ||
42 | movw_tests: | |
43 | mov.w e0,r0 | |
44 | mov.w #0x1234,r1 | |
45 | mov.w @er0,r2 | |
46 | mov.w @(0x1234:16,er0),r3 | |
47 | mov.w @(0x12345678:32,er0),r4 | |
48 | mov.w @er0+,r5 | |
49 | mov.w @0x1234:16,r6 | |
50 | mov.w @0x12345678:32,r7 | |
51 | ||
52 | movl_tests: | |
53 | mov.l er0,er1 | |
54 | mov.l #0x12345678,er1 | |
55 | mov.l @er0,er2 | |
56 | mov.l @(0x1234:16,er0),er3 | |
57 | mov.l @(0x12345678:32,er0),er4 | |
58 | mov.l @er0+,er5 | |
59 | mov.l @0x1234:16,er6 | |
60 | mov.l @0x12345678:32,er7 | |
61 | ||
62 | ldm_stm_tests: | |
63 | ldm.l @sp+,er0-er1 | |
64 | ldm.l @sp+,er0-er2 | |
65 | ldm.l @sp+,er0-er3 | |
66 | stm.l er0-er1,@-sp | |
67 | stm.l er0-er2,@-sp | |
68 | stm.l er0-er3,@-sp | |
69 | ||
70 | movfpe_movtpe_tests: | |
71 | movfpe @0x1234:16,r2l | |
72 | movtpe r2l,@0x1234:16 | |
73 | ||
74 | add_sub_addx_subx_tests: | |
75 | add.b #0x12,r0l | |
76 | add.b r1l,r1h | |
77 | add.w #0x1234,r2 | |
78 | add.w r3,r4 | |
79 | add.l #0x12345678,er5 | |
80 | add.l er6,er7 | |
81 | sub.b r1l,r1h | |
82 | sub.w #0x1234,r2 | |
83 | sub.w r3,r4 | |
84 | sub.l #0x12345678,er5 | |
85 | sub.l er6,er7 | |
86 | addx #0x12,r0l | |
87 | addx r1l,r1h | |
88 | subx #0x12,r0l | |
89 | subx r1l,r1h | |
90 | ||
91 | inc_dec_adds_subs_tests: | |
92 | inc.b r0l | |
93 | inc.w #0x1,r4 | |
94 | inc.w #0x2,r3 | |
95 | inc.l #0x1,er2 | |
96 | inc.l #0x2,er1 | |
97 | dec.b r0l | |
98 | dec.w #0x1,r4 | |
99 | dec.w #0x2,r3 | |
100 | dec.l #0x1,er2 | |
101 | dec.l #0x2,er1 | |
102 | adds #0x1,er7 | |
103 | adds #0x2,er6 | |
104 | adds #0x4,er5 | |
105 | subs #0x1,er7 | |
106 | subs #0x2,er6 | |
107 | subs #0x4,er5 | |
108 | ||
109 | daa_das_tests: | |
110 | daa r0l | |
111 | das r0h | |
112 | ||
113 | mul_div_tests: | |
114 | mulxs.b r0l,r1 | |
115 | mulxs.w r2,er3 | |
116 | mulxu.b r0l,e1 | |
117 | mulxu.w e2,er3 | |
118 | divxs.b r0l,r1 | |
119 | divxs.w r2,er3 | |
120 | divxu.b r0l,e1 | |
121 | divxu.w e2,er3 | |
122 | ||
123 | cmp_tests: | |
124 | cmp.b #0x12,r0l | |
125 | cmp.b r1l,r1h | |
126 | cmp.w #0x1234,r2 | |
127 | cmp.w r3,e3 | |
128 | cmp.l #0x12345678,er4 | |
129 | cmp.l er5,er6 | |
130 | ||
131 | neg_tests: | |
132 | neg.b r0l | |
133 | neg.w r2 | |
134 | neg.l er3 | |
135 | ||
136 | ext_tests: | |
137 | exts.w r0 | |
138 | exts.l er1 | |
139 | extu.w r2 | |
140 | extu.l er3 | |
141 | ||
142 | tas_mac_tests: | |
143 | tas @er0 | |
144 | mac @er1+,@er2+ | |
145 | clrmac | |
146 | ldmac er4,mach | |
147 | ldmac er5,macl | |
148 | stmac mach,er6 | |
149 | stmac macl,er7 | |
150 | ||
151 | logic_operations_tests: | |
152 | and.b #0x12,r0l | |
153 | and.b r1l,r2h | |
154 | and.w #0x1234,r0 | |
155 | and.w r1,r2 | |
156 | and.l #0x12345678,er0 | |
157 | and.l er1,er2 | |
158 | or.b #0x12,r0l | |
159 | or.b r1l,r2h | |
160 | or.w #0x1234,r0 | |
161 | or.w r1,r2 | |
162 | or.l #0x12345678,er0 | |
163 | or.l er1,er2 | |
164 | xor.b #0x12,r0l | |
165 | xor.b r1l,r2h | |
166 | xor.w #0x1234,r0 | |
167 | xor.w r1,r2 | |
168 | xor.l #0x12345678,er0 | |
169 | xor.l er1,er2 | |
170 | not.b r0l | |
171 | not.w r1 | |
172 | not.l er2 | |
173 | ||
174 | sha_shl_tests: | |
175 | shal r0l | |
176 | shal r1 | |
177 | shal er2 | |
178 | shar r3l | |
179 | shar r4 | |
180 | shar er5 | |
181 | shll r0l | |
182 | shll r1 | |
183 | shll er2 | |
184 | shlr r3l | |
185 | shlr r4 | |
186 | shlr er5 | |
187 | ||
188 | rot_rotx_tests: | |
189 | rotl r0l | |
190 | rotl r1 | |
191 | rotl er2 | |
192 | rotr r3l | |
193 | rotr r4 | |
194 | rotr er5 | |
195 | rotxl r0l | |
196 | rotxl r1 | |
197 | rotxl er2 | |
198 | rotxr r3l | |
199 | rotxr r4 | |
200 | rotxr er5 | |
201 | ||
202 | bset_bclr_tests: | |
203 | bset #0x7,r0l | |
204 | bset #0x6,@er1 | |
205 | bset #0x5,@0x12:8 | |
206 | bset #0x4,@0x1234:16 | |
207 | bset #0x3,@0x12345678:32 | |
208 | bset r7l,r0h | |
209 | bset r6l,@er1 | |
210 | bset r5l,@0x12:8 | |
211 | bset r4l,@0x1234:16 | |
212 | bset r3l,@0x12345678:32 | |
213 | bclr #0x7,r0l | |
214 | bclr #0x6,@er1 | |
215 | bclr #0x5,@0x12:8 | |
216 | bclr #0x4,@0x1234:16 | |
217 | bclr #0x3,@0x12345678:32 | |
218 | bclr r7h,r0h | |
219 | bclr r6h,@er1 | |
220 | bclr r5h,@0x12:8 | |
221 | bclr r4h,@0x1234:16 | |
222 | bclr r3h,@0x12345678:32 | |
223 | ||
224 | bnot_btst_tests: | |
225 | bnot #0x7,r0l | |
226 | bnot #0x6,@er1 | |
227 | bnot #0x5,@0x12:8 | |
228 | bnot #0x4,@0x1234:16 | |
229 | bnot #0x3,@0x12345678:32 | |
230 | bnot r7l,r0h | |
231 | bnot r6l,@er1 | |
232 | bnot r5l,@0x12:8 | |
233 | bnot r4l,@0x1234:16 | |
234 | bnot r3l,@0x12345678:32 | |
235 | btst #0x7,r0l | |
236 | btst #0x6,@er1 | |
237 | btst #0x5,@0x12:8 | |
238 | btst #0x4,@0x1234:16 | |
239 | btst #0x3,@0x12345678:32 | |
240 | btst r7h,r0h | |
241 | btst r6h,@er1 | |
242 | btst r5h,@0x12:8 | |
243 | btst r4h,@0x1234:16 | |
244 | btst r3h,@0x12345678:32 | |
245 | ||
246 | band_bor_bxor_tests: | |
247 | band #0x7,r0l | |
248 | band #0x6,@er1 | |
249 | band #0x5,@0x12:8 | |
250 | band #0x4,@0x1234:16 | |
251 | band #0x3,@0x12345678:32 | |
252 | bor #0x7,r0l | |
253 | bor #0x6,@er1 | |
254 | bor #0x5,@0x12:8 | |
255 | bor #0x4,@0x1234:16 | |
256 | bor #0x3,@0x12345678:32 | |
257 | bxor #0x7,r0l | |
258 | bxor #0x6,@er1 | |
259 | bxor #0x5,@0x12:8 | |
260 | bxor #0x4,@0x1234:16 | |
261 | bxor #0x3,@0x12345678:32 | |
262 | ||
263 | bld_bst_tests: | |
264 | bld #0x7,r0l | |
265 | bld #0x6,@er1 | |
266 | bld #0x5,@0x12:8 | |
267 | bld #0x4,@0x1234:16 | |
268 | bld #0x3,@0x12345678:32 | |
269 | bild #0x7,r0l | |
270 | bild #0x6,@er1 | |
271 | bild #0x5,@0x12:8 | |
272 | bild #0x4,@0x1234:16 | |
273 | bild #0x3,@0x12345678:32 | |
274 | bst #0x7,r0l | |
275 | bst #0x6,@er1 | |
276 | bst #0x5,@0x12:8 | |
277 | bst #0x4,@0x1234:16 | |
278 | bst #0x3,@0x12345678:32 | |
279 | bist #0x7,r0l | |
280 | bist #0x6,@er1 | |
281 | bist #0x5,@0x12:8 | |
282 | bist #0x4,@0x1234:16 | |
283 | bist #0x3,@0x12345678:32 | |
284 | ||
285 | branch_tests: | |
286 | bra branch_tests | |
287 | brn branch_tests | |
288 | bhi branch_tests | |
289 | bls branch_tests | |
290 | bcc branch_tests | |
291 | bcs branch_tests | |
292 | bne branch_tests | |
293 | beq branch_tests | |
294 | bvc branch_tests | |
295 | bvs branch_tests | |
296 | bpl branch_tests | |
297 | bmi branch_tests | |
298 | bge branch_tests | |
299 | blt branch_tests | |
300 | bgt branch_tests | |
301 | ble branch_tests | |
302 | jmp @er0 | |
303 | jmp @branch_tests | |
304 | jmp @@0 (0) | |
305 | bsr @branch_tests:8 | |
306 | bsr @branch_tests:16 | |
307 | jsr @er0 | |
308 | jsr @branch_tests | |
309 | jsr @@0 (0) | |
310 | rts | |
311 | ||
312 | system_control_tests: | |
313 | trapa #0x2 | |
314 | rte | |
315 | sleep | |
316 | ldc #0x12,ccr | |
317 | ldc r3l,ccr | |
318 | ldc @er0,ccr | |
319 | ldc @(0x1234:16,er0),ccr | |
320 | ldc @(0x12345678:32,er0),ccr | |
321 | ldc @er1+,ccr | |
322 | ldc @0x1234:16,ccr | |
323 | ldc @0x12345678:32,ccr | |
324 | stc ccr,r3l | |
325 | stc ccr,@er0 | |
326 | stc ccr,@(0x1234:16,er0) | |
327 | stc ccr,@(0x12345678:32,er0) | |
328 | stc ccr,@-er1 | |
329 | stc ccr,@0x1234:16 | |
330 | stc ccr,@0x12345678:32 | |
331 | andc #0x12,ccr | |
332 | orc #0x34,ccr | |
333 | xorc #0x56,ccr | |
334 | ldc #0x12,exr | |
335 | ldc r3l,exr | |
336 | ldc @er0,exr | |
337 | ldc @(0x1234:16,er0),exr | |
338 | ldc @(0x12345678:32,er0),exr | |
339 | ldc @er1+,exr | |
340 | ldc @0x1234:16,exr | |
341 | ldc @0x12345678:32,exr | |
342 | stc exr,r3l | |
343 | stc exr,@er0 | |
344 | stc exr,@(0x1234:16,er0) | |
345 | stc exr,@(0x12345678:32,er0) | |
346 | stc exr,@-er1 | |
347 | stc exr,@0x1234:16 | |
348 | stc exr,@0x12345678:32 | |
349 | andc #0x12,exr | |
350 | orc #0x34,exr | |
351 | xorc #0x56,exr | |
352 | nop | |
353 | ||
354 | block_data_transfer_tests: | |
355 | eepmov.b | |
356 | eepmov.w |