summaryrefslogtreecommitdiff
path: root/gas/testsuite/gasp/macro.asm
diff options
context:
space:
mode:
Diffstat (limited to 'gas/testsuite/gasp/macro.asm')
-rw-r--r--gas/testsuite/gasp/macro.asm102
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 0000000000..dfb16bff29
--- /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
+
+
+