diff options
Diffstat (limited to 'gas/testsuite/gasp/macro.asm')
-rw-r--r-- | gas/testsuite/gasp/macro.asm | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/gas/testsuite/gasp/macro.asm b/gas/testsuite/gasp/macro.asm new file mode 100644 index 00000000000..dfb16bff296 --- /dev/null +++ b/gas/testsuite/gasp/macro.asm @@ -0,0 +1,102 @@ + .MACRO SUM FROM=0, TO=9 + ; \FROM \TO + MOV R\FROM,R10 +COUNT .ASSIGNA \FROM+1 + .AWHILE \&COUNT LE \TO + MOV R\&COUNT,R10 +COUNT .ASSIGNA \&COUNT+1 + .AENDW + .ENDM + + SUM 0,5 + SUM TO=5 + SUM FROM=2, TO=5 + + +; hi this is a comment + .MACRO BACK_SLASH_SET + \(MOV #"\",R0) + .ENDM + BACK_SLASH_SET + .MACRO COMM + bar ; this comment will get copied out + foo \; this one will get dropped + .ENDM + COMM + BACK_SLASH_SET + .MACRO PLUS2 + ADD #1,R\&V1 + .SDATA "\&V'1" + .ENDM +V .ASSIGNC "R" +V1 .ASSIGNA 1 + PLUS2 + .MACRO PLUS1 P,P1 + ADD #1,\P1 + .SDATA "\P'1" + .ENDM + PLUS1 R,R1 + + .MACRO SUM P1 + MOV R0,R10 + ADD R1,R10 + ADD R2,R10 + \P1 + ADD R3,R10 + .ENDM + + SUM .EXITM + + .MACRO foo bar=a default=b + \bar + \default + bar + default + .ENDM + foo default=dog bar=cat + foo X Y + foo + foo bar=cat default=dog + + + .MACRO foo bar + HI + HI \bar + HI + .ENDM + + foo 1 + foo 123 + foo 1 2 3 4 + foo + + + .MACRO PUSH Rn + MOV.L \Rn,@-r15 + .ENDM + PUSH R0 + PUSH R1 + + + .MACRO RES_STR STR, Rn + MOV.L #str\@,\Rn + BRA end_str\@ + NOP +str\@ .SDATA "\STR" + .ALIGN 2 +end_str\@ + .ENDM + + RES_STR "ONE",R0 + RES_STR "TWO",R1 + RES_STR "THREE",R2 + + + + RES_STR STR=donkey Rn=R1 + RES_STR donkey,R1 + RES_STR donkey Rn=R1 + .END + + + |