OSDN Git Service

Merge branch 'binutils' into tmp
[pf3gnuchains/pf3gnuchains4x.git] / sim / testsuite / sim / bfin / c_regmv_imlb_dep_stall.s
diff --git a/sim/testsuite/sim/bfin/c_regmv_imlb_dep_stall.s b/sim/testsuite/sim/bfin/c_regmv_imlb_dep_stall.s
new file mode 100644 (file)
index 0000000..8fd2235
--- /dev/null
@@ -0,0 +1,335 @@
+//Original:/proj/frio/dv/testcases/core/c_regmv_imlb_dep_stall/c_regmv_imlb_dep_stall.dsp
+// Spec Reference: regmv imlb-depepency  stall
+# mach: bfin
+
+.include "testutils.inc"
+       start
+
+// R-reg to I,M-reg to R-reg: stall
+       imm32 r0, 0x00001110;
+       imm32 r1, 0x00213330;
+       imm32 r2, 0x04015550;
+       imm32 r3, 0x06607770;
+       imm32 r4, 0x08010990;
+       imm32 r5, 0x0a01b0b0;
+       imm32 r6, 0x0c01dd00;
+       imm32 r7, 0x0e01f0f0;
+       I0 = R0;
+       R7 = I0;
+       I1 = R1;
+       R0 = I1;
+       I2 = R2;
+       R1 = I2;
+       I3 = R3;
+       R2 = I3;
+       M0 = R4;
+       R3 = M0;
+       M1 = R5;
+       R4 = M1;
+       M2 = R6;
+       R5 = M2;
+       M3 = R7;
+       R6 = M3;
+
+       CHECKREG r0, 0x00213330;
+       CHECKREG r1, 0x04015550;
+       CHECKREG r2, 0x06607770;
+       CHECKREG r3, 0x08010990;
+       CHECKREG r4, 0x0A01B0B0;
+       CHECKREG r5, 0x0C01DD00;
+       CHECKREG r6, 0x00001110;
+       CHECKREG r7, 0x00001110;
+
+       R0 = M3;
+       R1 = M2;
+       R2 = M1;
+       R3 = M0;
+       R4 = I3;
+       R5 = I2;
+       R6 = I1;
+       R7 = I0;
+       CHECKREG r0, 0x00001110;
+       CHECKREG r1, 0x0C01DD00;
+       CHECKREG r2, 0x0A01B0B0;
+       CHECKREG r3, 0x08010990;
+       CHECKREG r4, 0x06607770;
+       CHECKREG r5, 0x04015550;
+       CHECKREG r6, 0x00213330;
+       CHECKREG r7, 0x00001110;
+
+// R-to-M,I and to P-reg: stall
+       imm32 i0, 0x00001111;
+       imm32 i1, 0x12213341;
+       imm32 i2, 0x14415541;
+       imm32 i3, 0x16617741;
+       imm32 m0, 0x18819941;
+       imm32 m1, 0x1aa1bb41;
+       imm32 m2, 0x1cc1dd41;
+       imm32 m3, 0x1ee1ff41;
+       M0 = R0;
+       R0 = M0;
+       M1 = R1;
+       P1 = M1;
+       M2 = R2;
+       P2 = M2;
+       M3 = R3;
+       P3 = M3;
+       I0 = R4;
+       P4 = I0;
+       I1 = R5;
+       P5 = I1;
+       I2 = R6;
+       SP = I2;
+       I3 = R7;
+       FP = I3;
+
+       CHECKREG r0, 0x00001110;
+       CHECKREG p1, 0x0C01DD00;
+       CHECKREG p2, 0x0A01B0B0;
+       CHECKREG p3, 0x08010990;
+       CHECKREG p4, 0x06607770;
+       CHECKREG p5, 0x04015550;
+       CHECKREG sp, 0x00213330;
+       CHECKREG fp, 0x00001110;
+       R0 = M0;
+       R1 = M1;
+       R2 = M2;
+       R3 = M3;
+       R4 = I0;
+       R5 = I1;
+       R6 = I2;
+       R7 = I3;
+       CHECKREG r0, 0x00001110;
+       CHECKREG r1, 0x0C01DD00;
+       CHECKREG r2, 0x0A01B0B0;
+       CHECKREG r3, 0x08010990;
+       CHECKREG r4, 0x06607770;
+       CHECKREG r5, 0x04015550;
+       CHECKREG r6, 0x00213330;
+       CHECKREG r7, 0x00001110;
+
+// R-reg to L,B-reg to R-reg: stall
+       imm32 r0, 0x20001112;
+       imm32 r1, 0x22213332;
+       imm32 r2, 0x21215552;
+       imm32 r3, 0x21627772;
+       imm32 r4, 0x21812992;
+       imm32 r5, 0x21a1b2b2;
+       imm32 r6, 0x21c1d222;
+       imm32 r7, 0x21e1ff22;
+       L0 = R1;
+       R0 = L0;
+       L1 = R2;
+       R1 = L1;
+       L2 = R3;
+       R2 = L2;
+       L3 = R4;
+       R3 = L3;
+       B0 = R5;
+       R4 = B0;
+       B1 = R6;
+       R5 = B1;
+       B2 = R7;
+       R6 = B2;
+       B3 = R0;
+       R7 = B3;
+
+       CHECKREG r0, 0x22213332;
+       CHECKREG r1, 0x21215552;
+       CHECKREG r2, 0x21627772;
+       CHECKREG r3, 0x21812992;
+       CHECKREG r4, 0x21A1B2B2;
+       CHECKREG r5, 0x21C1D222;
+       CHECKREG r6, 0x21E1FF22;
+       CHECKREG r7, 0x22213332;
+
+       R0 = L3;
+       R1 = L2;
+       R2 = L1;
+       R3 = L0;
+       R4 = B3;
+       R5 = B2;
+       R6 = B1;
+       R7 = B0;
+       CHECKREG r0, 0x21812992;
+       CHECKREG r1, 0x21627772;
+       CHECKREG r2, 0x21215552;
+       CHECKREG r3, 0x22213332;
+       CHECKREG r4, 0x22213332;
+       CHECKREG r5, 0x21E1FF22;
+       CHECKREG r6, 0x21C1D222;
+       CHECKREG r7, 0x21A1B2B2;
+
+// R-reg to L,B-reg to P-reg: stall
+       imm32 r0, 0x50001115;
+       imm32 r1, 0x51213335;
+       imm32 r2, 0x51415555;
+       imm32 r3, 0x51617775;
+       imm32 r4, 0x51819995;
+       imm32 r5, 0x51a1bbb5;
+       imm32 r6, 0x51c1ddd5;
+       imm32 r7, 0x51e1fff5;
+       L0 = R1;
+       R0 = L0;
+       L1 = R2;
+       SP = L1;
+       L2 = R3;
+       FP = L2;
+       L3 = R4;
+       P1 = L3;
+       B0 = R5;
+       P2 = B0;
+       B1 = R6;
+       P3 = B1;
+       B2 = R7;
+       P4 = B2;
+       B3 = R0;
+       P5 = B3;
+
+       CHECKREG r0, 0x51213335;
+       CHECKREG p1, 0x51819995;
+       CHECKREG p2, 0x51A1BBB5;
+       CHECKREG p3, 0x51C1DDD5;
+       CHECKREG p4, 0x51E1FFF5;
+       CHECKREG p5, 0x51213335;
+       CHECKREG sp, 0x51415555;
+       CHECKREG fp, 0x51617775;
+
+       R0 = L3;
+       R1 = L2;
+       R2 = L1;
+       R3 = L0;
+       R4 = B3;
+       R5 = B2;
+       R6 = B1;
+       R7 = B0;
+       CHECKREG r0, 0x51819995;
+       CHECKREG r1, 0x51617775;
+       CHECKREG r2, 0x51415555;
+       CHECKREG r3, 0x51213335;
+       CHECKREG r4, 0x51213335;
+       CHECKREG r5, 0x51E1FFF5;
+       CHECKREG r6, 0x51C1DDD5;
+       CHECKREG r7, 0x51A1BBB5;
+
+// R-reg to I,M-reg to L,B-reg:  stall
+       imm32 r0, 0x00001111;
+       imm32 r1, 0x72213337;
+       imm32 r2, 0x74415557;
+       imm32 r3, 0x76617777;
+       imm32 r4, 0x78819997;
+       imm32 r5, 0x7aa1bbb7;
+       imm32 r6, 0x7cc1ddd7;
+       imm32 r7, 0x77e1fff7;
+       I0 = R0;
+       L0 = I0;
+       I1 = R1;
+       L1 = I1;
+       I2 = R2;
+       L2 = I2;
+       I3 = R3;
+       L3 = I3;
+       M0 = R4;
+       B0 = M0;
+       M1 = R5;
+       B1 = M1;
+       M2 = R6;
+       B2 = M2;
+       M3 = R7;
+       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 r3, 0x00001111;
+       CHECKREG r4, 0x77E1FFF7;
+       CHECKREG r5, 0x7CC1DDD7;
+       CHECKREG r6, 0x7AA1BBB7;
+       CHECKREG r7, 0x78819997;
+
+       R0 = M3;
+       R1 = M2;
+       R2 = M1;
+       R3 = M0;
+       R4 = I3;
+       R5 = I2;
+       R6 = I1;
+       R7 = I0;
+       CHECKREG r0, 0x77E1FFF7;
+       CHECKREG r1, 0x7CC1DDD7;
+       CHECKREG r2, 0x7AA1BBB7;
+       CHECKREG r3, 0x78819997;
+       CHECKREG r4, 0x76617777;
+       CHECKREG r5, 0x74415557;
+       CHECKREG r6, 0x72213337;
+       CHECKREG r7, 0x00001111;
+
+// R-reg to L,B-reg to I,M reg:  stall
+       imm32 r0, 0x00001111;
+       imm32 r1, 0x81213338;
+       imm32 r2, 0x81415558;
+       imm32 r3, 0x81617778;
+       imm32 r4, 0x81819998;
+       imm32 r5, 0x81a1bbb8;
+       imm32 r6, 0x81c1ddd8;
+       imm32 r7, 0x81e1fff8;
+       L0 = R0;
+       I0 = L0;
+       L1 = R1;
+       I1 = L1;
+       L2 = R2;
+       I2 = L2;
+       L3 = R3;
+       I3 = L3;
+       B0 = R4;
+       M0 = B0;
+       B1 = R5;
+       M1 = B1;
+       B2 = R6;
+       M2 = B2;
+       B3 = R7;
+       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, 0x81C1DDD8;
+       CHECKREG r3, 0x81E1FFF8;
+       CHECKREG r4, 0x00001111;
+       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 r3, 0x00001111;
+       CHECKREG r4, 0x81E1FFF8;
+       CHECKREG r5, 0x81C1DDD8;
+       CHECKREG r6, 0x81A1BBB8;
+       CHECKREG r7, 0x81819998;
+
+       pass