tra.cgs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. # frv testcase for tra $GRi,$GRj
  2. # mach: all
  3. .include "testutils.inc"
  4. start
  5. .global tra
  6. tra:
  7. and_spr_immed -4081,tbr ; clear tbr.tt
  8. set_gr_spr tbr,gr7
  9. inc_gr_immed 2112,gr7 ; address of exception handler
  10. set_bctrlr_0_0 gr7
  11. set_spr_immed 128,lcr
  12. set_gr_immed 0,gr7
  13. set_gr_immed 4,gr8
  14. set_psr_et 1
  15. set_spr_addr ok0,lr
  16. set_icc 0x0 0
  17. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  18. bad0:
  19. fail
  20. ok0:
  21. test_spr_addr bad0,pcsr
  22. set_psr_et 1
  23. set_spr_addr ok1,lr
  24. set_icc 0x1 0
  25. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  26. fail
  27. ok1:
  28. set_psr_et 1
  29. set_spr_addr ok2,lr
  30. set_icc 0x2 0
  31. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  32. fail
  33. ok2:
  34. set_psr_et 1
  35. set_spr_addr ok3,lr
  36. set_icc 0x3 0
  37. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  38. fail
  39. ok3:
  40. set_psr_et 1
  41. set_spr_addr ok4,lr
  42. set_icc 0x4 0
  43. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  44. fail
  45. ok4:
  46. set_psr_et 1
  47. set_spr_addr ok5,lr
  48. set_icc 0x5 0
  49. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  50. fail
  51. ok5:
  52. set_psr_et 1
  53. set_spr_addr ok6,lr
  54. set_icc 0x6 0
  55. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  56. fail
  57. ok6:
  58. set_psr_et 1
  59. set_spr_addr ok7,lr
  60. set_icc 0x7 0
  61. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  62. fail
  63. ok7:
  64. set_psr_et 1
  65. set_spr_addr ok8,lr
  66. set_icc 0x8 0
  67. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  68. fail
  69. ok8:
  70. set_psr_et 1
  71. set_spr_addr ok9,lr
  72. set_icc 0x9 0
  73. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  74. fail
  75. ok9:
  76. set_psr_et 1
  77. set_spr_addr oka,lr
  78. set_icc 0xa 0
  79. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  80. fail
  81. oka:
  82. set_psr_et 1
  83. set_spr_addr okb,lr
  84. set_icc 0xb 0
  85. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  86. fail
  87. okb:
  88. set_psr_et 1
  89. set_spr_addr okc,lr
  90. set_icc 0xc 0
  91. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  92. fail
  93. okc:
  94. set_psr_et 1
  95. set_spr_addr okd,lr
  96. set_icc 0xd 0
  97. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  98. fail
  99. okd:
  100. set_psr_et 1
  101. set_spr_addr oke,lr
  102. set_icc 0xe 0
  103. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  104. fail
  105. oke:
  106. set_psr_et 1
  107. set_spr_addr okf,lr
  108. set_icc 0xf 0
  109. tra gr7,gr8 ; should branch to tbr + (128 + 4)*16
  110. fail
  111. okf:
  112. pass