csrl.cgs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. # frv testcase for csrl $GRi,$GRj,$GRk,$CCi,$cond
  2. # mach: all
  3. .include "testutils.inc"
  4. start
  5. .global csrl
  6. csrl:
  7. set_spr_immed 0x1b1b,cccr
  8. set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0
  9. set_gr_limmed 0x8000,0x0000,gr8
  10. set_icc 0x05,0 ; Set mask opposite of expected
  11. csrl gr8,gr7,gr8,cc0,1
  12. test_icc 0 1 0 1 icc0
  13. test_gr_limmed 0x8000,0x0000,gr8
  14. set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1
  15. set_gr_limmed 0x8000,0x0000,gr8
  16. set_icc 0x0f,0 ; Set mask opposite of expected
  17. csrl gr8,gr7,gr8,cc0,1
  18. test_icc 1 1 1 1 icc0
  19. test_gr_limmed 0x4000,0x0000,gr8
  20. set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31
  21. set_gr_limmed 0x8000,0x0000,gr8
  22. set_icc 0x0f,0 ; Set mask opposite of expected
  23. csrl gr8,gr7,gr8,cc4,1
  24. test_icc 1 1 1 1 icc0
  25. test_gr_immed 1,gr8
  26. set_gr_limmed 0xdead,0xbeff,gr7 ; clear register
  27. set_gr_limmed 0x4000,0x0000,gr8
  28. set_icc 0x0a,0 ; Set mask opposite of expected
  29. csrl gr8,gr7,gr8,cc4,1
  30. test_icc 1 0 1 0 icc0
  31. test_gr_immed 0x00000000,gr8
  32. set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0
  33. set_gr_limmed 0x8000,0x0000,gr8
  34. set_icc 0x05,0 ; Set mask opposite of expected
  35. csrl gr8,gr7,gr8,cc0,0
  36. test_icc 0 1 0 1 icc0
  37. test_gr_limmed 0x8000,0x0000,gr8
  38. set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1
  39. set_gr_limmed 0x8000,0x0000,gr8
  40. set_icc 0x0f,0 ; Set mask opposite of expected
  41. csrl gr8,gr7,gr8,cc0,0
  42. test_icc 1 1 1 1 icc0
  43. test_gr_limmed 0x8000,0x0000,gr8
  44. set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31
  45. set_gr_limmed 0x8000,0x0000,gr8
  46. set_icc 0x0f,0 ; Set mask opposite of expected
  47. csrl gr8,gr7,gr8,cc4,0
  48. test_icc 1 1 1 1 icc0
  49. test_gr_limmed 0x8000,0x0000,gr8
  50. set_gr_limmed 0xdead,0xbeff,gr7 ; clear register
  51. set_gr_limmed 0x4000,0x0000,gr8
  52. set_icc 0x0a,0 ; Set mask opposite of expected
  53. csrl gr8,gr7,gr8,cc4,0
  54. test_icc 1 0 1 0 icc0
  55. test_gr_limmed 0x4000,0x0000,gr8
  56. set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0
  57. set_gr_limmed 0x8000,0x0000,gr8
  58. set_icc 0x05,1 ; Set mask opposite of expected
  59. csrl gr8,gr7,gr8,cc1,0
  60. test_icc 0 1 0 1 icc1
  61. test_gr_limmed 0x8000,0x0000,gr8
  62. set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1
  63. set_gr_limmed 0x8000,0x0000,gr8
  64. set_icc 0x0f,1 ; Set mask opposite of expected
  65. csrl gr8,gr7,gr8,cc1,0
  66. test_icc 1 1 1 1 icc1
  67. test_gr_limmed 0x4000,0x0000,gr8
  68. set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31
  69. set_gr_limmed 0x8000,0x0000,gr8
  70. set_icc 0x0f,1 ; Set mask opposite of expected
  71. csrl gr8,gr7,gr8,cc5,0
  72. test_icc 1 1 1 1 icc1
  73. test_gr_immed 1,gr8
  74. set_gr_limmed 0xdead,0xbeff,gr7 ; clear register
  75. set_gr_limmed 0x4000,0x0000,gr8
  76. set_icc 0x0a,1 ; Set mask opposite of expected
  77. csrl gr8,gr7,gr8,cc5,0
  78. test_icc 1 0 1 0 icc1
  79. test_gr_immed 0x00000000,gr8
  80. set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0
  81. set_gr_limmed 0x8000,0x0000,gr8
  82. set_icc 0x05,1 ; Set mask opposite of expected
  83. csrl gr8,gr7,gr8,cc1,1
  84. test_icc 0 1 0 1 icc1
  85. test_gr_limmed 0x8000,0x0000,gr8
  86. set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1
  87. set_gr_limmed 0x8000,0x0000,gr8
  88. set_icc 0x0f,1 ; Set mask opposite of expected
  89. csrl gr8,gr7,gr8,cc1,1
  90. test_icc 1 1 1 1 icc1
  91. test_gr_limmed 0x8000,0x0000,gr8
  92. set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31
  93. set_gr_limmed 0x8000,0x0000,gr8
  94. set_icc 0x0f,1 ; Set mask opposite of expected
  95. csrl gr8,gr7,gr8,cc5,1
  96. test_icc 1 1 1 1 icc1
  97. test_gr_limmed 0x8000,0x0000,gr8
  98. set_gr_limmed 0xdead,0xbeff,gr7 ; clear register
  99. set_gr_limmed 0x4000,0x0000,gr8
  100. set_icc 0x0a,1 ; Set mask opposite of expected
  101. csrl gr8,gr7,gr8,cc5,1
  102. test_icc 1 0 1 0 icc1
  103. test_gr_limmed 0x4000,0x0000,gr8
  104. set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0
  105. set_gr_limmed 0x8000,0x0000,gr8
  106. set_icc 0x05,2 ; Set mask opposite of expected
  107. csrl gr8,gr7,gr8,cc2,0
  108. test_icc 0 1 0 1 icc2
  109. test_gr_limmed 0x8000,0x0000,gr8
  110. set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1
  111. set_gr_limmed 0x8000,0x0000,gr8
  112. set_icc 0x0f,2 ; Set mask opposite of expected
  113. csrl gr8,gr7,gr8,cc2,0
  114. test_icc 1 1 1 1 icc2
  115. test_gr_limmed 0x8000,0x0000,gr8
  116. set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31
  117. set_gr_limmed 0x8000,0x0000,gr8
  118. set_icc 0x0f,2 ; Set mask opposite of expected
  119. csrl gr8,gr7,gr8,cc6,1
  120. test_icc 1 1 1 1 icc2
  121. test_gr_limmed 0x8000,0x0000,gr8
  122. set_gr_limmed 0xdead,0xbeff,gr7 ; clear register
  123. set_gr_limmed 0x4000,0x0000,gr8
  124. set_icc 0x0a,2 ; Set mask opposite of expected
  125. csrl gr8,gr7,gr8,cc6,1
  126. test_icc 1 0 1 0 icc2
  127. test_gr_limmed 0x4000,0x0000,gr8
  128. set_gr_limmed 0xdead,0xbee0,gr7 ; Shift by 0
  129. set_gr_limmed 0x8000,0x0000,gr8
  130. set_icc 0x05,3 ; Set mask opposite of expected
  131. csrl gr8,gr7,gr8,cc3,0
  132. test_icc 0 1 0 1 icc3
  133. test_gr_limmed 0x8000,0x0000,gr8
  134. set_gr_limmed 0xdead,0xbee1,gr7 ; Shift by 1
  135. set_gr_limmed 0x8000,0x0000,gr8
  136. set_icc 0x0f,3 ; Set mask opposite of expected
  137. csrl gr8,gr7,gr8,cc3,0
  138. test_icc 1 1 1 1 icc3
  139. test_gr_limmed 0x8000,0x0000,gr8
  140. set_gr_limmed 0xdead,0xbeff,gr7 ; Shift by 31
  141. set_gr_limmed 0x8000,0x0000,gr8
  142. set_icc 0x0f,3 ; Set mask opposite of expected
  143. csrl gr8,gr7,gr8,cc7,1
  144. test_icc 1 1 1 1 icc3
  145. test_gr_limmed 0x8000,0x0000,gr8
  146. set_gr_limmed 0xdead,0xbeff,gr7 ; clear register
  147. set_gr_limmed 0x4000,0x0000,gr8
  148. set_icc 0x0a,3 ; Set mask opposite of expected
  149. csrl gr8,gr7,gr8,cc7,1
  150. test_icc 1 0 1 0 icc3
  151. test_gr_limmed 0x4000,0x0000,gr8
  152. pass