PowerPC64 .branch_lt address
[binutils-gdb.git] / sim / testsuite / h8300 / bset.s
1 # Hitachi H8 testcase 'bset', 'bclr'
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 # Instructions tested:
14 #
15 # bset xx:3, rd8 ; 7 0 ?xxx rd8
16 # bclr xx:3, rd8 ; 7 2 ?xxx rd8
17 # bset xx:3, @erd ; 7 d 0rd ???? 7 0 ?xxx ????
18 # bclr xx:3, @erd ; 7 d 0rd ???? 7 2 ?xxx ????
19 # bset xx:3, @abs16 ; 6 a 1 1??? aa:16 7 0 ?xxx ????
20 # bclr xx:3, @abs16 ; 6 a 1 1??? aa:16 7 2 ?xxx ????
21 # bset reg8, rd8 ; 6 0 rs8 rd8
22 # bclr reg8, rd8 ; 6 2 rs8 rd8
23 # bset reg8, @erd ; 7 d 0rd ???? 6 0 rs8 ????
24 # bclr reg8, @erd ; 7 d 0rd ???? 6 2 rs8 ????
25 # bset reg8, @abs32 ; 6 a 3 1??? aa:32 6 0 rs8 ????
26 # bclr reg8, @abs32 ; 6 a 3 1??? aa:32 6 2 rs8 ????
27 #
28 # bset/eq xx:3, rd8
29 # bclr/eq xx:3, rd8
30 # bset/ne xx:3, rd8
31 # bclr/ne xx:3, rd8
32
33 .data
34 byte_dst: .byte 0
35
36 start
37
38 bset_imm3_reg8:
39 set_grs_a5a5 ; Fill all general regs with a fixed pattern
40
41 ;; bset xx:3, rd8
42 mov #0, r1l
43 set_ccr_zero
44 bset #0, r1l
45 test_cc_clear
46 test_h_gr8 1 r1l
47
48 set_ccr_zero
49 bset #1, r1l
50 test_cc_clear
51 test_h_gr8 3 r1l
52
53 set_ccr_zero
54 bset #2, r1l
55 test_cc_clear
56 test_h_gr8 7 r1l
57
58 set_ccr_zero
59 bset #3, r1l
60 test_cc_clear
61 test_h_gr8 15 r1l
62
63 set_ccr_zero
64 bset #4, r1l
65 test_cc_clear
66 test_h_gr8 31 r1l
67
68 set_ccr_zero
69 bset #5, r1l
70 test_cc_clear
71 test_h_gr8 63 r1l
72
73 set_ccr_zero
74 bset #6, r1l
75 test_cc_clear
76 test_h_gr8 127 r1l
77
78 set_ccr_zero
79 bset #7, r1l
80 test_cc_clear
81 test_h_gr8 255 r1l
82
83 .if (sim_cpu == h8300)
84 test_h_gr16 0xa5ff, r1
85 .else
86 test_h_gr32 0xa5a5a5ff er1
87 .endif
88
89 bclr_imm3_reg8:
90 set_ccr_zero
91 bclr #7, r1l
92 test_cc_clear
93 test_h_gr8 127 r1l
94
95 set_ccr_zero
96 bclr #6, r1l
97 test_cc_clear
98 test_h_gr8 63 r1l
99
100 set_ccr_zero
101 bclr #5, r1l
102 test_cc_clear
103 test_h_gr8 31 r1l
104
105 set_ccr_zero
106 bclr #4, r1l
107 test_cc_clear
108 test_h_gr8 15 r1l
109
110 set_ccr_zero
111 bclr #3, r1l
112 test_cc_clear
113 test_h_gr8 7 r1l
114
115 set_ccr_zero
116 bclr #2, r1l
117 test_cc_clear
118 test_h_gr8 3 r1l
119
120 set_ccr_zero
121 bclr #1, r1l
122 test_cc_clear
123 test_h_gr8 1 r1l
124
125 set_ccr_zero
126 bclr #0, r1l
127 test_cc_clear
128 test_h_gr8 0 r1l
129
130 test_gr_a5a5 0 ; Make sure other general regs not disturbed
131 .if (sim_cpu == h8300)
132 test_h_gr16 0xa500 r1
133 .else
134 test_h_gr32 0xa5a5a500 er1
135 .endif
136 test_gr_a5a5 2
137 test_gr_a5a5 3
138 test_gr_a5a5 4
139 test_gr_a5a5 5
140 test_gr_a5a5 6
141 test_gr_a5a5 7
142
143 .if (sim_cpu)
144 bset_imm3_ind:
145 set_grs_a5a5 ; Fill all general regs with a fixed pattern
146
147 ;; bset xx:3, @erd
148 mov #byte_dst, er1
149 set_ccr_zero
150 bset #0, @er1
151 test_cc_clear
152 mov @er1, r2l
153 test_h_gr8 1 r2l
154
155 set_ccr_zero
156 bset #1, @er1
157 test_cc_clear
158 mov @er1, r2l
159 test_h_gr8 3 r2l
160
161 set_ccr_zero
162 bset #2, @er1
163 test_cc_clear
164 mov @er1, r2l
165 test_h_gr8 7 r2l
166
167 set_ccr_zero
168 bset #3, @er1
169 test_cc_clear
170 mov @er1, r2l
171 test_h_gr8 15 r2l
172
173 set_ccr_zero
174 bset #4, @er1
175 test_cc_clear
176 mov @er1, r2l
177 test_h_gr8 31 r2l
178
179 set_ccr_zero
180 bset #5, @er1
181 test_cc_clear
182 mov @er1, r2l
183 test_h_gr8 63 r2l
184
185 set_ccr_zero
186 bset #6, @er1
187 test_cc_clear
188 mov @er1, r2l
189 test_h_gr8 127 r2l
190
191 set_ccr_zero
192 bset #7, @er1
193 test_cc_clear
194 mov @er1, r2l
195 test_h_gr8 255 r2l
196
197 .if (sim_cpu == h8300)
198 test_h_gr16 0xa5ff r2
199 .else
200 test_h_gr32 0xa5a5a5ff er2
201 .endif
202
203 bclr_imm3_ind:
204 set_ccr_zero
205 bclr #7, @er1
206 test_cc_clear
207 mov @er1, r2l
208 test_h_gr8 127 r2l
209
210 set_ccr_zero
211 bclr #6, @er1
212 test_cc_clear
213 mov @er1, r2l
214 test_h_gr8 63 r2l
215
216 set_ccr_zero
217 bclr #5, @er1
218 test_cc_clear
219 mov @er1, r2l
220 test_h_gr8 31 r2l
221
222 set_ccr_zero
223 bclr #4, @er1
224 test_cc_clear
225 mov @er1, r2l
226 test_h_gr8 15 r2l
227
228 set_ccr_zero
229 bclr #3, @er1
230 test_cc_clear
231 mov @er1, r2l
232 test_h_gr8 7 r2l
233
234 set_ccr_zero
235 bclr #2, @er1
236 test_cc_clear
237 mov @er1, r2l
238 test_h_gr8 3 r2l
239
240 set_ccr_zero
241 bclr #1, @er1
242 test_cc_clear
243 mov @er1, r2l
244 test_h_gr8 1 r2l
245
246 set_ccr_zero
247 bclr #0, @er1
248 test_cc_clear
249 mov @er1, r2l
250 test_h_gr8 0 r2l
251
252 test_gr_a5a5 0 ; Make sure other general regs not disturbed
253 .if (sim_cpu == h8300)
254 test_h_gr16 byte_dst r1
255 test_h_gr16 0xa500 r2
256 .else
257 test_h_gr32 byte_dst er1
258 test_h_gr32 0xa5a5a500 er2
259 .endif
260 test_gr_a5a5 3
261 test_gr_a5a5 4
262 test_gr_a5a5 5
263 test_gr_a5a5 6
264 test_gr_a5a5 7
265
266 .if (sim_cpu > h8300h)
267 bset_imm3_abs16:
268 set_grs_a5a5 ; Fill all general regs with a fixed pattern
269
270 ;; bset xx:3, @aa:16
271 set_ccr_zero
272 bset #0, @byte_dst:16
273 test_cc_clear
274 mov @byte_dst, r2l
275 test_h_gr8 1 r2l
276
277 set_ccr_zero
278 bset #1, @byte_dst:16
279 test_cc_clear
280 mov @byte_dst, r2l
281 test_h_gr8 3 r2l
282
283 set_ccr_zero
284 bset #2, @byte_dst:16
285 test_cc_clear
286 mov @byte_dst, r2l
287 test_h_gr8 7 r2l
288
289 set_ccr_zero
290 bset #3, @byte_dst:16
291 test_cc_clear
292 mov @byte_dst, r2l
293 test_h_gr8 15 r2l
294
295 set_ccr_zero
296 bset #4, @byte_dst:16
297 test_cc_clear
298 mov @byte_dst, r2l
299 test_h_gr8 31 r2l
300
301 set_ccr_zero
302 bset #5, @byte_dst:16
303 test_cc_clear
304 mov @byte_dst, r2l
305 test_h_gr8 63 r2l
306
307 set_ccr_zero
308 bset #6, @byte_dst:16
309 test_cc_clear
310 mov @byte_dst, r2l
311 test_h_gr8 127 r2l
312
313 set_ccr_zero
314 bset #7, @byte_dst:16
315 test_cc_clear
316 mov @byte_dst, r2l
317 test_h_gr8 255 r2l
318
319 .if (sim_cpu == h8300)
320 test_h_gr16 0xa5ff r2
321 .else
322 test_h_gr32 0xa5a5a5ff er2
323 .endif
324
325 bclr_imm3_abs16:
326 set_ccr_zero
327 bclr #7, @byte_dst:16
328 test_cc_clear
329 mov @byte_dst, r2l
330 test_h_gr8 127 r2l
331
332 set_ccr_zero
333 bclr #6, @byte_dst:16
334 test_cc_clear
335 mov @byte_dst, r2l
336 test_h_gr8 63 r2l
337
338 set_ccr_zero
339 bclr #5, @byte_dst:16
340 test_cc_clear
341 mov @byte_dst, r2l
342 test_h_gr8 31 r2l
343
344 set_ccr_zero
345 bclr #4, @byte_dst:16
346 test_cc_clear
347 mov @byte_dst, r2l
348 test_h_gr8 15 r2l
349
350 set_ccr_zero
351 bclr #3, @byte_dst:16
352 test_cc_clear
353 mov @byte_dst, r2l
354 test_h_gr8 7 r2l
355
356 set_ccr_zero
357 bclr #2, @byte_dst:16
358 test_cc_clear
359 mov @byte_dst, r2l
360 test_h_gr8 3 r2l
361
362 set_ccr_zero
363 bclr #1, @byte_dst:16
364 test_cc_clear
365 mov @byte_dst, r2l
366 test_h_gr8 1 r2l
367
368 set_ccr_zero
369 bclr #0, @byte_dst:16
370 test_cc_clear
371 mov @byte_dst, r2l
372 test_h_gr8 0 r2l
373
374 test_gr_a5a5 0 ; Make sure other general regs not disturbed
375 test_gr_a5a5 1
376 .if (sim_cpu == h8300)
377 test_h_gr16 0xa500 r2
378 .else
379 test_h_gr32 0xa5a5a500 er2
380 .endif
381 test_gr_a5a5 3
382 test_gr_a5a5 4
383 test_gr_a5a5 5
384 test_gr_a5a5 6
385 test_gr_a5a5 7
386 .endif
387 .endif
388
389 bset_rs8_rd8:
390 set_grs_a5a5 ; Fill all general regs with a fixed pattern
391
392 ;; bset rs8, rd8
393 mov #0, r1h
394 mov #0, r1l
395 set_ccr_zero
396 bset r1h, r1l
397 test_cc_clear
398 test_h_gr8 1 r1l
399
400 mov #1, r1h
401 set_ccr_zero
402 bset r1h, r1l
403 test_cc_clear
404 test_h_gr8 3 r1l
405
406 mov #2, r1h
407 set_ccr_zero
408 bset r1h, r1l
409 test_cc_clear
410 test_h_gr8 7 r1l
411
412 mov #3, r1h
413 set_ccr_zero
414 bset r1h, r1l
415 test_cc_clear
416 test_h_gr8 15 r1l
417
418 mov #4, r1h
419 set_ccr_zero
420 bset r1h, r1l
421 test_cc_clear
422 test_h_gr8 31 r1l
423
424 mov #5, r1h
425 set_ccr_zero
426 bset r1h, r1l
427 test_cc_clear
428 test_h_gr8 63 r1l
429
430 mov #6, r1h
431 set_ccr_zero
432 bset r1h, r1l
433 test_cc_clear
434 test_h_gr8 127 r1l
435
436 mov #7, r1h
437 set_ccr_zero
438 bset r1h, r1l
439 test_cc_clear
440 test_h_gr8 255 r1l
441
442 .if (sim_cpu == h8300)
443 test_h_gr16 0x07ff, r1
444 .else
445 test_h_gr32 0xa5a507ff er1
446 .endif
447
448 bclr_rs8_rd8:
449 mov #7, r1h
450 set_ccr_zero
451 bclr r1h, r1l
452 test_cc_clear
453 test_h_gr8 127 r1l
454
455 mov #6, r1h
456 set_ccr_zero
457 bclr r1h, r1l
458 test_cc_clear
459 test_h_gr8 63 r1l
460
461 mov #5, r1h
462 set_ccr_zero
463 bclr r1h, r1l
464 test_cc_clear
465 test_h_gr8 31 r1l
466
467 mov #4, r1h
468 set_ccr_zero
469 bclr r1h, r1l
470 test_cc_clear
471 test_h_gr8 15 r1l
472
473 mov #3, r1h
474 set_ccr_zero
475 bclr r1h, r1l
476 test_cc_clear
477 test_h_gr8 7 r1l
478
479 mov #2, r1h
480 set_ccr_zero
481 bclr r1h, r1l
482 test_cc_clear
483 test_h_gr8 3 r1l
484
485 mov #1, r1h
486 set_ccr_zero
487 bclr r1h, r1l
488 test_cc_clear
489 test_h_gr8 1 r1l
490
491 mov #0, r1h
492 set_ccr_zero
493 bclr r1h, r1l
494 test_cc_clear
495 test_h_gr8 0 r1l
496
497 test_gr_a5a5 0 ; Make sure other general regs not disturbed
498 .if (sim_cpu == h8300)
499 test_h_gr16 0x0000 r1
500 .else
501 test_h_gr32 0xa5a50000 er1
502 .endif
503 test_gr_a5a5 2
504 test_gr_a5a5 3
505 test_gr_a5a5 4
506 test_gr_a5a5 5
507 test_gr_a5a5 6
508 test_gr_a5a5 7
509
510 .if (sim_cpu)
511 bset_rs8_ind:
512 set_grs_a5a5 ; Fill all general regs with a fixed pattern
513
514 ;; bset rs8, @erd
515 mov #byte_dst, er1
516 mov #0, r2h
517 set_ccr_zero
518 bset r2h, @er1
519 test_cc_clear
520 mov @er1, r2l
521 test_h_gr8 1 r2l
522
523 mov #1, r2h
524 set_ccr_zero
525 bset r2h, @er1
526 test_cc_clear
527 mov @er1, r2l
528 test_h_gr8 3 r2l
529
530 mov #2, r2h
531 set_ccr_zero
532 bset r2h, @er1
533 test_cc_clear
534 mov @er1, r2l
535 test_h_gr8 7 r2l
536
537 mov #3, r2h
538 set_ccr_zero
539 bset r2h, @er1
540 test_cc_clear
541 mov @er1, r2l
542 test_h_gr8 15 r2l
543
544 mov #4, r2h
545 set_ccr_zero
546 bset r2h, @er1
547 test_cc_clear
548 mov @er1, r2l
549 test_h_gr8 31 r2l
550
551 mov #5, r2h
552 set_ccr_zero
553 bset r2h, @er1
554 test_cc_clear
555 mov @er1, r2l
556 test_h_gr8 63 r2l
557
558 mov #6, r2h
559 set_ccr_zero
560 bset r2h, @er1
561 test_cc_clear
562 mov @er1, r2l
563 test_h_gr8 127 r2l
564
565 mov #7, r2h
566 set_ccr_zero
567 bset r2h, @er1
568 test_cc_clear
569 mov @er1, r2l
570 test_h_gr8 255 r2l
571
572 .if (sim_cpu == h8300)
573 test_h_gr16 0x07ff r2
574 .else
575 test_h_gr32 0xa5a507ff er2
576 .endif
577
578 bclr_rs8_ind:
579 mov #7, r2h
580 set_ccr_zero
581 bclr r2h, @er1
582 test_cc_clear
583 mov @er1, r2l
584 test_h_gr8 127 r2l
585
586 mov #6, r2h
587 set_ccr_zero
588 bclr r2h, @er1
589 test_cc_clear
590 mov @er1, r2l
591 test_h_gr8 63 r2l
592
593 mov #5, r2h
594 set_ccr_zero
595 bclr r2h, @er1
596 test_cc_clear
597 mov @er1, r2l
598 test_h_gr8 31 r2l
599
600 mov #4, r2h
601 set_ccr_zero
602 bclr r2h, @er1
603 test_cc_clear
604 mov @er1, r2l
605 test_h_gr8 15 r2l
606
607 mov #3, r2h
608 set_ccr_zero
609 bclr r2h, @er1
610 test_cc_clear
611 mov @er1, r2l
612 test_h_gr8 7 r2l
613
614 mov #2, r2h
615 set_ccr_zero
616 bclr r2h, @er1
617 test_cc_clear
618 mov @er1, r2l
619 test_h_gr8 3 r2l
620
621 mov #1, r2h
622 set_ccr_zero
623 bclr r2h, @er1
624 test_cc_clear
625 mov @er1, r2l
626 test_h_gr8 1 r2l
627
628 mov #0, r2h
629 set_ccr_zero
630 bclr r2h, @er1
631 test_cc_clear
632 mov @er1, r2l
633 test_h_gr8 0 r2l
634
635 test_gr_a5a5 0 ; Make sure other general regs not disturbed
636 .if (sim_cpu == h8300)
637 test_h_gr16 byte_dst r1
638 test_h_gr16 0x0000 r2
639 .else
640 test_h_gr32 byte_dst er1
641 test_h_gr32 0xa5a50000 er2
642 .endif
643 test_gr_a5a5 3
644 test_gr_a5a5 4
645 test_gr_a5a5 5
646 test_gr_a5a5 6
647 test_gr_a5a5 7
648
649 .if (sim_cpu > h8300h)
650 bset_rs8_abs32:
651 set_grs_a5a5 ; Fill all general regs with a fixed pattern
652
653 ;; bset rs8, @aa:32
654 mov #0, r2h
655 set_ccr_zero
656 bset r2h, @byte_dst:32
657 test_cc_clear
658 mov @byte_dst, r2l
659 test_h_gr8 1 r2l
660
661 mov #1, r2h
662 set_ccr_zero
663 bset r2h, @byte_dst:32
664 test_cc_clear
665 mov @byte_dst, r2l
666 test_h_gr8 3 r2l
667
668 mov #2, r2h
669 set_ccr_zero
670 bset r2h, @byte_dst:32
671 test_cc_clear
672 mov @byte_dst, r2l
673 test_h_gr8 7 r2l
674
675 mov #3, r2h
676 set_ccr_zero
677 bset r2h, @byte_dst:32
678 test_cc_clear
679 mov @byte_dst, r2l
680 test_h_gr8 15 r2l
681
682 mov #4, r2h
683 set_ccr_zero
684 bset r2h, @byte_dst:32
685 test_cc_clear
686 mov @byte_dst, r2l
687 test_h_gr8 31 r2l
688
689 mov #5, r2h
690 set_ccr_zero
691 bset r2h, @byte_dst:32
692 test_cc_clear
693 mov @byte_dst, r2l
694 test_h_gr8 63 r2l
695
696 mov #6, r2h
697 set_ccr_zero
698 bset r2h, @byte_dst:32
699 test_cc_clear
700 mov @byte_dst, r2l
701 test_h_gr8 127 r2l
702
703 mov #7, r2h
704 set_ccr_zero
705 bset r2h, @byte_dst:32
706 test_cc_clear
707 mov @byte_dst, r2l
708 test_h_gr8 255 r2l
709
710 .if (sim_cpu == h8300)
711 test_h_gr16 0x07ff r2
712 .else
713 test_h_gr32 0xa5a507ff er2
714 .endif
715
716 bclr_rs8_abs32:
717 mov #7, r2h
718 set_ccr_zero
719 bclr r2h, @byte_dst:32
720 test_cc_clear
721 mov @byte_dst, r2l
722 test_h_gr8 127 r2l
723
724 mov #6, r2h
725 set_ccr_zero
726 bclr r2h, @byte_dst:32
727 test_cc_clear
728 mov @byte_dst, r2l
729 test_h_gr8 63 r2l
730
731 mov #5, r2h
732 set_ccr_zero
733 bclr r2h, @byte_dst:32
734 test_cc_clear
735 mov @byte_dst, r2l
736 test_h_gr8 31 r2l
737
738 mov #4, r2h
739 set_ccr_zero
740 bclr r2h, @byte_dst:32
741 test_cc_clear
742 mov @byte_dst, r2l
743 test_h_gr8 15 r2l
744
745 mov #3, r2h
746 set_ccr_zero
747 bclr r2h, @byte_dst:32
748 test_cc_clear
749 mov @byte_dst, r2l
750 test_h_gr8 7 r2l
751
752 mov #2, r2h
753 set_ccr_zero
754 bclr r2h, @byte_dst:32
755 test_cc_clear
756 mov @byte_dst, r2l
757 test_h_gr8 3 r2l
758
759 mov #1, r2h
760 set_ccr_zero
761 bclr r2h, @byte_dst:32
762 test_cc_clear
763 mov @byte_dst, r2l
764 test_h_gr8 1 r2l
765
766 mov #0, r2h
767 set_ccr_zero
768 bclr r2h, @byte_dst:32
769 test_cc_clear
770 mov @byte_dst, r2l
771 test_h_gr8 0 r2l
772
773 test_gr_a5a5 0 ; Make sure other general regs not disturbed
774 test_gr_a5a5 1
775 .if (sim_cpu == h8300)
776 test_h_gr16 0x0000 r2
777 .else
778 test_h_gr32 0xa5a50000 er2
779 .endif
780 test_gr_a5a5 3
781 test_gr_a5a5 4
782 test_gr_a5a5 5
783 test_gr_a5a5 6
784 test_gr_a5a5 7
785 .endif
786 .endif
787
788 .if (sim_cpu == h8sx)
789 bset_eq_imm3_abs16:
790 set_grs_a5a5 ; Fill all general regs with a fixed pattern
791
792 ;; bset/eq xx:3, rd8
793 mov #0, @byte_dst
794 set_ccr_zero
795 bset/eq #0, @byte_dst:16 ; Zero is clear, should have no effect.
796 test_cc_clear
797 mov @byte_dst, r1l
798 test_h_gr8 0 r1l
799
800 set_ccr_zero
801 orc #4, ccr ; Set zero flag
802 bset/eq #0, @byte_dst:16 ; Zero is set: operation should succeed.
803
804 test_neg_clear
805 test_zero_set
806 test_ovf_clear
807 test_carry_clear
808
809 mov @byte_dst, r1l
810 test_h_gr8 1 r1l
811
812 bclr_eq_imm3_abs32:
813 mov #1, @byte_dst
814 set_ccr_zero
815 bclr/eq #0, @byte_dst:32 ; Zero is clear, should have no effect.
816 test_cc_clear
817 mov @byte_dst, r1l
818 test_h_gr8 1 r1l
819
820 set_ccr_zero
821 orc #4, ccr ; Set zero flag
822 bclr/eq #0, @byte_dst:32 ; Zero is set: operation should succeed.
823 test_neg_clear
824 test_zero_set
825 test_ovf_clear
826 test_carry_clear
827 mov @byte_dst, r1l
828 test_h_gr8 0 r1l
829
830 test_gr_a5a5 0 ; Make sure other general regs not disturbed
831 test_h_gr32 0xa5a5a500 er1
832 test_gr_a5a5 2
833 test_gr_a5a5 3
834 test_gr_a5a5 4
835 test_gr_a5a5 5
836 test_gr_a5a5 6
837 test_gr_a5a5 7
838
839 bset_ne_imm3_abs16:
840 set_grs_a5a5 ; Fill all general regs with a fixed pattern
841
842 ;; bset/ne xx:3, aa:16
843 mov #0, @byte_dst
844 set_ccr_zero
845 orc #4, ccr ; Set zero flag
846 bset/ne #0, @byte_dst:16 ; Zero is set; should have no effect.
847 test_zero_set
848 test_neg_clear
849 test_ovf_clear
850 test_carry_clear
851 mov @byte_dst, r1l
852 test_h_gr8 0 r1l
853
854 set_ccr_zero
855 bset/ne #0, @byte_dst:16 ; Zero is clear: operation should succeed.
856 test_cc_clear
857 mov @byte_dst, r1l
858 test_h_gr8 1 r1l
859
860 bclr_ne_imm3_abs32:
861 mov #1, @byte_dst
862 set_ccr_zero
863 orc #4, ccr ; Set zero flag
864 ;; bclr/ne xx:3, aa:16
865 bclr/ne #0, @byte_dst:32 ; Zero is set, should have no effect.
866 test_neg_clear
867 test_zero_set
868 test_ovf_clear
869 test_carry_clear
870 mov @byte_dst, r1l
871 test_h_gr8 1 r1l
872
873 set_ccr_zero
874 bclr/ne #0, @byte_dst:32 ; Zero is clear: operation should succeed.
875 test_cc_clear
876 mov @byte_dst, r1l
877 test_h_gr8 0 r1l
878
879 test_gr_a5a5 0 ; Make sure other general regs not disturbed
880 test_h_gr32 0xa5a5a500 er1
881 test_gr_a5a5 2
882 test_gr_a5a5 3
883 test_gr_a5a5 4
884 test_gr_a5a5 5
885 test_gr_a5a5 6
886 test_gr_a5a5 7
887 .endif
888
889 pass
890 exit 0