//Original:/proj/frio/dv/testcases/core/c_loopsetup_topbotcntr/c_loopsetup_topbotcntr.dsp
// Spec Reference: loopsetup top bot counter
# mach: bfin
.include "testutils.inc"
start
INIT_R_REGS 0;
ASTAT = r0;
R1 = 0x10;
R2 = 0x20;
R3 = 0x30;
R4 = 0x40 (X);
R5 = 0x08;
loadsym R6, start1;
loadsym R7, end1;
LT0 = R6;
LB0 = R7;
LC0 = R5;
//start immmediately
start1: R0 += 1;
R1 += -2;
end1: R2 += 3;
R3 += 4;
CHECKREG r0, 0x00000008;
CHECKREG r1, 0x00000000;
CHECKREG r2, 0x00000038;
CHECKREG r3, 0x00000034;
CHECKREG r4, 0x00000040;
CHECKREG r5, 0x00000008;
//CHECKREG r6, 0x00000090;
//CHECKREG r7, 0x00000094;
R0 = 0x05;
R1 = 0x10;
R2 = 0x10;
R3 = 0x10;
R4 = 0x20;
R5 = 0x20;
R6 = 0x30;
R7 = 0x30;
loadsym R1, start2;
R0 = R1;
loadsym R1, end2;
LT1 = R0;
LB1 = R1;
LC1 = R2;
start2: R4 += 1;
R5 += 2;
end2: R6 += -3;
R7 += 4;
CHECKREG r3, 0x00000010;
CHECKREG r4, 0x00000030;
CHECKREG r5, 0x00000040;
CHECKREG r6, 0x00000000;
CHECKREG r7, 0x00000034;
R0 = 0x05;
R1 = 0x10;
R2 = 0x20;
R3 = 0x30;
R4 = 0x40 (X);
R5 = 0x50 (X);
R6 = 0x60 (X);
R7 = 0x70 (X);
loadsym R1, start3
r0 = r1;
loadsym r1, end3;
LT0 = R0;
LB0 = R1;
LC0 = R2;
loadsym r3, start4;
loadsym r4, end4;
LT1 = R3;
LB1 = R4;
LC1 = R5;
R0 = 0x10;
R1 = 0x15;
R2 = 0x20;
R3 = 0x26;
R4 = 0x30;
R5 = 0x40 (X);
start3: R0 += 1;
R1 += -2;
start4: R2 += 3;
R3 += 4;
end4: R6 += 5;
end3: R7 += -6;
CHECKREG r0, 0x00000030;
CHECKREG r1, 0xFFFFFFD5;
CHECKREG r2, 0x0000016D;
CHECKREG r3, 0x000001E2;
CHECKREG r4, 0x00000030;
CHECKREG r5, 0x00000040;
CHECKREG r6, 0x0000028B;
CHECKREG r7, 0xFFFFFFB0;
pass