1//Original:testcases/core/c_ldstpmod_ld_h_xh/c_ldstpmod_ld_h_xh.dsp 2// Spec Reference: c_ldstpmod load dreg h & xh 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8// set all regs 9init_i_regs 0; 10init_b_regs 0; 11init_l_regs 0; 12init_m_regs 0; 13INIT_R_REGS 0; 14I0 = P3; 15I2 = SP; 16 17// initial values 18 P1 = 0x0002; 19 P2 = 0x0002; 20 P3 = 0x0002; 21 P4 = 0x0002; 22 FP = 0x0002; 23 SP = 0x0002; 24 I1 = P3; P3 = I0; I3 = SP; SP = I2; 25 loadsym p5, DATA_ADDR_1, 0x00; 26 P3 = I1; SP = I3; 27 R0 = W [ P5 ++ P1 ] (Z); 28 R1 = W [ P5 ++ P1 ] (Z); 29 R2 = W [ P5 ++ P2 ] (Z); 30 R3 = W [ P5 ++ P3 ] (Z); 31 R4 = W [ P5 ++ P4 ] (Z); 32 R5 = W [ P5 ++ SP ] (Z); 33 R6 = W [ P5 ++ FP ] (Z); 34 CHECKREG r0, 0x0000A203; 35 CHECKREG r1, 0x00000001; 36 CHECKREG r2, 0x0000B607; 37 CHECKREG r3, 0x00009405; 38 CHECKREG r4, 0x00000A0B; 39 CHECKREG r5, 0x00000809; 40 CHECKREG r6, 0x0000CE0F; 41 42// initial values 43 P5 = 0x0002; 44 P2 = 0x0002; 45 P3 = 0x0004; 46 P4 = 0x0004; 47 FP = 0x0004; 48 SP = 0x0004; 49 I1 = P3; P3 = I0; I3 = SP; SP = I2; 50 loadsym p1, DATA_ADDR_1, 0x00; 51 P3 = I1; SP = I3; 52 R0 = W [ P1 ++ P5 ] (X); 53 R1 = W [ P1 ++ P2 ] (X); 54 R2 = W [ P1 ++ P2 ] (X); 55 R3 = W [ P1 ++ P3 ] (X); 56 R4 = W [ P1 ++ P4 ] (X); 57 R5 = W [ P1 ++ SP ] (X); 58 R6 = W [ P1 ++ FP ] (X); 59 CHECKREG r0, 0xFFFFA203; 60 CHECKREG r1, 0x00000001; 61 CHECKREG r2, 0xFFFFB607; 62 CHECKREG r3, 0xFFFF9405; 63 CHECKREG r4, 0x00000809; 64 CHECKREG r5, 0xFFFFAC0D; 65 CHECKREG r6, 0x00001011; 66 67// initial values 68 P5 = 0x0002; 69 P1 = 0x0002; 70 P3 = 0x0002; 71 P4 = 0x0004; 72 FP = 0x0006; 73 SP = 0x0002; 74 I1 = P3; P3 = I0; I3 = SP; SP = I2; 75 loadsym p2, DATA_ADDR_3, 0x06; 76 P3 = I1; SP = I3; 77 R0 = W [ P2 ++ P5 ] (Z); 78 R1 = W [ P2 ++ P1 ] (Z); 79 R2 = W [ P2 ++ P2 ] (Z); 80 R3 = W [ P2 ++ P3 ] (Z); 81 R4 = W [ P2 ++ P4 ] (Z); 82 R5 = W [ P2 ++ SP ] (Z); 83 R6 = W [ P2 ++ FP ] (Z); 84 CHECKREG r0, 0x00008445; 85 CHECKREG r1, 0x00004A4B; 86 CHECKREG r2, 0x00004849; 87 CHECKREG r3, 0x00004849; 88 CHECKREG r4, 0x00004E4F; 89 CHECKREG r5, 0x00005253; 90 CHECKREG r6, 0x00005051; 91 92// initial values 93 P5 = 0x0004; 94 P1 = 0x0002; 95 P2 = 0x0002; 96 P4 = 0x0004; 97 FP = 0x1002 (X); 98 SP = 0x0002; 99 I1 = P3; P3 = I0; I3 = SP; SP = I2; 100 loadsym i1, DATA_ADDR_1, 0x02; 101 P3 = I1; SP = I3; 102 R0 = W [ P3 ++ P5 ] (X); 103 R1 = W [ P3 ++ P1 ] (X); 104 R2 = W [ P3 ++ P2 ] (X); 105 R3 = W [ P3 ++ P3 ] (X); 106 R4 = W [ P3 ++ P4 ] (X); 107 R5 = W [ P3 ++ SP ] (X); 108 R6 = W [ P3 ++ FP ] (X); 109 CHECKREG r0, 0x00000001; 110 CHECKREG r1, 0xFFFF9405; 111 CHECKREG r2, 0x00000A0B; 112 CHECKREG r3, 0x00000809; 113 CHECKREG r4, 0x00000809; 114 CHECKREG r5, 0xFFFFAC0D; 115 CHECKREG r6, 0x00001213; 116 117// initial values 118 P5 = 0x0002; 119 P1 = 0x0002; 120 P2 = 0x0002; 121 P3 = 0x0002; 122 FP = 0x0002; 123 SP = 0x0002; 124 I1 = P3; P3 = I0; I3 = SP; SP = I2; 125 loadsym p4, DATA_ADDR_2, 0x00; 126 P3 = I1; SP = I3; 127 R0 = W [ P4 ++ P5 ] (Z); 128 R1 = W [ P4 ++ P1 ] (X); 129 R2 = W [ P4 ++ P2 ] (X); 130 R3 = W [ P4 ++ P3 ] (Z); 131 R4 = W [ P4 ++ P4 ] (Z); 132 R5 = W [ P4 ++ SP ] (X); 133 R6 = W [ P4 ++ FP ] (X); 134 CHECKREG r0, 0x00002223; 135 CHECKREG r1, 0x00002021; 136 CHECKREG r2, 0x00002627; 137 CHECKREG r3, 0x0000A425; 138 CHECKREG r4, 0x00002A2B; 139 CHECKREG r5, 0x00002A2B; 140 CHECKREG r6, 0xFFFF8829; 141 142// initial values 143 P5 = 0x0000; 144 P1 = 0x0002; 145 P2 = 0x0002; 146 P3 = 0x0002; 147 P4 = 0x0002; 148 SP = 0x0004; 149 I1 = P3; P3 = I0; I3 = SP; SP = I2; 150 loadsym fp, DATA_ADDR_1, 0x02; 151 P3 = I1; SP = I3; 152 R0 = W [ FP ++ P5 ] (X); 153 R1 = W [ FP ++ P1 ] (X); 154 R2 = W [ FP ++ P2 ] (X); 155 R3 = W [ FP ++ P3 ] (X); 156 R4 = W [ FP ++ P4 ] (Z); 157 R5 = W [ FP ++ SP ] (Z); 158 R6 = W [ FP ++ FP ] (X); 159 CHECKREG r0, 0x00000001; 160 CHECKREG r1, 0x00000001; 161 CHECKREG r2, 0xFFFFB607; 162 CHECKREG r3, 0xFFFF9405; 163 CHECKREG r4, 0x00000A0B; 164 CHECKREG r5, 0x00000809; 165 CHECKREG r6, 0xFFFFAC0D; 166 167// initial values 168 P5 = 0x0000; 169 P1 = 0x0002; 170 P2 = 0x0002; 171 P3 = 0x0002; 172 P4 = 0x0002; 173 FP = 0x0002; 174 I1 = P3; P3 = I0; I3 = SP; SP = I2; 175 loadsym i3, DATA_ADDR_1, 0x04; 176 P3 = I1; SP = I3; 177 178 R0 = W [ SP ++ P5 ] (Z); 179 R1 = W [ SP ++ P1 ] (X); 180 R2 = W [ SP ++ P2 ] (Z); 181 R3 = W [ SP ++ P3 ] (X); 182 R4 = W [ SP ++ P4 ] (Z); 183 R5 = W [ SP ++ P1 ] (X); 184 R6 = W [ SP ++ FP ] (Z); 185 CHECKREG r0, 0x0000B607; 186 CHECKREG r1, 0xFFFFB607; 187 CHECKREG r2, 0x00009405; 188 CHECKREG r3, 0x00000A0B; 189 CHECKREG r4, 0x00000809; 190 CHECKREG r5, 0xFFFFCE0F; 191 CHECKREG r6, 0x0000AC0D; 192 193 P3 = I0; SP = I2; 194 pass 195 196// Pre-load memory with known data 197// More data is defined than will actually be used 198 199 .data 200 .space (0x2000); 201 202DATA_ADDR_1: 203 .dd 0x0001a203 204 .dd 0x9405b607 205 .dd 0x08090A0B 206 .dd 0xaC0DcE0F 207 .dd 0x10111213 208 .dd 0xb415c617 209 .dd 0x18191A1B 210 .dd 0x1C1D1E1F 211 .dd 0x11223344 212 .dd 0x55667788 213 .dd 0x99717273 214 .dd 0x74757677 215 .dd 0x82838485 216 .dd 0x86878889 217 .dd 0x80818283 218 .dd 0x84858687 219 .dd 0x01020304 220 .dd 0xa5060708 221 .dd 0x09101112 222 .dd 0x14151617 223 .dd 0xc8192021 224 .dd 0x22232425 225 .dd 0x26272829 226 .dd 0xb0313233 227 .dd 0x34353637 228 .dd 0xd8394041 229 .dd 0x42434445 230 .dd 0x46474849 231 .dd 0xf0515253 232 .dd 0x54555657 233 .dd 0xe8596061 234 .dd 0x62636465 235 .dd 0xf6676869 236 .dd 0x74555657 237 .dd 0xa8596067 238 .dd 0x72636467 239 .dd 0x76676867 240 241DATA_ADDR_2: 242 .dd 0x20212223 243 .dd 0xa4252627 244 .dd 0x88292A2B 245 .dd 0x2C2D2E2F 246 .dd 0x30313233 247 .dd 0x34353637 248 .dd 0x38393A3B 249 .dd 0x3C3D3E3F 250 .dd 0x91929394 251 .dd 0x95969798 252 .dd 0x99A1A2A3 253 .dd 0xA5A6A7A8 254 .dd 0xA9B0B1B2 255 .dd 0xB3B4B5B6 256 .dd 0xB7B8B9C0 257 .dd 0x70717273 258 .dd 0x74757677 259 .dd 0x78798081 260 .dd 0x82838485 261 .dd 0x86C283C4 262 .dd 0x81C283C4 263 .dd 0x82C283C4 264 .dd 0x83C283C4 265 .dd 0x84C283C4 266 .dd 0x85C283C4 267 .dd 0x86C283C4 268 .dd 0x87C288C4 269 .dd 0x88C283C4 270 .dd 0x89C283C4 271 .dd 0x80C283C4 272 .dd 0x81C283C4 273 .dd 0x82C288C4 274 .dd 0x94555659 275 .dd 0x98596069 276 .dd 0x92636469 277 .dd 0x96676869 278 279DATA_ADDR_3: 280 .dd 0x40414243 281 .dd 0x84454647 282 .dd 0x48494A4B 283 .dd 0x9C4D4E4F 284 .dd 0x50515253 285 .dd 0xa4555657 286 .dd 0xb8595A5B 287 .dd 0xC5C6C7C8 288 .dd 0xC9CACBCD 289 .dd 0xCFD0D1D2 290 .dd 0xD3D4D5D6 291 .dd 0xD7D8D9DA 292 .dd 0xDBDCDDDE 293 .dd 0xDFE0E1E2 294 .dd 0xE3E4E5E6 295 .dd 0x91E899EA 296 .dd 0x92E899EA 297 .dd 0x93E899EA 298 .dd 0x94E899EA 299 .dd 0x95E899EA 300 .dd 0x96E899EA 301 .dd 0x97E899EA 302 .dd 0x98E899EA 303 .dd 0x99E899EA 304 .dd 0x91E899EA 305 .dd 0x92E899EA 306 .dd 0x93E899EA 307 .dd 0x94E899EA 308 .dd 0x95E899EA 309 .dd 0x96E899EA 310 .dd 0x977899EA 311 .dd 0xa455565a 312 .dd 0xa859606a 313 .dd 0xa263646a 314 .dd 0xa667686a 315 316DATA_ADDR_4: 317 .dd 0x90616263 318 .dd 0x64656667 319 .dd 0xa8696A6B 320 .dd 0x6C6D6E6F 321 .dd 0x70717273 322 .dd 0xd4757677 323 .dd 0x78797A7B 324 .dd 0x7C7D7E7F 325 .dd 0xEBECEDEE 326 .dd 0xF3F4F5F6 327 .dd 0xF7F8F9FA 328 .dd 0xFBFCFDFE 329 .dd 0xFF000102 330 .dd 0x03040506 331 .dd 0x0708090A 332 .dd 0x0B0CAD0E 333 .dd 0xAB0CAD01 334 .dd 0xAB0CAD02 335 .dd 0xAB0CAD03 336 .dd 0xAB0CAD04 337 .dd 0xAB0CAD05 338 .dd 0xAB0CAD06 339 .dd 0xAB0CAA07 340 .dd 0xAB0CAD08 341 .dd 0xAB0CAD09 342 .dd 0xA00CAD1E 343 .dd 0xA10CAD2E 344 .dd 0xA20CAD3E 345 .dd 0xA30CAD4E 346 .dd 0xA40CAD5E 347 .dd 0xA50CAD6E 348 .dd 0xA60CAD7E 349 .dd 0xB455565B 350 .dd 0xB859606B 351 .dd 0xB263646B 352 .dd 0xB667686B 353 354DATA_ADDR_5: 355 .dd 0x80818283 356 .dd 0x84858687 357 .dd 0x08898A8B 358 .dd 0x8C8D8E8F 359 .dd 0x90919293 360 .dd 0x54959697 361 .dd 0x98999A9B 362 .dd 0x9C9D9E9F 363 .dd 0x0F101213 364 .dd 0x14151617 365 .dd 0x18191A1B 366 .dd 0x1C1D1E1F 367 .dd 0x20212223 368 .dd 0x24252627 369 .dd 0x28292A2B 370 .dd 0x2C2D2E2F 371 .dd 0xBC0DBE21 372 .dd 0xBC1DBE22 373 .dd 0xBC2DBE23 374 .dd 0xBC3DBE24 375 .dd 0xBC4DBE65 376 .dd 0xBC5DBE27 377 .dd 0xBC6DBE28 378 .dd 0xBC7DBE29 379 .dd 0xBC8DBE2F 380 .dd 0xBC9DBE20 381 .dd 0xBCADBE21 382 .dd 0xBCBDBE2F 383 .dd 0xBCCDBE23 384 .dd 0xBCDDBE24 385 .dd 0xBCFDBE25 386 .dd 0xC455565C 387 .dd 0xC859606C 388 .dd 0xC263646C 389 .dd 0xC667686C 390 .dd 0xCC0DBE2C 391 392DATA_ADDR_6: 393 .dd 0x00010203 394 .dd 0xa4050607 395 .dd 0x08090A0B 396 .dd 0xfC0D0E0F 397 .dd 0x10111213 398 .dd 0x14151617 399 .dd 0x98191A1B 400 .dd 0x1C1D1E1F 401 .dd 0x20212223 402 .dd 0x74252627 403 .dd 0x28292A2B 404 .dd 0x8C2D2E2F 405 .dd 0x30313233 406 .dd 0x34353637 407 .dd 0x98393A3B 408 .dd 0x3C3D3E3F 409 .dd 0xb0414243 410 .dd 0x44454647 411 .dd 0x48494A4B 412 .dd 0xdC4D4E4F 413 .dd 0x50515253 414 .dd 0x94555657 415 .dd 0x58595A5B 416 .dd 0x5C5D5E5F 417 .dd 0xf0616263 418 .dd 0xf4656667 419 .dd 0xf8696A6B 420 .dd 0x6C6D6E6F 421 .dd 0x70717273 422 .dd 0x74757677 423 .dd 0x78797A7B 424 .dd 0x7C7D7E7F 425 426DATA_ADDR_7: 427 .dd 0x80818283 428 .dd 0x84858687 429 .dd 0x88898A8B 430 .dd 0x8C8D8E8F 431 .dd 0x10919293 432 .dd 0x24959697 433 .dd 0x38999A9B 434 .dd 0x9C9D9E9F 435 .dd 0xA0A1A2A3 436 .dd 0x54A5A6A7 437 .dd 0x68A9AAAB 438 .dd 0x7CADAEAF 439 .dd 0xB0B1B2B3 440 .dd 0x84B5B6B7 441 .dd 0xB8B9BABB 442 .dd 0x4CBDBEBF 443 .dd 0xC0C1C2C3 444 .dd 0x34C5C6C7 445 .dd 0xC8C9CACB 446 .dd 0xCCCDCECF 447 .dd 0x20D1D2D3 448 .dd 0xD4D5D6D7 449 .dd 0x18D9DADB 450 .dd 0xDCDDDEDF 451 .dd 0x00E1E2E3 452 .dd 0xE4E5E6E7 453 .dd 0x18E9EAEB 454 .dd 0xECEDEEEF 455 .dd 0xF0F1F2F3 456 .dd 0xF4F5F6F7 457 .dd 0xF8F9FAFB 458 .dd 0xFCFDFEFF 459