blob: cda1fb151fca1e9a7ad3264dec09db7ca8ad70c0 [file] [log] [blame]
//Original:/proj/frio/dv/testcases/core/c_regmv_imlb_dep_nostall/c_regmv_imlb_dep_nostall.dsp
// Spec Reference: regmv imlb-dep no stall
# mach: bfin
.include "testutils.inc"
start
// P-reg to I,M-reg to R-reg: no stall
//imm32 p0, 0x00001111;
imm32 p1, 0x12213330;
imm32 p2, 0x14415550;
imm32 p3, 0x16617770;
imm32 p4, 0x18819990;
imm32 p5, 0x1aa1bbb0;
imm32 fp, 0x1cc1ddd0;
imm32 sp, 0x1ee1fff0;
I0 = P0;
R0 = I0;
I1 = P1;
R1 = I1;
I2 = P2;
R2 = I2;
I3 = P3;
R3 = I3;
M0 = P4;
R4 = M0;
M1 = P5;
R5 = M1;
M2 = SP;
R6 = M2;
M3 = FP;
R7 = M3;
CHECKREG r1, 0x12213330;
CHECKREG r2, 0x14415550;
CHECKREG r3, 0x16617770;
CHECKREG r4, 0x18819990;
CHECKREG r5, 0x1aa1bbb0;
CHECKREG r6, 0x1EE1FFF0;
CHECKREG r7, 0x1CC1DDD0;
R0 = M3;
R1 = M2;
R2 = M1;
R3 = M0;
R4 = I3;
R5 = I2;
R6 = I1;
R7 = I0;
CHECKREG r0, 0x1CC1DDD0;
CHECKREG r1, 0x1EE1FFF0;
CHECKREG r2, 0x1AA1BBB0;
CHECKREG r3, 0x18819990;
CHECKREG r4, 0x16617770;
CHECKREG r5, 0x14415550;
CHECKREG r6, 0x12213330;
// P-reg to L,B-reg to R-reg: no stall
//imm32 p0, 0x00001111;
imm32 p1, 0x21213331;
imm32 p2, 0x21415551;
imm32 p3, 0x21617771;
imm32 p4, 0x21819991;
imm32 p5, 0x21a1bbb1;
imm32 fp, 0x21c1ddd1;
imm32 sp, 0x21e1fff1;
L0 = P0;
R0 = L0;
L1 = P1;
R1 = L1;
L2 = P2;
R2 = L2;
L3 = P3;
R3 = L3;
B0 = P4;
R4 = B0;
B1 = P5;
R5 = B1;
B2 = SP;
R6 = B2;
B3 = FP;
R7 = B3;
CHECKREG r1, 0x21213331;
CHECKREG r2, 0x21415551;
CHECKREG r3, 0x21617771;
CHECKREG r4, 0x21819991;
CHECKREG r5, 0x21a1bbb1;
CHECKREG r6, 0x21E1FFF1;
CHECKREG r7, 0x21C1DDD1;
R0 = L3;
R1 = L2;
R2 = L1;
R3 = L0;
R4 = B3;
R5 = B2;
R6 = B1;
R7 = B0;
CHECKREG r0, 0x21617771;
CHECKREG r1, 0x21415551;
CHECKREG r2, 0x21213331;
CHECKREG r4, 0x21C1DDD1;
CHECKREG r5, 0x21E1FFF1;
CHECKREG r6, 0x21A1BBB1;
CHECKREG r7, 0x21819991;
// P-reg to I,M-reg to L,B-reg: no stall
//imm32 p0, 0x00001111;
imm32 p1, 0x72213337;
imm32 p2, 0x74415557;
imm32 p3, 0x76617777;
imm32 p4, 0x78819997;
imm32 p5, 0x7aa1bbb7;
imm32 fp, 0x7cc1ddd7;
imm32 sp, 0x77e1fff7;
I0 = P0;
L0 = I0;
I1 = P1;
L1 = I1;
I2 = P2;
L2 = I2;
I3 = P3;
L3 = I3;
M0 = P4;
B0 = M0;
M1 = P5;
B1 = M1;
M2 = SP;
B2 = M2;
M3 = FP;
B3 = M3;
R0 = L3;
R1 = L2;
R2 = L1;
R3 = L0;
R4 = B3;
R5 = B2;
R6 = B1;
R7 = B0;
CHECKREG r0, 0x76617777;
CHECKREG r1, 0x74415557;
CHECKREG r2, 0x72213337;
CHECKREG r4, 0x7CC1DDD7;
CHECKREG r5, 0x77E1FFF7;
CHECKREG r6, 0x7AA1BBB7;
CHECKREG r7, 0x78819997;
R0 = M3;
R1 = M2;
R2 = M1;
R3 = M0;
R4 = I3;
R5 = I2;
R6 = I1;
R7 = I0;
CHECKREG r0, 0x7CC1DDD7;
CHECKREG r1, 0x77E1FFF7;
CHECKREG r2, 0x7AA1BBB7;
CHECKREG r3, 0x78819997;
CHECKREG r4, 0x76617777;
CHECKREG r5, 0x74415557;
CHECKREG r6, 0x72213337;
// P-reg to L,B-reg to I,Mreg: no stall
//imm32 p0, 0x00001111;
imm32 p1, 0x81213338;
imm32 p2, 0x81415558;
imm32 p3, 0x81617778;
imm32 p4, 0x81819998;
imm32 p5, 0x81a1bbb8;
imm32 fp, 0x81c1ddd8;
imm32 sp, 0x81e1fff8;
L0 = P0;
I0 = L0;
L1 = P1;
I1 = L1;
L2 = P2;
I2 = L2;
L3 = P3;
I3 = L3;
B0 = P4;
M0 = B0;
B1 = P5;
M1 = B1;
B2 = SP;
M2 = B2;
B3 = FP;
M3 = B3;
R0 = M0;
R1 = M1;
R2 = M2;
R3 = M3;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x81819998;
CHECKREG r1, 0x81A1BBB8;
CHECKREG r2, 0x81E1FFF8;
CHECKREG r3, 0x81C1DDD8;
CHECKREG r5, 0x81213338;
CHECKREG r6, 0x81415558;
CHECKREG r7, 0x81617778;
R0 = L3;
R1 = L2;
R2 = L1;
R3 = L0;
R4 = B3;
R5 = B2;
R6 = B1;
R7 = B0;
CHECKREG r0, 0x81617778;
CHECKREG r1, 0x81415558;
CHECKREG r2, 0x81213338;
CHECKREG r4, 0x81C1DDD8;
CHECKREG r5, 0x81E1FFF8;
CHECKREG r6, 0x81A1BBB8;
CHECKREG r7, 0x81819998;
// I-to-M, I-to-I and to R-reg: no stall
imm32 i0, 0x30001111;
imm32 i1, 0x23213332;
imm32 i2, 0x14315552;
imm32 i3, 0x01637772;
imm32 m0, 0x80113992;
imm32 m1, 0xaa01b3b2;
imm32 m2, 0xccc01d32;
imm32 m3, 0xeee101f3;
M0 = I0;
R4 = M0;
M1 = I1;
R5 = M1;
M2 = I2;
R6 = M2;
M3 = I3;
R7 = M3;
I0 = I3;
R0 = I0;
I1 = I2;
R1 = I1;
I3 = I0;
R2 = I3;
I2 = I1;
R3 = I2;
CHECKREG r0, 0x01637772;
CHECKREG r1, 0x14315552;
CHECKREG r2, 0x01637772;
CHECKREG r3, 0x14315552;
CHECKREG r4, 0x30001111;
CHECKREG r5, 0x23213332;
CHECKREG r6, 0x14315552;
CHECKREG r7, 0x01637772;
R0 = M0;
R1 = M1;
R2 = M2;
R3 = M3;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x30001111;
CHECKREG r1, 0x23213332;
CHECKREG r2, 0x14315552;
CHECKREG r3, 0x01637772;
CHECKREG r4, 0x01637772;
CHECKREG r5, 0x14315552;
CHECKREG r6, 0x14315552;
CHECKREG r7, 0x01637772;
// I-to-M, I-to-I and to P-reg: no stall
imm32 i0, 0x00001111;
imm32 i1, 0x42213342;
imm32 i2, 0x44415542;
imm32 i3, 0x46617742;
imm32 m0, 0x48819942;
imm32 m1, 0x4aa1bb42;
imm32 m2, 0x4cc1dd42;
imm32 m3, 0x4ee1ff42;
M0 = I0;
R0 = M0;
M1 = I1;
P1 = M1;
M2 = I2;
P2 = M2;
M3 = I3;
P3 = M3;
I0 = I3;
P4 = I0;
I1 = I2;
P5 = I1;
I2 = I0;
SP = I2;
I3 = I1;
FP = I3;
CHECKREG r0, 0x00001111;
CHECKREG p1, 0x42213342;
CHECKREG p2, 0x44415542;
CHECKREG p3, 0x46617742;
CHECKREG p4, 0x46617742;
CHECKREG p5, 0x44415542;
CHECKREG sp, 0x46617742;
CHECKREG fp, 0x44415542;
R0 = M0;
R1 = M1;
R2 = M2;
R3 = M3;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x00001111;
CHECKREG r1, 0x42213342;
CHECKREG r2, 0x44415542;
CHECKREG r3, 0x46617742;
CHECKREG r4, 0x46617742;
CHECKREG r5, 0x44415542;
CHECKREG r6, 0x46617742;
CHECKREG r7, 0x44415542;
// L-to-B, L-to-L and to R-reg: no stall
imm32 l0, 0x40001114;
imm32 l1, 0x24213334;
imm32 l2, 0x54415554;
imm32 l3, 0x05647774;
imm32 b0, 0x60514994;
imm32 b1, 0xa605b4b4;
imm32 b2, 0xcc605d44;
imm32 b3, 0xeee605f4;
B0 = L0;
R4 = B0;
B1 = L1;
R5 = B1;
B2 = L2;
R6 = B2;
B3 = L3;
R7 = B3;
L0 = L3;
R0 = L0;
L1 = L2;
R1 = L1;
L3 = L0;
R2 = L3;
L2 = L1;
R3 = L2;
CHECKREG r0, 0x05647774;
CHECKREG r1, 0x54415554;
CHECKREG r2, 0x05647774;
CHECKREG r3, 0x54415554;
CHECKREG r4, 0x40001114;
CHECKREG r5, 0x24213334;
CHECKREG r6, 0x54415554;
CHECKREG r7, 0x05647774;
R0 = L0;
R1 = L1;
R2 = L2;
R3 = L3;
R4 = B0;
R5 = B1;
R6 = B2;
R7 = B3;
CHECKREG r0, 0x05647774;
CHECKREG r1, 0x54415554;
CHECKREG r2, 0x54415554;
CHECKREG r3, 0x05647774;
CHECKREG r4, 0x40001114;
CHECKREG r5, 0x24213334;
CHECKREG r6, 0x54415554;
CHECKREG r7, 0x05647774;
// L-to-B, L-to-L and to P-reg: no stall
imm32 l0, 0x60001116;
imm32 l1, 0x46213346;
imm32 l2, 0x74615546;
imm32 l3, 0x47667746;
imm32 b0, 0x48716946;
imm32 b1, 0x8aa7b646;
imm32 b2, 0x48c17d66;
imm32 b3, 0x4e81f746;
M0 = I0;
R0 = M0;
M1 = I1;
P1 = M1;
M2 = I2;
P2 = M2;
M3 = I3;
P3 = M3;
I0 = I3;
P4 = I0;
I1 = I2;
P5 = I1;
I2 = I0;
SP = I2;
I3 = I1;
FP = I3;
CHECKREG r0, 0x46617742;
CHECKREG p1, 0x44415542;
CHECKREG p2, 0x46617742;
CHECKREG p3, 0x44415542;
CHECKREG p4, 0x44415542;
CHECKREG p5, 0x46617742;
CHECKREG sp, 0x44415542;
CHECKREG fp, 0x46617742;
R0 = M0;
R1 = M1;
R2 = M2;
R3 = M3;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x46617742;
CHECKREG r1, 0x44415542;
CHECKREG r2, 0x46617742;
CHECKREG r3, 0x44415542;
CHECKREG r4, 0x44415542;
CHECKREG r5, 0x46617742;
CHECKREG r6, 0x44415542;
CHECKREG r7, 0x46617742;
// I-to-M-to-L, I-to-I-to-B -reg: no stall
imm32 i0, 0x90001119;
imm32 i1, 0x93213339;
imm32 i2, 0x94315559;
imm32 i3, 0x91637779;
imm32 m0, 0x90113999;
imm32 m1, 0x9a01b3b9;
imm32 m2, 0x9cc01d39;
imm32 m3, 0x9ee101f9;
M0 = I0;
L0 = M0;
M1 = I1;
L1 = M1;
M2 = I2;
L2 = M2;
M3 = I3;
L3 = M3;
I0 = I3;
B0 = I0;
I1 = I2;
B1 = I1;
I3 = I0;
B2 = I3;
I2 = I1;
B3 = I2;
R0 = L0;
R1 = L1;
R2 = L2;
R3 = L3;
R4 = B0;
R5 = B1;
R6 = B2;
R7 = B3;
CHECKREG r0, 0x90001119;
CHECKREG r1, 0x93213339;
CHECKREG r2, 0x94315559;
CHECKREG r3, 0x91637779;
CHECKREG r4, 0x91637779;
CHECKREG r5, 0x94315559;
CHECKREG r6, 0x91637779;
CHECKREG r7, 0x94315559;
R0 = M0;
R1 = M1;
R2 = M2;
R3 = M3;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0x90001119;
CHECKREG r1, 0x93213339;
CHECKREG r2, 0x94315559;
CHECKREG r3, 0x91637779;
CHECKREG r4, 0x91637779;
CHECKREG r5, 0x94315559;
CHECKREG r6, 0x94315559;
CHECKREG r7, 0x91637779;
// I-to-M-B, I-to-I-L reg: no stall
imm32 i0, 0xa000111a;
imm32 i1, 0xaa21334a;
imm32 i2, 0xa4a1554a;
imm32 i3, 0xa66a774a;
imm32 m0, 0xa881a94a;
imm32 m1, 0xaaa1ba4a;
imm32 m2, 0xacc1ddaa;
imm32 m3, 0xaee1ff4a;
M0 = I0;
B3 = M0;
M1 = I1;
B2 = M1;
M2 = I2;
B1 = M2;
M3 = I3;
B0 = M3;
I0 = I3;
L1 = I0;
I1 = I2;
L2 = I1;
I2 = I0;
L3 = I2;
I3 = I1;
L0 = I3;
R0 = L0;
R1 = L1;
R2 = L2;
R3 = L3;
R4 = B0;
R5 = B1;
R6 = B2;
R7 = B3;
CHECKREG r0, 0xA4A1554A;
CHECKREG r1, 0xA66A774A;
CHECKREG r2, 0xA4A1554A;
CHECKREG r3, 0xA66A774A;
CHECKREG r4, 0xA66A774A;
CHECKREG r5, 0xA4A1554A;
CHECKREG r6, 0xAA21334A;
CHECKREG r7, 0xA000111A;
R0 = M0;
R1 = M1;
R2 = M2;
R3 = M3;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0xA000111A;
CHECKREG r1, 0xAA21334A;
CHECKREG r2, 0xA4A1554A;
CHECKREG r3, 0xA66A774A;
CHECKREG r4, 0xA66A774A;
CHECKREG r5, 0xA4A1554A;
CHECKREG r6, 0xA66A774A;
CHECKREG r7, 0xA4A1554A;
// L-to-B-to-I, L-to-L-to-M reg: no stall
imm32 l0, 0xb000111b;
imm32 l1, 0xb421333b;
imm32 l2, 0xb441555b;
imm32 l3, 0xb564777b;
imm32 b0, 0xb051499b;
imm32 b1, 0xb605b4bb;
imm32 b2, 0xbc605d4b;
imm32 b3, 0xbee605fb;
B0 = L0;
I2 = B0;
B1 = L1;
I3 = B1;
B2 = L2;
I0 = B2;
B3 = L3;
I1 = B3;
L0 = L3;
M0 = L0;
L1 = L2;
M1 = L1;
L3 = L0;
M2 = L3;
L2 = L1;
M3 = L2;
R0 = I0;
R1 = I1;
R2 = I2;
R3 = I3;
R4 = M0;
R5 = M1;
R6 = M2;
R7 = M3;
CHECKREG r0, 0xB441555B;
CHECKREG r1, 0xB564777B;
CHECKREG r2, 0xB000111B;
CHECKREG r3, 0xB421333B;
CHECKREG r4, 0xB564777B;
CHECKREG r5, 0xB441555B;
CHECKREG r6, 0xB564777B;
CHECKREG r7, 0xB441555B;
R0 = L0;
R1 = L1;
R2 = L2;
R3 = L3;
R4 = B0;
R5 = B1;
R6 = B2;
R7 = B3;
CHECKREG r0, 0xB564777B;
CHECKREG r1, 0xB441555B;
CHECKREG r2, 0xB441555B;
CHECKREG r3, 0xB564777B;
CHECKREG r4, 0xB000111B;
CHECKREG r5, 0xB421333B;
CHECKREG r6, 0xB441555B;
CHECKREG r7, 0xB564777B;
// B-to-L-to-M, B-to-B-to-I reg: no stall
imm32 l0, 0xc000111c;
imm32 l1, 0xc621334c;
imm32 l2, 0xc461554c;
imm32 l3, 0xc766774c;
imm32 b0, 0xc871694c;
imm32 b1, 0xcaa7b64c;
imm32 b2, 0xc8c17d6c;
imm32 b3, 0xce81f74c;
L0 = B0;
M1 = L0;
L1 = B1;
M2 = L1;
L2 = B2;
M3 = L2;
L3 = B3;
M0 = L3;
B3 = B0;
I0 = B3;
B0 = B1;
I1 = B0;
B1 = B2;
I2 = B1;
B2 = B3;
I3 = B2;
R0 = L0;
R1 = L1;
R2 = L2;
R3 = L3;
R4 = B0;
R5 = B1;
R6 = B2;
R7 = B3;
CHECKREG r0, 0xC871694C;
CHECKREG r1, 0xCAA7B64C;
CHECKREG r2, 0xC8C17D6C;
CHECKREG r3, 0xCE81F74C;
CHECKREG r4, 0xCAA7B64C;
CHECKREG r5, 0xC8C17D6C;
CHECKREG r6, 0xC871694C;
CHECKREG r7, 0xC871694C;
R0 = M0;
R1 = M1;
R2 = M2;
R3 = M3;
R4 = I0;
R5 = I1;
R6 = I2;
R7 = I3;
CHECKREG r0, 0xCE81F74C;
CHECKREG r1, 0xC871694C;
CHECKREG r2, 0xCAA7B64C;
CHECKREG r3, 0xC8C17D6C;
CHECKREG r4, 0xC871694C;
CHECKREG r5, 0xCAA7B64C;
CHECKREG r6, 0xC8C17D6C;
CHECKREG r7, 0xC871694C;
pass