diff options
author | Richard Henderson <rth@redhat.com> | 1999-05-03 07:29:11 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 1999-05-03 07:29:11 +0000 |
commit | 252b5132c753830d5fd56823373aed85f2a0db63 (patch) | |
tree | 1af963bfd8d3e55167b81def4207f175eaff3a56 /gas/testsuite/gasp | |
download | gdb-252b5132c753830d5fd56823373aed85f2a0db63.zip gdb-252b5132c753830d5fd56823373aed85f2a0db63.tar.gz gdb-252b5132c753830d5fd56823373aed85f2a0db63.tar.bz2 |
19990502 sourceware importbinu_ss_19990502
Diffstat (limited to 'gas/testsuite/gasp')
116 files changed, 8595 insertions, 0 deletions
diff --git a/gas/testsuite/gasp/INC1.H b/gas/testsuite/gasp/INC1.H new file mode 100644 index 0000000..0d37323 --- /dev/null +++ b/gas/testsuite/gasp/INC1.H @@ -0,0 +1,3 @@ +FILE 1 FIRST LINE + .INCLUDE "INC2.H" +FILE 1 LAST LINE diff --git a/gas/testsuite/gasp/INC2.H b/gas/testsuite/gasp/INC2.H new file mode 100644 index 0000000..083c3dc --- /dev/null +++ b/gas/testsuite/gasp/INC2.H @@ -0,0 +1,2 @@ + FILE 2 FIRST LINE + FILE 2 LAST LINE diff --git a/gas/testsuite/gasp/assign.asm b/gas/testsuite/gasp/assign.asm new file mode 100644 index 0000000..7f66718 --- /dev/null +++ b/gas/testsuite/gasp/assign.asm @@ -0,0 +1,13 @@ + +foo: .ASSIGNC "hello" +BAR: .ASSIGNA 12+34 + + \&foo'foo + \&foo\&foo\&foo + \&foo \&foo \&foo + \&BAR\&bar\&BAR + + + + + .END diff --git a/gas/testsuite/gasp/assign.err b/gas/testsuite/gasp/assign.err new file mode 100644 index 0000000..fe3733f --- /dev/null +++ b/gas/testsuite/gasp/assign.err @@ -0,0 +1 @@ +assign.asm:8 Can't find preprocessor variable bar. diff --git a/gas/testsuite/gasp/assign.out b/gas/testsuite/gasp/assign.out new file mode 100644 index 0000000..85509ae --- /dev/null +++ b/gas/testsuite/gasp/assign.out @@ -0,0 +1,22 @@ +! + +!foo: .ASSIGNC "hello" +!BAR: .ASSIGNA 12+34 +! + +! \&foo'foo + hellofoo +! \&foo\&foo\&foo + hellohellohello +! \&foo \&foo \&foo + hello hello hello +! \&BAR\&bar\&BAR + 4646 +! + +! + +! + +! +! .END diff --git a/gas/testsuite/gasp/condass.asm b/gas/testsuite/gasp/condass.asm new file mode 100644 index 0000000..2bd9f07 --- /dev/null +++ b/gas/testsuite/gasp/condass.asm @@ -0,0 +1,129 @@ + .AIF 1 EQ 1 + OK + .AELSE + BAD + .AENDI + .AIF 1 EQ 2 + BAD + .AELSE + OK + .AENDI + .AIF 1 EQ 2 + BAD + .AELSE + OK + .AIF 1 EQ 2 + BAD + .AELSE + OK + .AENDI + .AENDI + .AIF 1 LT 2 + OK + .AENDI + .AIF 1 EQ 2 + BAD + .AENDI + .AIF 1 NE 2 + OK + .AENDI + .AIF 1 LE 2 + OK + .AENDI + .AIF 1 GT 2 + BAD + .AENDI + .AIF 3 GE 2 + OK + .AENDI + .AIF 3 LT 2 + BAD + .AENDI + .AIF 3 EQ 2 + BAD + .AENDI + .AIF 3 NE 2 + OK + .AENDI + .AIF 3 LE 2 + BAD + .AENDI + .AIF 3 GT 2 + OK + .AENDI + .AIF 3 GE 2 + OK + .AENDI + .AIF "FOO" EQ "BAR" + BAD + .AENDI + .AIF "FOO" EQ "FOO" + OK + .AENDI + .AIF "FOO" NE "BAR" + OK + .AENDI + .AIF "FOO" EQ "FOO" + OK + .AENDI + .AIF 1 EQ 1 + .AIF 1 EQ 1 + OK + .AELSE + BAD + .AENDI + .AIF 1 EQ 0 + BAD + .AELSE + OK + .AENDI + OK + .AELSE + BAD + .AENDI + .AIF 1 EQ 0 + BAD + .AELSE + OK + .AENDI + .AIF 1 EQ 1 + OK + .AELSE + BAD + .AENDI + .AIF 1 EQ 0 + BAD + .AELSE + .AIF 1 EQ 1 + OK + .AELSE + BAD + .AENDI + .AIF 1 EQ 0 + BAD + .AELSE + OK + .AENDI + OK + .AENDI + .AIF 1 EQ 1 + OK + .AIF 1 EQ 1 + OK + .AELSE + BAD + .AENDI + .AIF 1 EQ 0 + BAD + .AELSE + OK + .AENDI + .AELSE + BAD + .AENDI + .AIF 1 EQ 0 + BAD + .AELSE + OK + .AENDI + .END diff --git a/gas/testsuite/gasp/condass.err b/gas/testsuite/gasp/condass.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/condass.err diff --git a/gas/testsuite/gasp/condass.out b/gas/testsuite/gasp/condass.out new file mode 100644 index 0000000..115cef5 --- /dev/null +++ b/gas/testsuite/gasp/condass.out @@ -0,0 +1,155 @@ +! .AIF 1 EQ 1 +! OK + OK +! .AELSE +! BAD +! .AENDI +! .AIF 1 EQ 2 +! BAD +! .AELSE +! OK + OK +! .AENDI +! .AIF 1 EQ 2 +! BAD +! .AELSE +! OK + OK +! .AIF 1 EQ 2 +! BAD +! .AELSE +! OK + OK +! .AENDI +! .AENDI +! .AIF 1 LT 2 +! OK + OK +! .AENDI +! .AIF 1 EQ 2 +! BAD +! .AENDI +! .AIF 1 NE 2 +! OK + OK +! .AENDI +! .AIF 1 LE 2 +! OK + OK +! .AENDI +! .AIF 1 GT 2 +! BAD +! .AENDI +! .AIF 3 GE 2 +! OK + OK +! .AENDI +! .AIF 3 LT 2 +! BAD +! .AENDI +! .AIF 3 EQ 2 +! BAD +! .AENDI +! .AIF 3 NE 2 +! OK + OK +! .AENDI +! .AIF 3 LE 2 +! BAD +! .AENDI +! .AIF 3 GT 2 +! OK + OK +! .AENDI +! .AIF 3 GE 2 +! OK + OK +! .AENDI +! .AIF "FOO" EQ "BAR" +! BAD +! .AENDI +! .AIF "FOO" EQ "FOO" +! OK + OK +! .AENDI +! .AIF "FOO" NE "BAR" +! OK + OK +! .AENDI +! .AIF "FOO" EQ "FOO" +! OK + OK +! .AENDI +! .AIF 1 EQ 1 +! .AIF 1 EQ 1 +! OK + OK +! .AELSE +! BAD +! .AENDI +! .AIF 1 EQ 0 +! BAD +! .AELSE +! OK + OK +! .AENDI +! OK + OK +! .AELSE +! BAD +! .AENDI +! .AIF 1 EQ 0 +! BAD +! .AELSE +! OK + OK +! .AENDI +! .AIF 1 EQ 1 +! OK + OK +! .AELSE +! BAD +! .AENDI +! .AIF 1 EQ 0 +! BAD +! .AELSE +! .AIF 1 EQ 1 +! OK + OK +! .AELSE +! BAD +! .AENDI +! .AIF 1 EQ 0 +! BAD +! .AELSE +! OK + OK +! .AENDI +! OK + OK +! .AENDI +! .AIF 1 EQ 1 +! OK + OK +! .AIF 1 EQ 1 +! OK + OK +! .AELSE +! BAD +! .AENDI +! .AIF 1 EQ 0 +! BAD +! .AELSE +! OK + OK +! .AENDI +! .AELSE +! BAD +! .AENDI +! .AIF 1 EQ 0 +! BAD +! .AELSE +! OK + OK +! .AENDI +! .END diff --git a/gas/testsuite/gasp/crash.asm b/gas/testsuite/gasp/crash.asm new file mode 100644 index 0000000..a710cc5 --- /dev/null +++ b/gas/testsuite/gasp/crash.asm @@ -0,0 +1,22 @@ + + Stuff to try and crash it + +foo: .MACRO + HI +bar: .MACRO + THERE + bar + .ENDM + + + .ENDM + foo + foo + foo + foo + foo + bar + + + + diff --git a/gas/testsuite/gasp/crash.err b/gas/testsuite/gasp/crash.err new file mode 100644 index 0000000..1008802 --- /dev/null +++ b/gas/testsuite/gasp/crash.err @@ -0,0 +1 @@ +crash.asm:18 Unreasonable expansion (-u turns off check). diff --git a/gas/testsuite/gasp/crash.out b/gas/testsuite/gasp/crash.out new file mode 100644 index 0000000..6b948a3 --- /dev/null +++ b/gas/testsuite/gasp/crash.out @@ -0,0 +1,3059 @@ +! + +! Stuff to try and crash it + Stuff to try and crash it +! + +!foo: .MACRO +! HI +!bar: .MACRO +! THERE +! bar +! .ENDM +! +! +! .ENDM +! foo +! HI + HI +!bar: .MACRO +! THERE +! bar +! .ENDM +! + +! + +! foo +! HI + HI +!bar: .MACRO +! THERE +! bar +! .ENDM +! + +! + +! foo +! HI + HI +!bar: .MACRO +! THERE +! bar +! .ENDM +! + +! + +! foo +! HI + HI +!bar: .MACRO +! THERE +! bar +! .ENDM +! + +! + +! foo +! HI + HI +!bar: .MACRO +! THERE +! bar +! .ENDM +! + +! + +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar +! THERE + THERE +! bar diff --git a/gas/testsuite/gasp/crash1.asm b/gas/testsuite/gasp/crash1.asm new file mode 100644 index 0000000..d2b6b30 --- /dev/null +++ b/gas/testsuite/gasp/crash1.asm @@ -0,0 +1,13 @@ + + + .MACRO foo a b c=a + \a \b \c \d + .ENDM + + foo 1 2 + foo 1 2 3 4 + foo 1 + foo + + + .END diff --git a/gas/testsuite/gasp/crash1.err b/gas/testsuite/gasp/crash1.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/crash1.err diff --git a/gas/testsuite/gasp/crash1.out b/gas/testsuite/gasp/crash1.out new file mode 100644 index 0000000..725d078 --- /dev/null +++ b/gas/testsuite/gasp/crash1.out @@ -0,0 +1,24 @@ +! + +! + +! .MACRO foo a b c=a +! \a \b \c \d +! .ENDM +! + +! foo 1 2 +! 1 2 a \d + 1 2 a \d +! foo 1 2 3 4 +! foo 1 +! 1 a \d + 1 a \d +! foo +! a \d + a \d +! + +! + +! .END diff --git a/gas/testsuite/gasp/crash2.asm b/gas/testsuite/gasp/crash2.asm new file mode 100644 index 0000000..288a003 --- /dev/null +++ b/gas/testsuite/gasp/crash2.asm @@ -0,0 +1,41 @@ + +foo: .ASSIGNA 1 + \&foo+1 + \&foo+1 +foo: .ASSIGNC "foo" + \&foo+1 + \&foo+1 + +foo: .ASSIGNA 1 + \&foo+1 + \&foo+1 +foo: .ASSIGNC "foo" + \&foo+1 + \&foo+1 + +foo: .ASSIGNA 1 + \&foo+1 + \&foo+1 +foo: .ASSIGNC "foo" + \&foo+1 + \&foo+1 + +foo: .ASSIGNA 1 + \&foo+1 + \&foo+1 +foo: .ASSIGNC "foo" + \&foo+1 + \&foo+1 + +foo: .ASSIGNA 1 + \&foo+1 + \&foo+1 +foo: .ASSIGNC "foo" + \&foo+1 + \&foo+1 + foo + foo foo + foo foo + foo + .END + diff --git a/gas/testsuite/gasp/crash2.err b/gas/testsuite/gasp/crash2.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/crash2.err diff --git a/gas/testsuite/gasp/crash2.out b/gas/testsuite/gasp/crash2.out new file mode 100644 index 0000000..0d1a2f7 --- /dev/null +++ b/gas/testsuite/gasp/crash2.out @@ -0,0 +1,69 @@ +! + +!foo: .ASSIGNA 1 +! \&foo+1 + 1+1 +! \&foo+1 + 1+1 +!foo: .ASSIGNC "foo" +! \&foo+1 + foo+1 +! \&foo+1 + foo+1 +! + +!foo: .ASSIGNA 1 +! \&foo+1 + 1+1 +! \&foo+1 + 1+1 +!foo: .ASSIGNC "foo" +! \&foo+1 + foo+1 +! \&foo+1 + foo+1 +! + +!foo: .ASSIGNA 1 +! \&foo+1 + 1+1 +! \&foo+1 + 1+1 +!foo: .ASSIGNC "foo" +! \&foo+1 + foo+1 +! \&foo+1 + foo+1 +! + +!foo: .ASSIGNA 1 +! \&foo+1 + 1+1 +! \&foo+1 + 1+1 +!foo: .ASSIGNC "foo" +! \&foo+1 + foo+1 +! \&foo+1 + foo+1 +! + +!foo: .ASSIGNA 1 +! \&foo+1 + 1+1 +! \&foo+1 + 1+1 +!foo: .ASSIGNC "foo" +! \&foo+1 + foo+1 +! \&foo+1 + foo+1 +! foo + foo +! foo foo + foo foo +! foo foo + foo foo +! foo + foo +! .END diff --git a/gas/testsuite/gasp/data.asm b/gas/testsuite/gasp/data.asm new file mode 100644 index 0000000..ba6b0a0 --- /dev/null +++ b/gas/testsuite/gasp/data.asm @@ -0,0 +1,23 @@ + +foo .DATA 1,2,3 +bar .DATA 1,2,3,4,5 ,6 + .DATA.B 12345,12,2 + .DATA.W 9,2,12,3,13+41,foo+9 + .DATA.L 2~99 + + + + .DATAB 1,2,3 + .DATAB 1,2,3 + + + + + .DATAB 1,9+32 + + .DATAB.L 1,H'11111111 + .DATAB.W 2,H'2222 + .DATAB.B 3,H'333 + + + .END diff --git a/gas/testsuite/gasp/data.err b/gas/testsuite/gasp/data.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/data.err diff --git a/gas/testsuite/gasp/data.out b/gas/testsuite/gasp/data.out new file mode 100644 index 0000000..e96e1e5 --- /dev/null +++ b/gas/testsuite/gasp/data.out @@ -0,0 +1,45 @@ +! + +!foo .DATA 1,2,3 +foo: .long 1,2,3 +!bar .DATA 1,2,3,4,5 ,6 +bar: .long 1,2,3,4,5,6 +! .DATA.B 12345,12,2 + .byte 12345,12,2 +! .DATA.W 9,2,12,3,13+41,foo+9 + .short 9,2,12,3,54,foo+9 +! .DATA.L 2~99 + .long 97 +! + +! + +! + +! .DATAB 1,2,3 + .fill 1,4,2 +! .DATAB 1,2,3 + .fill 1,4,2 +! + +! + +! + +! + +! .DATAB 1,9+32 + .fill 1,4,41 +! + +! .DATAB.L 1,H'11111111 + .fill 1,4,286331153 +! .DATAB.W 2,H'2222 + .fill 2,2,8738 +! .DATAB.B 3,H'333 + .fill 3,1,819 +! + +! + +! .END diff --git a/gas/testsuite/gasp/exp.asm b/gas/testsuite/gasp/exp.asm new file mode 100644 index 0000000..041608a --- /dev/null +++ b/gas/testsuite/gasp/exp.asm @@ -0,0 +1,80 @@ + +; test all ops + +a1 .EQU 4+10 +a2 .EQU 4-10 +a3 .EQU 4&10 +a4 .EQU 4|2 +a5 .EQU 4~2 +a6 .EQU 4*10 +a7 .EQU 40/10 +a8 .EQU +7 +a9 .EQU -7 +a10 .EQU ~7 + + + a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 + +; test the priorities + +b1 .EQU 1|2~3&4+5-8*7/2 +b2 .EQU (1|2~(3&(4+5-(8*(7/2))))) +b3 .EQU 10*2/3*4 +b4 .EQU (((10*2)/3)*4) +b5 .EQU 10+2-3+4 +b6 .EQU (((10+2)-3)+4) + + b1 b2 b3 b4 + +; test association + +c1 .EQU -~3 +c2 .EQU ~-3 +c3 .EQU -(~3) +c4 .EQU ~(-3) + + c1 c2 c3 c4 + +; test rules for symbols + +ok1 .EQU FOO +ok2 .EQU FOO+10 +ok3 .EQU 10+FOO +ok4 .EQU FOO-10 + + ok1 + ok2 + ok3 + ok4 + +ok5 .EQU FOO+3+4+5+6 +ok6 .EQU FOO-BAR + + ok5 + ok6 + +bad1 .EQU FOO+FOO +bad2 .EQU FOO*2 +bad3 .EQU FOO/2 +bad4 .EQU FOO|2 +bad5 .EQU FOO&2 +bad6 .EQU FOO~2 +bad7 .EQU FOO*2 + +; test spacing + +space1 .EQU 1 + 2 +3+FOO + 3 +space2 + +; from the SH manual + + .DATA.L 1+(2-(3+(4-5))),1 + + .DATA.L -H'fffffff1+H'000000f0*H'00000010|H'000000f0&H'0000ffff,H'00000fff + + .DATA.L -~-~H'0000000f,H'00 + + + + + .END diff --git a/gas/testsuite/gasp/exp.err b/gas/testsuite/gasp/exp.err new file mode 100644 index 0000000..f41fd52 --- /dev/null +++ b/gas/testsuite/gasp/exp.err @@ -0,0 +1,7 @@ +exp.asm:56 can't add two relocatable expressions +exp.asm:57 the * operator cannot take non-absolute arguments. +exp.asm:58 the / operator cannot take non-absolute arguments. +exp.asm:59 the | operator cannot take non-absolute arguments. +exp.asm:60 the & operator cannot take non-absolute arguments. +exp.asm:61 the ~ operator cannot take non-absolute arguments. +exp.asm:62 the * operator cannot take non-absolute arguments. diff --git a/gas/testsuite/gasp/exp.out b/gas/testsuite/gasp/exp.out new file mode 100644 index 0000000..cecb9a8 --- /dev/null +++ b/gas/testsuite/gasp/exp.out @@ -0,0 +1,124 @@ +! + +!; test all ops + ; test all ops +! + +!a1 .EQU 4+10 +!a2 .EQU 4-10 +!a3 .EQU 4&10 +!a4 .EQU 4|2 +!a5 .EQU 4~2 +!a6 .EQU 4*10 +!a7 .EQU 40/10 +!a8 .EQU +7 +!a9 .EQU -7 +!a10 .EQU ~7 +! + +! + +! a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 + 14 -6 0 6 6 40 4 7 -7 -8 +! + +!; test the priorities + ; test the priorities +! + +!b1 .EQU 1|2~3&4+5-8*7/2 +!b2 .EQU (1|2~(3&(4+5-(8*(7/2))))) +!b3 .EQU 10*2/3*4 +!b4 .EQU (((10*2)/3)*4) +!b5 .EQU 10+2-3+4 +!b6 .EQU (((10+2)-3)+4) +! + +! b1 b2 b3 b4 + 2 2 24 24 +! + +!; test association + ; test association +! + +!c1 .EQU -~3 +!c2 .EQU ~-3 +!c3 .EQU -(~3) +!c4 .EQU ~(-3) +! + +! c1 c2 c3 c4 + 4 2 4 2 +! + +!; test rules for symbols + ; test rules for symbols +! + +!ok1 .EQU FOO +!ok2 .EQU FOO+10 +!ok3 .EQU 10+FOO +!ok4 .EQU FOO-10 +! + +! ok1 + FOO +! ok2 + FOO+10 +! ok3 + FOO+10 +! ok4 + FOO+-10 +! + +!ok5 .EQU FOO+3+4+5+6 +!ok6 .EQU FOO-BAR +! + +! ok5 + FOO+18 +! ok6 + FOO-FOO +! + +!bad1 .EQU FOO+FOO +!bad2 .EQU FOO*2 +!bad3 .EQU FOO/2 +!bad4 .EQU FOO|2 +!bad5 .EQU FOO&2 +!bad6 .EQU FOO~2 +!bad7 .EQU FOO*2 +! + +!; test spacing + ; test spacing +! + +!space1 .EQU 1 + 2 +3+FOO + 3 +!space2 +space2: +! + +!; from the SH manual + ; from the SH manual +! + +! .DATA.L 1+(2-(3+(4-5))),1 + .long 1,1 +! + +! .DATA.L -H'fffffff1+H'000000f0*H'00000010|H'000000f0&H'0000ffff,H'00000fff + .long 4095,4095 +! + +! .DATA.L -~-~H'0000000f,H'00 + .long 17,0 +! + +! + +! +! + +! .END diff --git a/gas/testsuite/gasp/gasp.exp b/gas/testsuite/gasp/gasp.exp new file mode 100644 index 0000000..2a72a6d --- /dev/null +++ b/gas/testsuite/gasp/gasp.exp @@ -0,0 +1,40 @@ +# Test gasp. + +proc gasp_test { filename testname opt } { + global GASP + global srcdir + global host_triplet + + send_log "$srcdir/lib/run $GASP -I$srcdir/gasp -s $opt $filename.asm -o gasp.out\n" + catch "exec $srcdir/lib/run $GASP -I$srcdir/gasp -s $opt $filename.asm -o gasp.out" errs + catch "exec diff gasp.out $filename.out" diffs + set diffs [prune_warnings $diffs] + if ![string match "" $diffs] { + send_log "$diffs\n" + verbose $diffs + fail $testname + return 0 + } else { + pass $testname + } + +} + +foreach src [ lsort [ glob $srcdir/gasp/*.asm ] ] { + regsub -all ".asm" $src "" t + regsub "^.*/(\[^/\]*)$" $t "gasp \\1" testname + gasp_test $t $testname "" +} + +foreach src [ lsort [ glob $srcdir/gasp/mri/*.asm ] ] { + regsub -all ".asm" $src "" t + regsub "^.*/(\[^/\]*)$" $t "gasp MRI \\1" testname + gasp_test $t $testname "-M" +} + +# FIXME: this is here cause of a bug in DejaGnu 1.1.1. When it is no longer +# in use, then this can be removed. +if [info exists errorInfo] then { + unset errorInfo +} + diff --git a/gas/testsuite/gasp/include.asm b/gas/testsuite/gasp/include.asm new file mode 100644 index 0000000..69ed1dd --- /dev/null +++ b/gas/testsuite/gasp/include.asm @@ -0,0 +1,4 @@ + HI + .INCLUDE "INC1.H" + THERE + .END diff --git a/gas/testsuite/gasp/include.err b/gas/testsuite/gasp/include.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/include.err diff --git a/gas/testsuite/gasp/include.out b/gas/testsuite/gasp/include.out new file mode 100644 index 0000000..d77a0df --- /dev/null +++ b/gas/testsuite/gasp/include.out @@ -0,0 +1,15 @@ +! HI + HI +! .INCLUDE "INC1.H" +!FILE 1 FIRST LINE +FILE: 1 FIRST LINE +! .INCLUDE "INC2.H" +! FILE 2 FIRST LINE + FILE 2 FIRST LINE +! FILE 2 LAST LINE + FILE 2 LAST LINE +!FILE 1 LAST LINE +FILE: 1 LAST LINE +! THERE + THERE +! .END diff --git a/gas/testsuite/gasp/listing.asm b/gas/testsuite/gasp/listing.asm new file mode 100644 index 0000000..2f14cfc --- /dev/null +++ b/gas/testsuite/gasp/listing.asm @@ -0,0 +1,15 @@ + + + .HEADING " ""QUOTE"" " + .PAGE + .PRINT LIST + foo + .PRINT NOLIST + foo + + + .FORM LIN=12 + .FORM COL=90 + .FORM LIN=123 COL=23 + + .END diff --git a/gas/testsuite/gasp/listing.err b/gas/testsuite/gasp/listing.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/listing.err diff --git a/gas/testsuite/gasp/listing.out b/gas/testsuite/gasp/listing.out new file mode 100644 index 0000000..585bda2 --- /dev/null +++ b/gas/testsuite/gasp/listing.out @@ -0,0 +1,28 @@ +! + +! + +! .HEADING " ""QUOTE"" " + .title " "QUOTE" " +! .PAGE + .eject +! .PRINT LIST + .list +! foo + foo +! .PRINT NOLIST + .nolist +! foo + foo +! + +! + +! .FORM LIN=12 + .psize 12,132 +! .FORM COL=90 + .psize 60,90 +! .FORM LIN=123 COL=23 + .psize 123,23 +! +! .END diff --git a/gas/testsuite/gasp/macro.asm b/gas/testsuite/gasp/macro.asm new file mode 100644 index 0000000..dfb16bf --- /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 + + + diff --git a/gas/testsuite/gasp/macro.err b/gas/testsuite/gasp/macro.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/macro.err diff --git a/gas/testsuite/gasp/macro.out b/gas/testsuite/gasp/macro.out new file mode 100644 index 0000000..0740732 --- /dev/null +++ b/gas/testsuite/gasp/macro.out @@ -0,0 +1,382 @@ +! .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 +! ; 0 5 + ; 0 5 +! MOV R0,R10 + MOV R0,R10 +!COUNT .ASSIGNA 0+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R1,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R2,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R3,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R4,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R5,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! SUM TO=5 +! ; 0 5 + ; 0 5 +! MOV R0,R10 + MOV R0,R10 +!COUNT .ASSIGNA 0+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R1,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R2,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R3,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R4,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R5,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! SUM FROM=2, TO=5 +! ; 2 5 + ; 2 5 +! MOV R2,R10 + MOV R2,R10 +!COUNT .ASSIGNA 2+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R3,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R4,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! MOV R\&COUNT,R10 + MOV R5,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AWHILE \&COUNT LE 5 +! MOV R\&COUNT,R10 +!COUNT .ASSIGNA \&COUNT+1 +! .AENDW +! + +! + +!; hi this is a comment + ; hi this is a comment +! .MACRO BACK_SLASH_SET +! \(MOV #"\",R0) +! .ENDM +! BACK_SLASH_SET +! MOV #"\",R0 + MOV #"\",R0 +! .MACRO COMM +! bar ; this comment will get copied out +! foo \; this one will get dropped +! .ENDM +! COMM +! bar ; this comment will get copied out + bar ; this comment will get copied out +! foo \; this one will get dropped + foo \; this one will get dropped +! BACK_SLASH_SET +! MOV #"\",R0 + MOV #"\",R0 +! .MACRO PLUS2 +! ADD #1,R\&V1 +! .SDATA "\&V'1" +! .ENDM +!V .ASSIGNC "R" +!V1 .ASSIGNA 1 +! PLUS2 +! ADD #1,R\&V1 + ADD #1,R1 +! .SDATA "\&V'1" + .byte 82,49 +! .MACRO PLUS1 P,P1 +! ADD #1,\P1 +! .SDATA "\P'1" +! .ENDM +! PLUS1 R,R1 +! ADD #1,R1 + ADD #1,R1 +! .SDATA "R1" + .byte 82,49 +! + +! .MACRO SUM P1 +! MOV R0,R10 +! ADD R1,R10 +! ADD R2,R10 +! \P1 +! ADD R3,R10 +! .ENDM +! + +! SUM .EXITM +! MOV R0,R10 + MOV R0,R10 +! ADD R1,R10 + ADD R1,R10 +! ADD R2,R10 + ADD R2,R10 +! .EXITM +! + +! .MACRO foo bar=a default=b +! \bar +! \default +! bar +! default +! .ENDM +! foo default=dog bar=cat +! cat + cat +! dog + dog +! bar + bar +! default + default +! foo X Y +! X + X +! Y + Y +! bar + bar +! default + default +! foo +! a + a +! b + b +! bar + bar +! default + default +! foo bar=cat default=dog +! cat + cat +! dog + dog +! bar + bar +! default + default +! + +! + +! .MACRO foo bar +! HI +! HI \bar +! HI +! .ENDM +! + +! foo 1 +! HI + HI +! HI 1 + HI 1 +! HI + HI +! foo 123 +! HI + HI +! HI 123 + HI 123 +! HI + HI +! foo 1 2 3 4 +! foo +! HI + HI +! HI + HI +! HI + HI +! + +! +! .MACRO PUSH Rn +! MOV.L \Rn,@-r15 +! .ENDM +! PUSH R0 +! MOV.L R0,@-r15 + MOV.L R0,@-r15 +! PUSH R1 +! MOV.L R1,@-r15 + MOV.L R1,@-r15 +! + +! + +! .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 +! MOV.L #str00018,R0 + MOV.L #str00018,R0 +! BRA end_str00018 + BRA end_str00018 +! NOP + NOP +!str00018 .SDATA "ONE" +str00018: .byte 79,78,69 +! .ALIGN 2 + .align 2 +!end_str00018 +end_str00018: +! RES_STR "TWO",R1 +! MOV.L #str00019,R1 + MOV.L #str00019,R1 +! BRA end_str00019 + BRA end_str00019 +! NOP + NOP +!str00019 .SDATA "TWO" +str00019: .byte 84,87,79 +! .ALIGN 2 + .align 2 +!end_str00019 +end_str00019: +! RES_STR "THREE",R2 +! MOV.L #str00020,R2 + MOV.L #str00020,R2 +! BRA end_str00020 + BRA end_str00020 +! NOP + NOP +!str00020 .SDATA "THREE" +str00020: .byte 84,72,82,69,69 +! .ALIGN 2 + .align 2 +!end_str00020 +end_str00020: +! + +! + +! + +! RES_STR STR=donkey Rn=R1 +! MOV.L #str00021,R1 + MOV.L #str00021,R1 +! BRA end_str00021 + BRA end_str00021 +! NOP + NOP +!str00021 .SDATA "donkey" +str00021: .byte 100,111,110,107,101,121 +! .ALIGN 2 + .align 2 +!end_str00021 +end_str00021: +! RES_STR donkey,R1 +! MOV.L #str00022,R1 + MOV.L #str00022,R1 +! BRA end_str00022 + BRA end_str00022 +! NOP + NOP +!str00022 .SDATA "donkey" +str00022: .byte 100,111,110,107,101,121 +! .ALIGN 2 + .align 2 +!end_str00022 +end_str00022: +! RES_STR donkey Rn=R1 +! MOV.L #str00023,R1 + MOV.L #str00023,R1 +! BRA end_str00023 + BRA end_str00023 +! NOP + NOP +!str00023 .SDATA "donkey" +str00023: .byte 100,111,110,107,101,121 +! .ALIGN 2 + .align 2 +!end_str00023 +end_str00023: +! .END diff --git a/gas/testsuite/gasp/mdouble.asm b/gas/testsuite/gasp/mdouble.asm new file mode 100644 index 0000000..dbb77b4 --- /dev/null +++ b/gas/testsuite/gasp/mdouble.asm @@ -0,0 +1,47 @@ + + .MACRO HI + A + \! this is hidden + B + ! this is not + C + .ENDM + Hello + HI + Emily + + + H'0f + 200+H'0F + +XX .ASSIGNA Q'100 +! Definition: + .MACRO GET X=100,Y,Z + MOV #\X+H'0F,@B + \Y +\Z JMP @MAIN +L\@ ADD #1,@HL + MOV #0,@C \! Clear C + ADD #2,@C + ADD #\&XX, @C + .ENDM + + NOP + +!Call: + GET 200,"ADD #1,@B", ENTRY + .END + + ; Definition: + + + NOP + + ;Call: + MOV #200+0F,@B + ADD #1,@B +ENTRY: JMP @MAIN +L00000: ADD #1,@HL + MOV #0,@C + ADD #2,@C + ADD #0, @C diff --git a/gas/testsuite/gasp/mdouble.err b/gas/testsuite/gasp/mdouble.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/mdouble.err diff --git a/gas/testsuite/gasp/mdouble.out b/gas/testsuite/gasp/mdouble.out new file mode 100644 index 0000000..9d9ad62 --- /dev/null +++ b/gas/testsuite/gasp/mdouble.out @@ -0,0 +1,68 @@ +! + +! .MACRO HI +! A +! \! this is hidden +! B +! ! this is not +! C +! .ENDM +! Hello + Hello +! HI +! A + A +! +! B + B +! ! this is not + ! this is not +! C + C +! Emily + Emily +! +! + +! H'0f + 15 +! 200+H'0F + 200+15 +! + +!XX .ASSIGNA Q'100 +!! Definition: + ! Definition: +! .MACRO GET X=100,Y,Z +! MOV #\X+H'0F,@B +! \Y +!\Z JMP @MAIN +!L\@ ADD #1,@HL +! MOV #0,@C \! Clear C +! ADD #2,@C +! ADD #\&XX, @C +! .ENDM +! + +! NOP + NOP +! + +!!Call: + !Call: +! GET 200,"ADD #1,@B", ENTRY +! MOV #200+H'0F,@B + MOV #200+15,@B +! ADD #1,@B + ADD #1,@B +!ENTRY JMP @MAIN +ENTRY: JMP @MAIN +!L00001 ADD #1,@HL +L00001: ADD #1,@HL +! MOV #0,@C + MOV #0,@C +! ADD #2,@C + ADD #2,@C +! ADD #\&XX, @C + ADD #64, @C +! .END diff --git a/gas/testsuite/gasp/mri/embed.asm b/gas/testsuite/gasp/mri/embed.asm new file mode 100644 index 0000000..f1b8f78 --- /dev/null +++ b/gas/testsuite/gasp/mri/embed.asm @@ -0,0 +1,5 @@ +embed macro label +addr&&label dc.l label + endm + + embed foo diff --git a/gas/testsuite/gasp/mri/embed.out b/gas/testsuite/gasp/mri/embed.out new file mode 100644 index 0000000..92d925f --- /dev/null +++ b/gas/testsuite/gasp/mri/embed.out @@ -0,0 +1,9 @@ +;embed macro label +;addr&&label dc.l label +; endm +; + +; embed foo +;addrfoo dc.l foo +addrfoo: dc.l foo +;
\ No newline at end of file diff --git a/gas/testsuite/gasp/mri/exists.asm b/gas/testsuite/gasp/mri/exists.asm new file mode 100644 index 0000000..87220c6 --- /dev/null +++ b/gas/testsuite/gasp/mri/exists.asm @@ -0,0 +1,10 @@ +exists macro arg1,arg2 + ifne ==arg2 + move arg1,arg2 + elsec + push arg1 + endc + endm + + exists foo,bar + exists foo diff --git a/gas/testsuite/gasp/mri/exists.out b/gas/testsuite/gasp/mri/exists.out new file mode 100644 index 0000000..e75337d --- /dev/null +++ b/gas/testsuite/gasp/mri/exists.out @@ -0,0 +1,24 @@ +;exists macro arg1,arg2 +; ifne ==arg2 +; move arg1,arg2 +; elsec +; push arg1 +; endc +; endm +; + +; exists foo,bar +; ifne -1 +; move foo,bar + move foo,bar +; elsec +; push foo +; endc +; exists foo +; ifne 0 +; move foo, +; elsec +; push foo + push foo +; endc +;
\ No newline at end of file diff --git a/gas/testsuite/gasp/mri/irp.asm b/gas/testsuite/gasp/mri/irp.asm new file mode 100644 index 0000000..cda21d9 --- /dev/null +++ b/gas/testsuite/gasp/mri/irp.asm @@ -0,0 +1,4 @@ + irp param,arg1,arg2,arg3 + dc.l param + endr + end quit diff --git a/gas/testsuite/gasp/mri/irp.out b/gas/testsuite/gasp/mri/irp.out new file mode 100644 index 0000000..9105620 --- /dev/null +++ b/gas/testsuite/gasp/mri/irp.out @@ -0,0 +1,8 @@ +; irp param,arg1,arg2,arg3 +; dc.l param +; endr + dc.l arg1 + dc.l arg2 + dc.l arg3 +; end quit + end quit diff --git a/gas/testsuite/gasp/mri/irpc.asm b/gas/testsuite/gasp/mri/irpc.asm new file mode 100644 index 0000000..a51d687 --- /dev/null +++ b/gas/testsuite/gasp/mri/irpc.asm @@ -0,0 +1,3 @@ + irpc dummy,1234 + dc.l dummy + endr diff --git a/gas/testsuite/gasp/mri/irpc.out b/gas/testsuite/gasp/mri/irpc.out new file mode 100644 index 0000000..59f8824 --- /dev/null +++ b/gas/testsuite/gasp/mri/irpc.out @@ -0,0 +1,8 @@ +; irpc dummy,1234 +; dc.l dummy +; endr + dc.l 1 + dc.l 2 + dc.l 3 + dc.l 4 +;
\ No newline at end of file diff --git a/gas/testsuite/gasp/mri/macro.asm b/gas/testsuite/gasp/mri/macro.asm new file mode 100644 index 0000000..b711bd0 --- /dev/null +++ b/gas/testsuite/gasp/mri/macro.asm @@ -0,0 +1,8 @@ +get macro arg1,arg2,arg3 + dc.l arg1 + arg2 +arg3 dc.l \4 + move.\0 d0,d1 + endm + + get.b 1,<dc.l 2>,label,four diff --git a/gas/testsuite/gasp/mri/macro.out b/gas/testsuite/gasp/mri/macro.out new file mode 100644 index 0000000..86eeb94 --- /dev/null +++ b/gas/testsuite/gasp/mri/macro.out @@ -0,0 +1,18 @@ +;get macro arg1,arg2,arg3 +; dc.l arg1 +; arg2 +;arg3 dc.l \4 +; move.\0 d0,d1 +; endm +; + +; get.b 1,<dc.l 2>,label,four +; dc.l 1 + dc.l 1 +; dc.l 2 + dc.l 2 +;label dc.l four +label: dc.l four +; move.b d0,d1 + move.b d0,d1 +;
\ No newline at end of file diff --git a/gas/testsuite/gasp/mri/narg.asm b/gas/testsuite/gasp/mri/narg.asm new file mode 100644 index 0000000..114c940 --- /dev/null +++ b/gas/testsuite/gasp/mri/narg.asm @@ -0,0 +1,9 @@ +loop macro arg1,arg2,arg3 + dc.l NARG + ifne NARG + dc.l arg1 + loop arg2,arg3 + endc + endm + + loop 1,2,3 diff --git a/gas/testsuite/gasp/mri/narg.out b/gas/testsuite/gasp/mri/narg.out new file mode 100644 index 0000000..723ebc1 --- /dev/null +++ b/gas/testsuite/gasp/mri/narg.out @@ -0,0 +1,38 @@ +;loop macro arg1,arg2,arg3 +; dc.l NARG +; ifne NARG +; dc.l arg1 +; loop arg2,arg3 +; endc +; endm +; + +; loop 1,2,3 +; dc.l 3 + dc.l 3 +; ifne 3 +; dc.l 1 + dc.l 1 +; loop 2,3 +; dc.l 2 + dc.l 2 +; ifne 2 +; dc.l 2 + dc.l 2 +; loop 3, +; dc.l 1 + dc.l 1 +; ifne 1 +; dc.l 3 + dc.l 3 +; loop , +; dc.l 0 + dc.l 0 +; ifne 0 +; dc.l +; loop , +; endc +; endc +; endc +; endc +;
\ No newline at end of file diff --git a/gas/testsuite/gasp/mri/rept.asm b/gas/testsuite/gasp/mri/rept.asm new file mode 100644 index 0000000..d563bb2 --- /dev/null +++ b/gas/testsuite/gasp/mri/rept.asm @@ -0,0 +1,3 @@ + rept 3 + dc.l 1 + endr diff --git a/gas/testsuite/gasp/mri/rept.out b/gas/testsuite/gasp/mri/rept.out new file mode 100644 index 0000000..da4ed6b --- /dev/null +++ b/gas/testsuite/gasp/mri/rept.out @@ -0,0 +1,16 @@ +; rept 3 +; dc.l 1 +; endr +; dc.l 1 + dc.l 1 +; REPT 2 +; dc.l 1 +; ENDR +; dc.l 1 + dc.l 1 +; REPT 1 +; dc.l 1 +; ENDR +; dc.l 1 + dc.l 1 +;
\ No newline at end of file diff --git a/gas/testsuite/gasp/pl1.asm b/gas/testsuite/gasp/pl1.asm new file mode 100644 index 0000000..f38bfde --- /dev/null +++ b/gas/testsuite/gasp/pl1.asm @@ -0,0 +1,20 @@ + + .ALTERNATE + +alloc MACRO val1,val2 + DB val1 + DB val2 + ENDM + + alloc "that's" 'show biz' + alloc 0,1 + alloc 0 1 + alloc 0 1 + alloc ,1 + + + + + + + diff --git a/gas/testsuite/gasp/pl1.err b/gas/testsuite/gasp/pl1.err new file mode 100644 index 0000000..a1e3318 --- /dev/null +++ b/gas/testsuite/gasp/pl1.err @@ -0,0 +1 @@ +END missing from end of file. diff --git a/gas/testsuite/gasp/pl1.out b/gas/testsuite/gasp/pl1.out new file mode 100644 index 0000000..8b80f12 --- /dev/null +++ b/gas/testsuite/gasp/pl1.out @@ -0,0 +1,49 @@ +! +! .ALTERNATE +! + +!alloc MACRO val1,val2 +! DB val1 +! DB val2 +! ENDM +! + +! alloc "that's" 'show biz' +! DB "that's" + .byte 116,104,97,116,39,115 +! DB "show biz" + .byte 115,104,111,119,32,98,105,122 +! alloc 0,1 +! DB 0 + .byte 0 +! DB 1 + .byte 1 +! alloc 0 1 +! DB 0 + .byte 0 +! DB 1 + .byte 1 +! alloc 0 1 +! DB 0 + .byte 0 +! DB 1 + .byte 1 +! alloc ,1 +! DB + .byte +! DB 1 + .byte 1 +! + +! + +! +! + +! + +! + +! + +!
\ No newline at end of file diff --git a/gas/testsuite/gasp/pl2.asm b/gas/testsuite/gasp/pl2.asm new file mode 100644 index 0000000..2971137 --- /dev/null +++ b/gas/testsuite/gasp/pl2.asm @@ -0,0 +1,28 @@ + + + .ALTERNATE + + ! ok + !! also ok + +foo MACRO + ! you can see me + !! but not me + ! you can see me + !! but not me + but this "SHOULD !!BE OK" + ENDM + + foo + + +define MACRO val1,val2 + DB val1 ! this comment will show up + DB val2 !! this on won't + ENDM + + define 0,1 + + + END + diff --git a/gas/testsuite/gasp/pl2.err b/gas/testsuite/gasp/pl2.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/pl2.err diff --git a/gas/testsuite/gasp/pl2.out b/gas/testsuite/gasp/pl2.out new file mode 100644 index 0000000..cca6fa3 --- /dev/null +++ b/gas/testsuite/gasp/pl2.out @@ -0,0 +1,51 @@ +! + +! + +! .ALTERNATE +! + +! ! ok + ! ok +! !! also ok + !! also ok +! + +!foo MACRO +! ! you can see me +! !! but not me +! ! you can see me +! !! but not me +! but this "SHOULD !!BE OK" +! ENDM +! + +! foo +! ! you can see me + ! you can see me +! +! ! you can see me + ! you can see me +! +! but this "SHOULD !!BE OK" + but this "SHOULD !!BE OK" +! + +! + +!define MACRO val1,val2 +! DB val1 ! this comment will show up +! DB val2 !! this on won't +! ENDM +! + +! define 0,1 +! DB 0 ! this comment will show up + .byte 0! this comment will show up +! DB 1 + .byte 1 +! + +! + +! END diff --git a/gas/testsuite/gasp/pl3.asm b/gas/testsuite/gasp/pl3.asm new file mode 100644 index 0000000..0131dcc --- /dev/null +++ b/gas/testsuite/gasp/pl3.asm @@ -0,0 +1,30 @@ + .ALTERNATE + +foo MACRO string + LOCAL lab1, lab2 +lab1: DATA.L lab2 +lab2: SDATA string + ENDM + + foo "An example" + foo "using LOCAL" + +! test of LOCAL directive + +chk_err MACRO limit + LOCAL skip !! frob + LOCAL zap,dog,barf +barf: cmp ax,limit !! check value against + !! limit + jle skip !! skip call if OK +skip: call error + foo dog + zap dog + nop + ENDM + + chk_err 5 + chk_err 10 + + + END diff --git a/gas/testsuite/gasp/pl3.err b/gas/testsuite/gasp/pl3.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/pl3.err diff --git a/gas/testsuite/gasp/pl3.out b/gas/testsuite/gasp/pl3.out new file mode 100644 index 0000000..066194c --- /dev/null +++ b/gas/testsuite/gasp/pl3.out @@ -0,0 +1,86 @@ +! .ALTERNATE +! + +!foo MACRO string +! LOCAL lab1, lab2 +!lab1: DATA.L lab2 +!lab2: SDATA string +! ENDM +! + +! foo "An example" +! +!LL0001: DATA.L LL0002 +LL0001: .long LL0002 +!LL0002: SDATA "An example" +LL0002: .byte 65,110,32,101,120,97,109,112,108,101 +! foo "using LOCAL" +! +!LL0003: DATA.L LL0004 +LL0003: .long LL0004 +!LL0004: SDATA "using LOCAL" +LL0004: .byte 117,115,105,110,103,32,76,79,67,65,76 +! + +!! test of LOCAL directive + ! test of LOCAL directive +! + +!chk_err MACRO limit +! LOCAL skip !! frob +! LOCAL zap,dog,barf +!barf: cmp ax,limit !! check value against +! !! limit +! jle skip !! skip call if OK +!skip: call error +! foo dog +! zap dog +! nop +! ENDM +! + +! chk_err 5 +! +! +!LL0008: cmp ax,5 +LL0008: cmp ax,5 +! +! jle LL0005 + jle LL0005 +!LL0005: call error +LL0005: call error +! foo LL0007 +! +!LL0009: DATA.L LL000a +LL0009: .long LL000a +!LL000a: SDATA LL0007 +LL000a: .byte 76,76,48,48,48,55 +! LL0006 LL0007 + LL0006 LL0007 +! nop + nop +! chk_err 10 +! +! +!LL000e: cmp ax,10 +LL000e: cmp ax,10 +! +! jle LL000b + jle LL000b +!LL000b: call error +LL000b: call error +! foo LL000d +! +!LL000f: DATA.L LL0010 +LL000f: .long LL0010 +!LL0010: SDATA LL000d +LL0010: .byte 76,76,48,48,48,100 +! LL000c LL000d + LL000c LL000d +! nop + nop +! + +! + +! END diff --git a/gas/testsuite/gasp/pl4.asm b/gas/testsuite/gasp/pl4.asm new file mode 100644 index 0000000..f1dd3e8 --- /dev/null +++ b/gas/testsuite/gasp/pl4.asm @@ -0,0 +1,10 @@ + .ALTERNATE +! test of macro substitution around &s + + +foo MACRO a,b + x&a&b + ENDM + + foo 3 2 + END diff --git a/gas/testsuite/gasp/pl4.err b/gas/testsuite/gasp/pl4.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/pl4.err diff --git a/gas/testsuite/gasp/pl4.out b/gas/testsuite/gasp/pl4.out new file mode 100644 index 0000000..35d1391 --- /dev/null +++ b/gas/testsuite/gasp/pl4.out @@ -0,0 +1,16 @@ +! .ALTERNATE +!! test of macro substitution around &s + ! test of macro substitution around &s +! + +! + +!foo MACRO a,b +! x&a&b +! ENDM +! + +! foo 3 2 +! x32 + x32 +! END diff --git a/gas/testsuite/gasp/pl5.asm b/gas/testsuite/gasp/pl5.asm new file mode 100644 index 0000000..16b999b --- /dev/null +++ b/gas/testsuite/gasp/pl5.asm @@ -0,0 +1,15 @@ +! test of literal text operator + .ALTERNATE +foop MACRO str1,str2 + SDATA "str1" + SDATA str2 + ENDM + + + + foop this< is a <string> with angle brackets> + foop this< is a string with spaces> + foop this < is a string with a !>> + + + END diff --git a/gas/testsuite/gasp/pl5.err b/gas/testsuite/gasp/pl5.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/pl5.err diff --git a/gas/testsuite/gasp/pl5.out b/gas/testsuite/gasp/pl5.out new file mode 100644 index 0000000..0aa488b --- /dev/null +++ b/gas/testsuite/gasp/pl5.out @@ -0,0 +1,32 @@ +!! test of literal text operator + ! test of literal text operator +! .ALTERNATE +!foop MACRO str1,str2 +! SDATA "str1" +! SDATA str2 +! ENDM +! + +! + +! +! foop this< is a <string> with angle brackets> +! SDATA "this" + .byte 116,104,105,115 +! SDATA " is a <string> with angle brackets" + .byte 32,105,115,32,97,32,60,115,116,114,105,110,103,62,32,119,105,116,104,32,97,110,103,108,101,32,98,114,97,99,107,101,116,115 +! foop this< is a string with spaces> +! SDATA "this" + .byte 116,104,105,115 +! SDATA " is a string with spaces" + .byte 32,105,115,32,97,32,115,116,114,105,110,103,32,119,105,116,104,32,115,112,97,99,101,115 +! foop this < is a string with a !>> +! SDATA "this" + .byte 116,104,105,115 +! SDATA " is a string with a >" + .byte 32,105,115,32,97,32,115,116,114,105,110,103,32,119,105,116,104,32,97,32,62 +! + +! + +! END diff --git a/gas/testsuite/gasp/pl6.asm b/gas/testsuite/gasp/pl6.asm new file mode 100644 index 0000000..162d617 --- /dev/null +++ b/gas/testsuite/gasp/pl6.asm @@ -0,0 +1,21 @@ + .ALTERNATE +! test of expression operator +define MACRO val, string + SDATA val + SDATA string + ENDM + define "1","99%of100" ! notice % within string + define %1 + 2, "=3" + + + define % 1 + 2 %3+4 + + define %3*4-2 <=10> + + define %3*4-2 5 + + define %1 + 2,<is equal to %1 + 2, right?> + + ! has no effect + + end diff --git a/gas/testsuite/gasp/pl6.err b/gas/testsuite/gasp/pl6.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/pl6.err diff --git a/gas/testsuite/gasp/pl6.out b/gas/testsuite/gasp/pl6.out new file mode 100644 index 0000000..dcd16cf --- /dev/null +++ b/gas/testsuite/gasp/pl6.out @@ -0,0 +1,54 @@ +! .ALTERNATE +!! test of expression operator + ! test of expression operator +!define MACRO val, string +! SDATA val +! SDATA string +! ENDM +! define "1","99%of100" ! notice % within string +! SDATA "1" + .byte 49 +! SDATA "99%of100" + .byte 57,57,37,111,102,49,48,48 +! define %1 + 2, "=3" +! SDATA 3 + .byte 51 +! SDATA "=3" + .byte 61,51 +! + +! + +! define % 1 + 2 %3+4 +! SDATA 3 + .byte 51 +! SDATA 7 + .byte 55 +! + +! define %3*4-2 <=10> +! SDATA 10 + .byte 49,48 +! SDATA "=10" + .byte 61,49,48 +! + +! define %3*4-2 5 +! SDATA 10 + .byte 49,48 +! SDATA 5 + .byte 53 +! + +! define %1 + 2,<is equal to %1 + 2, right?> +! SDATA 3 + .byte 51 +! SDATA "is equal to %1 + 2, right?" + .byte 105,115,32,101,113,117,97,108,32,116,111,32,37,49,32,43,32,50,44,32,114,105,103,104,116,63 +! + +! ! has no effect + ! has no effect +! + +! end diff --git a/gas/testsuite/gasp/pl7.asm b/gas/testsuite/gasp/pl7.asm new file mode 100644 index 0000000..58a40af --- /dev/null +++ b/gas/testsuite/gasp/pl7.asm @@ -0,0 +1,12 @@ + .ALTERNATE +! test of string operators +define MACRO str1,str2 + SDATA str1 + SDATA "str2" +ENDM + define one" way to get "spaces,0 + define "lot's! of <special>,chars%", 0 + + + + diff --git a/gas/testsuite/gasp/pl7.err b/gas/testsuite/gasp/pl7.err new file mode 100644 index 0000000..a1e3318 --- /dev/null +++ b/gas/testsuite/gasp/pl7.err @@ -0,0 +1 @@ +END missing from end of file. diff --git a/gas/testsuite/gasp/pl7.out b/gas/testsuite/gasp/pl7.out new file mode 100644 index 0000000..1519b34 --- /dev/null +++ b/gas/testsuite/gasp/pl7.out @@ -0,0 +1,26 @@ +! .ALTERNATE +!! test of string operators + ! test of string operators +!define MACRO str1,str2 +! SDATA str1 +! SDATA "str2" +!ENDM +! define one" way to get "spaces,0 +! SDATA one" way to get "spaces + .byte 111,110,101,34,32,119,97,121,32,116,111,32,103,101,116,32,34,115,112,97,99,101,115 +! SDATA "0" + .byte 48 +! define "lot's! of <special>,chars%", 0 +! SDATA "lot's of <special>,chars%" + .byte 108,111,116,39,115,32,111,102,32,60,115,112,101,99,105,97,108,62,44,99,104,97,114,115,37 +! SDATA "0" + .byte 48 +! + +! + +! + +! + +!
\ No newline at end of file diff --git a/gas/testsuite/gasp/pl8.asm b/gas/testsuite/gasp/pl8.asm new file mode 100644 index 0000000..925b172 --- /dev/null +++ b/gas/testsuite/gasp/pl8.asm @@ -0,0 +1,18 @@ + + .ALTERNATE + SDATA %1+2+3 + SDATA "5" + + + + MACRO foo + SDATA "HI" !! this will go + SDATA "THERE ! this will stay + ENDM + + foo + + + SDATA <!<this is <a wacky> example!>!!> + SDATA "<this is <a wacky> example>!" + END diff --git a/gas/testsuite/gasp/pl8.err b/gas/testsuite/gasp/pl8.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/pl8.err diff --git a/gas/testsuite/gasp/pl8.out b/gas/testsuite/gasp/pl8.out new file mode 100644 index 0000000..3710412 --- /dev/null +++ b/gas/testsuite/gasp/pl8.out @@ -0,0 +1,33 @@ +! + +! .ALTERNATE +! SDATA %1+2+3 + .byte 37,49,43,50,43,51,32 +! SDATA "5" + .byte 53 +! + +! + +! + +! MACRO foo +! SDATA "HI" !! this will go +! SDATA "THERE ! this will stay +! ENDM +! + +! foo +! SDATA "HI" + .byte 72,73 +! SDATA "THERE ! this will stay + .byte 84,72,69,82,69,9,32,116,104,105,115,32,119,105,108,108,32,115,116,97,121 +! + +! + +! SDATA <!<this is <a wacky> example!>!!> + .byte 60,116,104,105,115,32,105,115,32,60,97,32,119,97,99,107,121,62,32,101,120,97,109,112,108,101,62,33 +! SDATA "<this is <a wacky> example>!" + .byte 60,116,104,105,115,32,105,115,32,60,97,32,119,97,99,107,121,62,32,101,120,97,109,112,108,101,62,34 +! END diff --git a/gas/testsuite/gasp/pr7583.asm b/gas/testsuite/gasp/pr7583.asm new file mode 100644 index 0000000..c97caf5 --- /dev/null +++ b/gas/testsuite/gasp/pr7583.asm @@ -0,0 +1,3 @@ + + .sdata "v1.0000" + .end diff --git a/gas/testsuite/gasp/pr7583.err b/gas/testsuite/gasp/pr7583.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/pr7583.err diff --git a/gas/testsuite/gasp/pr7583.out b/gas/testsuite/gasp/pr7583.out new file mode 100644 index 0000000..a5df1d7 --- /dev/null +++ b/gas/testsuite/gasp/pr7583.out @@ -0,0 +1,5 @@ +! + +! .sdata "v1.0000" + .byte 118,49,46,48,48,48,48 +! .end diff --git a/gas/testsuite/gasp/reg.asm b/gas/testsuite/gasp/reg.asm new file mode 100644 index 0000000..eb463ed --- /dev/null +++ b/gas/testsuite/gasp/reg.asm @@ -0,0 +1,9 @@ + + +foo .REG (r1) + add foo,foo + +bar .reg (r2) + add bar,foo + + .END diff --git a/gas/testsuite/gasp/reg.err b/gas/testsuite/gasp/reg.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/reg.err diff --git a/gas/testsuite/gasp/reg.out b/gas/testsuite/gasp/reg.out new file mode 100644 index 0000000..79268a3 --- /dev/null +++ b/gas/testsuite/gasp/reg.out @@ -0,0 +1,15 @@ +! + +! + +!foo .REG (r1) +! add foo,foo + add r1,r1 +! + +!bar .reg (r2) +! add bar,foo + add r2,r1 +! + +! .END diff --git a/gas/testsuite/gasp/rep.asm b/gas/testsuite/gasp/rep.asm new file mode 100644 index 0000000..027ac47 --- /dev/null +++ b/gas/testsuite/gasp/rep.asm @@ -0,0 +1,13 @@ + .AREPEAT 5 + FIVE + .AREPEAT 2 + TWO + .AENDR + .AREPEAT 3 + THREE + .AREPEAT 2 + TWO + .AENDR + .AENDR + .AENDR + .END diff --git a/gas/testsuite/gasp/rep.err b/gas/testsuite/gasp/rep.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/rep.err diff --git a/gas/testsuite/gasp/rep.out b/gas/testsuite/gasp/rep.out new file mode 100644 index 0000000..510d0e1 --- /dev/null +++ b/gas/testsuite/gasp/rep.out @@ -0,0 +1,391 @@ +! .AREPEAT 5 +! FIVE +! .AREPEAT 2 +! TWO +! .AENDR +! .AREPEAT 3 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! .AENDR +! FIVE + FIVE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 3 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 2 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 4 +! FIVE +! .AREPEAT 2 +! TWO +! .AENDR +! .AREPEAT 3 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! .AENDR +! FIVE + FIVE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 3 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 2 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 3 +! FIVE +! .AREPEAT 2 +! TWO +! .AENDR +! .AREPEAT 3 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! .AENDR +! FIVE + FIVE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 3 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 2 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 2 +! FIVE +! .AREPEAT 2 +! TWO +! .AENDR +! .AREPEAT 3 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! .AENDR +! FIVE + FIVE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 3 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 2 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! FIVE +! .AREPEAT 2 +! TWO +! .AENDR +! .AREPEAT 3 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! .AENDR +! FIVE + FIVE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 3 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 2 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! THREE +! .AREPEAT 2 +! TWO +! .AENDR +! .AENDR +! THREE + THREE +! .AREPEAT 2 +! TWO +! .AENDR +! TWO + TWO +! .AREPEAT 1 +! TWO +! .AENDR +! TWO + TWO +! .END diff --git a/gas/testsuite/gasp/repeat.asm b/gas/testsuite/gasp/repeat.asm new file mode 100644 index 0000000..7a85da3 --- /dev/null +++ b/gas/testsuite/gasp/repeat.asm @@ -0,0 +1,14 @@ + + .AREPEAT 10 + TEN + .AREPEAT 2 + TWENTY + .AENDR + .AENDR + + .AREPEAT 3 + ROTCL R2 + DIV1 R0,R1 + .AENDR + + .END diff --git a/gas/testsuite/gasp/repeat.err b/gas/testsuite/gasp/repeat.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/repeat.err diff --git a/gas/testsuite/gasp/repeat.out b/gas/testsuite/gasp/repeat.out new file mode 100644 index 0000000..705d8d8 --- /dev/null +++ b/gas/testsuite/gasp/repeat.out @@ -0,0 +1,211 @@ +! + +! .AREPEAT 10 +! TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! .AENDR +! TEN + TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 9 +! TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! .AENDR +! TEN + TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 8 +! TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! .AENDR +! TEN + TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 7 +! TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! .AENDR +! TEN + TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 6 +! TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! .AENDR +! TEN + TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 5 +! TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! .AENDR +! TEN + TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 4 +! TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! .AENDR +! TEN + TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 3 +! TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! .AENDR +! TEN + TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 2 +! TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! .AENDR +! TEN + TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! .AENDR +! TEN + TEN +! .AREPEAT 2 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! .AREPEAT 1 +! TWENTY +! .AENDR +! TWENTY + TWENTY +! + +! .AREPEAT 3 +! ROTCL R2 +! DIV1 R0,R1 +! .AENDR +! ROTCL R2 + ROTCL R2 +! DIV1 R0,R1 + DIV1 R0,R1 +! .AREPEAT 2 +! ROTCL R2 +! DIV1 R0,R1 +! .AENDR +! ROTCL R2 + ROTCL R2 +! DIV1 R0,R1 + DIV1 R0,R1 +! .AREPEAT 1 +! ROTCL R2 +! DIV1 R0,R1 +! .AENDR +! ROTCL R2 + ROTCL R2 +! DIV1 R0,R1 + DIV1 R0,R1 +! + +! .END diff --git a/gas/testsuite/gasp/reperr.asm b/gas/testsuite/gasp/reperr.asm new file mode 100644 index 0000000..60882b2 --- /dev/null +++ b/gas/testsuite/gasp/reperr.asm @@ -0,0 +1,2 @@ + + .REPEAT 10 diff --git a/gas/testsuite/gasp/reperr.err b/gas/testsuite/gasp/reperr.err new file mode 100644 index 0000000..a1e3318 --- /dev/null +++ b/gas/testsuite/gasp/reperr.err @@ -0,0 +1 @@ +END missing from end of file. diff --git a/gas/testsuite/gasp/reperr.out b/gas/testsuite/gasp/reperr.out new file mode 100644 index 0000000..2c9f8c6 --- /dev/null +++ b/gas/testsuite/gasp/reperr.out @@ -0,0 +1,5 @@ +! + +! .REPEAT 10 + .REPEAT 10 +!
\ No newline at end of file diff --git a/gas/testsuite/gasp/reperr1.asm b/gas/testsuite/gasp/reperr1.asm new file mode 100644 index 0000000..2d987e4 --- /dev/null +++ b/gas/testsuite/gasp/reperr1.asm @@ -0,0 +1,3 @@ + + .AREPEAT 10 + .END diff --git a/gas/testsuite/gasp/reperr1.err b/gas/testsuite/gasp/reperr1.err new file mode 100644 index 0000000..536545b --- /dev/null +++ b/gas/testsuite/gasp/reperr1.err @@ -0,0 +1 @@ +End of file whilst inside AREPEAT, started on line 3. diff --git a/gas/testsuite/gasp/reperr1.out b/gas/testsuite/gasp/reperr1.out new file mode 100644 index 0000000..dd82880 --- /dev/null +++ b/gas/testsuite/gasp/reperr1.out @@ -0,0 +1,5 @@ +! + +! .AREPEAT 10 +! .END +!
\ No newline at end of file diff --git a/gas/testsuite/gasp/reperr2.asm b/gas/testsuite/gasp/reperr2.asm new file mode 100644 index 0000000..de06a71 --- /dev/null +++ b/gas/testsuite/gasp/reperr2.asm @@ -0,0 +1,6 @@ + + .AREPEAT 5 + .AENDR + .AENDR + .END + diff --git a/gas/testsuite/gasp/reperr2.err b/gas/testsuite/gasp/reperr2.err new file mode 100644 index 0000000..840ccc5 --- /dev/null +++ b/gas/testsuite/gasp/reperr2.err @@ -0,0 +1 @@ +reperr2.asm:4 AENDR without a AREPEAT. diff --git a/gas/testsuite/gasp/reperr2.out b/gas/testsuite/gasp/reperr2.out new file mode 100644 index 0000000..df7a84d --- /dev/null +++ b/gas/testsuite/gasp/reperr2.out @@ -0,0 +1,14 @@ +! + +! .AREPEAT 5 +! .AENDR +! .AREPEAT 4 +! .AENDR +! .AREPEAT 3 +! .AENDR +! .AREPEAT 2 +! .AENDR +! .AREPEAT 1 +! .AENDR +! .AENDR +! .END diff --git a/gas/testsuite/gasp/reperr3.asm b/gas/testsuite/gasp/reperr3.asm new file mode 100644 index 0000000..464bc79 --- /dev/null +++ b/gas/testsuite/gasp/reperr3.asm @@ -0,0 +1,21 @@ + .AREPEAT 4 + .AREPEAT 4 + .AREPEAT 4 + .AREPEAT 4 + stuff + .AENDR + which + .AENDR + will + .AENDR + get + .AENDR + repetaed + .AENDR + + .AENDR + .AENDR + .AENDR + .AENDR + .AENDR + .END diff --git a/gas/testsuite/gasp/reperr3.err b/gas/testsuite/gasp/reperr3.err new file mode 100644 index 0000000..1be0dce --- /dev/null +++ b/gas/testsuite/gasp/reperr3.err @@ -0,0 +1,6 @@ +reperr3.asm:14 AENDR without a AREPEAT. +reperr3.asm:16 AENDR without a AREPEAT. +reperr3.asm:17 AENDR without a AREPEAT. +reperr3.asm:18 AENDR without a AREPEAT. +reperr3.asm:19 AENDR without a AREPEAT. +reperr3.asm:20 AENDR without a AREPEAT. diff --git a/gas/testsuite/gasp/reperr3.out b/gas/testsuite/gasp/reperr3.out new file mode 100644 index 0000000..9a3513b --- /dev/null +++ b/gas/testsuite/gasp/reperr3.out @@ -0,0 +1,2035 @@ +! .AREPEAT 4 +! .AREPEAT 4 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! get +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 3 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 2 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 1 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! get + get +! .AREPEAT 3 +! .AREPEAT 4 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! get +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 3 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 2 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 1 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! get + get +! .AREPEAT 2 +! .AREPEAT 4 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! get +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 3 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 2 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 1 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! get + get +! .AREPEAT 1 +! .AREPEAT 4 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! get +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 3 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 2 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! .AREPEAT 1 +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! will +! .AENDR +! .AREPEAT 4 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 3 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 2 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! .AREPEAT 1 +! .AREPEAT 4 +! stuff +! .AENDR +! which +! .AENDR +! .AREPEAT 4 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 3 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 2 +! stuff +! .AENDR +! stuff + stuff +! .AREPEAT 1 +! stuff +! .AENDR +! stuff + stuff +! which + which +! will + will +! get + get +! repetaed + repetaed +! .AENDR +! + +! .AENDR +! .AENDR +! .AENDR +! .AENDR +! .AENDR +! .END diff --git a/gas/testsuite/gasp/sdata.asm b/gas/testsuite/gasp/sdata.asm new file mode 100644 index 0000000..d6bd23c --- /dev/null +++ b/gas/testsuite/gasp/sdata.asm @@ -0,0 +1,24 @@ + + + .SDATA "HI","STEVE" + .SDATA "HI" , "STEVE" , <72>,<73>,<83><69><86><69> + + .SDATA "H""I" , "STEVE" , <72>,<73>,<83><69><86><69> + + + + .SDATA "SHOULD NOT FAIL" "HERE" + .SDATA "SHOULD FAIL" foo "HERE" + + .SDATAB 8,"BOINK" + + ; examples from book + + .SDATAB 2,"AAAAA" + .SDATAB 2,"""BBB""" + .SDATAB 2,"AABB"<H'07> + + +a1: .SDATAZ "HI" +a2: .SDATAC "HI" +a3: .SDATA "HI" diff --git a/gas/testsuite/gasp/sdata.err b/gas/testsuite/gasp/sdata.err new file mode 100644 index 0000000..7544ccc --- /dev/null +++ b/gas/testsuite/gasp/sdata.err @@ -0,0 +1,3 @@ +sdata.asm:19 Character code in string must be absolute expression. +sdata.asm:19 Missing > for character code. +END missing from end of file. diff --git a/gas/testsuite/gasp/sdata.out b/gas/testsuite/gasp/sdata.out new file mode 100644 index 0000000..e689d35 --- /dev/null +++ b/gas/testsuite/gasp/sdata.out @@ -0,0 +1,59 @@ +! + +! + +! .SDATA "HI","STEVE" + .byte 72,73,83,84,69,86,69 +! .SDATA "HI" , "STEVE" , <72>,<73>,<83><69><86><69> + .byte 72,73,83,84,69,86,69,72,73,83,69,86,69 +! + +! .SDATA "H""I" , "STEVE" , <72>,<73>,<83><69><86><69> + .byte 72,34,73,83,84,69,86,69,72,73,83,69,86,69 +! + +! + +! + +! .SDATA "SHOULD NOT FAIL" "HERE" + .byte 83,72,79,85,76,68,32,78,79,84,32,70,65,73,76,72,69,82,69 +! .SDATA "SHOULD FAIL" foo "HERE" + .byte 83,72,79,85,76,68,32,70,65,73,76,102,111,111,32,34,72,69,82,69,34,32 +! + +! .SDATAB 8,"BOINK" + .byte 66,79,73,78,75 + .byte 66,79,73,78,75 + .byte 66,79,73,78,75 + .byte 66,79,73,78,75 + .byte 66,79,73,78,75 + .byte 66,79,73,78,75 + .byte 66,79,73,78,75 + .byte 66,79,73,78,75 +! + +! ; examples from book + ; examples from book +! + +! .SDATAB 2,"AAAAA" + .byte 65,65,65,65,65 + .byte 65,65,65,65,65 +! .SDATAB 2,"""BBB""" + .byte 34,66,66,66,34 + .byte 34,66,66,66,34 +! .SDATAB 2,"AABB"<H'07> + .byte 65,65,66,66,0 + .byte 65,65,66,66,0 +! + +! + +!a1: .SDATAZ "HI" +a1: .byte 72,73,0 +!a2: .SDATAC "HI" +a2: .byte 2,72,73 +!a3: .SDATA "HI" +a3: .byte 72,73 +!
\ No newline at end of file diff --git a/gas/testsuite/gasp/sfunc.asm b/gas/testsuite/gasp/sfunc.asm new file mode 100644 index 0000000..b59949a --- /dev/null +++ b/gas/testsuite/gasp/sfunc.asm @@ -0,0 +1,26 @@ + + .MACRO RESERVE_STR P1=0 P2 + .SDATA .SUBSTR("ABCDEFG",\P1,\P2) + .ENDM + + RESERVE_STR 2,2 + RESERVE_STR ,3 + + + .MACRO FIND_STR P1 + .DATA.W .INSTR("ABCDEFG","\P1", 0) + .ENDM + + FIND_STR CDE + FIND_STR H + + .MACRO RESERVE_LENGTH P1 + .ALIGN 4 + .SRES .LEN("\P1") + .ENDM + + RESERVE_LENGTH ABCDEF + RESERVE_LENGTH ABC + + .END + diff --git a/gas/testsuite/gasp/sfunc.err b/gas/testsuite/gasp/sfunc.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/sfunc.err diff --git a/gas/testsuite/gasp/sfunc.out b/gas/testsuite/gasp/sfunc.out new file mode 100644 index 0000000..50f694f --- /dev/null +++ b/gas/testsuite/gasp/sfunc.out @@ -0,0 +1,49 @@ +! + +! .MACRO RESERVE_STR P1=0 P2 +! .SDATA .SUBSTR("ABCDEFG",\P1,\P2) +! .ENDM +! + +! RESERVE_STR 2,2 +! .SDATA .SUBSTR("ABCDEFG",2,2) + .byte 67,68 +! RESERVE_STR ,3 +! .SDATA .SUBSTR("ABCDEFG",0,3) + .byte 65,66,67 +! + +! + +! .MACRO FIND_STR P1 +! .DATA.W .INSTR("ABCDEFG","\P1", 0) +! .ENDM +! + +! FIND_STR CDE +! .DATA.W .INSTR("ABCDEFG","CDE", 0) + .short 2 +! FIND_STR H +! .DATA.W .INSTR("ABCDEFG","H", 0) + .short -1 +! + +! .MACRO RESERVE_LENGTH P1 +! .ALIGN 4 +! .SRES .LEN("\P1") +! .ENDM +! + +! RESERVE_LENGTH ABCDEF +! .ALIGN 4 + .align 4 +! .SRES .LEN("ABCDEF") + .space 24 +! RESERVE_LENGTH ABC +! .ALIGN 4 + .align 4 +! .SRES .LEN("ABC") + .space 12 +! + +! .END diff --git a/gas/testsuite/gasp/t1.asm b/gas/testsuite/gasp/t1.asm new file mode 100644 index 0000000..df54c6c --- /dev/null +++ b/gas/testsuite/gasp/t1.asm @@ -0,0 +1,3 @@ + + test for eof in middle of line + .END diff --git a/gas/testsuite/gasp/t1.err b/gas/testsuite/gasp/t1.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/t1.err diff --git a/gas/testsuite/gasp/t1.out b/gas/testsuite/gasp/t1.out new file mode 100644 index 0000000..39230e1 --- /dev/null +++ b/gas/testsuite/gasp/t1.out @@ -0,0 +1,5 @@ +! + +! test for eof in middle of line + test for eof in middle of line +! .END diff --git a/gas/testsuite/gasp/t2.asm b/gas/testsuite/gasp/t2.asm new file mode 100644 index 0000000..38a351a --- /dev/null +++ b/gas/testsuite/gasp/t2.asm @@ -0,0 +1,8 @@ + + + test ++ continued ++ lines + + + .END diff --git a/gas/testsuite/gasp/t2.err b/gas/testsuite/gasp/t2.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/t2.err diff --git a/gas/testsuite/gasp/t2.out b/gas/testsuite/gasp/t2.out new file mode 100644 index 0000000..0c44e8b --- /dev/null +++ b/gas/testsuite/gasp/t2.out @@ -0,0 +1,13 @@ +! + +! + +! test +!+continued +!+lines + testcontinuedlines +! + +! + +! .END diff --git a/gas/testsuite/gasp/t3.asm b/gas/testsuite/gasp/t3.asm new file mode 100644 index 0000000..27702db --- /dev/null +++ b/gas/testsuite/gasp/t3.asm @@ -0,0 +1,12 @@ + + test base convertions + + B'1001000 + Q'210 + D'136 + H'88 + + FOOB'1001000BAR + FOOQ'210BAR + FOOD'136BAR + FOOH'88BAR diff --git a/gas/testsuite/gasp/t3.err b/gas/testsuite/gasp/t3.err new file mode 100644 index 0000000..a1e3318 --- /dev/null +++ b/gas/testsuite/gasp/t3.err @@ -0,0 +1 @@ +END missing from end of file. diff --git a/gas/testsuite/gasp/t3.out b/gas/testsuite/gasp/t3.out new file mode 100644 index 0000000..8ad150b --- /dev/null +++ b/gas/testsuite/gasp/t3.out @@ -0,0 +1,25 @@ +! + +! test base convertions + test base convertions +! + +! B'1001000 + 72 +! Q'210 + 136 +! D'136 + 136 +! H'88 + 136 +! + +! FOOB'1001000BAR + FOOB'1001000BAR +! FOOQ'210BAR + FOOQ'210BAR +! FOOD'136BAR + FOOD'136BAR +! FOOH'88BAR + FOOH'88BAR +!
\ No newline at end of file diff --git a/gas/testsuite/gasp/while.asm b/gas/testsuite/gasp/while.asm new file mode 100644 index 0000000..09143cc --- /dev/null +++ b/gas/testsuite/gasp/while.asm @@ -0,0 +1,18 @@ + donkey +bar .ASSIGNA 0 + .AWHILE \&bar LT 5 + HI BAR IS \&bar +foo .ASSIGNA 0 + .AWHILE \&foo LT 2 + HI BEFORE + .AREPEAT 2 + HI MEDIUM \&foo \&bar + .AENDR + HI AFTER +foo .ASSIGNA \&foo + 1 + .AENDW +bar .ASSIGNA \&bar + 1 + AND ITS NOW \&bar + .AENDW + .END + diff --git a/gas/testsuite/gasp/while.err b/gas/testsuite/gasp/while.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/gas/testsuite/gasp/while.err diff --git a/gas/testsuite/gasp/while.out b/gas/testsuite/gasp/while.out new file mode 100644 index 0000000..128aeb1 --- /dev/null +++ b/gas/testsuite/gasp/while.out @@ -0,0 +1,388 @@ +! donkey + donkey +!bar .ASSIGNA 0 +! .AWHILE \&bar LT 5 +! HI BAR IS \&bar +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar +! .AENDW +! HI BAR IS \&bar + HI BAR IS 0 +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +! HI BEFORE + HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 0 0 +! .AREPEAT 1 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 0 0 +! HI AFTER + HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +! HI BEFORE + HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 1 0 +! .AREPEAT 1 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 1 0 +! HI AFTER + HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar + AND ITS NOW 1 +! .AWHILE \&bar LT 5 +! HI BAR IS \&bar +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar +! .AENDW +! HI BAR IS \&bar + HI BAR IS 1 +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +! HI BEFORE + HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 0 1 +! .AREPEAT 1 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 0 1 +! HI AFTER + HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +! HI BEFORE + HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 1 1 +! .AREPEAT 1 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 1 1 +! HI AFTER + HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar + AND ITS NOW 2 +! .AWHILE \&bar LT 5 +! HI BAR IS \&bar +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar +! .AENDW +! HI BAR IS \&bar + HI BAR IS 2 +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +! HI BEFORE + HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 0 2 +! .AREPEAT 1 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 0 2 +! HI AFTER + HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +! HI BEFORE + HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 1 2 +! .AREPEAT 1 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 1 2 +! HI AFTER + HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar + AND ITS NOW 3 +! .AWHILE \&bar LT 5 +! HI BAR IS \&bar +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar +! .AENDW +! HI BAR IS \&bar + HI BAR IS 3 +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +! HI BEFORE + HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 0 3 +! .AREPEAT 1 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 0 3 +! HI AFTER + HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +! HI BEFORE + HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 1 3 +! .AREPEAT 1 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 1 3 +! HI AFTER + HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar + AND ITS NOW 4 +! .AWHILE \&bar LT 5 +! HI BAR IS \&bar +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar +! .AENDW +! HI BAR IS \&bar + HI BAR IS 4 +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +! HI BEFORE + HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 0 4 +! .AREPEAT 1 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 0 4 +! HI AFTER + HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +! HI BEFORE + HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 1 4 +! .AREPEAT 1 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI MEDIUM \&foo \&bar + HI MEDIUM 1 4 +! HI AFTER + HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar + AND ITS NOW 5 +! .AWHILE \&bar LT 5 +! HI BAR IS \&bar +!foo .ASSIGNA 0 +! .AWHILE \&foo LT 2 +! HI BEFORE +! .AREPEAT 2 +! HI MEDIUM \&foo \&bar +! .AENDR +! HI AFTER +!foo .ASSIGNA \&foo + 1 +! .AENDW +!bar .ASSIGNA \&bar + 1 +! AND ITS NOW \&bar +! .AENDW +! .END |