PowerPC64 .branch_lt address
[binutils-gdb.git] / sim / testsuite / h8300 / mova.s
1 # Hitachi H8 testcase 'mova'
2 # mach(): h8sx
3 # as(h8300): --defsym sim_cpu=0
4 # as(h8300h): --defsym sim_cpu=1
5 # as(h8300s): --defsym sim_cpu=2
6 # as(h8sx): --defsym sim_cpu=3
7 # ld(h8300h): -m h8300helf
8 # ld(h8300s): -m h8300self
9 # ld(h8sx): -m h8300sxelf
10
11 .include "testutils.inc"
12
13 .data
14 foo: .long 0x01010101
15 .long 0x10101010
16 .long 0x11111111
17
18 start
19
20 movabl16_reg8:
21 set_grs_a5a5
22 set_ccr_zero
23
24 mova/b.l @(1:16, r2l.b), er3
25
26 test_cc_clear
27 test_gr_a5a5 0 ; Make sure other regs not affected
28 test_gr_a5a5 1
29 test_gr_a5a5 2
30 test_h_gr32 0xa6 er3
31 test_gr_a5a5 4
32 test_gr_a5a5 5
33 test_gr_a5a5 6
34 test_gr_a5a5 7
35
36 movabl16_reg16:
37 set_grs_a5a5
38 set_ccr_zero
39
40 mova/b.l @(1:16, r2.w), er3
41
42 test_cc_clear
43 test_gr_a5a5 0 ; Make sure other regs not affected
44 test_gr_a5a5 1
45 test_gr_a5a5 2
46 test_h_gr32 0xa5a6 er3
47 test_gr_a5a5 4
48 test_gr_a5a5 5
49 test_gr_a5a5 6
50 test_gr_a5a5 7
51
52 movabl32_reg8:
53 set_grs_a5a5
54 set_ccr_zero
55
56 mova/b.l @(1:32, r2l.b), er3
57
58 test_cc_clear
59 test_gr_a5a5 0 ; Make sure other regs not affected
60 test_gr_a5a5 1
61 test_gr_a5a5 2
62 test_h_gr32 0xa6 er3
63 test_gr_a5a5 4
64 test_gr_a5a5 5
65 test_gr_a5a5 6
66 test_gr_a5a5 7
67
68 movabl32_reg16:
69 set_grs_a5a5
70 set_ccr_zero
71
72 mova/b.l @(1:32, r2.w), er3
73
74 test_cc_clear
75 test_gr_a5a5 0 ; Make sure other regs not affected
76 test_gr_a5a5 1
77 test_gr_a5a5 2
78 test_h_gr32 0xa5a6 er3
79 test_gr_a5a5 4
80 test_gr_a5a5 5
81 test_gr_a5a5 6
82 test_gr_a5a5 7
83
84 movawl16_reg8:
85 set_grs_a5a5
86 set_ccr_zero
87
88 mova/w.l @(1:16, r2l.b), er3
89
90 test_cc_clear
91 test_gr_a5a5 0 ; Make sure other regs not affected
92 test_gr_a5a5 1
93 test_gr_a5a5 2
94 test_h_gr32 0x14b er3
95 test_gr_a5a5 4
96 test_gr_a5a5 5
97 test_gr_a5a5 6
98 test_gr_a5a5 7
99
100 movawl16_reg16:
101 set_grs_a5a5
102 set_ccr_zero
103
104 mova/w.l @(1:16, r2.w), er3
105
106 test_cc_clear
107 test_gr_a5a5 0 ; Make sure other regs not affected
108 test_gr_a5a5 1
109 test_gr_a5a5 2
110 test_h_gr32 0x14b4b er3
111 test_gr_a5a5 4
112 test_gr_a5a5 5
113 test_gr_a5a5 6
114 test_gr_a5a5 7
115
116 movawl32_reg8:
117 set_grs_a5a5
118 set_ccr_zero
119
120 mova/w.l @(1:32, r2l.b), er3
121
122 test_cc_clear
123 test_gr_a5a5 0 ; Make sure other regs not affected
124 test_gr_a5a5 1
125 test_gr_a5a5 2
126 test_h_gr32 0x14b er3
127 test_gr_a5a5 4
128 test_gr_a5a5 5
129 test_gr_a5a5 6
130 test_gr_a5a5 7
131
132 movawl32_reg16:
133 set_grs_a5a5
134 set_ccr_zero
135
136 mova/w.l @(1:32, r2.w), er3
137
138 test_cc_clear
139 test_gr_a5a5 0 ; Make sure other regs not affected
140 test_gr_a5a5 1
141 test_gr_a5a5 2
142 test_h_gr32 0x14b4b er3
143 test_gr_a5a5 4
144 test_gr_a5a5 5
145 test_gr_a5a5 6
146 test_gr_a5a5 7
147
148 movall16_reg8:
149 set_grs_a5a5
150 set_ccr_zero
151
152 mova/l.l @(1:16, r2l.b), er3
153
154 test_cc_clear
155 test_gr_a5a5 0 ; Make sure other regs not affected
156 test_gr_a5a5 1
157 test_gr_a5a5 2
158 test_h_gr32 0x295 er3
159 test_gr_a5a5 4
160 test_gr_a5a5 5
161 test_gr_a5a5 6
162 test_gr_a5a5 7
163
164 movall16_reg16:
165 set_grs_a5a5
166 set_ccr_zero
167
168 mova/l.l @(1:16, r2.w), er3
169
170 test_cc_clear
171 test_gr_a5a5 0 ; Make sure other regs not affected
172 test_gr_a5a5 1
173 test_gr_a5a5 2
174 test_h_gr32 0x29695 er3
175 test_gr_a5a5 4
176 test_gr_a5a5 5
177 test_gr_a5a5 6
178 test_gr_a5a5 7
179
180 movall32_reg8:
181 set_grs_a5a5
182 set_ccr_zero
183
184 mova/l.l @(1:32, r2l.b), er3
185
186 test_cc_clear
187 test_gr_a5a5 0 ; Make sure other regs not affected
188 test_gr_a5a5 1
189 test_gr_a5a5 2
190 test_h_gr32 0x295 er3
191 test_gr_a5a5 4
192 test_gr_a5a5 5
193 test_gr_a5a5 6
194 test_gr_a5a5 7
195
196 movall32_reg16:
197 set_grs_a5a5
198 set_ccr_zero
199
200 mova/l.l @(1:32, r2.w), er3
201
202 test_cc_clear
203 test_gr_a5a5 0 ; Make sure other regs not affected
204 test_gr_a5a5 1
205 test_gr_a5a5 2
206 test_h_gr32 0x29695 er3
207 test_gr_a5a5 4
208 test_gr_a5a5 5
209 test_gr_a5a5 6
210 test_gr_a5a5 7
211
212 t02_mova:
213 set_grs_a5a5
214 set_ccr_zero
215
216 mov.l #0x01010101, er1
217 mova/b.c @(0x1234:16,r1l.b),er1 ; 7A891234
218 test_h_gr32 0x1235, er1 ; 1s
219 mov.l #0x01010101, er1
220 mova/b.c @(0x1234:16,r1.w),er1 ; 7A991234
221 test_h_gr32 0x1335, er1 ; 2s
222 mov.l #0x01010101, er1
223 mova/w.c @(0x1234:16,r1l.b),er1 ; 7AA91234
224 test_h_gr32 0x1236, er1 ; 3s
225 mov.l #0x01010101, er1
226 mova/w.c @(0x1234:16,r1.w),er1 ; 7AB91234
227 test_h_gr32 0x1436, er1 ; 4s
228 mov.l #0x01010101, er1
229 mova/l.c @(0x1234:16,r1l.b),er1 ; 7AC91234
230 test_h_gr32 0x1238, er1 ; 5s
231 mov.l #0x01010101, er1
232 mova/l.c @(0x1234:16,r1.w),er1 ; 7AD91234
233 test_h_gr32 0x1638, er1 ; 6s
234 mov.l #0x01010101, er1
235 mova/b.c @(0x12345678:32,r1l.b),er1 ; 7A8112345678
236 test_h_gr32 0x12345679, er1 ; 7s
237 mov.l #0x01010101, er1
238 mova/b.c @(0x12345678:32,r1.w),er1 ; 7A9112345678
239 test_h_gr32 0x12345779, er1 ; 8s
240 mov.l #0x01010101, er1
241 mova/w.c @(0x12345678:32,r1l.b),er1 ; 7AA112345678
242 test_h_gr32 0x1234567a, er1 ; 9s
243 mov.l #0x01010101, er1
244 mova/w.c @(0x12345678:32,r1.w),er1 ; 7AB112345678
245 test_h_gr32 0x1234587a, er1 ; 10s
246 mov.l #0x01010101, er1
247 mova/l.c @(0x12345678:32,r1l.b),er1 ; 7AC112345678
248 test_h_gr32 0x1234567c, er1 ; 11s
249 mov.l #0x01010101, er1
250 mova/l.c @(0x12345678:32,r1.w),er1 ; 7AD112345678
251 test_h_gr32 0x12345a7c, er1 ; 12s
252
253 t02b:
254 mov.l #0x01010101, er3
255 mova/b.l @(0x1234:16,r3l.b),er1 ; 78B87A891234
256 test_h_gr32 0x1235, er1 ; 1
257 mova/b.l @(0x1234:16,r3.w),er1 ; 78397A991234
258 test_h_gr32 0x1335, er1 ; 2
259 mova/w.l @(0x1234:16,r3l.b),er1 ; 78B87AA91234
260 test_h_gr32 0x1236, er1 ; 3
261 mova/w.l @(0x1234:16,r3.w),er1 ; 78397AB91234
262 test_h_gr32 0x1436, er1 ; 4
263 mova/l.l @(0x1234:16,r3l.b),er1 ; 78B87AC91234
264 test_h_gr32 0x1238, er1 ; 5
265 mova/l.l @(0x1234:16,r3.w),er1 ; 78397AD91234
266 test_h_gr32 0x1638, er1 ; 6
267 mova/b.l @(0x12345678:32,r3l.b),er1 ; 78B87A8112345678
268 test_h_gr32 0x12345679, er1 ; 7
269 mova/b.l @(0x12345678:32,r3.w),er1 ; 78397A9112345678
270 test_h_gr32 0x12345779, er1 ; 8
271 mova/w.l @(0x12345678:32,r3l.b),er1 ; 78B87AA112345678
272 test_h_gr32 0x1234567a, er1 ; 9
273 mova/w.l @(0x12345678:32,r3.w),er1 ; 78397AB112345678
274 test_h_gr32 0x1234587a, er1 ; 10
275 mova/l.l @(0x12345678:32,r3l.b),er1 ; 78B87AC112345678
276 test_h_gr32 0x1234567c, er1 ; 11
277 mova/l.l @(0x12345678:32,r3.w),er1 ; 78397AD112345678
278 test_h_gr32 0x12345a7c, er1 ; 12
279 test_h_gr32 0x01010101, er3
280 t02c:
281 mov.l #foo, er2
282 mova/b.l @(0x1234:16,@er2.b),er1 ;017F02811234
283 test_h_gr32 0x1235, er1 ; 13
284 test_h_gr32 foo, er2
285 mova/b.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12811234
286 test_h_gr32 0x1235, er1 ; 18
287 test_h_gr32 foo, er2
288 mova/b.l @(0x1234:16,@er2+.b),er1 ;017F82811234
289 test_h_gr32 0x1235, er1 ; 14
290 test_h_gr32 foo+1, er2
291 mova/b.l @(0x1234:16,@-er2.b),er1 ;017FB2811234
292 test_h_gr32 0x1235, er1 ; 17
293 test_h_gr32 foo, er2
294 mova/b.l @(0x1234:16,@+er2.b),er1 ;017F92811234
295 test_h_gr32 0x1235, er1 ; 16
296 test_h_gr32 foo+1, er2
297 mova/b.l @(0x1234:16,@er2-.b),er1 ;017FA2811234
298 test_h_gr32 0x1235, er1 ; 15
299 test_h_gr32 foo, er2
300 t02d:
301 mov.l #4, er2
302 mova/b.l @(0x1234:16, @(foo:16, er2).b), er1
303 test_h_gr32 0x1244, er1 ; 19
304 mova/b.l @(0x1234:16, @(foo:16, r2L.b).b), er1
305 test_h_gr32 0x1244, er1 ; 21
306 mova/b.l @(0x1234:16, @(foo:16, r2.w).b), er1
307 test_h_gr32 0x1244, er1 ; 22
308 mova/b.l @(0x1234:16, @(foo:16, er2.l).b), er1
309 test_h_gr32 0x1244, er1 ; 23
310
311 mov.l #4, er2
312 mova/b.l @(0x1234:16, @(foo:32, er2).b), er1
313 test_h_gr32 0x1244, er1 ; 20
314 mova/b.l @(0x1234:16, @(foo:32, r2L.b).b), er1
315 test_h_gr32 0x1244, er1 ; 24
316 mova/b.l @(0x1234:16, @(foo:32, r2.w).b), er1
317 test_h_gr32 0x1244, er1 ; 25
318 mova/b.l @(0x1234:16, @(foo:32, er2.l).b), er1
319 test_h_gr32 0x1244, er1 ; 26
320
321 mova/b.l @(0x1234:16,@foo:16.b),er1
322 test_h_gr32 0x1235, er1 ; 27
323 mova/b.l @(0x1234:16,@foo:32.b),er1
324 test_h_gr32 0x1235, er1 ; 28
325
326 t02e:
327 mov.l #foo, er2
328 mova/b.l @(0x1234:16,@er2.w),er1 ;015F02911234
329 test_h_gr32 0x1335, er1 ; 29
330 test_h_gr32 foo, er2
331 mova/b.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12911234
332 test_h_gr32 0x1335, er1 ; 34
333 test_h_gr32 foo, er2
334 mova/b.l @(0x1234:16,@er2+.w),er1 ;015F82911234
335 test_h_gr32 0x1335, er1 ; 30
336 test_h_gr32 foo+2, er2
337 mova/b.l @(0x1234:16,@-er2.w),er1 ;015FB2911234
338 test_h_gr32 0x1335, er1 ; 33
339 test_h_gr32 foo, er2
340 mova/b.l @(0x1234:16,@+er2.w),er1 ;015F92911234
341 test_h_gr32 0x1335, er1 ; 32
342 test_h_gr32 foo+2, er2
343 mova/b.l @(0x1234:16,@er2-.w),er1 ;015FA2911234
344 test_h_gr32 0x1335, er1 ; 31
345 test_h_gr32 foo, er2
346
347 mov.l #4, er2
348 mova/b.l @(0x1234:16, @(foo:16, er2).w), er1
349 test_h_gr32 0x2244, er1 ; 35
350 shar.l er2
351 mova/b.l @(0x1234:16, @(foo:16, r2L.b).w), er1
352 test_h_gr32 0x2244, er1 ; 37
353 mova/b.l @(0x1234:16, @(foo:16, r2.w).w), er1
354 test_h_gr32 0x2244, er1 ; 38
355 mova/b.l @(0x1234:16, @(foo:16, er2.l).w), er1
356 test_h_gr32 0x2244, er1 ; 39
357
358 mov.l #4, er2
359 mova/b.l @(0x1234:16, @(foo:32, er2).w), er1
360 test_h_gr32 0x2244, er1 ; 36
361 shar.l er2
362 mova/b.l @(0x1234:16, @(foo:32, r2L.b).w), er1
363 test_h_gr32 0x2244, er1 ; 40
364 mova/b.l @(0x1234:16, @(foo:32, r2.w).w), er1
365 test_h_gr32 0x2244, er1 ; 41
366 mova/b.l @(0x1234:16, @(foo:32, er2.l).w), er1
367 test_h_gr32 0x2244, er1 ; 42
368
369 mova/b.l @(0x1234:16,@foo:16.w),er1 ;015F40919ABC1234
370 test_h_gr32 0x1335, er1 ; 43
371 mova/b.l @(0x1234:16,@foo:32.w),er1 ;015F48919ABCDEF01234
372 test_h_gr32 0x1335, er1 ; 44
373
374 t02f:
375 mov.l #foo, er2
376 mova/w.l @(0x1234:16,@er2.b),er1 ;017F02A11234
377 test_h_gr32 0x1236, er1 ; 45
378 mova/w.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12A11234
379 test_h_gr32 0x1236, er1 ; 50
380 mova/w.l @(0x1234:16,@er2+.b),er1 ;017F82A11234
381 test_h_gr32 0x1236, er1 ; 46
382 test_h_gr32 foo+1, er2
383 mova/w.l @(0x1234:16,@-er2.b),er1 ;017FB2A11234
384 test_h_gr32 0x1236, er1 ; 49
385 test_h_gr32 foo, er2
386 mova/w.l @(0x1234:16,@+er2.b),er1 ;017F92A11234
387 test_h_gr32 0x1236, er1 ; 48
388 test_h_gr32 foo+1, er2
389 mova/w.l @(0x1234:16,@er2-.b),er1 ;017FA2A11234
390 test_h_gr32 0x1236, er1 ; 47
391 test_h_gr32 foo, er2
392
393 t02g:
394 mov.l #4, er2
395 mova/w.l @(0x1234:16, @(foo:16, er2).b), er1
396 test_h_gr32 0x1254, er1 ; 51
397 mova/w.l @(0x1234:16, @(foo:16, r2L.b).b), er1
398 test_h_gr32 0x1254, er1 ; 53
399 mova/w.l @(0x1234:16, @(foo:16, r2.w).b), er1
400 test_h_gr32 0x1254, er1 ; 54
401 mova/w.l @(0x1234:16, @(foo:16, er2.l).b), er1
402 test_h_gr32 0x1254, er1 ; 55
403
404 mov.l #4, er2
405 mova/w.l @(0x1234:16, @(foo:32, er2).b), er1
406 test_h_gr32 0x1254, er1 ; 52
407 mova/w.l @(0x1234:16, @(foo:32, r2L.b).b), er1
408 test_h_gr32 0x1254, er1 ; 56
409 mova/w.l @(0x1234:16, @(foo:32, r2.w).b), er1
410 test_h_gr32 0x1254, er1 ; 57
411 mova/w.l @(0x1234:16, @(foo:32, er2.l).b), er1
412 test_h_gr32 0x1254, er1 ; 58
413
414 mova/w.l @(0x1234:16,@foo:16.b),er1 ;017F40A19ABC1234
415 test_h_gr32 0x1236, er1 ; 59 (can't test -- points into the woods)
416 mova/w.l @(0x1234:16,@foo:32.b),er1 ;017F48A19ABCDEF01234
417 test_h_gr32 0x1236, er1 ; 60 (can't test -- points into the woods)
418
419 t02h:
420 mov.l #foo, er2
421 mova/w.l @(0x1234:16,@er2.w),er1 ;015F02B11234
422 test_h_gr32 0x1436, er1 ; 61
423 mova/w.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12B11234
424 test_h_gr32 0x1436, er1 ; 66, 0x1234 + (@(4+foo).w << 1
425 mova/w.l @(0x1234:16,@er2+.w),er1 ;015F82B11234
426 test_h_gr32 0x1436, er1 ; 62
427 test_h_gr32 foo+2, er2
428 mova/w.l @(0x1234:16,@-er2.w),er1 ;015FB2B11234
429 test_h_gr32 0x1436, er1 ; 63
430 test_h_gr32 foo, er2
431 mova/w.l @(0x1234:16,@+er2.w),er1 ;015F92B11234
432 test_h_gr32 0x1436, er1 ; 64
433 test_h_gr32 foo+2, er2
434 mova/w.l @(0x1234:16,@er2-.w),er1 ;015FA2B11234
435 test_h_gr32 0x1436, er1 ; 65
436 test_h_gr32 foo, er2
437 t02i:
438 mov.l #4, er2
439 mova/w.l @(0x1234:16, @(foo:16, er2).w), er1
440 test_h_gr32 0x3254, er1 ; 67
441 shar.l er2
442 mova/w.l @(0x1234:16, @(foo:16, r2L.b).w), er1
443 test_h_gr32 0x3254, er1 ; 69
444 mova/w.l @(0x1234:16, @(foo:16, r2.w).w), er1
445 test_h_gr32 0x3254, er1 ; 70
446 mova/w.l @(0x1234:16, @(foo:16, er2.l).w), er1
447 test_h_gr32 0x3254, er1 ; 71
448
449 mov.l #4, er2
450 mova/w.l @(0x1234:16, @(foo:32, er2).w), er1
451 test_h_gr32 0x3254, er1 ; 68
452 shar.l er2
453 mova/w.l @(0x1234:16, @(foo:32, r2L.b).w), er1
454 test_h_gr32 0x3254, er1 ; 72
455 mova/w.l @(0x1234:16, @(foo:32, r2.w).w), er1
456 test_h_gr32 0x3254, er1 ; 73
457 mova/w.l @(0x1234:16, @(foo:32, er2.l).w), er1
458 test_h_gr32 0x3254, er1 ; 74
459
460 mova/w.l @(0x1234:16,@foo:16.w),er1 ;015F40B19ABC1234
461 test_h_gr32 0x1436, er1 ; 75 (can't test -- points into the woods)
462 mova/w.l @(0x1234:16,@foo:32.w),er1 ;015F48B19ABCDEF01234
463 test_h_gr32 0x1436, er1 ; 76 (can't test -- points into the woods)
464
465 t02j:
466 mov.l #foo, er2
467 mova/l.l @(0x1234:16,@er2.b),er1 ;017F02C11234
468 test_h_gr32 0x1238, er1 ; 77
469 mova/l.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12C11234
470 test_h_gr32 0x1238, er1 ; 82
471 mova/l.l @(0x1234:16,@er2+.b),er1 ;017F82C11234
472 test_h_gr32 0x1238, er1 ; 78
473 test_h_gr32 foo+1, er2
474 mova/l.l @(0x1234:16,@-er2.b),er1 ;017FB2C11234
475 test_h_gr32 0x1238, er1 ; 79
476 test_h_gr32 foo, er2
477 mova/l.l @(0x1234:16,@+er2.b),er1 ;017F92C11234
478 test_h_gr32 0x1238, er1 ; 80
479 test_h_gr32 foo+1, er2
480 mova/l.l @(0x1234:16,@er2-.b),er1 ;017FA2C11234
481 test_h_gr32 0x1238, er1 ; 81
482 test_h_gr32 foo, er2
483
484 t02k:
485 mov.l #4, er2
486 mova/l.l @(0x1234:16, @(foo:16, er2).b), er1
487 test_h_gr32 0x1274, er1 ; 83
488 mova/l.l @(0x1234:16, @(foo:16, r2L.b).b), er1
489 test_h_gr32 0x1274, er1 ; 85
490 mova/l.l @(0x1234:16, @(foo:16, r2.w).b), er1
491 test_h_gr32 0x1274, er1 ; 86
492 mova/l.l @(0x1234:16, @(foo:16, er2.l).b), er1
493 test_h_gr32 0x1274, er1 ; 87
494
495 mov.l #4, er2
496 mova/l.l @(0x1234:16, @(foo:32, er2).b), er1
497 test_h_gr32 0x1274, er1 ; 84
498 mova/l.l @(0x1234:16, @(foo:32, r2L.b).b), er1
499 test_h_gr32 0x1274, er1 ; 88
500 mova/l.l @(0x1234:16, @(foo:32, r2.w).b), er1
501 test_h_gr32 0x1274, er1 ; 89
502 mova/l.l @(0x1234:16, @(foo:32, er2.l).b), er1
503 test_h_gr32 0x1274, er1 ; 90
504
505 mova/l.l @(0x1234:16,@foo:16.b),er1 ;017F40C19ABC1234
506 test_h_gr32 0x1238, er1 ; 91 (can't test -- points into the woods)
507 mova/l.l @(0x1234:16,@foo:32.b),er1 ;017F48C19ABCDEF01234
508 test_h_gr32 0x1238, er1 ; 92 (can't test -- points into the woods)
509
510 t02l:
511 mov.l #foo, er2
512 mova/l.l @(0x1234:16,@er2.w),er1 ;015F02D11234
513 test_h_gr32 0x1638, er1 ; 93
514 mova/l.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12D11234
515 test_h_gr32 0x1638, er1 ; 98
516 mova/l.l @(0x1234:16,@er2+.w),er1 ;015F82D11234
517 test_h_gr32 0x1638, er1 ; 94
518 test_h_gr32 foo+2, er2
519 mova/l.l @(0x1234:16,@-er2.w),er1 ;015FB2D11234
520 test_h_gr32 0x1638, er1 ; 97
521 test_h_gr32 foo, er2
522 mova/l.l @(0x1234:16,@+er2.w),er1 ;015F92D11234
523 test_h_gr32 0x1638, er1 ; 96
524 test_h_gr32 foo+2, er2
525 mova/l.l @(0x1234:16,@er2-.w),er1 ;015FA2D11234
526 test_h_gr32 0x1638, er1 ; 95
527 test_h_gr32 foo, er2
528
529 t02o:
530 mov.l #4, er2
531 mova/l.l @(0x1234:16, @(foo:16, er2).w), er1
532 test_h_gr32 0x5274, er1 ; 99
533 shar.l er2
534 mova/l.l @(0x1234:16, @(foo:16, r2L.b).w), er1
535 test_h_gr32 0x5274, er1 ; 101
536 mova/l.l @(0x1234:16, @(foo:16, r2.w).w), er1
537 test_h_gr32 0x5274, er1 ; 102
538 mova/l.l @(0x1234:16, @(foo:16, er2.l).w), er1
539 test_h_gr32 0x5274, er1 ; 103
540
541 mov.l #4, er2
542 mova/l.l @(0x1234:16, @(foo:32, er2).w), er1
543 test_h_gr32 0x5274, er1 ; 100
544 shar.l er2
545 mova/l.l @(0x1234:16, @(foo:32, r2L.b).w), er1
546 test_h_gr32 0x5274, er1 ; 104
547 mova/l.l @(0x1234:16, @(foo:32, r2.w).w), er1
548 test_h_gr32 0x5274, er1 ; 105
549 mova/l.l @(0x1234:16, @(foo:32, er2.l).w), er1
550 test_h_gr32 0x5274, er1 ; 106
551
552 mova/l.l @(0x1234:16,@foo:16.w),er1 ;015F40D19ABC1234
553 test_h_gr32 0x1638, er1 ; 107 (can't test -- points into the woods)
554 mova/l.l @(0x1234:16,@foo:32.w),er1 ;015F48D19ABCDEF01234
555 test_h_gr32 0x1638, er1 ; 108 (can't test -- points into the woods)
556
557 t02p:
558 mov.l #foo, er2
559 mova/b.l @(0x12345678:32,@er2.b),er1 ;017F028912345678
560 test_h_gr32 0x12345679, er1 ; 109
561 mova/b.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F128912345678
562 test_h_gr32 0x12345679, er1 ; 114
563 mova/b.l @(0x12345678:32,@er2+.b),er1 ;017F828912345678
564 test_h_gr32 0x12345679, er1 ; 110
565 test_h_gr32 foo+1, er2
566 mova/b.l @(0x12345678:32,@-er2.b),er1 ;017FB28912345678
567 test_h_gr32 0x12345679, er1 ; 113
568 test_h_gr32 foo, er2
569 mova/b.l @(0x12345678:32,@+er2.b),er1 ;017F928912345678
570 test_h_gr32 0x12345679, er1 ; 112
571 test_h_gr32 foo+1, er2
572 mova/b.l @(0x12345678:32,@er2-.b),er1 ;017FA28912345678
573 test_h_gr32 0x12345679, er1 ; 111
574 test_h_gr32 foo, er2
575
576 t02q:
577 mov.l #4, er2
578 mova/b.l @(0x12345678:32, @(foo:16, er2).b), er1
579 test_h_gr32 0x12345688, er1 ; 115
580 mova/b.l @(0x12345678:32, @(foo:16, r2L.b).b), er1
581 test_h_gr32 0x12345688, er1 ; 117
582 mova/b.l @(0x12345678:32, @(foo:16, r2.w).b), er1
583 test_h_gr32 0x12345688, er1 ; 118
584 mova/b.l @(0x12345678:32, @(foo:16, er2.l).b), er1
585 test_h_gr32 0x12345688, er1 ; 119
586
587 mov.l #4, er2
588 mova/b.l @(0x12345678:32, @(foo:32, er2).b), er1
589 test_h_gr32 0x12345688, er1 ; 116
590 mova/b.l @(0x12345678:32, @(foo:32, r2L.b).b), er1
591 test_h_gr32 0x12345688, er1 ; 120
592 mova/b.l @(0x12345678:32, @(foo:32, r2.w).b), er1
593 test_h_gr32 0x12345688, er1 ; 121
594 mova/b.l @(0x12345678:32, @(foo:32, er2.l).b), er1
595 test_h_gr32 0x12345688, er1 ; 122
596
597 mova/b.l @(0x12345678:32,@foo:16.b),er1
598 test_h_gr32 0x12345679, er1 ; 123
599 mova/b.l @(0x12345678:32,@foo:32.b),er1
600 test_h_gr32 0x12345679, er1 ; 124
601
602 t02r:
603 mov.l #foo, er2
604 mova/b.l @(0x12345678:32,@er2.w),er1 ;015F029912345678
605 test_h_gr32 0x12345779, er1 ; 125
606 mova/b.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F129912345678
607 test_h_gr32 0x12345779, er1 ; 130
608 mova/b.l @(0x12345678:32,@er2+.w),er1 ;015F829912345678
609 test_h_gr32 0x12345779, er1 ; 126
610 test_h_gr32 foo+2, er2
611 mova/b.l @(0x12345678:32,@-er2.w),er1 ;015FB29912345678
612 test_h_gr32 0x12345779, er1 ; 129
613 test_h_gr32 foo, er2
614 mova/b.l @(0x12345678:32,@+er2.w),er1 ;015F929912345678
615 test_h_gr32 0x12345779, er1 ; 128
616 test_h_gr32 foo+2, er2
617 mova/b.l @(0x12345678:32,@er2-.w),er1 ;015FA29912345678
618 test_h_gr32 0x12345779, er1 ; 127
619 test_h_gr32 foo, er2
620
621 mov.l #4, er2
622 mova/b.l @(0x12345678:32, @(foo:16, er2).w), er1
623 test_h_gr32 0x12346688, er1 ; 131
624 shar.l er2
625 mova/b.l @(0x12345678:32, @(foo:16, r2L.b).w), er1
626 test_h_gr32 0x12346688, er1 ; 133
627 mova/b.l @(0x12345678:32, @(foo:16, r2.w).w), er1
628 test_h_gr32 0x12346688, er1 ; 134
629 mova/b.l @(0x12345678:32, @(foo:16, er2.l).w), er1
630 test_h_gr32 0x12346688, er1 ; 135
631
632 mov.l #4, er2
633 mova/b.l @(0x12345678:32, @(foo:32, er2).w), er1
634 test_h_gr32 0x12346688, er1 ; 132
635 shar.l er2
636 mova/b.l @(0x12345678:32, @(foo:32, r2L.b).w), er1
637 test_h_gr32 0x12346688, er1 ; 136
638 mova/b.l @(0x12345678:32, @(foo:32, r2.w).w), er1
639 test_h_gr32 0x12346688, er1 ; 137
640 mova/b.l @(0x12345678:32, @(foo:32, er2.l).w), er1
641 test_h_gr32 0x12346688, er1 ; 138
642
643 mova/b.l @(0x12345678:32,@foo:16.w),er1
644 test_h_gr32 0x12345779, er1 ; 139
645 mova/b.l @(0x12345678:32,@foo:32.w),er1
646 test_h_gr32 0x12345779, er1 ; 140
647
648 t02s:
649 mov.l #foo, er2
650 mova/w.l @(0x12345678:32,@er2.b),er1 ;017F02A912345678
651 test_h_gr32 0x1234567a, er1 ; 141
652 mova/w.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F12A912345678
653 test_h_gr32 0x1234567a, er1 ; 146
654 mova/w.l @(0x12345678:32,@er2+.b),er1 ;017F82A912345678
655 test_h_gr32 0x1234567a, er1 ; 142
656 test_h_gr32 foo+1, er2
657 mova/w.l @(0x12345678:32,@-er2.b),er1 ;017FB2A912345678
658 test_h_gr32 0x1234567a, er1 ; 145
659 test_h_gr32 foo, er2
660 mova/w.l @(0x12345678:32,@+er2.b),er1 ;017F92A912345678
661 test_h_gr32 0x1234567a, er1 ; 144
662 test_h_gr32 foo+1, er2
663 mova/w.l @(0x12345678:32,@er2-.b),er1 ;017FA2A912345678
664 test_h_gr32 0x1234567a, er1 ; 143
665 test_h_gr32 foo, er2
666
667 mov.l #4, er2
668 mova/w.l @(0x12345678:32, @(foo:16, er2).b), er1
669 test_h_gr32 0x12345698, er1 ; 147
670 mova/w.l @(0x12345678:32, @(foo:16, r2L.b).b), er1
671 test_h_gr32 0x12345698, er1 ; 149
672 mova/w.l @(0x12345678:32, @(foo:16, r2.w).b), er1
673 test_h_gr32 0x12345698, er1 ; 150
674 mova/w.l @(0x12345678:32, @(foo:16, er2.l).b), er1
675 test_h_gr32 0x12345698, er1 ; 151
676
677 mov.l #4, er2
678 mova/w.l @(0x12345678:32, @(foo:32, er2).b), er1
679 test_h_gr32 0x12345698, er1 ; 148
680 mova/w.l @(0x12345678:32, @(foo:32, r2L.b).b), er1
681 test_h_gr32 0x12345698, er1 ; 152
682 mova/w.l @(0x12345678:32, @(foo:32, r2.w).b), er1
683 test_h_gr32 0x12345698, er1 ; 153
684 mova/w.l @(0x12345678:32, @(foo:32, er2.l).b), er1
685 test_h_gr32 0x12345698, er1 ; 154
686
687 mova/w.l @(0x12345678:32,@foo:16.b),er1
688 test_h_gr32 0x1234567a, er1 ; 155
689 mova/w.l @(0x12345678:32,@foo:32.b),er1
690 test_h_gr32 0x1234567a, er1 ; 156
691
692 t02t:
693 mov.l #foo, er2
694 mova/w.l @(0x12345678:32,@er2.w),er1 ;015F02B912345678
695 test_h_gr32 0x1234587a, er1 ; 157
696 mova/w.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12B912345678
697 test_h_gr32 0x1234587a, er1 ; 162
698 mova/w.l @(0x12345678:32,@er2+.w),er1 ;015F82B912345678
699 test_h_gr32 0x1234587a, er1 ; 158
700 test_h_gr32 foo+2, er2
701 mova/w.l @(0x12345678:32,@-er2.w),er1 ;015FB2B912345678
702 test_h_gr32 0x1234587a, er1 ; 161
703 test_h_gr32 foo, er2
704 mova/w.l @(0x12345678:32,@+er2.w),er1 ;015F92B912345678
705 test_h_gr32 0x1234587a, er1 ; 160
706 test_h_gr32 foo+2, er2
707 mova/w.l @(0x12345678:32,@er2-.w),er1 ;015FA2B912345678
708 test_h_gr32 0x1234587a, er1 ; 159
709 test_h_gr32 foo, er2
710
711 mov.l #4, er2
712 mova/w.l @(0x12345678:32, @(foo:16, er2).w), er1
713 test_h_gr32 0x12347698, er1 ; 163
714 shar.l er2
715 mova/w.l @(0x12345678:32, @(foo:16, r2L.b).w), er1
716 test_h_gr32 0x12347698, er1 ; 165
717 mova/w.l @(0x12345678:32, @(foo:16, r2.w).w), er1
718 test_h_gr32 0x12347698, er1 ; 166
719 mova/w.l @(0x12345678:32, @(foo:16, er2.l).w), er1
720 test_h_gr32 0x12347698, er1 ; 167
721
722 mov.l #4, er2
723 mova/w.l @(0x12345678:32, @(foo:32, er2).w), er1
724 test_h_gr32 0x12347698, er1 ; 164
725 shar.l er2
726 mova/w.l @(0x12345678:32, @(foo:32, r2L.b).w), er1
727 test_h_gr32 0x12347698, er1 ; 168
728 mova/w.l @(0x12345678:32, @(foo:32, r2.w).w), er1
729 test_h_gr32 0x12347698, er1 ; 169
730 mova/w.l @(0x12345678:32, @(foo:32, er2.l).w), er1
731 test_h_gr32 0x12347698, er1 ; 170
732
733 mova/w.l @(0x12345678:32,@foo:16.w),er1
734 test_h_gr32 0x1234587a, er1 ; 171
735 mova/w.l @(0x12345678:32,@foo:32.w),er1
736 test_h_gr32 0x1234587a, er1 ; 172
737
738 t02u:
739 mov.l #foo, er2
740 mova/l.l @(0x12345678:32,@er2.b),er1 ;017F02C912345678
741 test_h_gr32 0x1234567c, er1 ; 173
742 mova/l.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F12C912345678
743 test_h_gr32 0x1234567c, er1 ; 178
744 mova/l.l @(0x12345678:32,@er2+.b),er1 ;017F82C912345678
745 test_h_gr32 0x1234567c, er1 ; 174
746 test_h_gr32 foo+1, er2
747 mova/l.l @(0x12345678:32,@-er2.b),er1 ;017FB2C912345678
748 test_h_gr32 0x1234567c, er1 ; 177
749 test_h_gr32 foo, er2
750 mova/l.l @(0x12345678:32,@+er2.b),er1 ;017F92C912345678
751 test_h_gr32 0x1234567c, er1 ; 176
752 test_h_gr32 foo+1, er2
753 mova/l.l @(0x12345678:32,@er2-.b),er1 ;017FA2C912345678
754 test_h_gr32 0x1234567c, er1 ; 175
755 test_h_gr32 foo, er2
756
757 mov.l #4, er2
758 mova/l.l @(0x12345678:32, @(foo:16, er2).b), er1
759 test_h_gr32 0x123456b8, er1 ; 179
760 mova/l.l @(0x12345678:32, @(foo:16, r2L.b).b), er1
761 test_h_gr32 0x123456b8, er1 ; 181
762 mova/l.l @(0x12345678:32, @(foo:16, r2.w).b), er1
763 test_h_gr32 0x123456b8, er1 ; 182
764 mova/l.l @(0x12345678:32, @(foo:16, er2.l).b), er1
765 test_h_gr32 0x123456b8, er1 ; 183
766
767 mov.l #4, er2
768 mova/l.l @(0x12345678:32, @(foo:32, er2).b), er1
769 test_h_gr32 0x123456b8, er1 ; 180
770 mova/l.l @(0x12345678:32, @(foo:32, r2L.b).b), er1
771 test_h_gr32 0x123456b8, er1 ; 184
772 mova/l.l @(0x12345678:32, @(foo:32, r2.w).b), er1
773 test_h_gr32 0x123456b8, er1 ; 185
774 mova/l.l @(0x12345678:32, @(foo:32, er2.l).b), er1
775 test_h_gr32 0x123456b8, er1 ; 186
776
777 mova/l.l @(0x12345678:32,@foo:16.b),er1
778 test_h_gr32 0x1234567c, er1 ; 187
779 mova/l.l @(0x12345678:32,@foo:32.b),er1
780 test_h_gr32 0x1234567c, er1 ; 188
781
782 t02v:
783 mov.l #foo, er2
784 mova/l.l @(0x12345678:32,@er2.w),er1 ;015F02D912345678
785 test_h_gr32 0x12345a7c, er1 ; 189
786 mova/l.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12D912345678
787 test_h_gr32 0x12345a7c, er1 ; 194
788 mova/l.l @(0x12345678:32,@er2+.w),er1 ;015F82D912345678
789 test_h_gr32 0x12345a7c, er1 ; 190
790 test_h_gr32 foo+2, er2
791 mova/l.l @(0x12345678:32,@-er2.w),er1 ;015FB2D912345678
792 test_h_gr32 0x12345a7c, er1 ; 193
793 test_h_gr32 foo, er2
794 mova/l.l @(0x12345678:32,@+er2.w),er1 ;015F92D912345678
795 test_h_gr32 0x12345a7c, er1 ; 192
796 test_h_gr32 foo+2, er2
797 mova/l.l @(0x12345678:32,@er2-.w),er1 ;015FA2D912345678
798 test_h_gr32 0x12345a7c, er1 ; 191
799 test_h_gr32 foo, er2
800
801 mov.l #4, er2
802 mova/l.l @(0x12345678:32, @(foo:16, er2).w), er1
803 test_h_gr32 0x123496b8, er1 ; 195
804 shar.l er2
805 mova/l.l @(0x12345678:32, @(foo:16, r2L.b).w), er1
806 test_h_gr32 0x123496b8, er1 ; 197
807 mova/l.l @(0x12345678:32, @(foo:16, r2.w).w), er1
808 test_h_gr32 0x123496b8, er1 ; 198
809 mova/l.l @(0x12345678:32, @(foo:16, er2.l).w), er1
810 test_h_gr32 0x123496b8, er1 ; 199
811
812 mov.l #4, er2
813 mova/l.l @(0x12345678:32, @(foo:32, er2).w), er1
814 test_h_gr32 0x123496b8, er1 ; 195
815 shar.l er2
816 mova/l.l @(0x12345678:32, @(foo:32, r2L.b).w), er1
817 test_h_gr32 0x123496b8, er1 ; 197
818 mova/l.l @(0x12345678:32, @(foo:32, r2.w).w), er1
819 test_h_gr32 0x123496b8, er1 ; 198
820 mova/l.l @(0x12345678:32, @(foo:32, er2.l).w), er1
821 test_h_gr32 0x123496b8, er1 ; 199
822
823 mova/l.l @(0x12345678:32,@foo:16.w),er1
824 test_h_gr32 0x12345a7c, er1 ; 203
825 mova/l.l @(0x12345678:32,@foo:32.w),er1
826 test_h_gr32 0x12345a7c, er1 ; 204
827
828 test_gr_a5a5 0
829 test_h_gr32 2, er2
830 test_h_gr32 0x01010101, er3
831 test_gr_a5a5 4
832 test_gr_a5a5 5
833 test_gr_a5a5 6
834 test_gr_a5a5 7
835
836 pass
837
838 exit 0