1//Original:testcases/core/c_ldst_st_p_d_mm/c_ldst_st_p_d_mm.dsp 2// Spec Reference: c_ldst st_p++/p-- 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8// set all regs 9INIT_I_REGS -1; 10init_b_regs 0; 11init_l_regs 0; 12init_m_regs -1; 13I0 = P3; 14I2 = SP; 15 16 imm32 r0, 0x0a231507; 17 imm32 r1, 0x1b342618; 18 imm32 r2, 0x2c453729; 19 imm32 r3, 0x3d56483a; 20 imm32 r4, 0x4e67594b; 21 imm32 r5, 0x5f786a5c; 22 imm32 r6, 0x60897b6d; 23 imm32 r7, 0x719a8c7e; 24 25// initial values 26 I1 = P3; P3 = I0; I3 = SP; SP = I2; 27 loadsym p5, DATA_ADDR_1; 28 loadsym p1, DATA_ADDR_2; 29 loadsym p2, DATA_ADDR_3; 30 loadsym i1, DATA_ADDR_4; 31 loadsym p4, DATA_ADDR_5; 32 loadsym fp, DATA_ADDR_6; 33 loadsym i3, DATA_ADDR_7; 34 P3 = I1; SP = I3; 35 36 [ P5 ++ ] = R0; 37 [ P1 ++ ] = R1; 38 [ P2 ++ ] = R2; 39 [ P3 ++ ] = R3; 40 [ P4 ++ ] = R4; 41 [ FP ++ ] = R5; 42 [ SP ++ ] = R6; 43 44 [ P5 ++ ] = R2; 45 [ P1 ++ ] = R3; 46 [ P2 ++ ] = R4; 47 [ P3 ++ ] = R5; 48 [ P4 ++ ] = R6; 49 [ FP ++ ] = R7; 50 [ SP ++ ] = R0; 51 52 [ P5 ++ ] = R5; 53 [ P1 ++ ] = R6; 54 [ P2 ++ ] = R7; 55 [ P3 ++ ] = R0; 56 [ P4 ++ ] = R1; 57 [ FP ++ ] = R2; 58 [ SP ++ ] = R3; 59 60 [ P5 ++ ] = R7; 61 [ P1 ++ ] = R0; 62 [ P2 ++ ] = R1; 63 [ P3 ++ ] = R2; 64 [ P4 ++ ] = R3; 65 [ FP ++ ] = R4; 66 [ SP ++ ] = R5; 67 68 I1 = P3; P3 = I0; I3 = SP; SP = I2; 69 loadsym p5, DATA_ADDR_1; 70 loadsym p1, DATA_ADDR_2; 71 loadsym p2, DATA_ADDR_3; 72 loadsym i1, DATA_ADDR_4; 73 loadsym p4, DATA_ADDR_5; 74 loadsym fp, DATA_ADDR_6; 75 loadsym i3, DATA_ADDR_7; 76 P3 = I1; SP = I3; 77 78 R0 = [ P1 ++ ]; 79 R1 = [ P2 ++ ]; 80 R2 = [ P3 ++ ]; 81 R3 = [ P4 ++ ]; 82 R4 = [ P5 ++ ]; 83 R5 = [ FP ++ ]; 84 R6 = [ SP ++ ]; 85 CHECKREG r0, 0x1B342618; 86 CHECKREG r1, 0x2C453729; 87 CHECKREG r2, 0x3D56483A; 88 CHECKREG r3, 0x4E67594B; 89 CHECKREG r4, 0x0A231507; 90 CHECKREG r5, 0x5F786A5C; 91 CHECKREG r6, 0x60897B6D; 92 CHECKREG r7, 0x719A8C7E; 93 R0 = [ P1 ++ ]; 94 R1 = [ P2 ++ ]; 95 R2 = [ P3 ++ ]; 96 R3 = [ P4 ++ ]; 97 R4 = [ P5 ++ ]; 98 R5 = [ FP ++ ]; 99 R6 = [ SP ++ ]; 100 CHECKREG r0, 0x3D56483A; 101 CHECKREG r1, 0x4E67594B; 102 CHECKREG r2, 0x5F786A5C; 103 CHECKREG r3, 0x60897B6D; 104 CHECKREG r4, 0x2C453729; 105 CHECKREG r5, 0x719A8C7E; 106 CHECKREG r6, 0x0A231507; 107 CHECKREG r7, 0x719A8C7E; 108 R1 = [ P1 ++ ]; 109 R2 = [ P2 ++ ]; 110 R3 = [ P3 ++ ]; 111 R4 = [ P4 ++ ]; 112 R5 = [ P5 ++ ]; 113 R6 = [ FP ++ ]; 114 R7 = [ SP ++ ]; 115 CHECKREG r0, 0x3D56483A; 116 CHECKREG r1, 0x60897B6D; 117 CHECKREG r2, 0x719A8C7E; 118 CHECKREG r3, 0x0A231507; 119 CHECKREG r4, 0x1B342618; 120 CHECKREG r5, 0x5F786A5C; 121 CHECKREG r6, 0x2C453729; 122 CHECKREG r7, 0x3D56483A; 123 R3 = [ P1 ++ ]; 124 R4 = [ P2 ++ ]; 125 R5 = [ P3 ++ ]; 126 R6 = [ P4 ++ ]; 127 R7 = [ P5 ++ ]; 128 R0 = [ FP ++ ]; 129 R1 = [ SP ++ ]; 130 CHECKREG r0, 0x4E67594B; 131 CHECKREG r1, 0x5F786A5C; 132 CHECKREG r2, 0x719A8C7E; 133 CHECKREG r3, 0x0A231507; 134 CHECKREG r4, 0x1B342618; 135 CHECKREG r5, 0x2C453729; 136 CHECKREG r6, 0x3D56483A; 137 CHECKREG r7, 0x719A8C7E; 138 139// reset values 140 I1 = P3; P3 = I0; I3 = SP; SP = I2; 141 loadsym p5, DATA_ADDR_1, 0x20; 142 loadsym p1, DATA_ADDR_2, 0x20; 143 loadsym p2, DATA_ADDR_3, 0x20; 144 loadsym i1, DATA_ADDR_4, 0x20; 145 loadsym p4, DATA_ADDR_5, 0x20; 146 loadsym fp, DATA_ADDR_6, 0x20; 147 loadsym i3, DATA_ADDR_7, 0x20; 148 P3 = I1; SP = I3; 149 150 [ P5 -- ] = R0; 151 [ P1 -- ] = R1; 152 [ P2 -- ] = R2; 153 [ P3 -- ] = R3; 154 [ P4 -- ] = R4; 155 [ FP -- ] = R5; 156 [ SP -- ] = R6; 157 158 [ P5 -- ] = R2; 159 [ P1 -- ] = R3; 160 [ P2 -- ] = R4; 161 [ P3 -- ] = R5; 162 [ P4 -- ] = R6; 163 [ FP -- ] = R7; 164 [ SP -- ] = R0; 165 166 [ P5 -- ] = R5; 167 [ P1 -- ] = R6; 168 [ P2 -- ] = R7; 169 [ P3 -- ] = R0; 170 [ P4 -- ] = R1; 171 [ FP -- ] = R2; 172 [ SP -- ] = R3; 173 174 [ P5 -- ] = R6; 175 [ P1 -- ] = R7; 176 [ P2 -- ] = R0; 177 [ P3 -- ] = R1; 178 [ P4 -- ] = R2; 179 [ FP -- ] = R3; 180 [ SP -- ] = R4; 181 [ P1 -- ] = R0; 182 [ P2 -- ] = R1; 183 [ P3 -- ] = R2; 184 [ P4 -- ] = R3; 185 [ FP -- ] = R4; 186 [ SP -- ] = R5; 187 188 I1 = P3; P3 = I0; I3 = SP; SP = I2; 189 loadsym p5, DATA_ADDR_1, 0x20; 190 loadsym p1, DATA_ADDR_2, 0x20; 191 loadsym p2, DATA_ADDR_3, 0x20; 192 loadsym i1, DATA_ADDR_4, 0x20; 193 loadsym p4, DATA_ADDR_5, 0x20; 194 loadsym fp, DATA_ADDR_6, 0x20; 195 loadsym i3, DATA_ADDR_7, 0x20; 196 P3 = I1; SP = I3; 197 198 R0 = [ P1 -- ]; 199 R1 = [ P2 -- ]; 200 R2 = [ P3 -- ]; 201 R3 = [ P4 -- ]; 202 R4 = [ P5 -- ]; 203 R5 = [ FP -- ]; 204 R6 = [ SP -- ]; 205 CHECKREG r0, 0x5F786A5C; 206 CHECKREG r1, 0x719A8C7E; 207 CHECKREG r2, 0x0A231507; 208 CHECKREG r3, 0x1B342618; 209 CHECKREG r4, 0x4E67594B; 210 CHECKREG r5, 0x2C453729; 211 CHECKREG r6, 0x3D56483A; 212 CHECKREG r7, 0x719A8C7E; 213 R2 = [ P1 -- ]; 214 R3 = [ P2 -- ]; 215 R4 = [ P3 -- ]; 216 R5 = [ P4 -- ]; 217 R6 = [ P5 -- ]; 218 R7 = [ FP -- ]; 219 R0 = [ SP -- ]; 220 CHECKREG r0, 0x4E67594B; 221 CHECKREG r1, 0x719A8C7E; 222 CHECKREG r2, 0x0A231507; 223 CHECKREG r3, 0x1B342618; 224 CHECKREG r4, 0x2C453729; 225 CHECKREG r5, 0x3D56483A; 226 CHECKREG r6, 0x719A8C7E; 227 R3 = [ P1 -- ]; 228 R4 = [ P2 -- ]; 229 R5 = [ P3 -- ]; 230 R6 = [ P4 -- ]; 231 R7 = [ P5 -- ]; 232 R0 = [ FP -- ]; 233 R1 = [ SP -- ]; 234 CHECKREG r0, 0x719A8C7E; 235 CHECKREG r1, 0x0A231507; 236 CHECKREG r2, 0x0A231507; 237 CHECKREG r3, 0x3D56483A; 238 CHECKREG r4, 0x719A8C7E; 239 CHECKREG r5, 0x4E67594B; 240 CHECKREG r6, 0x5F786A5C; 241 CHECKREG r7, 0x2C453729; 242 R5 = [ P1 -- ]; 243 R6 = [ P2 -- ]; 244 R7 = [ P3 -- ]; 245 R0 = [ P4 -- ]; 246 R1 = [ P5 -- ]; 247 R2 = [ FP -- ]; 248 R3 = [ SP -- ]; 249 CHECKREG r0, 0x719A8C7E; 250 CHECKREG r1, 0x3D56483A; 251 CHECKREG r2, 0x0A231507; 252 CHECKREG r3, 0x1B342618; 253 CHECKREG r4, 0x719A8C7E; 254 CHECKREG r5, 0x719A8C7E; 255 CHECKREG r6, 0x4E67594B; 256 257 P3 = I0; SP = I2; 258 pass 259 260// Pre-load memory with known data 261// More data is defined than will actually be used 262 263 .data 264DATA_ADDR_1: 265 .dd 0x00010203 266 .dd 0x04050607 267 .dd 0x08090A0B 268 .dd 0x0C0D0E0F 269 .dd 0x10111213 270 .dd 0x14151617 271 .dd 0x18191A1B 272 .dd 0x1C1D1E1F 273 .dd 0x00000000 274 .dd 0x00000000 275 .dd 0x00000000 276 .dd 0x00000000 277 .dd 0x00000000 278 .dd 0x00000000 279 .dd 0x00000000 280 .dd 0x00000000 281 .dd 0x00000000 282 .dd 0x00000000 283 .dd 0x00000000 284 .dd 0x00000000 285 .dd 0x00000000 286 .dd 0x00000000 287 .dd 0x00000000 288 .dd 0x00000000 289 .dd 0x00000000 290 .dd 0x00000000 291 .dd 0x00000000 292 .dd 0x00000000 293 .dd 0x00000000 294 .dd 0x00000000 295 .dd 0x00000000 296 .dd 0x00000000 297 .dd 0x00000000 298 .dd 0x00000000 299 .dd 0x00000000 300 .dd 0x00000000 301 .dd 0x00000000 302 .dd 0x00000000 303 .dd 0x00000000 304 305DATA_ADDR_2: 306 .dd 0x20212223 307 .dd 0x24252627 308 .dd 0x28292A2B 309 .dd 0x2C2D2E2F 310 .dd 0x30313233 311 .dd 0x34353637 312 .dd 0x38393A3B 313 .dd 0x3C3D3E3F 314 .dd 0x00000000 315 .dd 0x00000000 316 .dd 0x00000000 317 .dd 0x00000000 318 .dd 0x00000000 319 .dd 0x00000000 320 .dd 0x00000000 321 .dd 0x00000000 322 .dd 0x00000000 323 .dd 0x00000000 324 .dd 0x00000000 325 .dd 0x00000000 326 .dd 0x00000000 327 .dd 0x00000000 328 .dd 0x00000000 329 .dd 0x00000000 330 .dd 0x00000000 331 .dd 0x00000000 332 .dd 0x00000000 333 .dd 0x00000000 334 .dd 0x00000000 335 .dd 0x00000000 336 .dd 0x00000000 337 .dd 0x00000000 338 .dd 0x00000000 339 .dd 0x00000000 340 .dd 0x00000000 341 .dd 0x00000000 342 .dd 0x00000000 343 .dd 0x00000000 344 345DATA_ADDR_3: 346 .dd 0x40414243 347 .dd 0x44454647 348 .dd 0x48494A4B 349 .dd 0x4C4D4E4F 350 .dd 0x50515253 351 .dd 0x54555657 352 .dd 0x58595A5B 353 .dd 0x5C5D5E5F 354 .dd 0x00000000 355 .dd 0x00000000 356 .dd 0x00000000 357 .dd 0x00000000 358 .dd 0x00000000 359 .dd 0x00000000 360 .dd 0x00000000 361 .dd 0x00000000 362 .dd 0x00000000 363 .dd 0x00000000 364 .dd 0x00000000 365 .dd 0x00000000 366 .dd 0x00000000 367 .dd 0x00000000 368 .dd 0x00000000 369 .dd 0x00000000 370 .dd 0x00000000 371 .dd 0x00000000 372 .dd 0x00000000 373 .dd 0x00000000 374 .dd 0x00000000 375 .dd 0x00000000 376 .dd 0x00000000 377 .dd 0x00000000 378 .dd 0x00000000 379 .dd 0x00000000 380 .dd 0x00000000 381 .dd 0x00000000 382 .dd 0x00000000 383 .dd 0x00000000 384 .dd 0x00000000 385 .dd 0x00000000 386 .dd 0x00000000 387 .dd 0x00000000 388 .dd 0x00000000 389 .dd 0x00000000 390 .dd 0x00000000 391 .dd 0x00000000 392 .dd 0x00000000 393 .dd 0x00000000 394 395DATA_ADDR_4: 396 .dd 0x60616263 397 .dd 0x64656667 398 .dd 0x68696A6B 399 .dd 0x6C6D6E6F 400 .dd 0x70717273 401 .dd 0x74757677 402 .dd 0x78797A7B 403 .dd 0x7C7D7E7F 404 .dd 0x00000000 405 .dd 0x00000000 406 .dd 0x00000000 407 .dd 0x00000000 408 .dd 0x00000000 409 .dd 0x00000000 410 .dd 0x00000000 411 .dd 0x00000000 412 .dd 0x00000000 413 .dd 0x00000000 414 .dd 0x00000000 415 .dd 0x00000000 416 .dd 0x00000000 417 .dd 0x00000000 418 .dd 0x00000000 419 .dd 0x00000000 420 .dd 0x00000000 421 .dd 0x00000000 422 .dd 0x00000000 423 .dd 0x00000000 424 .dd 0x00000000 425 .dd 0x00000000 426 .dd 0x00000000 427 .dd 0x00000000 428 .dd 0x00000000 429 .dd 0x00000000 430 .dd 0x00000000 431 .dd 0x00000000 432 .dd 0x00000000 433 .dd 0x00000000 434 .dd 0x00000000 435 .dd 0x00000000 436 .dd 0x00000000 437 .dd 0x00000000 438 .dd 0x00000000 439 .dd 0x00000000 440 .dd 0x00000000 441 .dd 0x00000000 442 .dd 0x00000000 443 .dd 0x00000000 444 445DATA_ADDR_5: 446 .dd 0x80818283 447 .dd 0x84858687 448 .dd 0x88898A8B 449 .dd 0x8C8D8E8F 450 .dd 0x90919293 451 .dd 0x94959697 452 .dd 0x98999A9B 453 .dd 0x9C9D9E9F 454 .dd 0x00000000 455 .dd 0x00000000 456 .dd 0x00000000 457 .dd 0x00000000 458 .dd 0x00000000 459 .dd 0x00000000 460 .dd 0x00000000 461 .dd 0x00000000 462 .dd 0x00000000 463 .dd 0x00000000 464 .dd 0x00000000 465 .dd 0x00000000 466 .dd 0x00000000 467 .dd 0x00000000 468 .dd 0x00000000 469 .dd 0x00000000 470 .dd 0x00000000 471 .dd 0x00000000 472 .dd 0x00000000 473 .dd 0x00000000 474 .dd 0x00000000 475 .dd 0x00000000 476 .dd 0x00000000 477 .dd 0x00000000 478 .dd 0x00000000 479 .dd 0x00000000 480 .dd 0x00000000 481 .dd 0x00000000 482 .dd 0x00000000 483 .dd 0x00000000 484 .dd 0x00000000 485 .dd 0x00000000 486 .dd 0x00000000 487 .dd 0x00000000 488 .dd 0x00000000 489 .dd 0x00000000 490 .dd 0x00000000 491 .dd 0x00000000 492 .dd 0x00000000 493 .dd 0x00000000 494 495DATA_ADDR_6: 496 .dd 0xA0A1A2A3 497 .dd 0xA4A5A6A7 498 .dd 0xA8A9AAAB 499 .dd 0xACADAEAF 500 .dd 0xB0B1B2B3 501 .dd 0xB4B5B6B7 502 .dd 0xB8B9BABB 503 .dd 0xBCBDBEBF 504 .dd 0x00000000 505 .dd 0x00000000 506 .dd 0x00000000 507 .dd 0x00000000 508 .dd 0x00000000 509 .dd 0x00000000 510 .dd 0x00000000 511 .dd 0x00000000 512 .dd 0x00000000 513 .dd 0x00000000 514 .dd 0x00000000 515 .dd 0x00000000 516 .dd 0x00000000 517 .dd 0x00000000 518 .dd 0x00000000 519 .dd 0x00000000 520 .dd 0x00000000 521 .dd 0x00000000 522 .dd 0x00000000 523 .dd 0x00000000 524 .dd 0x00000000 525 .dd 0x00000000 526 .dd 0x00000000 527 .dd 0x00000000 528 .dd 0x00000000 529 .dd 0x00000000 530 .dd 0x00000000 531 .dd 0x00000000 532 .dd 0x00000000 533 .dd 0x00000000 534 .dd 0x00000000 535 .dd 0x00000000 536 .dd 0x00000000 537 .dd 0x00000000 538 .dd 0x00000000 539 .dd 0x00000000 540 .dd 0x00000000 541 .dd 0x00000000 542 .dd 0x00000000 543 .dd 0x00000000 544 545DATA_ADDR_7: 546 .dd 0xC0C1C2C3 547 .dd 0xC4C5C6C7 548 .dd 0xC8C9CACB 549 .dd 0xCCCDCECF 550 .dd 0xD0D1D2D3 551 .dd 0xD4D5D6D7 552 .dd 0xD8D9DADB 553 .dd 0xDCDDDEDF 554 .dd 0xE0E1E2E3 555 .dd 0xE4E5E6E7 556 .dd 0xE8E9EAEB 557 .dd 0xECEDEEEF 558 .dd 0xF0F1F2F3 559 .dd 0xF4F5F6F7 560 .dd 0xF8F9FAFB 561 .dd 0xFCFDFEFF 562 .dd 0x00000000 563 .dd 0x00000000 564 .dd 0x00000000 565 .dd 0x00000000 566 .dd 0x00000000 567 .dd 0x00000000 568 .dd 0x00000000 569 .dd 0x00000000 570 .dd 0x00000000 571 .dd 0x00000000 572 .dd 0x00000000 573 .dd 0x00000000 574 .dd 0x00000000 575 .dd 0x00000000 576 .dd 0x00000000 577 .dd 0x00000000 578 .dd 0x00000000 579 .dd 0x00000000 580 .dd 0x00000000 581 .dd 0x00000000 582 .dd 0x00000000 583 .dd 0x00000000 584 .dd 0x00000000 585 .dd 0x00000000 586 .dd 0x00000000 587 .dd 0x00000000 588 .dd 0x00000000 589 .dd 0x00000000 590 .dd 0x00000000 591 .dd 0x00000000 592 .dd 0x00000000 593 .dd 0x00000000 594 .dd 0x00000000 595 .dd 0x00000000 596 .dd 0x00000000 597 .dd 0x00000000 598 .dd 0x00000000 599 .dd 0x00000000 600 .dd 0x00000000 601 .dd 0x00000000 602