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