OSDN Git Service

Merge branch 'binutils' into tmp
[pf3gnuchains/pf3gnuchains4x.git] / sim / testsuite / sim / bfin / stk6.s
diff --git a/sim/testsuite/sim/bfin/stk6.s b/sim/testsuite/sim/bfin/stk6.s
new file mode 100644 (file)
index 0000000..89a5e60
--- /dev/null
@@ -0,0 +1,58 @@
+// setup a dummy stack and put values in memory 0,1,2,3...n
+// then restore registers with pop instruction.
+# mach: bfin
+
+.include "testutils.inc"
+       start
+
+       SP += -12;
+
+       P1 = SP;
+       R1 = 0;
+       P5.L = 0xdead;
+       SP += -((8+5)*4);       // lets move the stack pointer and include the current location. i.e. 5
+       P4 = (8+6);             // 8 data registers and 6 pointer registers are being stored.
+       LSETUP ( ls0 , le0 ) LC0 = P4;
+ls0:
+       R1 += 1;
+le0:
+       [ P1-- ] = R1;
+
+       ( R7:0, P5:0 ) = [ SP ++ ];
+
+       DBGA ( R0.L , 1 );
+       DBGA ( R1.L , 2 );
+       DBGA ( R2.L , 3 );
+       DBGA ( R3.L , 4 );
+       DBGA ( R4.L , 5 );
+       DBGA ( R5.L , 6 );
+       DBGA ( R6.L , 7 );
+       DBGA ( R7.L , 8 );
+       R0 = P0;        DBGA ( R0.L , 9 );
+       R0 = P1;        DBGA ( R0.L , 10 );
+       R0 = P2;        DBGA ( R0.L , 11 );
+       R0 = P3;        DBGA ( R0.L , 12 );
+       R0 = P4;        DBGA ( R0.L , 13 );
+       R0 = P5;        DBGA ( R0.L , 14 );
+       R0 = 1;
+
+       [ -- SP ] = ( R7:0, P5:0 );
+       ( R7:0, P5:0 ) = [ SP ++ ];
+
+       DBGA ( R0.L , 1 );
+       DBGA ( R1.L , 2 );
+       DBGA ( R2.L , 3 );
+       DBGA ( R3.L , 4 );
+       DBGA ( R4.L , 5 );
+       DBGA ( R5.L , 6 );
+       DBGA ( R6.L , 7 );
+       DBGA ( R7.L , 8 );
+       R0 = P0;        DBGA ( R0.L , 9 );
+       R0 = P1;        DBGA ( R0.L , 10 );
+       R0 = P2;        DBGA ( R0.L , 11 );
+       R0 = P3;        DBGA ( R0.L , 12 );
+       R0 = P4;        DBGA ( R0.L , 13 );
+       R0 = P5;        DBGA ( R0.L , 14 );
+       R0 = 1;
+
+       pass