cmsubhss.cgs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
  1. # frv testcase for cmsubhss $FRi,$FRj,$FRj,$CCi,$cond
  2. # mach: frv fr500 fr400
  3. .include "testutils.inc"
  4. start
  5. .global cmsubhss
  6. cmsubhss:
  7. set_spr_immed 0x1b1b,cccr
  8. set_fr_iimmed 0x0000,0x0000,fr10
  9. set_fr_iimmed 0x0000,0x0000,fr11
  10. cmsubhss fr10,fr11,fr12,cc0,1
  11. test_fr_limmed 0x0000,0x0000,fr12
  12. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  13. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  14. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  15. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  16. set_fr_iimmed 0xdead,0x0000,fr10
  17. set_fr_iimmed 0x0000,0xbeef,fr11
  18. cmsubhss fr10,fr11,fr12,cc0,1
  19. test_fr_limmed 0xdead,0x4111,fr12
  20. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  21. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  22. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  23. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  24. set_fr_iimmed 0x0000,0xdead,fr10
  25. set_fr_iimmed 0xbeef,0x0000,fr11
  26. cmsubhss fr10,fr11,fr12,cc0,1
  27. test_fr_limmed 0x4111,0xdead,fr12
  28. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  29. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  30. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  31. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  32. set_fr_iimmed 0x1234,0x5678,fr10
  33. set_fr_iimmed 0x1111,0x1111,fr11
  34. cmsubhss fr10,fr11,fr12,cc0,1
  35. test_fr_limmed 0x0123,0x4567,fr12
  36. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  37. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  38. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  39. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  40. set_fr_iimmed 0x1234,0x5678,fr10
  41. set_fr_iimmed 0xffff,0xffff,fr11
  42. cmsubhss fr10,fr11,fr12,cc0,1
  43. test_fr_limmed 0x1235,0x5679,fr12
  44. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  45. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  46. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  47. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  48. set_spr_immed 0,msr0
  49. set_fr_iimmed 0x7ffe,0x7ffe,fr10
  50. set_fr_iimmed 0xfffe,0xffff,fr11
  51. cmsubhss fr10,fr11,fr12,cc4,1
  52. test_fr_limmed 0x7fff,0x7fff,fr12
  53. test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set
  54. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  55. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  56. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  57. set_spr_immed 0,msr0
  58. set_fr_iimmed 0x8001,0x8001,fr10
  59. set_fr_iimmed 0x0001,0x0002,fr11
  60. cmsubhss fr10,fr11,fr12,cc4,1
  61. test_fr_limmed 0x8000,0x8000,fr12
  62. test_spr_bits 0x3c,2,0x4,msr0 ; msr0.sie is set
  63. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  64. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  65. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  66. set_spr_immed 0,msr0
  67. set_fr_iimmed 0x8001,0x8001,fr10
  68. set_fr_iimmed 0x0002,0x0001,fr11
  69. cmsubhss fr10,fr11,fr12,cc4,1
  70. test_fr_limmed 0x8000,0x8000,fr12
  71. test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set
  72. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  73. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  74. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  75. set_spr_immed 0,msr0
  76. set_spr_immed 0,msr1
  77. set_fr_iimmed 0x0001,0x0001,fr10
  78. set_fr_iimmed 0x8000,0x8000,fr11
  79. cmsubhss.p fr10,fr10,fr12,cc4,1
  80. cmsubhss fr11,fr10,fr13,cc4,1
  81. test_fr_limmed 0x0000,0x0000,fr12
  82. test_fr_limmed 0x8000,0x8000,fr13
  83. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  84. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  85. test_spr_bits 0x3c,2,0xc,msr1 ; msr0.sie is set
  86. test_spr_bits 2,1,1,msr1 ; msr1.ovf set
  87. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  88. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  89. set_spr_immed 0,msr0
  90. set_spr_immed 0,msr1
  91. set_fr_iimmed 0x0000,0x0000,fr10
  92. set_fr_iimmed 0x0000,0x0000,fr11
  93. cmsubhss fr10,fr11,fr12,cc1,0
  94. test_fr_limmed 0x0000,0x0000,fr12
  95. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  96. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  97. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  98. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  99. set_fr_iimmed 0xdead,0x0000,fr10
  100. set_fr_iimmed 0x0000,0xbeef,fr11
  101. cmsubhss fr10,fr11,fr12,cc1,0
  102. test_fr_limmed 0xdead,0x4111,fr12
  103. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  104. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  105. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  106. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  107. set_fr_iimmed 0x0000,0xdead,fr10
  108. set_fr_iimmed 0xbeef,0x0000,fr11
  109. cmsubhss fr10,fr11,fr12,cc1,0
  110. test_fr_limmed 0x4111,0xdead,fr12
  111. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  112. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  113. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  114. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  115. set_fr_iimmed 0x1234,0x5678,fr10
  116. set_fr_iimmed 0x1111,0x1111,fr11
  117. cmsubhss fr10,fr11,fr12,cc1,0
  118. test_fr_limmed 0x0123,0x4567,fr12
  119. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  120. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  121. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  122. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  123. set_fr_iimmed 0x1234,0x5678,fr10
  124. set_fr_iimmed 0xffff,0xffff,fr11
  125. cmsubhss fr10,fr11,fr12,cc1,0
  126. test_fr_limmed 0x1235,0x5679,fr12
  127. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  128. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  129. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  130. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  131. set_spr_immed 0,msr0
  132. set_fr_iimmed 0x7ffe,0x7ffe,fr10
  133. set_fr_iimmed 0xfffe,0xffff,fr11
  134. cmsubhss fr10,fr11,fr12,cc5,0
  135. test_fr_limmed 0x7fff,0x7fff,fr12
  136. test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set
  137. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  138. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  139. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  140. set_spr_immed 0,msr0
  141. set_fr_iimmed 0x8001,0x8001,fr10
  142. set_fr_iimmed 0x0001,0x0002,fr11
  143. cmsubhss fr10,fr11,fr12,cc5,0
  144. test_fr_limmed 0x8000,0x8000,fr12
  145. test_spr_bits 0x3c,2,0x4,msr0 ; msr0.sie is set
  146. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  147. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  148. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  149. set_spr_immed 0,msr0
  150. set_fr_iimmed 0x8001,0x8001,fr10
  151. set_fr_iimmed 0x0002,0x0001,fr11
  152. cmsubhss fr10,fr11,fr12,cc5,0
  153. test_fr_limmed 0x8000,0x8000,fr12
  154. test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set
  155. test_spr_bits 2,1,1,msr0 ; msr0.ovf set
  156. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  157. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  158. set_spr_immed 0,msr0
  159. set_spr_immed 0,msr1
  160. set_fr_iimmed 0x0001,0x0001,fr10
  161. set_fr_iimmed 0x8000,0x8000,fr11
  162. cmsubhss.p fr10,fr10,fr12,cc5,0
  163. cmsubhss fr11,fr10,fr13,cc5,0
  164. test_fr_limmed 0x0000,0x0000,fr12
  165. test_fr_limmed 0x8000,0x8000,fr13
  166. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  167. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  168. test_spr_bits 0x3c,2,0xc,msr1 ; msr0.sie is set
  169. test_spr_bits 2,1,1,msr1 ; msr1.ovf set
  170. test_spr_bits 1,0,1,msr0 ; msr0.aovf set
  171. test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt set
  172. set_fr_iimmed 0xdead,0xbeef,fr12
  173. set_spr_immed 0,msr0
  174. set_spr_immed 0,msr1
  175. set_fr_iimmed 0x0000,0x0000,fr10
  176. set_fr_iimmed 0x0000,0x0000,fr11
  177. cmsubhss fr10,fr11,fr12,cc0,0
  178. test_fr_limmed 0xdead,0xbeef,fr12
  179. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  180. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  181. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  182. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  183. set_fr_iimmed 0xdead,0x0000,fr10
  184. set_fr_iimmed 0x0000,0xbeef,fr11
  185. cmsubhss fr10,fr11,fr12,cc0,0
  186. test_fr_limmed 0xdead,0xbeef,fr12
  187. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  188. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  189. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  190. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  191. set_fr_iimmed 0x0000,0xdead,fr10
  192. set_fr_iimmed 0xbeef,0x0000,fr11
  193. cmsubhss fr10,fr11,fr12,cc0,0
  194. test_fr_limmed 0xdead,0xbeef,fr12
  195. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  196. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  197. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  198. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  199. set_fr_iimmed 0x1234,0x5678,fr10
  200. set_fr_iimmed 0x1111,0x1111,fr11
  201. cmsubhss fr10,fr11,fr12,cc0,0
  202. test_fr_limmed 0xdead,0xbeef,fr12
  203. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  204. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  205. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  206. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  207. set_fr_iimmed 0x1234,0x5678,fr10
  208. set_fr_iimmed 0xffff,0xffff,fr11
  209. cmsubhss fr10,fr11,fr12,cc0,0
  210. test_fr_limmed 0xdead,0xbeef,fr12
  211. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  212. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  213. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  214. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  215. set_spr_immed 0,msr0
  216. set_fr_iimmed 0x7ffe,0x7ffe,fr10
  217. set_fr_iimmed 0xfffe,0xffff,fr11
  218. cmsubhss fr10,fr11,fr12,cc4,0
  219. test_fr_limmed 0xdead,0xbeef,fr12
  220. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  221. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  222. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  223. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  224. set_spr_immed 0,msr0
  225. set_fr_iimmed 0x8001,0x8001,fr10
  226. set_fr_iimmed 0x0001,0x0002,fr11
  227. cmsubhss fr10,fr11,fr12,cc4,0
  228. test_fr_limmed 0xdead,0xbeef,fr12
  229. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  230. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  231. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  232. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  233. set_spr_immed 0,msr0
  234. set_fr_iimmed 0x8001,0x8001,fr10
  235. set_fr_iimmed 0x0002,0x0001,fr11
  236. cmsubhss fr10,fr11,fr12,cc4,0
  237. test_fr_limmed 0xdead,0xbeef,fr12
  238. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  239. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  240. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  241. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  242. set_fr_iimmed 0xbeef,0xdead,fr13
  243. set_spr_immed 0,msr0
  244. set_spr_immed 0,msr1
  245. set_fr_iimmed 0x0001,0x0001,fr10
  246. set_fr_iimmed 0x8000,0x8000,fr11
  247. cmsubhss.p fr10,fr10,fr12,cc4,0
  248. cmsubhss fr11,fr10,fr13,cc4,0
  249. test_fr_limmed 0xdead,0xbeef,fr12
  250. test_fr_limmed 0xbeef,0xdead,fr13
  251. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  252. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  253. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  254. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  255. set_fr_iimmed 0xdead,0xbeef,fr12
  256. set_spr_immed 0,msr0
  257. set_spr_immed 0,msr1
  258. set_fr_iimmed 0x0000,0x0000,fr10
  259. set_fr_iimmed 0x0000,0x0000,fr11
  260. cmsubhss fr10,fr11,fr12,cc1,1
  261. test_fr_limmed 0xdead,0xbeef,fr12
  262. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  263. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  264. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  265. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  266. set_fr_iimmed 0xdead,0x0000,fr10
  267. set_fr_iimmed 0x0000,0xbeef,fr11
  268. cmsubhss fr10,fr11,fr12,cc1,1
  269. test_fr_limmed 0xdead,0xbeef,fr12
  270. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  271. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  272. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  273. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  274. set_fr_iimmed 0x0000,0xdead,fr10
  275. set_fr_iimmed 0xbeef,0x0000,fr11
  276. cmsubhss fr10,fr11,fr12,cc1,1
  277. test_fr_limmed 0xdead,0xbeef,fr12
  278. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  279. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  280. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  281. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  282. set_fr_iimmed 0x1234,0x5678,fr10
  283. set_fr_iimmed 0x1111,0x1111,fr11
  284. cmsubhss fr10,fr11,fr12,cc1,1
  285. test_fr_limmed 0xdead,0xbeef,fr12
  286. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  287. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  288. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  289. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  290. set_fr_iimmed 0x1234,0x5678,fr10
  291. set_fr_iimmed 0xffff,0xffff,fr11
  292. cmsubhss fr10,fr11,fr12,cc1,1
  293. test_fr_limmed 0xdead,0xbeef,fr12
  294. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  295. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  296. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  297. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  298. set_spr_immed 0,msr0
  299. set_fr_iimmed 0x7ffe,0x7ffe,fr10
  300. set_fr_iimmed 0xfffe,0xffff,fr11
  301. cmsubhss fr10,fr11,fr12,cc5,1
  302. test_fr_limmed 0xdead,0xbeef,fr12
  303. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  304. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  305. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  306. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  307. set_spr_immed 0,msr0
  308. set_fr_iimmed 0x8001,0x8001,fr10
  309. set_fr_iimmed 0x0001,0x0002,fr11
  310. cmsubhss fr10,fr11,fr12,cc5,1
  311. test_fr_limmed 0xdead,0xbeef,fr12
  312. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  313. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  314. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  315. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  316. set_spr_immed 0,msr0
  317. set_fr_iimmed 0x8001,0x8001,fr10
  318. set_fr_iimmed 0x0002,0x0001,fr11
  319. cmsubhss fr10,fr11,fr12,cc5,1
  320. test_fr_limmed 0xdead,0xbeef,fr12
  321. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  322. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  323. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  324. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  325. set_fr_iimmed 0xbeef,0xdead,fr13
  326. set_spr_immed 0,msr0
  327. set_spr_immed 0,msr1
  328. set_fr_iimmed 0x0001,0x0001,fr10
  329. set_fr_iimmed 0x8000,0x8000,fr11
  330. cmsubhss.p fr10,fr10,fr12,cc5,1
  331. cmsubhss fr11,fr10,fr13,cc5,1
  332. test_fr_limmed 0xdead,0xbeef,fr12
  333. test_fr_limmed 0xbeef,0xdead,fr13
  334. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  335. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  336. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  337. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  338. set_fr_iimmed 0xdead,0xbeef,fr12
  339. set_spr_immed 0,msr0
  340. set_spr_immed 0,msr1
  341. set_fr_iimmed 0x0000,0x0000,fr10
  342. set_fr_iimmed 0x0000,0x0000,fr11
  343. cmsubhss fr10,fr11,fr12,cc2,1
  344. test_fr_limmed 0xdead,0xbeef,fr12
  345. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  346. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  347. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  348. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  349. set_fr_iimmed 0xdead,0x0000,fr10
  350. set_fr_iimmed 0x0000,0xbeef,fr11
  351. cmsubhss fr10,fr11,fr12,cc2,0
  352. test_fr_limmed 0xdead,0xbeef,fr12
  353. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  354. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  355. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  356. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  357. set_fr_iimmed 0x0000,0xdead,fr10
  358. set_fr_iimmed 0xbeef,0x0000,fr11
  359. cmsubhss fr10,fr11,fr12,cc2,1
  360. test_fr_limmed 0xdead,0xbeef,fr12
  361. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  362. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  363. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  364. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  365. set_fr_iimmed 0x1234,0x5678,fr10
  366. set_fr_iimmed 0x1111,0x1111,fr11
  367. cmsubhss fr10,fr11,fr12,cc2,0
  368. test_fr_limmed 0xdead,0xbeef,fr12
  369. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  370. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  371. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  372. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  373. set_fr_iimmed 0x1234,0x5678,fr10
  374. set_fr_iimmed 0xffff,0xffff,fr11
  375. cmsubhss fr10,fr11,fr12,cc2,1
  376. test_fr_limmed 0xdead,0xbeef,fr12
  377. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  378. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  379. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  380. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  381. set_spr_immed 0,msr0
  382. set_fr_iimmed 0x7ffe,0x7ffe,fr10
  383. set_fr_iimmed 0xfffe,0xffff,fr11
  384. cmsubhss fr10,fr11,fr12,cc6,0
  385. test_fr_limmed 0xdead,0xbeef,fr12
  386. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  387. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  388. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  389. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  390. set_spr_immed 0,msr0
  391. set_fr_iimmed 0x8001,0x8001,fr10
  392. set_fr_iimmed 0x0001,0x0002,fr11
  393. cmsubhss fr10,fr11,fr12,cc6,1
  394. test_fr_limmed 0xdead,0xbeef,fr12
  395. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  396. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  397. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  398. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  399. set_spr_immed 0,msr0
  400. set_fr_iimmed 0x8001,0x8001,fr10
  401. set_fr_iimmed 0x0002,0x0001,fr11
  402. cmsubhss fr10,fr11,fr12,cc6,0
  403. test_fr_limmed 0xdead,0xbeef,fr12
  404. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  405. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  406. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  407. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  408. set_fr_iimmed 0xbeef,0xdead,fr13
  409. set_spr_immed 0,msr0
  410. set_spr_immed 0,msr1
  411. set_fr_iimmed 0x0001,0x0001,fr10
  412. set_fr_iimmed 0x8000,0x8000,fr11
  413. cmsubhss.p fr10,fr10,fr12,cc6,1
  414. cmsubhss fr11,fr10,fr13,cc6,0
  415. test_fr_limmed 0xdead,0xbeef,fr12
  416. test_fr_limmed 0xbeef,0xdead,fr13
  417. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  418. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  419. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  420. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  421. ;
  422. set_fr_iimmed 0xdead,0xbeef,fr12
  423. set_spr_immed 0,msr0
  424. set_spr_immed 0,msr1
  425. set_fr_iimmed 0x0000,0x0000,fr10
  426. set_fr_iimmed 0x0000,0x0000,fr11
  427. cmsubhss fr10,fr11,fr12,cc3,1
  428. test_fr_limmed 0xdead,0xbeef,fr12
  429. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  430. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  431. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  432. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  433. set_fr_iimmed 0xdead,0x0000,fr10
  434. set_fr_iimmed 0x0000,0xbeef,fr11
  435. cmsubhss fr10,fr11,fr12,cc3,0
  436. test_fr_limmed 0xdead,0xbeef,fr12
  437. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  438. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  439. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  440. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  441. set_fr_iimmed 0x0000,0xdead,fr10
  442. set_fr_iimmed 0xbeef,0x0000,fr11
  443. cmsubhss fr10,fr11,fr12,cc3,1
  444. test_fr_limmed 0xdead,0xbeef,fr12
  445. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  446. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  447. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  448. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  449. set_fr_iimmed 0x1234,0x5678,fr10
  450. set_fr_iimmed 0x1111,0x1111,fr11
  451. cmsubhss fr10,fr11,fr12,cc3,0
  452. test_fr_limmed 0xdead,0xbeef,fr12
  453. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  454. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  455. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  456. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  457. set_fr_iimmed 0x1234,0x5678,fr10
  458. set_fr_iimmed 0xffff,0xffff,fr11
  459. cmsubhss fr10,fr11,fr12,cc3,1
  460. test_fr_limmed 0xdead,0xbeef,fr12
  461. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  462. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  463. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  464. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  465. set_spr_immed 0,msr0
  466. set_fr_iimmed 0x7ffe,0x7ffe,fr10
  467. set_fr_iimmed 0xfffe,0xffff,fr11
  468. cmsubhss fr10,fr11,fr12,cc7,0
  469. test_fr_limmed 0xdead,0xbeef,fr12
  470. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  471. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  472. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  473. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  474. set_spr_immed 0,msr0
  475. set_fr_iimmed 0x8001,0x8001,fr10
  476. set_fr_iimmed 0x0001,0x0002,fr11
  477. cmsubhss fr10,fr11,fr12,cc7,1
  478. test_fr_limmed 0xdead,0xbeef,fr12
  479. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  480. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  481. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  482. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  483. set_spr_immed 0,msr0
  484. set_fr_iimmed 0x8001,0x8001,fr10
  485. set_fr_iimmed 0x0002,0x0001,fr11
  486. cmsubhss fr10,fr11,fr12,cc7,0
  487. test_fr_limmed 0xdead,0xbeef,fr12
  488. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  489. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  490. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  491. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  492. set_fr_iimmed 0xbeef,0xdead,fr13
  493. set_spr_immed 0,msr0
  494. set_spr_immed 0,msr1
  495. set_fr_iimmed 0x0001,0x0001,fr10
  496. set_fr_iimmed 0x8000,0x8000,fr11
  497. cmsubhss.p fr10,fr10,fr12,cc7,1
  498. cmsubhss fr11,fr10,fr13,cc7,0
  499. test_fr_limmed 0xdead,0xbeef,fr12
  500. test_fr_limmed 0xbeef,0xdead,fr13
  501. test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear
  502. test_spr_bits 2,1,0,msr0 ; msr0.ovf not set
  503. test_spr_bits 1,0,0,msr0 ; msr0.aovf not set
  504. test_spr_bits 0x7000,12,0,msr0 ; msr0.mtt not set
  505. pass