]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/testsuite/sim/h8300/rotxr.s
daily update
[thirdparty/binutils-gdb.git] / sim / testsuite / sim / h8300 / rotxr.s
CommitLineData
5fe8b0df
MS
1# Hitachi H8 testcase 'rotxr'
2# mach(): all
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 start
14
15 .data
16byte_dest: .byte 0xa5
17 .align 2
18word_dest: .word 0xa5a5
19 .align 4
20long_dest: .long 0xa5a5a5a5
21
22 .text
23
24rotxr_b_reg8_1:
25 set_grs_a5a5 ; Fill all general regs with a fixed pattern
26 set_ccr_zero
27
28 rotxr.b r0l ; shift right arithmetic by one
29;;; .word 0x1308
30
31 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
32 test_zero_clear
33 test_ovf_clear
34 test_neg_clear
35
36 test_h_gr16 0xa552 r0 ; 1010 0101 -> 0101 0010
37.if (sim_cpu)
38 test_h_gr32 0xa5a5a552 er0
39.endif
40 test_gr_a5a5 1 ; Make sure other general regs not disturbed
41 test_gr_a5a5 2
42 test_gr_a5a5 3
43 test_gr_a5a5 4
44 test_gr_a5a5 5
45 test_gr_a5a5 6
46 test_gr_a5a5 7
47
48.if (sim_cpu == h8sx)
49rotxr_b_ind_1:
50 set_grs_a5a5 ; Fill all general regs with a fixed pattern
51 set_ccr_zero
52
53 mov #byte_dest, er0
54 rotxr.b @er0 ; shift right arithmetic by one, indirect
55;;; .word 0x7d00
56;;; .word 0x1300
57
58 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
59 test_zero_clear
60 test_ovf_clear
61 test_neg_clear
62
63 test_h_gr32 byte_dest er0
64 test_gr_a5a5 1 ; Make sure other general regs not disturbed
65 test_gr_a5a5 2
66 test_gr_a5a5 3
67 test_gr_a5a5 4
68 test_gr_a5a5 5
69 test_gr_a5a5 6
70 test_gr_a5a5 7
71 ; 1010 0101 -> 0101 0010
72 cmp.b #0x52, @byte_dest
73 beq .Lbind1
74 fail
75.Lbind1:
76 mov #0xa5a5a5a5, @byte_dest
77
78rotxr_b_postinc_1:
79 set_grs_a5a5 ; Fill all general regs with a fixed pattern
80 set_ccr_zero
81
82 mov #byte_dest, er0
83 rotxr.b @er0+ ; shift right arithmetic by one, postinc
84;;; .word 0x0174
85;;; .word 0x6c08
86;;; .word 0x1300
87
88 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
89 test_zero_clear
90 test_ovf_clear
91 test_neg_clear
92
93 test_h_gr32 byte_dest+1 er0
94 test_gr_a5a5 1 ; Make sure other general regs not disturbed
95 test_gr_a5a5 2
96 test_gr_a5a5 3
97 test_gr_a5a5 4
98 test_gr_a5a5 5
99 test_gr_a5a5 6
100 test_gr_a5a5 7
101 ; 1010 0101 -> 0101 0010
102 cmp.b #0x52, @byte_dest
103 beq .Lbpostinc1
104 fail
105.Lbpostinc1:
106 mov #0xa5a5a5a5, @byte_dest
107
108rotxr_b_postdec_1:
109 set_grs_a5a5 ; Fill all general regs with a fixed pattern
110 set_ccr_zero
111
112 mov #byte_dest, er0
113 rotxr.b @er0- ; shift right arithmetic by one, postdec
114;;; .word 0x0176
115;;; .word 0x6c08
116;;; .word 0x1300
117
118 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
119 test_zero_clear
120 test_ovf_clear
121 test_neg_clear
122
123 test_h_gr32 byte_dest-1 er0
124 test_gr_a5a5 1 ; Make sure other general regs not disturbed
125 test_gr_a5a5 2
126 test_gr_a5a5 3
127 test_gr_a5a5 4
128 test_gr_a5a5 5
129 test_gr_a5a5 6
130 test_gr_a5a5 7
131 ; 1010 0101 -> 0101 0010
132 cmp.b #0x52, @byte_dest
133 beq .Lbpostdec1
134 fail
135.Lbpostdec1:
136 mov #0xa5a5a5a5, @byte_dest
137
138rotxr_b_preinc_1:
139 set_grs_a5a5 ; Fill all general regs with a fixed pattern
140 set_ccr_zero
141
142 mov #byte_dest-1, er0
143 rotxr.b @+er0 ; shift right arithmetic by one, preinc
144;;; .word 0x0175
145;;; .word 0x6c08
146;;; .word 0x1300
147
148 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
149 test_zero_clear
150 test_ovf_clear
151 test_neg_clear
152
153 test_h_gr32 byte_dest er0
154 test_gr_a5a5 1 ; Make sure other general regs not disturbed
155 test_gr_a5a5 2
156 test_gr_a5a5 3
157 test_gr_a5a5 4
158 test_gr_a5a5 5
159 test_gr_a5a5 6
160 test_gr_a5a5 7
161 ; 1010 0101 -> 0101 0010
162 cmp.b #0x52, @byte_dest
163 beq .Lbpreinc1
164 fail
165.Lbpreinc1:
166 mov #0xa5a5a5a5, @byte_dest
167
168rotxr_b_predec_1:
169 set_grs_a5a5 ; Fill all general regs with a fixed pattern
170 set_ccr_zero
171
172 mov #byte_dest+1, er0
173 rotxr.b @-er0 ; shift right arithmetic by one, predec
174;;; .word 0x0177
175;;; .word 0x6c08
176;;; .word 0x1300
177
178 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
179 test_zero_clear
180 test_ovf_clear
181 test_neg_clear
182
183 test_h_gr32 byte_dest er0
184 test_gr_a5a5 1 ; Make sure other general regs not disturbed
185 test_gr_a5a5 2
186 test_gr_a5a5 3
187 test_gr_a5a5 4
188 test_gr_a5a5 5
189 test_gr_a5a5 6
190 test_gr_a5a5 7
191 ; 1010 0101 -> 0101 0010
192 cmp.b #0x52, @byte_dest
193 beq .Lbpredec1
194 fail
195.Lbpredec1:
196 mov #0xa5a5a5a5, @byte_dest
197
198rotxr_b_disp2_1:
199 set_grs_a5a5 ; Fill all general regs with a fixed pattern
200 set_ccr_zero
201
202 mov #byte_dest-2, er0
203 rotxr.b @(2:2, er0) ; shift right arithmetic by one, disp2
204;;; .word 0x0176
205;;; .word 0x6808
206;;; .word 0x1300
207
208 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
209 test_zero_clear
210 test_ovf_clear
211 test_neg_clear
212
213 test_h_gr32 byte_dest-2 er0
214 test_gr_a5a5 1 ; Make sure other general regs not disturbed
215 test_gr_a5a5 2
216 test_gr_a5a5 3
217 test_gr_a5a5 4
218 test_gr_a5a5 5
219 test_gr_a5a5 6
220 test_gr_a5a5 7
221 ; 1010 0101 -> 0101 0010
222 cmp.b #0x52, @byte_dest
223 beq .Lbdisp21
224 fail
225.Lbdisp21:
226 mov #0xa5a5a5a5, @byte_dest
227
228rotxr_b_disp16_1:
229 set_grs_a5a5 ; Fill all general regs with a fixed pattern
230 set_ccr_zero
231
232 mov #byte_dest-44, er0
233 rotxr.b @(44:16, er0) ; shift right arithmetic by one, disp16
234;;; .word 0x0174
235;;; .word 0x6e08
236;;; .word 44
237;;; .word 0x1300
238
239 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
240 test_zero_clear
241 test_ovf_clear
242 test_neg_clear
243
244 test_h_gr32 byte_dest-44 er0
245 test_gr_a5a5 1 ; Make sure other general regs not disturbed
246 test_gr_a5a5 2
247 test_gr_a5a5 3
248 test_gr_a5a5 4
249 test_gr_a5a5 5
250 test_gr_a5a5 6
251 test_gr_a5a5 7
252 ; 1010 0101 -> 0101 0010
253 cmp.b #0x52, @byte_dest
254 beq .Lbdisp161
255 fail
256.Lbdisp161:
257 mov #0xa5a5a5a5, @byte_dest
258
259rotxr_b_disp32_1:
260 set_grs_a5a5 ; Fill all general regs with a fixed pattern
261 set_ccr_zero
262
263 mov #byte_dest-666, er0
264 rotxr.b @(666:32, er0) ; shift right arithmetic by one, disp32
265;;; .word 0x7884
266;;; .word 0x6a28
267;;; .long 666
268;;; .word 0x1300
269
270 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
271 test_zero_clear
272 test_ovf_clear
273 test_neg_clear
274
275 test_h_gr32 byte_dest-666 er0
276 test_gr_a5a5 1 ; Make sure other general regs not disturbed
277 test_gr_a5a5 2
278 test_gr_a5a5 3
279 test_gr_a5a5 4
280 test_gr_a5a5 5
281 test_gr_a5a5 6
282 test_gr_a5a5 7
283 ; 1010 0101 -> 0101 0010
284 cmp.b #0x52, @byte_dest
285 beq .Lbdisp321
286 fail
287.Lbdisp321:
288 mov #0xa5a5a5a5, @byte_dest
289
290rotxr_b_abs16_1:
291 set_grs_a5a5 ; Fill all general regs with a fixed pattern
292 set_ccr_zero
293
294 rotxr.b @byte_dest:16 ; shift right arithmetic by one, abs16
295;;; .word 0x6a18
296;;; .word byte_dest
297;;; .word 0x1300
298
299 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
300 test_zero_clear
301 test_ovf_clear
302 test_neg_clear
303
304 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
305 test_gr_a5a5 2
306 test_gr_a5a5 2
307 test_gr_a5a5 3
308 test_gr_a5a5 4
309 test_gr_a5a5 5
310 test_gr_a5a5 6
311 test_gr_a5a5 7
312 ; 1010 0101 -> 0101 0010
313 cmp.b #0x52, @byte_dest
314 beq .Lbabs161
315 fail
316.Lbabs161:
317 mov #0xa5a5a5a5, @byte_dest
318
319rotxr_b_abs32_1:
320 set_grs_a5a5 ; Fill all general regs with a fixed pattern
321 set_ccr_zero
322
323 rotxr.b @byte_dest:32 ; shift right arithmetic by one, abs32
324;;; .word 0x6a38
325;;; .long byte_dest
326;;; .word 0x1300
327
328 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
329 test_zero_clear
330 test_ovf_clear
331 test_neg_clear
332
333 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
334 test_gr_a5a5 2
335 test_gr_a5a5 2
336 test_gr_a5a5 3
337 test_gr_a5a5 4
338 test_gr_a5a5 5
339 test_gr_a5a5 6
340 test_gr_a5a5 7
341 ; 1010 0101 -> 0101 0010
342 cmp.b #0x52, @byte_dest
343 beq .Lbabs321
344 fail
345.Lbabs321:
346 mov #0xa5a5a5a5, @byte_dest
347.endif
348
349rotxr_b_reg8_2:
350 set_grs_a5a5 ; Fill all general regs with a fixed pattern
351 set_ccr_zero
352
353 rotxr.b #2, r0l ; shift right arithmetic by two
354;;; .word 0x1348
355
356 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
357 test_zero_clear
358 test_ovf_clear
359 test_neg_set
360
361 test_h_gr16 0xa5a9 r0 ; 1010 0101 -> 1010 1001
362.if (sim_cpu)
363 test_h_gr32 0xa5a5a5a9 er0
364.endif
365 test_gr_a5a5 1 ; Make sure other general regs not disturbed
366 test_gr_a5a5 2
367 test_gr_a5a5 3
368 test_gr_a5a5 4
369 test_gr_a5a5 5
370 test_gr_a5a5 6
371 test_gr_a5a5 7
372
373.if (sim_cpu == h8sx)
374rotxr_b_ind_2:
375 set_grs_a5a5 ; Fill all general regs with a fixed pattern
376 set_ccr_zero
377
378 mov #byte_dest, er0
379 rotxr.b #2, @er0 ; shift right arithmetic by two, indirect
380;;; .word 0x7d00
381;;; .word 0x1340
382
383 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
384 test_zero_clear
385 test_ovf_clear
386 test_neg_set
387
388 test_h_gr32 byte_dest er0
389 test_gr_a5a5 1 ; Make sure other general regs not disturbed
390 test_gr_a5a5 2
391 test_gr_a5a5 3
392 test_gr_a5a5 4
393 test_gr_a5a5 5
394 test_gr_a5a5 6
395 test_gr_a5a5 7
396 ; 1010 0101 -> 1010 1001
397 cmp.b #0xa9, @byte_dest
398 beq .Lbind2
399 fail
400.Lbind2:
401 mov #0xa5a5a5a5, @byte_dest
402
403rotxr_b_postinc_2:
404 set_grs_a5a5 ; Fill all general regs with a fixed pattern
405 set_ccr_zero
406
407 mov #byte_dest, er0
408 rotxr.b #2, @er0+ ; shift right arithmetic by two, postinc
409;;; .word 0x0174
410;;; .word 0x6c08
411;;; .word 0x1340
412
413 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
414 test_zero_clear
415 test_ovf_clear
416 test_neg_set
417
418 test_h_gr32 byte_dest+1 er0
419 test_gr_a5a5 1 ; Make sure other general regs not disturbed
420 test_gr_a5a5 2
421 test_gr_a5a5 3
422 test_gr_a5a5 4
423 test_gr_a5a5 5
424 test_gr_a5a5 6
425 test_gr_a5a5 7
426 ; 1010 0101 -> 1010 1001
427 cmp.b #0xa9, @byte_dest
428 beq .Lbpostinc2
429 fail
430.Lbpostinc2:
431 mov #0xa5a5a5a5, @byte_dest
432
433rotxr_b_postdec_2:
434 set_grs_a5a5 ; Fill all general regs with a fixed pattern
435 set_ccr_zero
436
437 mov #byte_dest, er0
438 rotxr.b #2, @er0- ; shift right arithmetic by two, postdec
439;;; .word 0x0176
440;;; .word 0x6c08
441;;; .word 0x1340
442
443 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
444 test_zero_clear
445 test_ovf_clear
446 test_neg_set
447
448 test_h_gr32 byte_dest-1 er0
449 test_gr_a5a5 1 ; Make sure other general regs not disturbed
450 test_gr_a5a5 2
451 test_gr_a5a5 3
452 test_gr_a5a5 4
453 test_gr_a5a5 5
454 test_gr_a5a5 6
455 test_gr_a5a5 7
456 ; 1010 0101 -> 1010 1001
457 cmp.b #0xa9, @byte_dest
458 beq .Lbpostdec2
459 fail
460.Lbpostdec2:
461 mov #0xa5a5a5a5, @byte_dest
462
463rotxr_b_preinc_2:
464 set_grs_a5a5 ; Fill all general regs with a fixed pattern
465 set_ccr_zero
466
467 mov #byte_dest-1, er0
468 rotxr.b #2, @+er0 ; shift right arithmetic by two, preinc
469;;; .word 0x0175
470;;; .word 0x6c08
471;;; .word 0x1340
472
473 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
474 test_zero_clear
475 test_ovf_clear
476 test_neg_set
477
478 test_h_gr32 byte_dest er0
479 test_gr_a5a5 1 ; Make sure other general regs not disturbed
480 test_gr_a5a5 2
481 test_gr_a5a5 3
482 test_gr_a5a5 4
483 test_gr_a5a5 5
484 test_gr_a5a5 6
485 test_gr_a5a5 7
486 ; 1010 0101 -> 1010 1001
487 cmp.b #0xa9, @byte_dest
488 beq .Lbpreinc2
489 fail
490.Lbpreinc2:
491 mov #0xa5a5a5a5, @byte_dest
492
493rotxr_b_predec_2:
494 set_grs_a5a5 ; Fill all general regs with a fixed pattern
495 set_ccr_zero
496
497 mov #byte_dest+1, er0
498 rotxr.b #2, @-er0 ; shift right arithmetic by two, predec
499;;; .word 0x0177
500;;; .word 0x6c08
501;;; .word 0x1340
502
503 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
504 test_zero_clear
505 test_ovf_clear
506 test_neg_set
507
508 test_h_gr32 byte_dest er0
509 test_gr_a5a5 1 ; Make sure other general regs not disturbed
510 test_gr_a5a5 2
511 test_gr_a5a5 3
512 test_gr_a5a5 4
513 test_gr_a5a5 5
514 test_gr_a5a5 6
515 test_gr_a5a5 7
516 ; 1010 0101 -> 1010 1001
517 cmp.b #0xa9, @byte_dest
518 beq .Lbpredec2
519 fail
520.Lbpredec2:
521 mov #0xa5a5a5a5, @byte_dest
522
523rotxr_b_disp2_2:
524 set_grs_a5a5 ; Fill all general regs with a fixed pattern
525 set_ccr_zero
526
527 mov #byte_dest-2, er0
528 rotxr.b #2, @(2:2, er0) ; shift right arithmetic by two, disp2
529;;; .word 0x0176
530;;; .word 0x6808
531;;; .word 0x1340
532
533 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
534 test_zero_clear
535 test_ovf_clear
536 test_neg_set
537
538 test_h_gr32 byte_dest-2 er0
539 test_gr_a5a5 1 ; Make sure other general regs not disturbed
540 test_gr_a5a5 2
541 test_gr_a5a5 3
542 test_gr_a5a5 4
543 test_gr_a5a5 5
544 test_gr_a5a5 6
545 test_gr_a5a5 7
546 ; 1010 0101 -> 1010 1001
547 cmp.b #0xa9, @byte_dest
548 beq .Lbdisp22
549 fail
550.Lbdisp22:
551 mov #0xa5a5a5a5, @byte_dest
552
553rotxr_b_disp16_2:
554 set_grs_a5a5 ; Fill all general regs with a fixed pattern
555 set_ccr_zero
556
557 mov #byte_dest-44, er0
558 rotxr.b #2, @(44:16, er0) ; shift right arithmetic by two, disp16
559;;; .word 0x0174
560;;; .word 0x6e08
561;;; .word 44
562;;; .word 0x1340
563
564 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
565 test_zero_clear
566 test_ovf_clear
567 test_neg_set
568
569 test_h_gr32 byte_dest-44 er0
570 test_gr_a5a5 1 ; Make sure other general regs not disturbed
571 test_gr_a5a5 2
572 test_gr_a5a5 3
573 test_gr_a5a5 4
574 test_gr_a5a5 5
575 test_gr_a5a5 6
576 test_gr_a5a5 7
577 ; 1010 0101 -> 1010 1001
578 cmp.b #0xa9, @byte_dest
579 beq .Lbdisp162
580 fail
581.Lbdisp162:
582 mov #0xa5a5a5a5, @byte_dest
583
584rotxr_b_disp32_2:
585 set_grs_a5a5 ; Fill all general regs with a fixed pattern
586 set_ccr_zero
587
588 mov #byte_dest-666, er0
589 rotxr.b #2, @(666:32, er0) ; shift right arithmetic by two, disp32
590;;; .word 0x7884
591;;; .word 0x6a28
592;;; .long 666
593;;; .word 0x1340
594
595 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
596 test_zero_clear
597 test_ovf_clear
598 test_neg_set
599
600 test_h_gr32 byte_dest-666 er0
601 test_gr_a5a5 1 ; Make sure other general regs not disturbed
602 test_gr_a5a5 2
603 test_gr_a5a5 3
604 test_gr_a5a5 4
605 test_gr_a5a5 5
606 test_gr_a5a5 6
607 test_gr_a5a5 7
608 ; 1010 0101 -> 1010 1001
609 cmp.b #0xa9, @byte_dest
610 beq .Lbdisp322
611 fail
612.Lbdisp322:
613 mov #0xa5a5a5a5, @byte_dest
614
615rotxr_b_abs16_2:
616 set_grs_a5a5 ; Fill all general regs with a fixed pattern
617 set_ccr_zero
618
619 rotxr.b #2, @byte_dest:16 ; shift right arithmetic by two, abs16
620;;; .word 0x6a18
621;;; .word byte_dest
622;;; .word 0x1340
623
624 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
625 test_zero_clear
626 test_ovf_clear
627 test_neg_set
628
629 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
630 test_gr_a5a5 2
631 test_gr_a5a5 2
632 test_gr_a5a5 3
633 test_gr_a5a5 4
634 test_gr_a5a5 5
635 test_gr_a5a5 6
636 test_gr_a5a5 7
637 ; 1010 0101 -> 1010 1001
638 cmp.b #0xa9, @byte_dest
639 beq .Lbabs162
640 fail
641.Lbabs162:
642 mov #0xa5a5a5a5, @byte_dest
643
644rotxr_b_abs32_2:
645 set_grs_a5a5 ; Fill all general regs with a fixed pattern
646 set_ccr_zero
647
648 rotxr.b #2, @byte_dest:32 ; shift right arithmetic by two, abs32
649;;; .word 0x6a38
650;;; .long byte_dest
651;;; .word 0x1340
652
653 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
654 test_zero_clear
655 test_ovf_clear
656 test_neg_set
657
658 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
659 test_gr_a5a5 2
660 test_gr_a5a5 2
661 test_gr_a5a5 3
662 test_gr_a5a5 4
663 test_gr_a5a5 5
664 test_gr_a5a5 6
665 test_gr_a5a5 7
666 ; 1010 0101 -> 1010 1001
667 cmp.b #0xa9, @byte_dest
668 beq .Lbabs322
669 fail
670.Lbabs322:
671 mov #0xa5a5a5a5, @byte_dest
672.endif
673
674.if (sim_cpu) ; Not available in h8300 mode
675rotxr_w_reg16_1:
676 set_grs_a5a5 ; Fill all general regs with a fixed pattern
677 set_ccr_zero
678
679 rotxr.w r0 ; shift right arithmetic by one
680;;; .word 0x1310
681
682 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
683 test_zero_clear
684 test_ovf_clear
685 test_neg_clear
686
687 test_h_gr16 0x52d2 r0 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
688 test_h_gr32 0xa5a552d2 er0
689
690 test_gr_a5a5 1 ; Make sure other general regs not disturbed
691 test_gr_a5a5 2
692 test_gr_a5a5 3
693 test_gr_a5a5 4
694 test_gr_a5a5 5
695 test_gr_a5a5 6
696 test_gr_a5a5 7
697
698.if (sim_cpu == h8sx)
699rotxr_w_ind_1:
700 set_grs_a5a5 ; Fill all general regs with a fixed pattern
701 set_ccr_zero
702
703 mov #word_dest, er0
704 rotxr.w @er0 ; shift right arithmetic by one, indirect
705;;; .word 0x7d80
706;;; .word 0x1310
707
708 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
709 test_zero_clear
710 test_ovf_clear
711 test_neg_clear
712
713 test_h_gr32 word_dest er0
714 test_gr_a5a5 1 ; Make sure other general regs not disturbed
715 test_gr_a5a5 2
716 test_gr_a5a5 3
717 test_gr_a5a5 4
718 test_gr_a5a5 5
719 test_gr_a5a5 6
720 test_gr_a5a5 7
721 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
722 cmp.w #0x52d2, @word_dest
723 beq .Lwind1
724 fail
725.Lwind1:
726 mov #0xa5a5a5a5, @word_dest
727
728rotxr_w_postinc_1:
729 set_grs_a5a5 ; Fill all general regs with a fixed pattern
730 set_ccr_zero
731
732 mov #word_dest, er0
733 rotxr.w @er0+ ; shift right arithmetic by one, postinc
734;;; .word 0x0154
735;;; .word 0x6d08
736;;; .word 0x1310
737
738 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
739 test_zero_clear
740 test_ovf_clear
741 test_neg_clear
742
743 test_h_gr32 word_dest+2 er0
744 test_gr_a5a5 1 ; Make sure other general regs not disturbed
745 test_gr_a5a5 2
746 test_gr_a5a5 3
747 test_gr_a5a5 4
748 test_gr_a5a5 5
749 test_gr_a5a5 6
750 test_gr_a5a5 7
751 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
752 cmp.w #0x52d2, @word_dest
753 beq .Lwpostinc1
754 fail
755.Lwpostinc1:
756 mov #0xa5a5a5a5, @word_dest
757
758rotxr_w_postdec_1:
759 set_grs_a5a5 ; Fill all general regs with a fixed pattern
760 set_ccr_zero
761
762 mov #word_dest, er0
763 rotxr.w @er0- ; shift right arithmetic by one, postdec
764;;; .word 0x0156
765;;; .word 0x6d08
766;;; .word 0x1310
767
768 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
769 test_zero_clear
770 test_ovf_clear
771 test_neg_clear
772
773 test_h_gr32 word_dest-2 er0
774 test_gr_a5a5 1 ; Make sure other general regs not disturbed
775 test_gr_a5a5 2
776 test_gr_a5a5 3
777 test_gr_a5a5 4
778 test_gr_a5a5 5
779 test_gr_a5a5 6
780 test_gr_a5a5 7
781 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
782 cmp.w #0x52d2, @word_dest
783 beq .Lwpostdec1
784 fail
785.Lwpostdec1:
786 mov #0xa5a5a5a5, @word_dest
787
788rotxr_w_preinc_1:
789 set_grs_a5a5 ; Fill all general regs with a fixed pattern
790 set_ccr_zero
791
792 mov #word_dest-2, er0
793 rotxr.w @+er0 ; shift right arithmetic by one, preinc
794;;; .word 0x0155
795;;; .word 0x6d08
796;;; .word 0x1310
797
798 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
799 test_zero_clear
800 test_ovf_clear
801 test_neg_clear
802
803 test_h_gr32 word_dest er0
804 test_gr_a5a5 1 ; Make sure other general regs not disturbed
805 test_gr_a5a5 2
806 test_gr_a5a5 3
807 test_gr_a5a5 4
808 test_gr_a5a5 5
809 test_gr_a5a5 6
810 test_gr_a5a5 7
811 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
812 cmp.w #0x52d2, @word_dest
813 beq .Lwpreinc1
814 fail
815.Lwpreinc1:
816 mov #0xa5a5a5a5, @word_dest
817
818rotxr_w_predec_1:
819 set_grs_a5a5 ; Fill all general regs with a fixed pattern
820 set_ccr_zero
821
822 mov #word_dest+2, er0
823 rotxr.w @-er0 ; shift right arithmetic by one, predec
824;;; .word 0x0157
825;;; .word 0x6d08
826;;; .word 0x1310
827
828 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
829 test_zero_clear
830 test_ovf_clear
831 test_neg_clear
832
833 test_h_gr32 word_dest er0
834 test_gr_a5a5 1 ; Make sure other general regs not disturbed
835 test_gr_a5a5 2
836 test_gr_a5a5 3
837 test_gr_a5a5 4
838 test_gr_a5a5 5
839 test_gr_a5a5 6
840 test_gr_a5a5 7
841 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
842 cmp.w #0x52d2, @word_dest
843 beq .Lwpredec1
844 fail
845.Lwpredec1:
846 mov #0xa5a5a5a5, @word_dest
847
848rotxr_w_disp2_1:
849 set_grs_a5a5 ; Fill all general regs with a fixed pattern
850 set_ccr_zero
851
32ebdc4c
MS
852 mov #word_dest-4, er0
853 rotxr.w @(4:2, er0) ; shift right arithmetic by one, disp2
5fe8b0df
MS
854;;; .word 0x0156
855;;; .word 0xa908
856;;; .word 0x1310
857
858 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
859 test_zero_clear
860 test_ovf_clear
861 test_neg_clear
862
32ebdc4c 863 test_h_gr32 word_dest-4 er0
5fe8b0df
MS
864 test_gr_a5a5 1 ; Make sure other general regs not disturbed
865 test_gr_a5a5 2
866 test_gr_a5a5 3
867 test_gr_a5a5 4
868 test_gr_a5a5 5
869 test_gr_a5a5 6
870 test_gr_a5a5 7
871 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
872 cmp.w #0x52d2, @word_dest
873 beq .Lwdisp21
874 fail
875.Lwdisp21:
876 mov #0xa5a5a5a5, @word_dest
877
878rotxr_w_disp16_1:
879 set_grs_a5a5 ; Fill all general regs with a fixed pattern
880 set_ccr_zero
881
882 mov #word_dest-44, er0
883 rotxr.w @(44:16, er0) ; shift right arithmetic by one, disp16
884;;; .word 0x0154
885;;; .word 0x6f08
886;;; .word 44
887;;; .word 0x1310
888
889 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
890 test_zero_clear
891 test_ovf_clear
892 test_neg_clear
893
894 test_h_gr32 word_dest-44 er0
895 test_gr_a5a5 1 ; Make sure other general regs not disturbed
896 test_gr_a5a5 2
897 test_gr_a5a5 3
898 test_gr_a5a5 4
899 test_gr_a5a5 5
900 test_gr_a5a5 6
901 test_gr_a5a5 7
902 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
903 cmp.w #0x52d2, @word_dest
904 beq .Lwdisp161
905 fail
906.Lwdisp161:
907 mov #0xa5a5a5a5, @word_dest
908
909rotxr_w_disp32_1:
910 set_grs_a5a5 ; Fill all general regs with a fixed pattern
911 set_ccr_zero
912
913 mov #word_dest-666, er0
914 rotxr.w @(666:32, er0) ; shift right arithmetic by one, disp32
915;;; .word 0x7884
916;;; .word 0x6b28
917;;; .long 666
918;;; .word 0x1310
919
920 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
921 test_zero_clear
922 test_ovf_clear
923 test_neg_clear
924
925 test_h_gr32 word_dest-666 er0
926 test_gr_a5a5 1 ; Make sure other general regs not disturbed
927 test_gr_a5a5 2
928 test_gr_a5a5 3
929 test_gr_a5a5 4
930 test_gr_a5a5 5
931 test_gr_a5a5 6
932 test_gr_a5a5 7
933 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
934 cmp.w #0x52d2, @word_dest
935 beq .Lwdisp321
936 fail
937.Lwdisp321:
938 mov #0xa5a5a5a5, @word_dest
939
940rotxr_w_abs16_1:
941 set_grs_a5a5 ; Fill all general regs with a fixed pattern
942 set_ccr_zero
943
944 rotxr.w @word_dest:16 ; shift right arithmetic by one, abs16
945;;; .word 0x6b18
946;;; .word word_dest
947;;; .word 0x1310
948
949 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
950 test_zero_clear
951 test_ovf_clear
952 test_neg_clear
953
954 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
955 test_gr_a5a5 1
956 test_gr_a5a5 2
957 test_gr_a5a5 3
958 test_gr_a5a5 4
959 test_gr_a5a5 5
960 test_gr_a5a5 6
961 test_gr_a5a5 7
962 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
963 cmp.w #0x52d2, @word_dest
964 beq .Lwabs161
965 fail
966.Lwabs161:
967 mov #0xa5a5a5a5, @word_dest
968
969rotxr_w_abs32_1:
970 set_grs_a5a5 ; Fill all general regs with a fixed pattern
971 set_ccr_zero
972
973 rotxr.w @word_dest:32 ; shift right arithmetic by one, abs32
974;;; .word 0x6b38
975;;; .long word_dest
976;;; .word 0x1310
977
978 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
979 test_zero_clear
980 test_ovf_clear
981 test_neg_clear
982
983 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
984 test_gr_a5a5 1
985 test_gr_a5a5 2
986 test_gr_a5a5 3
987 test_gr_a5a5 4
988 test_gr_a5a5 5
989 test_gr_a5a5 6
990 test_gr_a5a5 7
991 ; 1010 0101 1010 0101 -> 0101 0010 1101 0010
992 cmp.w #0x52d2, @word_dest
993 beq .Lwabs321
994 fail
995.Lwabs321:
996 mov #0xa5a5a5a5, @word_dest
997.endif
998
999rotxr_w_reg16_2:
1000 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1001 set_ccr_zero
1002
1003 rotxr.w #2, r0 ; shift right arithmetic by two
1004;;; .word 0x1350
1005
1006 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1007 test_zero_clear
1008 test_ovf_clear
1009 test_neg_set
1010
1011 test_h_gr16 0xa969 r0 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1012 test_h_gr32 0xa5a5a969 er0
1013 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1014 test_gr_a5a5 2
1015 test_gr_a5a5 3
1016 test_gr_a5a5 4
1017 test_gr_a5a5 5
1018 test_gr_a5a5 6
1019 test_gr_a5a5 7
1020
1021.if (sim_cpu == h8sx)
1022rotxr_w_ind_2:
1023 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1024 set_ccr_zero
1025
1026 mov #word_dest, er0
1027 rotxr.w #2, @er0 ; shift right arithmetic by two, indirect
1028;;; .word 0x7d80
1029;;; .word 0x1350
1030
1031 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1032 test_zero_clear
1033 test_ovf_clear
1034 test_neg_set
1035
1036 test_h_gr32 word_dest er0
1037 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1038 test_gr_a5a5 2
1039 test_gr_a5a5 3
1040 test_gr_a5a5 4
1041 test_gr_a5a5 5
1042 test_gr_a5a5 6
1043 test_gr_a5a5 7
1044 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1045 cmp.w #0xa969, @word_dest
1046 beq .Lwind2
1047 fail
1048.Lwind2:
1049 mov #0xa5a5a5a5, @word_dest
1050
1051rotxr_w_postinc_2:
1052 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1053 set_ccr_zero
1054
1055 mov #word_dest, er0
1056 rotxr.w #2, @er0+ ; shift right arithmetic by two, postinc
1057;;; .word 0x0154
1058;;; .word 0x6d08
1059;;; .word 0x1350
1060
1061 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1062 test_zero_clear
1063 test_ovf_clear
1064 test_neg_set
1065
1066 test_h_gr32 word_dest+2 er0
1067 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1068 test_gr_a5a5 2
1069 test_gr_a5a5 3
1070 test_gr_a5a5 4
1071 test_gr_a5a5 5
1072 test_gr_a5a5 6
1073 test_gr_a5a5 7
1074 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1075 cmp.w #0xa969, @word_dest
1076 beq .Lwpostinc2
1077 fail
1078.Lwpostinc2:
1079 mov #0xa5a5a5a5, @word_dest
1080
1081rotxr_w_postdec_2:
1082 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1083 set_ccr_zero
1084
1085 mov #word_dest, er0
1086 rotxr.w #2, @er0- ; shift right arithmetic by two, postdec
1087;;; .word 0x0156
1088;;; .word 0x6d08
1089;;; .word 0x1350
1090
1091 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1092 test_zero_clear
1093 test_ovf_clear
1094 test_neg_set
1095
1096 test_h_gr32 word_dest-2 er0
1097 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1098 test_gr_a5a5 2
1099 test_gr_a5a5 3
1100 test_gr_a5a5 4
1101 test_gr_a5a5 5
1102 test_gr_a5a5 6
1103 test_gr_a5a5 7
1104 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1105 cmp.w #0xa969, @word_dest
1106 beq .Lwpostdec2
1107 fail
1108.Lwpostdec2:
1109 mov #0xa5a5a5a5, @word_dest
1110
1111rotxr_w_preinc_2:
1112 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1113 set_ccr_zero
1114
1115 mov #word_dest-2, er0
1116 rotxr.w #2, @+er0 ; shift right arithmetic by two, preinc
1117;;; .word 0x0155
1118;;; .word 0x6d08
1119;;; .word 0x1350
1120
1121 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1122 test_zero_clear
1123 test_ovf_clear
1124 test_neg_set
1125
1126 test_h_gr32 word_dest er0
1127 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1128 test_gr_a5a5 2
1129 test_gr_a5a5 3
1130 test_gr_a5a5 4
1131 test_gr_a5a5 5
1132 test_gr_a5a5 6
1133 test_gr_a5a5 7
1134 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1135 cmp.w #0xa969, @word_dest
1136 beq .Lwpreinc2
1137 fail
1138.Lwpreinc2:
1139 mov #0xa5a5a5a5, @word_dest
1140
1141rotxr_w_predec_2:
1142 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1143 set_ccr_zero
1144
1145 mov #word_dest+2, er0
1146 rotxr.w #2, @-er0 ; shift right arithmetic by two, predec
1147;;; .word 0x0157
1148;;; .word 0x6d08
1149;;; .word 0x1350
1150
1151 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1152 test_zero_clear
1153 test_ovf_clear
1154 test_neg_set
1155
1156 test_h_gr32 word_dest er0
1157 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1158 test_gr_a5a5 2
1159 test_gr_a5a5 3
1160 test_gr_a5a5 4
1161 test_gr_a5a5 5
1162 test_gr_a5a5 6
1163 test_gr_a5a5 7
1164 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1165 cmp.w #0xa969, @word_dest
1166 beq .Lwpredec2
1167 fail
1168.Lwpredec2:
1169 mov #0xa5a5a5a5, @word_dest
1170
1171rotxr_w_disp2_2:
1172 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1173 set_ccr_zero
1174
32ebdc4c
MS
1175 mov #word_dest-4, er0
1176 rotxr.w #2, @(4:2, er0) ; shift right arithmetic by two, disp2
5fe8b0df
MS
1177;;; .word 0x0156
1178;;; .word 0xa908
1179;;; .word 0x1350
1180
1181 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1182 test_zero_clear
1183 test_ovf_clear
1184 test_neg_set
1185
32ebdc4c 1186 test_h_gr32 word_dest-4 er0
5fe8b0df
MS
1187 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1188 test_gr_a5a5 2
1189 test_gr_a5a5 3
1190 test_gr_a5a5 4
1191 test_gr_a5a5 5
1192 test_gr_a5a5 6
1193 test_gr_a5a5 7
1194 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1195 cmp.w #0xa969, @word_dest
1196 beq .Lwdisp22
1197 fail
1198.Lwdisp22:
1199 mov #0xa5a5a5a5, @word_dest
1200
1201rotxr_w_disp16_2:
1202 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1203 set_ccr_zero
1204
1205 mov #word_dest-44, er0
1206 rotxr.w #2, @(44:16, er0) ; shift right arithmetic by two, disp16
1207;;; .word 0x0154
1208;;; .word 0x6f08
1209;;; .word 44
1210;;; .word 0x1350
1211
1212 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1213 test_zero_clear
1214 test_ovf_clear
1215 test_neg_set
1216
1217 test_h_gr32 word_dest-44 er0
1218 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1219 test_gr_a5a5 2
1220 test_gr_a5a5 3
1221 test_gr_a5a5 4
1222 test_gr_a5a5 5
1223 test_gr_a5a5 6
1224 test_gr_a5a5 7
1225 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1226 cmp.w #0xa969, @word_dest
1227 beq .Lwdisp162
1228 fail
1229.Lwdisp162:
1230 mov #0xa5a5a5a5, @word_dest
1231
1232rotxr_w_disp32_2:
1233 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1234 set_ccr_zero
1235
1236 mov #word_dest-666, er0
1237 rotxr.w #2, @(666:32, er0) ; shift right arithmetic by two, disp32
1238;;; .word 0x7884
1239;;; .word 0x6b28
1240;;; .long 666
1241;;; .word 0x1350
1242
1243 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1244 test_zero_clear
1245 test_ovf_clear
1246 test_neg_set
1247
1248 test_h_gr32 word_dest-666 er0
1249 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1250 test_gr_a5a5 2
1251 test_gr_a5a5 3
1252 test_gr_a5a5 4
1253 test_gr_a5a5 5
1254 test_gr_a5a5 6
1255 test_gr_a5a5 7
1256 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1257 cmp.w #0xa969, @word_dest
1258 beq .Lwdisp322
1259 fail
1260.Lwdisp322:
1261 mov #0xa5a5a5a5, @word_dest
1262
1263rotxr_w_abs16_2:
1264 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1265 set_ccr_zero
1266
1267 rotxr.w #2, @word_dest:16 ; shift right arithmetic by two, abs16
1268;;; .word 0x6b18
1269;;; .word word_dest
1270;;; .word 0x1350
1271
1272 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1273 test_zero_clear
1274 test_ovf_clear
1275 test_neg_set
1276
1277 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
1278 test_gr_a5a5 2
1279 test_gr_a5a5 2
1280 test_gr_a5a5 3
1281 test_gr_a5a5 4
1282 test_gr_a5a5 5
1283 test_gr_a5a5 6
1284 test_gr_a5a5 7
1285 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1286 cmp.w #0xa969, @word_dest
1287 beq .Lwabs162
1288 fail
1289.Lwabs162:
1290 mov #0xa5a5a5a5, @word_dest
1291
1292rotxr_w_abs32_2:
1293 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1294 set_ccr_zero
1295
1296 rotxr.w #2, @word_dest:32 ; shift right arithmetic by two, abs32
1297;;; .word 0x6b38
1298;;; .long word_dest
1299;;; .word 0x1350
1300
1301 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1302 test_zero_clear
1303 test_ovf_clear
1304 test_neg_set
1305
1306 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
1307 test_gr_a5a5 2
1308 test_gr_a5a5 2
1309 test_gr_a5a5 3
1310 test_gr_a5a5 4
1311 test_gr_a5a5 5
1312 test_gr_a5a5 6
1313 test_gr_a5a5 7
1314 ; 1010 0101 1010 0101 -> 1010 1001 0110 1001
1315 cmp.w #0xa969, @word_dest
1316 beq .Lwabs322
1317 fail
1318.Lwabs322:
1319 mov #0xa5a5a5a5, @word_dest
1320.endif
1321
1322rotxr_l_reg32_1:
1323 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1324 set_ccr_zero
1325
1326 rotxr.l er0 ; shift right arithmetic by one, register
1327;;; .word 0x1330
1328
1329 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1330 test_zero_clear
1331 test_ovf_clear
1332 test_neg_clear
1333
1334 ; 1010 0101 1010 0101 1010 0101 1010 0101
1335 ; -> 0101 0010 1101 0010 1101 0010 1101 0010
1336 test_h_gr32 0x52d2d2d2 er0
1337
1338 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1339 test_gr_a5a5 2
1340 test_gr_a5a5 3
1341 test_gr_a5a5 4
1342 test_gr_a5a5 5
1343 test_gr_a5a5 6
1344 test_gr_a5a5 7
1345
1346.if (sim_cpu == h8sx)
1347rotxr_l_ind_1:
1348 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1349 set_ccr_zero
1350
1351 mov #long_dest, er0
1352 rotxr.l @er0 ; shift right arithmetic by one, indirect
1353;;; .word 0x0104
1354;;; .word 0xa908
1355;;; .word 0x1330
1356
1357 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1358 test_zero_clear
1359 test_ovf_clear
1360 test_neg_clear
1361
1362 test_h_gr32 long_dest er0
1363 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1364 test_gr_a5a5 2
1365 test_gr_a5a5 3
1366 test_gr_a5a5 4
1367 test_gr_a5a5 5
1368 test_gr_a5a5 6
1369 test_gr_a5a5 7
1370 ; 1010 0101 1010 0101 1010 0101 1010 0101
1371 ;; -> 0101 0010 1101 0010 1101 0010 1101 0010
1372 cmp.l #0x52d2d2d2, @long_dest
1373 beq .Llind1
1374 fail
1375.Llind1:
1376 mov #0xa5a5a5a5, @long_dest
1377
1378rotxr_l_postinc_1:
1379 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1380 set_ccr_zero
1381
1382 mov #long_dest, er0
1383 rotxr.l @er0+ ; shift right arithmetic by one, postinc
1384;;; .word 0x0104
1385;;; .word 0x6d08
1386;;; .word 0x1330
1387
1388 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1389 test_zero_clear
1390 test_ovf_clear
1391 test_neg_clear
1392
1393 test_h_gr32 long_dest+4 er0
1394 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1395 test_gr_a5a5 2
1396 test_gr_a5a5 3
1397 test_gr_a5a5 4
1398 test_gr_a5a5 5
1399 test_gr_a5a5 6
1400 test_gr_a5a5 7
1401 ; 1010 0101 1010 0101 1010 0101 1010 0101
1402 ;; -> 0101 0010 1101 0010 1101 0010 1101 0010
1403 cmp.l #0x52d2d2d2, @long_dest
1404 beq .Llpostinc1
1405 fail
1406.Llpostinc1:
1407 mov #0xa5a5a5a5, @long_dest
1408
1409rotxr_l_postdec_1:
1410 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1411 set_ccr_zero
1412
1413 mov #long_dest, er0
1414 rotxr.l @er0- ; shift right arithmetic by one, postdec
1415;;; .word 0x0106
1416;;; .word 0x6d08
1417;;; .word 0x1330
1418
1419 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1420 test_zero_clear
1421 test_ovf_clear
1422 test_neg_clear
1423
1424 test_h_gr32 long_dest-4 er0
1425 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1426 test_gr_a5a5 2
1427 test_gr_a5a5 3
1428 test_gr_a5a5 4
1429 test_gr_a5a5 5
1430 test_gr_a5a5 6
1431 test_gr_a5a5 7
1432 ; 1010 0101 1010 0101 1010 0101 1010 0101
1433 ;; -> 0101 0010 1101 0010 1101 0010 1101 0010
1434 cmp.l #0x52d2d2d2, @long_dest
1435 beq .Llpostdec1
1436 fail
1437.Llpostdec1:
1438 mov #0xa5a5a5a5, @long_dest
1439
1440rotxr_l_preinc_1:
1441 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1442 set_ccr_zero
1443
1444 mov #long_dest-4, er0
1445 rotxr.l @+er0 ; shift right arithmetic by one, preinc
1446;;; .word 0x0105
1447;;; .word 0x6d08
1448;;; .word 0x1330
1449
1450 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1451 test_zero_clear
1452 test_ovf_clear
1453 test_neg_clear
1454
1455 test_h_gr32 long_dest er0
1456 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1457 test_gr_a5a5 2
1458 test_gr_a5a5 3
1459 test_gr_a5a5 4
1460 test_gr_a5a5 5
1461 test_gr_a5a5 6
1462 test_gr_a5a5 7
1463 ; 1010 0101 1010 0101 1010 0101 1010 0101
1464 ;; -> 0101 0010 1101 0010 1101 0010 1101 0010
1465 cmp.l #0x52d2d2d2, @long_dest
1466 beq .Llpreinc1
1467 fail
1468.Llpreinc1:
1469 mov #0xa5a5a5a5, @long_dest
1470
1471rotxr_l_predec_1:
1472 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1473 set_ccr_zero
1474
1475 mov #long_dest+4, er0
1476 rotxr.l @-er0 ; shift right arithmetic by one, predec
1477;;; .word 0x0107
1478;;; .word 0x6d08
1479;;; .word 0x1330
1480
1481 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1482 test_zero_clear
1483 test_ovf_clear
1484 test_neg_clear
1485
1486 test_h_gr32 long_dest er0
1487 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1488 test_gr_a5a5 2
1489 test_gr_a5a5 3
1490 test_gr_a5a5 4
1491 test_gr_a5a5 5
1492 test_gr_a5a5 6
1493 test_gr_a5a5 7
1494 ; 1010 0101 1010 0101 1010 0101 1010 0101
1495 ;; -> 0101 0010 1101 0010 1101 0010 1101 0010
1496 cmp.l #0x52d2d2d2, @long_dest
1497 beq .Llpredec1
1498 fail
1499.Llpredec1:
1500 mov #0xa5a5a5a5, @long_dest
1501
1502rotxr_l_disp2_1:
1503 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1504 set_ccr_zero
1505
32ebdc4c
MS
1506 mov #long_dest-8, er0
1507 rotxr.l @(8:2, er0) ; shift right arithmetic by one, disp2
5fe8b0df
MS
1508;;; .word 0x0106
1509;;; .word 0xa908
1510;;; .word 0x1330
1511
1512 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1513 test_zero_clear
1514 test_ovf_clear
1515 test_neg_clear
1516
32ebdc4c 1517 test_h_gr32 long_dest-8 er0
5fe8b0df
MS
1518 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1519 test_gr_a5a5 2
1520 test_gr_a5a5 3
1521 test_gr_a5a5 4
1522 test_gr_a5a5 5
1523 test_gr_a5a5 6
1524 test_gr_a5a5 7
1525 ; 1010 0101 1010 0101 1010 0101 1010 0101
1526 ;; -> 0101 0010 1101 0010 1101 0010 1101 0010
1527 cmp.l #0x52d2d2d2, @long_dest
1528 beq .Lldisp21
1529 fail
1530.Lldisp21:
1531 mov #0xa5a5a5a5, @long_dest
1532
1533rotxr_l_disp16_1:
1534 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1535 set_ccr_zero
1536
1537 mov #long_dest-44, er0
1538 rotxr.l @(44:16, er0) ; shift right arithmetic by one, disp16
1539;;; .word 0x0104
1540;;; .word 0x6f08
1541;;; .word 44
1542;;; .word 0x1330
1543
1544 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1545 test_zero_clear
1546 test_ovf_clear
1547 test_neg_clear
1548
1549 test_h_gr32 long_dest-44 er0
1550 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1551 test_gr_a5a5 2
1552 test_gr_a5a5 3
1553 test_gr_a5a5 4
1554 test_gr_a5a5 5
1555 test_gr_a5a5 6
1556 test_gr_a5a5 7
1557 ; 1010 0101 1010 0101 1010 0101 1010 0101
1558 ;; -> 0101 0010 1101 0010 1101 0010 1101 0010
1559 cmp.l #0x52d2d2d2, @long_dest
1560 beq .Lldisp161
1561 fail
1562.Lldisp161:
1563 mov #0xa5a5a5a5, @long_dest
1564
1565rotxr_l_disp32_1:
1566 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1567 set_ccr_zero
1568
1569 mov #long_dest-666, er0
1570 rotxr.l @(666:32, er0) ; shift right arithmetic by one, disp32
1571;;; .word 0x7884
1572;;; .word 0x6b28
1573;;; .long 666
1574;;; .word 0x1330
1575
1576 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1577 test_zero_clear
1578 test_ovf_clear
1579 test_neg_clear
1580
1581 test_h_gr32 long_dest-666 er0
1582 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1583 test_gr_a5a5 2
1584 test_gr_a5a5 3
1585 test_gr_a5a5 4
1586 test_gr_a5a5 5
1587 test_gr_a5a5 6
1588 test_gr_a5a5 7
1589 ; 1010 0101 1010 0101 1010 0101 1010 0101
1590 ;; -> 0101 0010 1101 0010 1101 0010 1101 0010
1591 cmp.l #0x52d2d2d2, @long_dest
1592 beq .Lldisp321
1593 fail
1594.Lldisp321:
1595 mov #0xa5a5a5a5, @long_dest
1596
1597rotxr_l_abs16_1:
1598 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1599 set_ccr_zero
1600
1601 rotxr.l @long_dest:16 ; shift right arithmetic by one, abs16
1602;;; .word 0x0104
1603;;; .word 0x6b08
1604;;; .word long_dest
1605;;; .word 0x1330
1606
1607 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1608 test_zero_clear
1609 test_ovf_clear
1610 test_neg_clear
1611
1612 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
1613 test_gr_a5a5 1
1614 test_gr_a5a5 2
1615 test_gr_a5a5 3
1616 test_gr_a5a5 4
1617 test_gr_a5a5 5
1618 test_gr_a5a5 6
1619 test_gr_a5a5 7
1620 ; 1010 0101 1010 0101 1010 0101 1010 0101
1621 ;; -> 0101 0010 1101 0010 1101 0010 1101 0010
1622 cmp.l #0x52d2d2d2, @long_dest
1623 beq .Llabs161
1624 fail
1625.Llabs161:
1626 mov #0xa5a5a5a5, @long_dest
1627
1628rotxr_l_abs32_1:
1629 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1630 set_ccr_zero
1631
1632 rotxr.l @long_dest:32 ; shift right arithmetic by one, abs32
1633;;; .word 0x0104
1634;;; .word 0x6b28
1635;;; .long long_dest
1636;;; .word 0x1330
1637
1638 test_carry_set ; H=0 N=0 Z=0 V=0 C=1
1639 test_zero_clear
1640 test_ovf_clear
1641 test_neg_clear
1642
1643 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
1644 test_gr_a5a5 1
1645 test_gr_a5a5 2
1646 test_gr_a5a5 3
1647 test_gr_a5a5 4
1648 test_gr_a5a5 5
1649 test_gr_a5a5 6
1650 test_gr_a5a5 7
1651 ; 1010 0101 1010 0101 1010 0101 1010 0101
1652 ;; -> 0101 0010 1101 0010 1101 0010 1101 0010
1653 cmp.l #0x52d2d2d2, @long_dest
1654 beq .Llabs321
1655 fail
1656.Llabs321:
1657 mov #0xa5a5a5a5, @long_dest
1658.endif
1659
1660rotxr_l_reg32_2:
1661 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1662 set_ccr_zero
1663
1664 rotxr.l #2, er0 ; shift right arithmetic by two, register
1665;;; .word 0x1370
1666
1667 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1668 test_zero_clear
1669 test_ovf_clear
1670 test_neg_set
1671 ; 1010 0101 1010 0101 1010 0101 1010 0101
1672 ; -> 1010 1001 0110 1001 0110 1001 0110 1001
1673 test_h_gr32 0xa9696969 er0
1674
1675 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1676 test_gr_a5a5 2
1677 test_gr_a5a5 3
1678 test_gr_a5a5 4
1679 test_gr_a5a5 5
1680 test_gr_a5a5 6
1681 test_gr_a5a5 7
1682
1683.if (sim_cpu == h8sx)
1684
1685rotxr_l_ind_2:
1686 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1687 set_ccr_zero
1688
1689 mov #long_dest, er0
1690 rotxr.l #2, @er0 ; shift right arithmetic by two, indirect
1691;;; .word 0x0104
1692;;; .word 0xa908
1693;;; .word 0x1370
1694
1695 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1696 test_zero_clear
1697 test_ovf_clear
1698 test_neg_set
1699
1700 test_h_gr32 long_dest er0
1701 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1702 test_gr_a5a5 2
1703 test_gr_a5a5 3
1704 test_gr_a5a5 4
1705 test_gr_a5a5 5
1706 test_gr_a5a5 6
1707 test_gr_a5a5 7
1708 ; 1010 0101 1010 0101 1010 0101 1010 0101
1709 ;; -> 1010 1001 0110 1001 0110 1001 0110 1001
1710 cmp.l #0xa9696969, @long_dest
1711 beq .Llind2
1712 fail
1713.Llind2:
1714 mov #0xa5a5a5a5, @long_dest
1715
1716rotxr_l_postinc_2:
1717 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1718 set_ccr_zero
1719
1720 mov #long_dest, er0
1721 rotxr.l #2, @er0+ ; shift right arithmetic by two, postinc
1722;;; .word 0x0104
1723;;; .word 0x6d08
1724;;; .word 0x1370
1725
1726 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1727 test_zero_clear
1728 test_ovf_clear
1729 test_neg_set
1730
1731 test_h_gr32 long_dest+4 er0
1732 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1733 test_gr_a5a5 2
1734 test_gr_a5a5 3
1735 test_gr_a5a5 4
1736 test_gr_a5a5 5
1737 test_gr_a5a5 6
1738 test_gr_a5a5 7
1739 ; 1010 0101 1010 0101 1010 0101 1010 0101
1740 ;; -> 1010 1001 0110 1001 0110 1001 0110 1001
1741 cmp.l #0xa9696969, @long_dest
1742 beq .Llpostinc2
1743 fail
1744.Llpostinc2:
1745 mov #0xa5a5a5a5, @long_dest
1746
1747rotxr_l_postdec_2:
1748 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1749 set_ccr_zero
1750
1751 mov #long_dest, er0
1752 rotxr.l #2, @er0- ; shift right arithmetic by two, postdec
1753;;; .word 0x0106
1754;;; .word 0x6d08
1755;;; .word 0x1370
1756
1757 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1758 test_zero_clear
1759 test_ovf_clear
1760 test_neg_set
1761
1762 test_h_gr32 long_dest-4 er0
1763 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1764 test_gr_a5a5 2
1765 test_gr_a5a5 3
1766 test_gr_a5a5 4
1767 test_gr_a5a5 5
1768 test_gr_a5a5 6
1769 test_gr_a5a5 7
1770 ; 1010 0101 1010 0101 1010 0101 1010 0101
1771 ;; -> 1010 1001 0110 1001 0110 1001 0110 1001
1772 cmp.l #0xa9696969, @long_dest
1773 beq .Llpostdec2
1774 fail
1775.Llpostdec2:
1776 mov #0xa5a5a5a5, @long_dest
1777
1778rotxr_l_preinc_2:
1779 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1780 set_ccr_zero
1781
1782 mov #long_dest-4, er0
1783 rotxr.l #2, @+er0 ; shift right arithmetic by two, preinc
1784;;; .word 0x0105
1785;;; .word 0x6d08
1786;;; .word 0x1370
1787
1788 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1789 test_zero_clear
1790 test_ovf_clear
1791 test_neg_set
1792
1793 test_h_gr32 long_dest er0
1794 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1795 test_gr_a5a5 2
1796 test_gr_a5a5 3
1797 test_gr_a5a5 4
1798 test_gr_a5a5 5
1799 test_gr_a5a5 6
1800 test_gr_a5a5 7
1801 ; 1010 0101 1010 0101 1010 0101 1010 0101
1802 ;; -> 1010 1001 0110 1001 0110 1001 0110 1001
1803 cmp.l #0xa9696969, @long_dest
1804 beq .Llpreinc2
1805 fail
1806.Llpreinc2:
1807 mov #0xa5a5a5a5, @long_dest
1808
1809rotxr_l_predec_2:
1810 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1811 set_ccr_zero
1812
1813 mov #long_dest+4, er0
1814 rotxr.l #2, @-er0 ; shift right arithmetic by two, predec
1815;;; .word 0x0107
1816;;; .word 0x6d08
1817;;; .word 0x1370
1818
1819 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1820 test_zero_clear
1821 test_ovf_clear
1822 test_neg_set
1823
1824 test_h_gr32 long_dest er0
1825 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1826 test_gr_a5a5 2
1827 test_gr_a5a5 3
1828 test_gr_a5a5 4
1829 test_gr_a5a5 5
1830 test_gr_a5a5 6
1831 test_gr_a5a5 7
1832 ; 1010 0101 1010 0101 1010 0101 1010 0101
1833 ;; -> 1010 1001 0110 1001 0110 1001 0110 1001
1834 cmp.l #0xa9696969, @long_dest
1835 beq .Llpredec2
1836 fail
1837.Llpredec2:
1838 mov #0xa5a5a5a5, @long_dest
1839
1840rotxr_l_disp2_2:
1841 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1842 set_ccr_zero
1843
32ebdc4c
MS
1844 mov #long_dest-8, er0
1845 rotxr.l #2, @(8:2, er0) ; shift right arithmetic by two, disp2
5fe8b0df
MS
1846;;; .word 0x0106
1847;;; .word 0xa908
1848;;; .word 0x1370
1849
1850 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1851 test_zero_clear
1852 test_ovf_clear
1853 test_neg_set
1854
32ebdc4c 1855 test_h_gr32 long_dest-8 er0
5fe8b0df
MS
1856 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1857 test_gr_a5a5 2
1858 test_gr_a5a5 3
1859 test_gr_a5a5 4
1860 test_gr_a5a5 5
1861 test_gr_a5a5 6
1862 test_gr_a5a5 7
1863 ; 1010 0101 1010 0101 1010 0101 1010 0101
1864 ;; -> 1010 1001 0110 1001 0110 1001 0110 1001
1865 cmp.l #0xa9696969, @long_dest
1866 beq .Lldisp22
1867 fail
1868.Lldisp22:
1869 mov #0xa5a5a5a5, @long_dest
1870
1871rotxr_l_disp16_2:
1872 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1873 set_ccr_zero
1874
1875 mov #long_dest-44, er0
1876 rotxr.l #2, @(44:16, er0) ; shift right arithmetic by two, disp16
1877;;; .word 0x0104
1878;;; .word 0x6f08
1879;;; .word 44
1880;;; .word 0x1370
1881
1882 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1883 test_zero_clear
1884 test_ovf_clear
1885 test_neg_set
1886
1887 test_h_gr32 long_dest-44 er0
1888 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1889 test_gr_a5a5 2
1890 test_gr_a5a5 3
1891 test_gr_a5a5 4
1892 test_gr_a5a5 5
1893 test_gr_a5a5 6
1894 test_gr_a5a5 7
1895 ; 1010 0101 1010 0101 1010 0101 1010 0101
1896 ;; -> 1010 1001 0110 1001 0110 1001 0110 1001
1897 cmp.l #0xa9696969, @long_dest
1898 beq .Lldisp162
1899 fail
1900.Lldisp162:
1901 mov #0xa5a5a5a5, @long_dest
1902
1903rotxr_l_disp32_2:
1904 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1905 set_ccr_zero
1906
1907 mov #long_dest-666, er0
1908 rotxr.l #2, @(666:32, er0) ; shift right arithmetic by two, disp32
1909;;; .word 0x7884
1910;;; .word 0x6b28
1911;;; .long 666
1912;;; .word 0x1370
1913
1914 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1915 test_zero_clear
1916 test_ovf_clear
1917 test_neg_set
1918
1919 test_h_gr32 long_dest-666 er0
1920 test_gr_a5a5 1 ; Make sure other general regs not disturbed
1921 test_gr_a5a5 2
1922 test_gr_a5a5 3
1923 test_gr_a5a5 4
1924 test_gr_a5a5 5
1925 test_gr_a5a5 6
1926 test_gr_a5a5 7
1927 ; 1010 0101 1010 0101 1010 0101 1010 0101
1928 ;; -> 1010 1001 0110 1001 0110 1001 0110 1001
1929 cmp.l #0xa9696969, @long_dest
1930 beq .Lldisp322
1931 fail
1932.Lldisp322:
1933 mov #0xa5a5a5a5, @long_dest
1934
1935rotxr_l_abs16_2:
1936 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1937 set_ccr_zero
1938
1939 rotxr.l #2, @long_dest:16 ; shift right arithmetic by two, abs16
1940;;; .word 0x0104
1941;;; .word 0x6b08
1942;;; .word long_dest
1943;;; .word 0x1370
1944
1945 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1946 test_zero_clear
1947 test_ovf_clear
1948 test_neg_set
1949
1950 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
1951 test_gr_a5a5 1
1952 test_gr_a5a5 2
1953 test_gr_a5a5 3
1954 test_gr_a5a5 4
1955 test_gr_a5a5 5
1956 test_gr_a5a5 6
1957 test_gr_a5a5 7
1958 ; 1010 0101 1010 0101 1010 0101 1010 0101
1959 ;; -> 1010 1001 0110 1001 0110 1001 0110 1001
1960 cmp.l #0xa9696969, @long_dest
1961 beq .Llabs162
1962 fail
1963.Llabs162:
1964 mov #0xa5a5a5a5, @long_dest
1965
1966rotxr_l_abs32_2:
1967 set_grs_a5a5 ; Fill all general regs with a fixed pattern
1968 set_ccr_zero
1969
1970 rotxr.l #2, @long_dest:32 ; shift right arithmetic by two, abs32
1971;;; .word 0x0104
1972;;; .word 0x6b28
1973;;; .long long_dest
1974;;; .word 0x1370
1975
1976 test_carry_clear ; H=0 N=1 Z=0 V=0 C=0
1977 test_zero_clear
1978 test_ovf_clear
1979 test_neg_set
1980
1981 test_gr_a5a5 0 ; Make sure ALL general regs not disturbed
1982 test_gr_a5a5 1
1983 test_gr_a5a5 2
1984 test_gr_a5a5 3
1985 test_gr_a5a5 4
1986 test_gr_a5a5 5
1987 test_gr_a5a5 6
1988 test_gr_a5a5 7
1989 ; 1010 0101 1010 0101 1010 0101 1010 0101
1990 ;; -> 1010 1001 0110 1001 0110 1001 0110 1001
1991 cmp.l #0xa9696969, @long_dest
1992 beq .Llabs322
1993 fail
1994.Llabs322:
1995 mov #0xa5a5a5a5, @long_dest
1996
1997.endif
1998.endif
1999 pass
2000
2001 exit 0
2002