| //Original:/testcases/core/c_loopsetup_nested_prelc/c_loopsetup_nested_prelc.dsp | |
| // Spec Reference: loopsetup nested preload lc0 lc1 | |
| # mach: bfin | |
| .include "testutils.inc" | |
| start | |
| INIT_R_REGS 0; | |
| ASTAT = r0; | |
| //p0 = 2; | |
| P1 = 3; | |
| P2 = 4; | |
| P3 = 5; | |
| P4 = 6; | |
| P5 = 7; | |
| SP = 8; | |
| FP = 9; | |
| R0 = 0x05; | |
| R1 = 0x10; | |
| R2 = 0x12; | |
| R3 = 0x14; | |
| R4 = 0x18; | |
| R5 = 0x16; | |
| R6 = 0x16; | |
| R7 = 0x18; | |
| LC0 = R0; | |
| LC1 = R1; | |
| LSETUP ( start1 , end1 ) LC0; | |
| start1: R0 += 1; | |
| R1 += -2; | |
| LSETUP ( start2 , end2 ) LC1; | |
| start2: R4 += 4; | |
| end2: R5 += -5; | |
| R3 += 1; | |
| end1: R2 += 3; | |
| R3 += 4; | |
| LC0 = R7; | |
| LC1 = R6; | |
| LSETUP ( start3 , end3 ) LC0; | |
| start3: R6 += 6; | |
| LSETUP ( start4 , end4 ) LC1; | |
| start4: R0 += 1; | |
| R1 += -2; | |
| end4: R2 += 3; | |
| R3 += 4; | |
| end3: R7 += -7; | |
| R3 += 1; | |
| CHECKREG r0, 0x00000037; | |
| CHECKREG r1, 0xFFFFFFAC; | |
| CHECKREG r2, 0x000000A8; | |
| CHECKREG r3, 0x0000007E; | |
| CHECKREG r4, 0x00000068; | |
| CHECKREG r5, 0xFFFFFFB2; | |
| CHECKREG r6, 0x000000A6; | |
| CHECKREG r7, 0xFFFFFF70; | |
| R0 = 0x05; | |
| R1 = 0x10; | |
| R2 = 0x08; | |
| R3 = 0x0C; | |
| R4 = 0x40 (X); | |
| R5 = 0x50 (X); | |
| R6 = 0x60 (X); | |
| R7 = 0x70 (X); | |
| LC0 = R2; | |
| LC1 = R3; | |
| LSETUP ( start5 , end5 ) LC0; | |
| start5: R4 += 1; | |
| LSETUP ( start6 , end6 ) LC1; | |
| start6: R6 += 4; | |
| end6: R7 += -5; | |
| R3 += 6; | |
| end5: R5 += -2; | |
| R3 += 3; | |
| CHECKREG r0, 0x00000005; | |
| CHECKREG r1, 0x00000010; | |
| CHECKREG r2, 0x00000008; | |
| CHECKREG r3, 0x0000003F; | |
| CHECKREG r4, 0x00000048; | |
| CHECKREG r5, 0x00000040; | |
| CHECKREG r6, 0x000000AC; | |
| CHECKREG r7, 0x00000011; | |
| LSETUP ( start7 , end7 ) LC0; | |
| start7: R4 += 4; | |
| end7: R5 += -5; | |
| R3 += 6; | |
| CHECKREG r0, 0x00000005; | |
| CHECKREG r1, 0x00000010; | |
| CHECKREG r2, 0x00000008; | |
| CHECKREG r3, 0x00000045; | |
| CHECKREG r4, 0x0000004C; | |
| CHECKREG r5, 0x0000003B; | |
| CHECKREG r6, 0x000000AC; | |
| CHECKREG r7, 0x00000011; | |
| P1 = 12; | |
| P2 = 14; | |
| P3 = 16; | |
| P4 = 18; | |
| P5 = 12; | |
| SP = 14; | |
| FP = 16; | |
| R0 = 0x05; | |
| R1 = 0x10; | |
| R2 = 0x14; | |
| R3 = 0x18; | |
| R4 = 0x16; | |
| R5 = 0x04; | |
| R6 = 0x30; | |
| R7 = 0x30; | |
| LC0 = R5; | |
| LC1 = R4; | |
| LSETUP ( start11 , end11 ) LC0; | |
| start11: R0 += 1; | |
| R1 += -1; | |
| LSETUP ( start15 , end15 ) LC1; | |
| start15: R4 += 1; | |
| end15: R5 += -1; | |
| R3 += 1; | |
| end11: R2 += 1; | |
| R3 += 1; | |
| LSETUP ( start13 , end13 ) LC0 = P5; | |
| start13: R6 += 1; | |
| LSETUP ( start12 , end12 ) LC1 = P2; | |
| start12: R4 += 1; | |
| end12: R5 += -1; | |
| R3 += 1; | |
| end13: R7 += -1; | |
| R3 += 1; | |
| CHECKREG r0, 0x00000009; | |
| CHECKREG r1, 0x0000000C; | |
| CHECKREG r2, 0x00000018; | |
| CHECKREG r3, 0x0000002A; | |
| CHECKREG r4, 0x000000D7; | |
| CHECKREG r5, 0xFFFFFF43; | |
| CHECKREG r6, 0x0000003C; | |
| CHECKREG r7, 0x00000024; | |
| R0 = 0x05; | |
| R1 = 0x10; | |
| R2 = 0x20; | |
| R3 = 0x30; | |
| R4 = 0x40 (X); | |
| R5 = 0x50 (X); | |
| R6 = 0x14; | |
| R7 = 0x08; | |
| P4 = 6; | |
| FP = 8; | |
| LC0 = R6; | |
| LC1 = R7; | |
| LSETUP ( start14 , end14 ) LC0 = P4; | |
| start14: R0 += 1; | |
| R1 += -1; | |
| LSETUP ( start16 , end16 ) LC1; | |
| start16: R6 += 1; | |
| end16: R7 += -1; | |
| R3 += 1; | |
| LSETUP ( start17 , end17 ) LC1 = FP >> 1; | |
| start17: R4 += 1; | |
| end17: R5 += -1; | |
| R3 += 1; | |
| end14: R2 += 1; | |
| R3 += 1; | |
| CHECKREG r0, 0x0000000B; | |
| CHECKREG r1, 0x0000000A; | |
| CHECKREG r2, 0x00000026; | |
| CHECKREG r3, 0x0000003D; | |
| CHECKREG r4, 0x00000058; | |
| CHECKREG r5, 0x00000038; | |
| CHECKREG r6, 0x00000021; | |
| CHECKREG r7, 0xFFFFFFFB; | |
| pass |