1//Original:/testcases/core/c_loopsetup_nested_bot/c_loopsetup_nested_bot.dsp 2// Spec Reference: loopsetup nested same bottom 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9INIT_R_REGS 0; 10ASTAT = r0; 11 12//p0 = 2; 13P1 = 2; 14P2 = 4; 15P3 = 6; 16P4 = 8; 17P5 = 10; 18SP = 12; 19FP = 14; 20 21R0 = 0x05; 22R1 = 0x10; 23R2 = 0x20; 24R3 = 0x32; 25R4 = 0x46 (X); 26R5 = 0x50 (X); 27R6 = 0x68 (X); 28R7 = 0x72 (X); 29LSETUP ( start1 , end1 ) LC0 = P1; 30start1: R0 += 1; 31 R1 += -2; 32LSETUP ( start2 , end2 ) LC1 = P2; 33start2: R4 += 4; 34end2: R5 += -5; 35 R3 += 1; 36end1: R2 += 3; 37 R3 += 4; 38LSETUP ( start3 , end3 ) LC1 = P3; 39start3: R6 += 6; 40LSETUP ( start4 , end3 ) LC0 = P4 >> 1; 41start4: R0 += 1; 42 R1 += -2; 43end4: R2 += 3; 44 R3 += 4; 45end3: R7 += -7; 46 R3 += 1; 47CHECKREG r0, 0x00000010; 48CHECKREG r1, 0xFFFFFFFA; 49CHECKREG r2, 0x00000041; 50CHECKREG r3, 0x0000005D; 51CHECKREG r4, 0x00000066; 52CHECKREG r5, 0x00000028; 53CHECKREG r6, 0x0000008C; 54CHECKREG r7, 0x00000033; 55 56R0 = 0x05; 57R1 = 0x10; 58R2 = 0x14; 59R3 = 0x18; 60R4 = 0x20; 61R5 = 0x12; 62R6 = 0x24; 63R7 = 0x16; 64LSETUP ( start5 , end5 ) LC0 = P5; 65start5: R4 += 1; 66LSETUP ( start6 , end5 ) LC1 = SP >> 1; 67start6: R6 += 4; 68end6: R7 += -5; 69 R3 += 6; 70end5: R5 += -2; 71 R3 += 3; 72CHECKREG r0, 0x00000005; 73CHECKREG r1, 0x00000010; 74CHECKREG r2, 0x00000014; 75CHECKREG r3, 0x00000183; 76CHECKREG r4, 0x0000002A; 77CHECKREG r5, 0xFFFFFF9A; 78CHECKREG r6, 0x00000114; 79CHECKREG r7, 0xFFFFFEEA; 80LSETUP ( start7 , end7 ) LC0 = FP; 81start7: R4 += 4; 82end7: R5 += -5; 83 R3 += 6; 84CHECKREG r0, 0x00000005; 85CHECKREG r1, 0x00000010; 86CHECKREG r2, 0x00000014; 87CHECKREG r3, 0x00000189; 88CHECKREG r4, 0x00000062; 89CHECKREG r5, 0xFFFFFF54; 90CHECKREG r6, 0x00000114; 91CHECKREG r7, 0xFFFFFEEA; 92 93P1 = 04; 94P2 = 08; 95P3 = 10; 96P4 = 12; 97P5 = 14; 98SP = 16; 99FP = 18; 100 101R0 = 0x05; 102R1 = 0x10; 103R2 = 0x12; 104R3 = 0x20; 105R4 = 0x18; 106R5 = 0x14; 107R6 = 0x16; 108R7 = 0x28; 109LSETUP ( start11 , end11 ) LC0 = P5; 110start11: R0 += 1; 111 R1 += -1; 112LSETUP ( start15 , end15 ) LC1 = P1; 113start15: R4 += 1; 114end15: R5 += -1; 115 R3 += 1; 116end11: R2 += 1; 117 R3 += 1; 118LSETUP ( start13 , end12 ) LC0 = P2; 119start13: R6 += 1; 120LSETUP ( start12 , end12 ) LC1 = P3; 121start12: R4 += 1; 122end12: R5 += -1; 123 R3 += 1; 124end13: R7 += -1; 125 R3 += 1; 126CHECKREG r0, 0x00000013; 127CHECKREG r1, 0x00000002; 128CHECKREG r2, 0x00000020; 129CHECKREG r3, 0x00000031; 130CHECKREG r4, 0x0000005A; 131CHECKREG r5, 0xFFFFFFD2; 132CHECKREG r6, 0x00000017; 133CHECKREG r7, 0x00000027; 134 135R0 = 0x05; 136R1 = 0x08; 137R2 = 0x12; 138R3 = 0x24; 139R4 = 0x18; 140R5 = 0x20; 141R6 = 0x32; 142R7 = 0x46 (X); 143LSETUP ( start14 , end14 ) LC0 = P4; 144start14: R0 += 1; 145 R1 += -1; 146LSETUP ( start16 , end16 ) LC1 = SP; 147start16: R6 += 1; 148end16: R7 += -1; 149 R3 += 1; 150LSETUP ( start17 , end14 ) LC1 = FP >> 1; 151start17: R4 += 1; 152end17: R5 += -1; 153 R3 += 1; 154end14: R2 += 1; 155 R3 += 1; 156CHECKREG r0, 0x00000011; 157CHECKREG r1, 0xFFFFFFFC; 158CHECKREG r2, 0x0000007E; 159CHECKREG r3, 0x0000009D; 160CHECKREG r4, 0x00000084; 161CHECKREG r5, 0xFFFFFFB4; 162CHECKREG r6, 0x000000F2; 163CHECKREG r7, 0xFFFFFF86; 164 165pass 166