blob: 89a5e6046955bcad29de3a19520e350c988ea111 [file] [log] [blame]
// 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