X-Git-Url: https://oss.titaniummirror.com/gitweb?p=msp430-binutils.git;a=blobdiff_plain;f=gas%2Ftestsuite%2Fgas%2Fbfin%2Fstack2.s;fp=gas%2Ftestsuite%2Fgas%2Fbfin%2Fstack2.s;h=adb4288e4f8ea4c23b841be6633c7f4e51bfaa7d;hp=5d7f2c23334232a341e5b576847d5e504c37f8d1;hb=d5da4f291af551c0b8b79e1d4a9b173d60e5c10e;hpb=7b5ea4fcdf2819e070665ab5610f8b48e3867c10 diff --git a/gas/testsuite/gas/bfin/stack2.s b/gas/testsuite/gas/bfin/stack2.s index 5d7f2c2..adb4288 100755 --- a/gas/testsuite/gas/bfin/stack2.s +++ b/gas/testsuite/gas/bfin/stack2.s @@ -1,125 +1,127 @@ - -.EXTERN MY_LABEL2; -.section .text; - -// -//5 STACK CONTROL -// - -//[ -- SP ] = allreg ; /* predecrement SP (a) */ - -[--SP ] = R0; -[--SP ] = R6; - -[--SP ] = P0; -[--SP ] = P4; - -[--SP ] = I0; -[--SP ] = I1; - -[--SP ] = M0; -[--SP ] = M1; - -[--SP ] = L0; -[--SP ] = L1; - -[--SP ] = B0; -[--SP ] = B1; - -[--SP ] = A0.X; -[--SP ] = A1.X; - -[--SP ] = A0.W; -[--SP ] = A1.W; - -[--SP ] = ASTAT; -[--SP ] = RETS; -[--SP ] = RETI; -[--SP ] = RETX; -[--SP ] = RETN; -[--SP ] = RETE; -[--SP ] = LC0; -[--SP ] = LC1; -[--SP ] = LT0; -[--SP ] = LT1; -[--SP ] = LB0; -[--SP ] = LB1; -[--SP ] = CYCLES; -[--SP ] = CYCLES2; -//[--SP ] = EMUDAT; -[--SP ] = USP; -[--SP ] = SEQSTAT; -[--SP ] = SYSCFG; - - -//[ -- SP ] = ( R7 : Dreglim , P5 : Preglim ) ; /* Dregs and indexed Pregs (a) */ -[--SP ] = ( R7:0, P5:0); - - -//[ -- SP ] = ( R7 : Dreglim ) ; /* Dregs, only (a) */ -[--SP ] = ( R7:0); - -//[ -- SP ] = ( P5 : Preglim ) ; /* indexed Pregs, only (a) */ -[--SP ] = (P5:0); - - -//mostreg = [ SP ++ ] ; /* post-increment SP; does not apply to Data Registers and Pointer Registers (a) */ - -R0= [ SP ++ ] ; -R6= [ SP ++ ] ; - -P0= [ SP ++ ] ; -P4= [ SP ++ ] ; - -I0= [ SP ++ ] ; -I1= [ SP ++ ] ; - -M0= [ SP ++ ] ; -M1= [ SP ++ ] ; - -L0= [ SP ++ ] ; -L1= [ SP ++ ] ; - -B0= [ SP ++ ] ; -B1= [ SP ++ ] ; - -A0.X= [ SP ++ ] ; -A1.X= [ SP ++ ] ; - -A0.W= [ SP ++ ] ; -A1.W= [ SP ++ ] ; - -ASTAT= [ SP ++ ] ; -RETS= [ SP ++ ] ; -RETI= [ SP ++ ] ; -RETX= [ SP ++ ] ; -RETN= [ SP ++ ] ; -RETE= [ SP ++ ] ; -LC0= [ SP ++ ] ; -LC1= [ SP ++ ] ; -LT0= [ SP ++ ] ; -LT1= [ SP ++ ] ; -LB0= [ SP ++ ] ; -LB1= [ SP ++ ] ; -CYCLES= [ SP ++ ] ; -CYCLES2= [ SP ++ ] ; -//EMUDAT= [ SP ++ ] ; -USP= [ SP ++ ] ; -SEQSTAT= [ SP ++ ] ; -SYSCFG= [ SP ++ ] ; - -//( R7 : Dreglim, P5 : Preglim ) = [ SP ++ ] ; /* Dregs and indexed Pregs (a) */ -( R7:0, P5:0) = [ SP++ ]; - -//( R7 : Dreglim ) = [ SP ++ ] ; /* Dregs, only (a) */ -( R7:0) = [ SP++ ]; - -//( P5 : Preglim ) = [ SP ++ ] ; /* indexed Pregs, only (a) */ -( P5:0) = [ SP++ ]; - -//LINK uimm18m4 ; /* allocate a stack frame of specified size (b) */ -LINK 0X0; -LINK 0X8; -LINK 0x3FFFC; - -UNLINK ; /* de-allocate the stack frame (b)*/ + +.EXTERN MY_LABEL2; +.section .text; + +// +//5 STACK CONTROL +// + +//[ -- SP ] = allreg ; /* predecrement SP (a) */ + +[--SP ] = R0; +[--SP ] = R6; + +[--SP ] = P0; +[--SP ] = P4; + +[--SP ] = I0; +[--SP ] = I1; + +[--SP ] = M0; +[--SP ] = M1; + +[--SP ] = L0; +[--SP ] = L1; + +[--SP ] = B0; +[--SP ] = B1; + +[--SP ] = A0.X; +[--SP ] = A1.X; + +[--SP ] = A0.W; +[--SP ] = A1.W; + +[--SP ] = ASTAT; +[--SP ] = RETS; +[--SP ] = RETI; +[--SP ] = RETX; +[--SP ] = RETN; +[--SP ] = RETE; +[--SP ] = LC0; +[--SP ] = LC1; +[--SP ] = LT0; +[--SP ] = LT1; +[--SP ] = LB0; +[--SP ] = LB1; +[--SP ] = CYCLES; +[--SP ] = CYCLES2; +//[--SP ] = EMUDAT; +[--SP ] = USP; +[--SP ] = SEQSTAT; +[--SP ] = SYSCFG; + + +//[ -- SP ] = ( R7 : Dreglim , P5 : Preglim ) ; /* Dregs and indexed Pregs (a) */ +[--SP ] = ( R7:0, P5:0); + + +//[ -- SP ] = ( R7 : Dreglim ) ; /* Dregs, only (a) */ +[--SP ] = ( R7:0); + +//[ -- SP ] = ( P5 : Preglim ) ; /* indexed Pregs, only (a) */ +[--SP ] = (P5:0); + + +//mostreg = [ SP ++ ] ; /* post-increment SP; does not apply to Data Registers and Pointer Registers (a) */ + +R0= [ SP ++ ] ; +R6= [ SP ++ ] ; + +P0= [ SP ++ ] ; +P4= [ SP ++ ] ; + +I0= [ SP ++ ] ; +I1= [ SP ++ ] ; + +M0= [ SP ++ ] ; +M1= [ SP ++ ] ; + +L0= [ SP ++ ] ; +L1= [ SP ++ ] ; + +B0= [ SP ++ ] ; +B1= [ SP ++ ] ; + +A0.X= [ SP ++ ] ; +A1.X= [ SP ++ ] ; + +A0.W= [ SP ++ ] ; +A1.W= [ SP ++ ] ; + +ASTAT= [ SP ++ ] ; +RETS= [ SP ++ ] ; +RETI= [ SP ++ ] ; +RETX= [ SP ++ ] ; +RETN= [ SP ++ ] ; +RETE= [ SP ++ ] ; +LC0= [ SP ++ ] ; +LC1= [ SP ++ ] ; +LT0= [ SP ++ ] ; +LT1= [ SP ++ ] ; +LB0= [ SP ++ ] ; +LB1= [ SP ++ ] ; +CYCLES= [ SP ++ ] ; +CYCLES2= [ SP ++ ] ; +//EMUDAT= [ SP ++ ] ; +USP= [ SP ++ ] ; +SEQSTAT= [ SP ++ ] ; +SYSCFG= [ SP ++ ] ; + +//( R7 : Dreglim, P5 : Preglim ) = [ SP ++ ] ; /* Dregs and indexed Pregs (a) */ +( R7:0, P5:0) = [ SP++ ]; + +//( R7 : Dreglim ) = [ SP ++ ] ; /* Dregs, only (a) */ +( R7:0) = [ SP++ ]; + +//( P5 : Preglim ) = [ SP ++ ] ; /* indexed Pregs, only (a) */ +( P5:0) = [ SP++ ]; + +//LINK uimm18m4 ; /* allocate a stack frame of specified size (b) */ +LINK 0X0; +LINK 0X8; +LINK 0x3FFFC; + +UNLINK ; /* de-allocate the stack frame (b)*/ + +L$L$foo: (R7:6,P5:3) = [SP++]; /* Pop multiple on the same line with a label */