tnc.cgs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. # frv testcase for tnc $ICCi_2,$GRi,$GRj
  2. # mach: all
  3. .include "testutils.inc"
  4. start
  5. .global tnc
  6. tnc:
  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 ; bctrlr 0,0
  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. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  18. fail
  19. ok0:
  20. set_spr_addr bad,lr
  21. set_icc 0x1 0
  22. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  23. set_psr_et 1
  24. set_spr_addr ok2,lr
  25. set_icc 0x2 0
  26. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  27. fail
  28. ok2:
  29. set_spr_addr bad,lr
  30. set_icc 0x3 0
  31. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  32. set_psr_et 1
  33. set_spr_addr ok4,lr
  34. set_icc 0x4 0
  35. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  36. fail
  37. ok4:
  38. set_spr_addr bad,lr
  39. set_icc 0x5 0
  40. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  41. set_psr_et 1
  42. set_spr_addr ok6,lr
  43. set_icc 0x6 0
  44. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  45. fail
  46. ok6:
  47. set_spr_addr bad,lr
  48. set_icc 0x7 0
  49. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  50. set_psr_et 1
  51. set_spr_addr ok8,lr
  52. set_icc 0x8 0
  53. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  54. fail
  55. ok8:
  56. set_spr_addr bad,lr
  57. set_icc 0x9 0
  58. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  59. set_psr_et 1
  60. set_spr_addr oka,lr
  61. set_icc 0xa 0
  62. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  63. fail
  64. oka:
  65. set_spr_addr bad,lr
  66. set_icc 0xb 0
  67. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  68. set_psr_et 1
  69. set_spr_addr okc,lr
  70. set_icc 0xc 0
  71. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  72. fail
  73. okc:
  74. set_spr_addr bad,lr
  75. set_icc 0xd 0
  76. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  77. set_psr_et 1
  78. set_spr_addr oke,lr
  79. set_icc 0xe 0
  80. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  81. fail
  82. oke:
  83. set_spr_addr bad,lr
  84. set_icc 0xf 0
  85. tnc icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16
  86. pass
  87. bad:
  88. fail