brabc.s 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. # Hitachi H8 testcase 'bra/bc'
  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. .include "testutils.inc"
  11. .data
  12. byte_src: .byte 0xa5
  13. start
  14. .if (sim_cpu == h8sx)
  15. brabc_ind_disp8:
  16. set_grs_a5a5
  17. mov #byte_src, er1
  18. set_ccr_zero
  19. ;; bra/bc xx:3, @erd, disp8
  20. bra/bc #1, @er1, .Lpass1:8
  21. ;;; .word 0x7c10
  22. ;;; .word 0x4110
  23. fail
  24. .Lpass1:
  25. bra/bc #2, @er1, .Lfail1:8
  26. ;;; .word 0x7c10
  27. ;;; .word 0x4202
  28. bra .Lpass2
  29. .Lfail1:
  30. fail
  31. .Lpass2:
  32. test_cc_clear
  33. test_h_gr32 0xa5a5a5a5 er0
  34. test_h_gr32 byte_src er1
  35. test_h_gr32 0xa5a5a5a5 er2
  36. test_h_gr32 0xa5a5a5a5 er3
  37. test_h_gr32 0xa5a5a5a5 er4
  38. test_h_gr32 0xa5a5a5a5 er5
  39. test_h_gr32 0xa5a5a5a5 er6
  40. test_h_gr32 0xa5a5a5a5 er7
  41. brabc_abs8_disp16:
  42. set_grs_a5a5
  43. mov.b #0xa5, @0x20:32
  44. set_ccr_zero
  45. ;; bra/bc xx:3, @aa:8, disp16
  46. bra/bc #1, @0x20:8, .Lpass3:16
  47. fail
  48. .Lpass3:
  49. bra/bc #2, @0x20:8, Lfail:16
  50. test_cc_clear
  51. test_grs_a5a5
  52. brabc_abs16_disp16:
  53. set_grs_a5a5
  54. set_ccr_zero
  55. ;; bra/bc xx:3, @aa:16, disp16
  56. bra/bc #1, @byte_src:16, .Lpass5:16
  57. fail
  58. .Lpass5:
  59. bra/bc #2, @byte_src:16, Lfail:16
  60. test_cc_clear
  61. test_grs_a5a5
  62. brabs_ind_disp8:
  63. set_grs_a5a5
  64. mov #byte_src, er1
  65. set_ccr_zero
  66. ;; bra/bs xx:3, @erd, disp8
  67. bra/bs #2, @er1, .Lpass7:8
  68. ;;; .word 0x7c10
  69. ;;; .word 0x4a10
  70. fail
  71. .Lpass7:
  72. bra/bs #1, @er1, .Lfail3:8
  73. ;;; .word 0x7c10
  74. ;;; .word 0x4902
  75. bra .Lpass8
  76. .Lfail3:
  77. fail
  78. .Lpass8:
  79. test_cc_clear
  80. test_h_gr32 0xa5a5a5a5 er0
  81. test_h_gr32 byte_src er1
  82. test_h_gr32 0xa5a5a5a5 er2
  83. test_h_gr32 0xa5a5a5a5 er3
  84. test_h_gr32 0xa5a5a5a5 er4
  85. test_h_gr32 0xa5a5a5a5 er5
  86. test_h_gr32 0xa5a5a5a5 er6
  87. test_h_gr32 0xa5a5a5a5 er7
  88. brabs_abs32_disp16:
  89. set_grs_a5a5
  90. set_ccr_zero
  91. ;; bra/bs xx:3, @aa:32, disp16
  92. bra/bs #2, @byte_src:32, .Lpass9:16
  93. fail
  94. .Lpass9:
  95. bra/bs #1, @byte_src:32, Lfail:16
  96. test_cc_clear
  97. test_grs_a5a5
  98. .endif
  99. pass
  100. exit 0
  101. Lfail: fail