1//Original:/testcases/core/c_loopsetup_nested/c_loopsetup_nested.dsp 2// Spec Reference: loopsetup nested inside 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9INIT_R_REGS 0; 10 11ASTAT = r0; 12 13//p0 = 2; 14P1 = 3; 15P2 = 4; 16P3 = 5; 17P4 = 6; 18P5 = 7; 19SP = 8; 20FP = 9; 21 22R0 = 0x05; 23R1 = 0x10; 24R2 = 0x20; 25R3 = 0x30; 26R4 = 0x40 (X); 27R5 = 0x50 (X); 28R6 = 0x60 (X); 29R7 = 0x70 (X); 30LSETUP ( start1 , end1 ) LC0 = P1; 31start1: R0 += 1; 32 R1 += -2; 33LSETUP ( start2 , end2 ) LC1 = P2; 34start2: R4 += 4; 35end2: R5 += -5; 36 R3 += 1; 37end1: R2 += 3; 38 R3 += 4; 39LSETUP ( start3 , end3 ) LC1 = P3; 40start3: R6 += 6; 41LSETUP ( start4 , end4 ) LC0 = P4 >> 1; 42start4: R0 += 1; 43 R1 += -2; 44end4: R2 += 3; 45 R3 += 4; 46end3: R7 += -7; 47 R3 += 1; 48CHECKREG r0, 0x00000017; 49CHECKREG r1, 0xFFFFFFEC; 50CHECKREG r2, 0x00000056; 51CHECKREG r3, 0x0000004C; 52CHECKREG r4, 0x00000070; 53CHECKREG r5, 0x00000014; 54CHECKREG r6, 0x0000007E; 55CHECKREG r7, 0x0000004D; 56 57R0 = 0x05; 58R1 = 0x10; 59R2 = 0x20; 60R3 = 0x30; 61R4 = 0x40 (X); 62R5 = 0x50 (X); 63R6 = 0x60 (X); 64R7 = 0x70 (X); 65LSETUP ( start5 , end5 ) LC0 = P5; 66start5: R4 += 1; 67LSETUP ( start6 , end6 ) LC1 = SP >> 1; 68start6: R6 += 4; 69end6: R7 += -5; 70 R3 += 6; 71end5: R5 += -2; 72 R3 += 3; 73CHECKREG r0, 0x00000005; 74CHECKREG r1, 0x00000010; 75CHECKREG r2, 0x00000020; 76CHECKREG r3, 0x0000005D; 77CHECKREG r4, 0x00000047; 78CHECKREG r5, 0x00000042; 79CHECKREG r6, 0x000000D0; 80CHECKREG r7, 0xFFFFFFE4; 81LSETUP ( start7 , end7 ) LC0 = FP; 82start7: R4 += 4; 83end7: R5 += -5; 84 R3 += 6; 85CHECKREG r0, 0x00000005; 86CHECKREG r1, 0x00000010; 87CHECKREG r2, 0x00000020; 88CHECKREG r3, 0x00000063; 89CHECKREG r4, 0x0000006B; 90CHECKREG r5, 0x00000015; 91CHECKREG r6, 0x000000D0; 92CHECKREG r7, 0xFFFFFFE4; 93 94P1 = 12; 95P2 = 14; 96P3 = 16; 97P4 = 18; 98P5 = 20; 99SP = 22; 100FP = 24; 101 102R0 = 0x05; 103R1 = 0x10; 104R2 = 0x20; 105R3 = 0x30; 106R4 = 0x40 (X); 107R5 = 0x50 (X); 108R6 = 0x60 (X); 109R7 = 0x70 (X); 110LSETUP ( start11 , end11 ) LC1 = P1; 111start11: R0 += 1; 112 R1 += -1; 113LSETUP ( start15 , end15 ) LC0 = P5; 114start15: R4 += 1; 115end15: R5 += -1; 116 R3 += 1; 117end11: R2 += 1; 118 R3 += 1; 119LSETUP ( start13 , end13 ) LC1 = P3; 120start13: R6 += 1; 121LSETUP ( start12 , end12 ) LC0 = P2; 122start12: R4 += 1; 123end12: R5 += -1; 124 R3 += 1; 125end13: R7 += -1; 126 R3 += 1; 127CHECKREG r0, 0x00000011; 128CHECKREG r1, 0x00000004; 129CHECKREG r2, 0x0000002C; 130CHECKREG r3, 0x0000004E; 131CHECKREG r4, 0x00000210; 132CHECKREG r5, 0xFFFFFE80; 133CHECKREG r6, 0x00000070; 134CHECKREG r7, 0x00000060; 135 136R0 = 0x05; 137R1 = 0x10; 138R2 = 0x20; 139R3 = 0x30; 140R4 = 0x40 (X); 141R5 = 0x50 (X); 142R6 = 0x60 (X); 143R7 = 0x70 (X); 144LSETUP ( start14 , end14 ) LC0 = P4; 145start14: R0 += 1; 146 R1 += -1; 147LSETUP ( start16 , end16 ) LC1 = SP; 148start16: R6 += 1; 149end16: R7 += -1; 150 R3 += 1; 151LSETUP ( start17 , end17 ) LC1 = FP >> 1; 152start17: R4 += 1; 153end17: R5 += -1; 154 R3 += 1; 155end14: R2 += 1; 156 R3 += 1; 157CHECKREG r0, 0x00000017; 158CHECKREG r1, 0xFFFFFFFE; 159CHECKREG r2, 0x00000032; 160CHECKREG r3, 0x00000055; 161CHECKREG r4, 0x00000118; 162CHECKREG r5, 0xFFFFFF78; 163CHECKREG r6, 0x000001EC; 164CHECKREG r7, 0xFFFFFEE4; 165 166pass 167