c_dsp32alu_disalnexcpt.s 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. //Original:/testcases/core/c_dsp32alu_disalnexcpt/c_dsp32alu_disalnexcpt.dsp
  2. // Spec Reference: c_dsp32alu_disalgnexcpt
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. INIT_R_REGS 0;
  7. loadsym P0, DATA1;
  8. P0 += 1; I0 = P0;
  9. loadsym P0, DATA2;
  10. P0 += 1; I1 = P0;
  11. loadsym P0, DATA3;
  12. P0 += 1; I2 = P0;
  13. loadsym P0, DATA4;
  14. P0 += 1; I3 = P0;
  15. DISALGNEXCPT || NOP || R0 = [ I0 ++ ];
  16. DISALGNEXCPT || NOP || R1 = [ I1 ++ ];
  17. DISALGNEXCPT || NOP || R2 = [ I2 ++ ];
  18. DISALGNEXCPT || NOP || R3 = [ I3 ++ ];
  19. DISALGNEXCPT || NOP || R4 = [ I0 ++ ];
  20. DISALGNEXCPT || NOP || R5 = [ I1 ++ ];
  21. DISALGNEXCPT || NOP || R6 = [ I2 ++ ];
  22. DISALGNEXCPT || NOP || R7 = [ I3 ++ ];
  23. CHECKREG r0, 0x00010203;
  24. CHECKREG r1, 0x20212223;
  25. CHECKREG r2, 0x40414243;
  26. CHECKREG r3, 0x60616263;
  27. CHECKREG r4, 0x04050607;
  28. CHECKREG r5, 0x24252627;
  29. CHECKREG r6, 0x44454647;
  30. CHECKREG r7, 0x64656667;
  31. // reverse to minus mninus i--
  32. DISALGNEXCPT || NOP || R0 = [ I0 -- ];
  33. DISALGNEXCPT || NOP || R1 = [ I1 -- ];
  34. DISALGNEXCPT || NOP || R2 = [ I2 -- ];
  35. DISALGNEXCPT || NOP || R3 = [ I3 -- ];
  36. DISALGNEXCPT || NOP || R4 = [ I0 -- ];
  37. DISALGNEXCPT || NOP || R5 = [ I1 -- ];
  38. DISALGNEXCPT || NOP || R6 = [ I2 -- ];
  39. DISALGNEXCPT || NOP || R7 = [ I3 -- ];
  40. CHECKREG r0, 0x08090A0B;
  41. CHECKREG r1, 0x28292A2B;
  42. CHECKREG r2, 0x48494A4B;
  43. CHECKREG r3, 0x68696A6B;
  44. CHECKREG r4, 0x04050607;
  45. CHECKREG r5, 0x24252627;
  46. CHECKREG r6, 0x44454647;
  47. CHECKREG r7, 0x64656667;
  48. pass
  49. // Pre-load memory with known data
  50. // More data is defined than will actually be used
  51. .data
  52. DATA1:
  53. .dd 0x00010203
  54. .dd 0x04050607
  55. .dd 0x08090A0B
  56. .dd 0x0C0D0E0F
  57. .dd 0x10111213
  58. .dd 0x14151617
  59. .dd 0x18191A1B
  60. .dd 0x1C1D1E1F
  61. .dd 0x11223344
  62. .dd 0x55667788
  63. .dd 0x99717273
  64. .dd 0x74757677
  65. .dd 0x82838485
  66. .dd 0x86878889
  67. .dd 0x80818283
  68. .dd 0x84858687
  69. .dd 0x01020304
  70. .dd 0x05060708
  71. .dd 0x09101112
  72. .dd 0x14151617
  73. .dd 0x18192021
  74. .dd 0x22232425
  75. .dd 0x26272829
  76. .dd 0x30313233
  77. .dd 0x34353637
  78. .dd 0x38394041
  79. .dd 0x42434445
  80. .dd 0x46474849
  81. .dd 0x50515253
  82. .dd 0x54555657
  83. .dd 0x58596061
  84. .dd 0x62636465
  85. .dd 0x66676869
  86. DATA2:
  87. .dd 0x20212223
  88. .dd 0x24252627
  89. .dd 0x28292A2B
  90. .dd 0x2C2D2E2F
  91. .dd 0x30313233
  92. .dd 0x34353637
  93. .dd 0x38393A3B
  94. .dd 0x3C3D3E3F
  95. .dd 0x91929394
  96. .dd 0x95969798
  97. .dd 0x99A1A2A3
  98. .dd 0xA5A6A7A8
  99. .dd 0xA9B0B1B2
  100. .dd 0xB3B4B5B6
  101. .dd 0xB7B8B9C0
  102. .dd 0x70717273
  103. .dd 0x74757677
  104. .dd 0x78798081
  105. .dd 0x82838485
  106. .dd 0x86C283C4
  107. .dd 0x81C283C4
  108. .dd 0x82C283C4
  109. .dd 0x83C283C4
  110. .dd 0x84C283C4
  111. .dd 0x85C283C4
  112. .dd 0x86C283C4
  113. .dd 0x87C288C4
  114. .dd 0x88C283C4
  115. .dd 0x89C283C4
  116. .dd 0x80C283C4
  117. .dd 0x81C283C4
  118. .dd 0x82C288C4
  119. DATA3:
  120. .dd 0x40414243
  121. .dd 0x44454647
  122. .dd 0x48494A4B
  123. .dd 0x4C4D4E4F
  124. .dd 0x50515253
  125. .dd 0x54555657
  126. .dd 0x58595A5B
  127. .dd 0xC5C6C7C8
  128. .dd 0xC9CACBCD
  129. .dd 0xCFD0D1D2
  130. .dd 0xD3D4D5D6
  131. .dd 0xD7D8D9DA
  132. .dd 0xDBDCDDDE
  133. .dd 0xDFE0E1E2
  134. .dd 0xE3E4E5E6
  135. .dd 0x91E899EA
  136. .dd 0x92E899EA
  137. .dd 0x93E899EA
  138. .dd 0x94E899EA
  139. .dd 0x95E899EA
  140. .dd 0x96E899EA
  141. .dd 0x97E899EA
  142. .dd 0x98E899EA
  143. .dd 0x99E899EA
  144. .dd 0x91E899EA
  145. .dd 0x92E899EA
  146. .dd 0x93E899EA
  147. .dd 0x94E899EA
  148. .dd 0x95E899EA
  149. .dd 0x96E899EA
  150. .dd 0x977899EA
  151. DATA4:
  152. .dd 0x60616263
  153. .dd 0x64656667
  154. .dd 0x68696A6B
  155. .dd 0x6C6D6E6F
  156. .dd 0x70717273
  157. .dd 0x74757677
  158. .dd 0x78797A7B
  159. .dd 0x7C7D7E7F
  160. .dd 0xEBECEDEE
  161. .dd 0xF3F4F5F6
  162. .dd 0xF7F8F9FA
  163. .dd 0xFBFCFDFE
  164. .dd 0xFF000102
  165. .dd 0x03040506
  166. .dd 0x0708090A
  167. .dd 0x0B0CAD0E
  168. .dd 0xAB0CAD01
  169. .dd 0xAB0CAD02
  170. .dd 0xAB0CAD03
  171. .dd 0xAB0CAD04
  172. .dd 0xAB0CAD05
  173. .dd 0xAB0CAD06
  174. .dd 0xAB0CAA07
  175. .dd 0xAB0CAD08
  176. .dd 0xAB0CAD09
  177. .dd 0xAB0CAD0E
  178. .dd 0xAB0CAD0E
  179. .dd 0xAB0CAD0E
  180. .dd 0xAB0CAD0E
  181. .dd 0xAB0CAD0E
  182. .dd 0xAB0CAD0E
  183. .dd 0xAB0CAD0E
  184. DATA5:
  185. .dd 0x80818283
  186. .dd 0x84858687
  187. .dd 0x88898A8B
  188. .dd 0x8C8D8E8F
  189. .dd 0x90919293
  190. .dd 0x94959697
  191. .dd 0x98999A9B
  192. .dd 0x9C9D9E9F
  193. .dd 0x0F101213
  194. .dd 0x14151617
  195. .dd 0x18191A1B
  196. .dd 0x1C1D1E1F
  197. .dd 0x20212223
  198. .dd 0x24252627
  199. .dd 0x28292A2B
  200. .dd 0x2C2D2E2F
  201. .dd 0xBC0DBE21
  202. .dd 0xBC1DBE22
  203. .dd 0xBC2DBE23
  204. .dd 0xBC3DBE24
  205. .dd 0xBC4DBE65
  206. .dd 0xBC5DBE27
  207. .dd 0xBC6DBE28
  208. .dd 0xBC7DBE29
  209. .dd 0xBC8DBE2F
  210. .dd 0xBC9DBE20
  211. .dd 0xBCADBE21
  212. .dd 0xBCBDBE2F
  213. .dd 0xBCCDBE23
  214. .dd 0xBCDDBE24
  215. .dd 0xBCFDBE25
  216. .dd 0xBC0DBE26
  217. DATA6:
  218. .dd 0xA0A1A2A3
  219. .dd 0xA4A5A6A7
  220. .dd 0xA8A9AAAB
  221. .dd 0xACADAEAF
  222. .dd 0xB0B1B2B3
  223. .dd 0xB4B5B6B7
  224. .dd 0xB8B9BABB
  225. .dd 0xBCBDBEBF
  226. .dd 0xC0C1C2C3
  227. .dd 0xC4C5C6C7
  228. .dd 0xC8C9CACB
  229. .dd 0xCCCDCECF
  230. .dd 0xD0D1D2D3
  231. .dd 0xD4D5D6D7
  232. .dd 0xD8D9DADB
  233. .dd 0xDCDDDEDF
  234. .dd 0xE0E1E2E3
  235. .dd 0xE4E5E6E7
  236. .dd 0xE8E9EAEB
  237. .dd 0xECEDEEEF
  238. .dd 0xF0F1F2F3
  239. .dd 0xF4F5F6F7
  240. .dd 0xF8F9FAFB
  241. .dd 0xFCFDFEFF