cswap.cgs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. # frv testcase for cswap @($GRi,$GRj),$GRk,$CCi,$cond
  2. # mach: all
  3. .include "testutils.inc"
  4. start
  5. .global cswap
  6. cswap:
  7. set_spr_immed 0x1b1b,cccr
  8. set_gr_gr sp,gr20
  9. set_mem_limmed 0xdead,0xbeef,sp
  10. inc_gr_immed -4,sp
  11. set_gr_gr sp,gr21
  12. set_mem_limmed 0xbeef,0xdead,sp
  13. inc_gr_immed -4,sp
  14. set_gr_gr sp,gr22
  15. set_mem_limmed 0xdead,0xbeef,sp
  16. inc_gr_immed 4,sp
  17. set_gr_limmed 0xbeef,0xdead,gr8
  18. set_gr_immed -4,gr7
  19. cswap @(sp,gr7),gr8,cc0,1
  20. test_gr_limmed 0xdead,0xbeef,gr8
  21. test_mem_limmed 0xbeef,0xdead,gr22
  22. test_mem_limmed 0xbeef,0xdead,gr21
  23. test_mem_limmed 0xdead,0xbeef,gr20
  24. set_gr_immed 0,gr7
  25. cswap @(sp,gr7),gr8,cc0,1
  26. test_gr_limmed 0xbeef,0xdead,gr8
  27. test_mem_limmed 0xbeef,0xdead,gr22
  28. test_mem_limmed 0xdead,0xbeef,gr21
  29. test_mem_limmed 0xdead,0xbeef,gr20
  30. set_gr_immed 4,gr7
  31. cswap @(sp,gr7),gr8,cc4,1
  32. test_gr_limmed 0xdead,0xbeef,gr8
  33. test_mem_limmed 0xbeef,0xdead,gr22
  34. test_mem_limmed 0xdead,0xbeef,gr21
  35. test_mem_limmed 0xbeef,0xdead,gr20
  36. set_gr_gr gr20,sp
  37. set_mem_limmed 0xdead,0xbeef,sp
  38. inc_gr_immed -4,sp
  39. set_gr_gr sp,gr21
  40. set_mem_limmed 0xbeef,0xdead,sp
  41. inc_gr_immed -4,sp
  42. set_gr_gr sp,gr22
  43. set_mem_limmed 0xdead,0xbeef,sp
  44. inc_gr_immed 4,sp
  45. set_gr_limmed 0xbeef,0xdead,gr8
  46. set_gr_immed -4,gr7
  47. cswap @(sp,gr7),gr8,cc0,0
  48. test_gr_limmed 0xbeef,0xdead,gr8
  49. test_mem_limmed 0xdead,0xbeef,gr22
  50. test_mem_limmed 0xbeef,0xdead,gr21
  51. test_mem_limmed 0xdead,0xbeef,gr20
  52. set_gr_limmed 0xdead,0xbeef,gr8
  53. set_gr_immed 0,gr7
  54. cswap @(sp,gr7),gr8,cc0,0
  55. test_gr_limmed 0xdead,0xbeef,gr8
  56. test_mem_limmed 0xdead,0xbeef,gr22
  57. test_mem_limmed 0xbeef,0xdead,gr21
  58. test_mem_limmed 0xdead,0xbeef,gr20
  59. set_gr_limmed 0xbeef,0xdead,gr8
  60. set_gr_immed 4,gr7
  61. cswap @(sp,gr7),gr8,cc4,0
  62. test_gr_limmed 0xbeef,0xdead,gr8
  63. test_mem_limmed 0xdead,0xbeef,gr22
  64. test_mem_limmed 0xbeef,0xdead,gr21
  65. test_mem_limmed 0xdead,0xbeef,gr20
  66. set_gr_gr gr20,sp
  67. set_mem_limmed 0xdead,0xbeef,sp
  68. inc_gr_immed -4,sp
  69. set_gr_gr sp,gr21
  70. set_mem_limmed 0xbeef,0xdead,sp
  71. inc_gr_immed -4,sp
  72. set_gr_gr sp,gr22
  73. set_mem_limmed 0xdead,0xbeef,sp
  74. inc_gr_immed 4,sp
  75. set_gr_limmed 0xbeef,0xdead,gr8
  76. set_gr_immed -4,gr7
  77. cswap @(sp,gr7),gr8,cc1,0
  78. test_gr_limmed 0xdead,0xbeef,gr8
  79. test_mem_limmed 0xbeef,0xdead,gr22
  80. test_mem_limmed 0xbeef,0xdead,gr21
  81. test_mem_limmed 0xdead,0xbeef,gr20
  82. set_gr_immed 0,gr7
  83. cswap @(sp,gr7),gr8,cc1,0
  84. test_gr_limmed 0xbeef,0xdead,gr8
  85. test_mem_limmed 0xbeef,0xdead,gr22
  86. test_mem_limmed 0xdead,0xbeef,gr21
  87. test_mem_limmed 0xdead,0xbeef,gr20
  88. set_gr_immed 4,gr7
  89. cswap @(sp,gr7),gr8,cc5,0
  90. test_gr_limmed 0xdead,0xbeef,gr8
  91. test_mem_limmed 0xbeef,0xdead,gr22
  92. test_mem_limmed 0xdead,0xbeef,gr21
  93. test_mem_limmed 0xbeef,0xdead,gr20
  94. set_gr_gr gr20,sp
  95. set_mem_limmed 0xdead,0xbeef,sp
  96. inc_gr_immed -4,sp
  97. set_gr_gr sp,gr21
  98. set_mem_limmed 0xbeef,0xdead,sp
  99. inc_gr_immed -4,sp
  100. set_gr_gr sp,gr22
  101. set_mem_limmed 0xdead,0xbeef,sp
  102. inc_gr_immed 4,sp
  103. set_gr_limmed 0xbeef,0xdead,gr8
  104. set_gr_immed -4,gr7
  105. cswap @(sp,gr7),gr8,cc1,1
  106. test_gr_limmed 0xbeef,0xdead,gr8
  107. test_mem_limmed 0xdead,0xbeef,gr22
  108. test_mem_limmed 0xbeef,0xdead,gr21
  109. test_mem_limmed 0xdead,0xbeef,gr20
  110. set_gr_limmed 0xdead,0xbeef,gr8
  111. set_gr_immed 0,gr7
  112. cswap @(sp,gr7),gr8,cc1,1
  113. test_gr_limmed 0xdead,0xbeef,gr8
  114. test_mem_limmed 0xdead,0xbeef,gr22
  115. test_mem_limmed 0xbeef,0xdead,gr21
  116. test_mem_limmed 0xdead,0xbeef,gr20
  117. set_gr_limmed 0xbeef,0xdead,gr8
  118. set_gr_immed 4,gr7
  119. cswap @(sp,gr7),gr8,cc5,1
  120. test_gr_limmed 0xbeef,0xdead,gr8
  121. test_mem_limmed 0xdead,0xbeef,gr22
  122. test_mem_limmed 0xbeef,0xdead,gr21
  123. test_mem_limmed 0xdead,0xbeef,gr20
  124. set_gr_gr gr20,sp
  125. set_mem_limmed 0xdead,0xbeef,sp
  126. inc_gr_immed -4,sp
  127. set_gr_gr sp,gr21
  128. set_mem_limmed 0xbeef,0xdead,sp
  129. inc_gr_immed -4,sp
  130. set_gr_gr sp,gr22
  131. set_mem_limmed 0xdead,0xbeef,sp
  132. inc_gr_immed 4,sp
  133. set_gr_limmed 0xbeef,0xdead,gr8
  134. set_gr_immed -4,gr7
  135. cswap @(sp,gr7),gr8,cc2,0
  136. test_gr_limmed 0xbeef,0xdead,gr8
  137. test_mem_limmed 0xdead,0xbeef,gr22
  138. test_mem_limmed 0xbeef,0xdead,gr21
  139. test_mem_limmed 0xdead,0xbeef,gr20
  140. set_gr_limmed 0xdead,0xbeef,gr8
  141. set_gr_immed 0,gr7
  142. cswap @(sp,gr7),gr8,cc2,1
  143. test_gr_limmed 0xdead,0xbeef,gr8
  144. test_mem_limmed 0xdead,0xbeef,gr22
  145. test_mem_limmed 0xbeef,0xdead,gr21
  146. test_mem_limmed 0xdead,0xbeef,gr20
  147. set_gr_limmed 0xbeef,0xdead,gr8
  148. set_gr_immed 4,gr7
  149. cswap @(sp,gr7),gr8,cc6,0
  150. test_gr_limmed 0xbeef,0xdead,gr8
  151. test_mem_limmed 0xdead,0xbeef,gr22
  152. test_mem_limmed 0xbeef,0xdead,gr21
  153. test_mem_limmed 0xdead,0xbeef,gr20
  154. set_gr_gr gr20,sp
  155. set_mem_limmed 0xdead,0xbeef,sp
  156. inc_gr_immed -4,sp
  157. set_gr_gr sp,gr21
  158. set_mem_limmed 0xbeef,0xdead,sp
  159. inc_gr_immed -4,sp
  160. set_gr_gr sp,gr22
  161. set_mem_limmed 0xdead,0xbeef,sp
  162. inc_gr_immed 4,sp
  163. set_gr_limmed 0xbeef,0xdead,gr8
  164. set_gr_immed -4,gr7
  165. cswap @(sp,gr7),gr8,cc3,1
  166. test_gr_limmed 0xbeef,0xdead,gr8
  167. test_mem_limmed 0xdead,0xbeef,gr22
  168. test_mem_limmed 0xbeef,0xdead,gr21
  169. test_mem_limmed 0xdead,0xbeef,gr20
  170. set_gr_limmed 0xdead,0xbeef,gr8
  171. set_gr_immed 0,gr7
  172. cswap @(sp,gr7),gr8,cc3,0
  173. test_gr_limmed 0xdead,0xbeef,gr8
  174. test_mem_limmed 0xdead,0xbeef,gr22
  175. test_mem_limmed 0xbeef,0xdead,gr21
  176. test_mem_limmed 0xdead,0xbeef,gr20
  177. set_gr_limmed 0xbeef,0xdead,gr8
  178. set_gr_immed 4,gr7
  179. cswap @(sp,gr7),gr8,cc7,1
  180. test_gr_limmed 0xbeef,0xdead,gr8
  181. test_mem_limmed 0xdead,0xbeef,gr22
  182. test_mem_limmed 0xbeef,0xdead,gr21
  183. test_mem_limmed 0xdead,0xbeef,gr20
  184. pass