c_ldst_ld_p_p_mm.s 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. //Original:testcases/core/c_ldst_ld_p_p_mm/c_ldst_ld_p_p_mm.dsp
  2. // Spec Reference: c_ldst ld p [p--]
  3. # mach: bfin
  4. .include "testutils.inc"
  5. start
  6. // set all regs
  7. INIT_I_REGS -1;
  8. INIT_R_REGS 0;
  9. init_b_regs 0;
  10. init_l_regs 0;
  11. init_m_regs -1;
  12. I0 = P3;
  13. I2 = SP;
  14. // initial values
  15. I1 = P3; P3 = I0; I3 = SP; SP = I2;
  16. loadsym p1, DATA_ADDR_1, 0x18;
  17. loadsym p2, DATA_ADDR_2, 0x18;
  18. loadsym i1, DATA_ADDR_3, 0x18;
  19. loadsym p4, DATA_ADDR_4, 0x18;
  20. loadsym p5, DATA_ADDR_5, 0x18;
  21. loadsym fp, DATA_ADDR_6, 0x18;
  22. loadsym i3, DATA_ADDR_7, 0x18;
  23. P3 = I1; SP = I3;
  24. P2 = [ P1 -- ];
  25. P3 = [ P1 -- ];
  26. P4 = [ P1 -- ];
  27. P5 = [ P1 -- ];
  28. SP = [ P1 -- ];
  29. FP = [ P1 -- ];
  30. CHECKREG p2, 0x18191A1B;
  31. CHECKREG p3, 0x14151617;
  32. CHECKREG p4, 0x10111213;
  33. CHECKREG p5, 0x0C0D0E0F;
  34. CHECKREG sp, 0x08090A0B;
  35. CHECKREG fp, 0x04050607;
  36. I1 = P3; P3 = I0; I3 = SP; SP = I2;
  37. loadsym p2, DATA_ADDR_2, 0x18;
  38. P3 = I1; SP = I3;
  39. P1 = [ P2 -- ];
  40. P3 = [ P2 -- ];
  41. P4 = [ P2 -- ];
  42. P5 = [ P2 -- ];
  43. SP = [ P2 -- ];
  44. FP = [ P2 -- ];
  45. CHECKREG p1, 0x38393A3B;
  46. CHECKREG p3, 0x34353637;
  47. CHECKREG p4, 0x30313233;
  48. CHECKREG p5, 0x2C2D2E2F;
  49. CHECKREG sp, 0x28292A2B;
  50. CHECKREG fp, 0x24252627;
  51. I1 = P3; P3 = I0; I3 = SP; SP = I2;
  52. loadsym i1, DATA_ADDR_3, 0x18;
  53. P3 = I1; SP = I3;
  54. P1 = [ P3 -- ];
  55. P2 = [ P3 -- ];
  56. P4 = [ P3 -- ];
  57. P5 = [ P3 -- ];
  58. SP = [ P3 -- ];
  59. FP = [ P3 -- ];
  60. CHECKREG p1, 0x58595A5B;
  61. CHECKREG p2, 0x54555657;
  62. CHECKREG p4, 0x50515253;
  63. CHECKREG p5, 0x4C4D4E4F;
  64. CHECKREG sp, 0x48494A4B;
  65. CHECKREG fp, 0x44454647;
  66. I1 = P3; P3 = I0; I3 = SP; SP = I2;
  67. loadsym p4, DATA_ADDR_4, 0x18;
  68. P3 = I1; SP = I3;
  69. P1 = [ P4 -- ];
  70. P2 = [ P4 -- ];
  71. P3 = [ P4 -- ];
  72. P5 = [ P4 -- ];
  73. SP = [ P4 -- ];
  74. FP = [ P4 -- ];
  75. CHECKREG p1, 0x78797A7B;
  76. CHECKREG p2, 0x74757677;
  77. CHECKREG p3, 0x70717273;
  78. CHECKREG p5, 0x6C6D6E6F;
  79. CHECKREG sp, 0x68696A6B;
  80. CHECKREG fp, 0x64656667;
  81. I1 = P3; P3 = I0; I3 = SP; SP = I2;
  82. loadsym p5, DATA_ADDR_5, 0x18;
  83. P3 = I1; SP = I3;
  84. P1 = [ P5 -- ];
  85. P2 = [ P5 -- ];
  86. P3 = [ P5 -- ];
  87. P4 = [ P5 -- ];
  88. SP = [ P5 -- ];
  89. FP = [ P5 -- ];
  90. CHECKREG p1, 0x98999A9B;
  91. CHECKREG p2, 0x94959697;
  92. CHECKREG p3, 0x90919293;
  93. CHECKREG p4, 0x8C8D8E8F;
  94. CHECKREG sp, 0x88898A8B;
  95. CHECKREG fp, 0x84858687;
  96. I1 = P3; P3 = I0; I3 = SP; SP = I2;
  97. loadsym i3, DATA_ADDR_6, 0x18;
  98. P3 = I1; SP = I3;
  99. P1 = [ SP -- ];
  100. P2 = [ SP -- ];
  101. P3 = [ SP -- ];
  102. P4 = [ SP -- ];
  103. P5 = [ SP -- ];
  104. FP = [ SP -- ];
  105. CHECKREG p1, 0x18191A1B;
  106. CHECKREG p2, 0x14151617;
  107. CHECKREG p3, 0x10111213;
  108. CHECKREG p4, 0x0C0D0E0F;
  109. CHECKREG p5, 0x08090A0B;
  110. CHECKREG fp, 0x04050607;
  111. I1 = P3; P3 = I0; I3 = SP; SP = I2;
  112. loadsym fp, DATA_ADDR_7, 0x18;
  113. P3 = I1; SP = I3;
  114. P1 = [ FP -- ];
  115. P2 = [ FP -- ];
  116. P3 = [ FP -- ];
  117. P4 = [ FP -- ];
  118. P5 = [ FP -- ];
  119. SP = [ FP -- ];
  120. CHECKREG p1, 0x98999A9B;
  121. CHECKREG p2, 0x94959697;
  122. CHECKREG p3, 0x90919293;
  123. CHECKREG p4, 0x8C8D8E8F;
  124. CHECKREG p5, 0x88898A8B;
  125. CHECKREG sp, 0x84858687;
  126. P3 = I0; SP = I2;
  127. pass
  128. // Pre-load memory with known data
  129. // More data is defined than will actually be used
  130. .data
  131. DATA_ADDR_1:
  132. .dd 0x78910213
  133. .dd 0x04050607
  134. .dd 0x08090A0B
  135. .dd 0x0C0D0E0F
  136. .dd 0x10111213
  137. .dd 0x14151617
  138. .dd 0x18191A1B
  139. .dd 0x1C1D1E1F
  140. .dd 0x11223344
  141. .dd 0x55667788
  142. .dd 0x99717273
  143. .dd 0x74757677
  144. .dd 0x82838485
  145. .dd 0x86878889
  146. .dd 0x80818283
  147. .dd 0x84858687
  148. .dd 0x01020304
  149. .dd 0x05060708
  150. .dd 0x09101112
  151. .dd 0x14151617
  152. .dd 0x18192021
  153. .dd 0x22232425
  154. .dd 0x26272829
  155. .dd 0x30313233
  156. .dd 0x34353637
  157. .dd 0x38394041
  158. .dd 0x42434445
  159. .dd 0x46474849
  160. .dd 0x50515253
  161. .dd 0x54555657
  162. .dd 0x58596061
  163. .dd 0x62636465
  164. .dd 0x66676869
  165. .dd 0x74555657
  166. .dd 0x78596067
  167. .dd 0x72636467
  168. .dd 0x76676867
  169. DATA_ADDR_2:
  170. .dd 0x20212223
  171. .dd 0x24252627
  172. .dd 0x28292A2B
  173. .dd 0x2C2D2E2F
  174. .dd 0x30313233
  175. .dd 0x34353637
  176. .dd 0x38393A3B
  177. .dd 0x3C3D3E3F
  178. .dd 0x91929394
  179. .dd 0x95969798
  180. .dd 0x99A1A2A3
  181. .dd 0xA5A6A7A8
  182. .dd 0xA9B0B1B2
  183. .dd 0xB3B4B5B6
  184. .dd 0xB7B8B9C0
  185. .dd 0x70717273
  186. .dd 0x74757677
  187. .dd 0x78798081
  188. .dd 0x82838485
  189. .dd 0x86C283C4
  190. .dd 0x81C283C4
  191. .dd 0x82C283C4
  192. .dd 0x83C283C4
  193. .dd 0x84C283C4
  194. .dd 0x85C283C4
  195. .dd 0x86C283C4
  196. .dd 0x87C288C4
  197. .dd 0x88C283C4
  198. .dd 0x89C283C4
  199. .dd 0x80C283C4
  200. .dd 0x81C283C4
  201. .dd 0x82C288C4
  202. .dd 0x94555659
  203. .dd 0x98596069
  204. .dd 0x92636469
  205. .dd 0x96676869
  206. DATA_ADDR_3:
  207. .dd 0x40414243
  208. .dd 0x44454647
  209. .dd 0x48494A4B
  210. .dd 0x4C4D4E4F
  211. .dd 0x50515253
  212. .dd 0x54555657
  213. .dd 0x58595A5B
  214. .dd 0xC5C6C7C8
  215. .dd 0xC9CACBCD
  216. .dd 0xCFD0D1D2
  217. .dd 0xD3D4D5D6
  218. .dd 0xD7D8D9DA
  219. .dd 0xDBDCDDDE
  220. .dd 0xDFE0E1E2
  221. .dd 0xE3E4E5E6
  222. .dd 0x91E899EA
  223. .dd 0x92E899EA
  224. .dd 0x93E899EA
  225. .dd 0x94E899EA
  226. .dd 0x95E899EA
  227. .dd 0x96E899EA
  228. .dd 0x97E899EA
  229. .dd 0x98E899EA
  230. .dd 0x99E899EA
  231. .dd 0x91E899EA
  232. .dd 0x92E899EA
  233. .dd 0x93E899EA
  234. .dd 0x94E899EA
  235. .dd 0x95E899EA
  236. .dd 0x96E899EA
  237. .dd 0x977899EA
  238. .dd 0xa455565a
  239. .dd 0xa859606a
  240. .dd 0xa263646a
  241. .dd 0xa667686a
  242. DATA_ADDR_4:
  243. .dd 0x60616263
  244. .dd 0x64656667
  245. .dd 0x68696A6B
  246. .dd 0x6C6D6E6F
  247. .dd 0x70717273
  248. .dd 0x74757677
  249. .dd 0x78797A7B
  250. .dd 0x7C7D7E7F
  251. .dd 0xEBECEDEE
  252. .dd 0xF3F4F5F6
  253. .dd 0xF7F8F9FA
  254. .dd 0xFBFCFDFE
  255. .dd 0xFF000102
  256. .dd 0x03040506
  257. .dd 0x0708090A
  258. .dd 0x0B0CAD0E
  259. .dd 0xAB0CAD01
  260. .dd 0xAB0CAD02
  261. .dd 0xAB0CAD03
  262. .dd 0xAB0CAD04
  263. .dd 0xAB0CAD05
  264. .dd 0xAB0CAD06
  265. .dd 0xAB0CAA07
  266. .dd 0xAB0CAD08
  267. .dd 0xAB0CAD09
  268. .dd 0xAB0CAD0E
  269. .dd 0xAB0CAD0E
  270. .dd 0xAB0CAD0E
  271. .dd 0xAB0CAD0E
  272. .dd 0xAB0CAD0E
  273. .dd 0xAB0CAD0E
  274. .dd 0xAB0CAD0E
  275. .dd 0xB455565B
  276. .dd 0xB859606B
  277. .dd 0xB263646B
  278. .dd 0xB667686B
  279. DATA_ADDR_5:
  280. .dd 0x8A8B8C8D
  281. .dd 0x84858687
  282. .dd 0x88898A8B
  283. .dd 0x8C8D8E8F
  284. .dd 0x90919293
  285. .dd 0x94959697
  286. .dd 0x98999A9B
  287. .dd 0x9C9D9E9F
  288. .dd 0x0F101213
  289. .dd 0x14151617
  290. .dd 0x18191A1B
  291. .dd 0x1C1D1E1F
  292. .dd 0x20212223
  293. .dd 0x24252627
  294. .dd 0x28292A2B
  295. .dd 0x2C2D2E2F
  296. .dd 0xBC0DBE21
  297. .dd 0xBC1DBE22
  298. .dd 0xBC2DBE23
  299. .dd 0xBC3DBE24
  300. .dd 0xBC4DBE65
  301. .dd 0xBC5DBE27
  302. .dd 0xBC6DBE28
  303. .dd 0xBC7DBE29
  304. .dd 0xBC8DBE2F
  305. .dd 0xBC9DBE20
  306. .dd 0xBCADBE21
  307. .dd 0xBCBDBE2F
  308. .dd 0xBCCDBE23
  309. .dd 0xBCDDBE24
  310. .dd 0xBCFDBE25
  311. .dd 0xC455565C
  312. .dd 0xC859606C
  313. .dd 0xC263646C
  314. .dd 0xC667686C
  315. .dd 0xCC0DBE2C
  316. DATA_ADDR_6:
  317. .dd 0x00010203
  318. .dd 0x04050607
  319. .dd 0x08090A0B
  320. .dd 0x0C0D0E0F
  321. .dd 0x10111213
  322. .dd 0x14151617
  323. .dd 0x18191A1B
  324. .dd 0x1C1D1E1F
  325. .dd 0x20212223
  326. .dd 0x24252627
  327. .dd 0x28292A2B
  328. .dd 0x2C2D2E2F
  329. .dd 0x30313233
  330. .dd 0x34353637
  331. .dd 0x38393A3B
  332. .dd 0x3C3D3E3F
  333. .dd 0x40414243
  334. .dd 0x44454647
  335. .dd 0x48494A4B
  336. .dd 0x4C4D4E4F
  337. .dd 0x50515253
  338. .dd 0x54555657
  339. .dd 0x58595A5B
  340. .dd 0x5C5D5E5F
  341. .dd 0x60616263
  342. .dd 0x64656667
  343. .dd 0x68696A6B
  344. .dd 0x6C6D6E6F
  345. .dd 0x70717273
  346. .dd 0x74757677
  347. .dd 0x78797A7B
  348. .dd 0x7C7D7E7F
  349. DATA_ADDR_7:
  350. .dd 0x80818283
  351. .dd 0x84858687
  352. .dd 0x88898A8B
  353. .dd 0x8C8D8E8F
  354. .dd 0x90919293
  355. .dd 0x94959697
  356. .dd 0x98999A9B
  357. .dd 0x9C9D9E9F
  358. .dd 0xA0A1A2A3
  359. .dd 0xA4A5A6A7
  360. .dd 0xA8A9AAAB
  361. .dd 0xACADAEAF
  362. .dd 0xB0B1B2B3
  363. .dd 0xB4B5B6B7
  364. .dd 0xB8B9BABB
  365. .dd 0xBCBDBEBF
  366. .dd 0xC0C1C2C3
  367. .dd 0xC4C5C6C7
  368. .dd 0xC8C9CACB
  369. .dd 0xCCCDCECF
  370. .dd 0xD0D1D2D3
  371. .dd 0xD4D5D6D7
  372. .dd 0xD8D9DADB
  373. .dd 0xDCDDDEDF
  374. .dd 0xE0E1E2E3
  375. .dd 0xE4E5E6E7
  376. .dd 0xE8E9EAEB
  377. .dd 0xECEDEEEF
  378. .dd 0xF0F1F2F3
  379. .dd 0xF4F5F6F7
  380. .dd 0xF8F9FAFB
  381. .dd 0xFCFDFEFF