From 3981bad3ee102077ef9fe4d3ad46972809719743 Mon Sep 17 00:00:00 2001 From: Steve Chamberlain Date: Mon, 31 Jan 1994 16:53:03 +0000 Subject: [PATCH] New files for testing gasp. --- gas/testsuite/gasp/INC1.H | 3 + gas/testsuite/gasp/INC2.H | 2 + gas/testsuite/gasp/assign.asm | 13 + gas/testsuite/gasp/assign.is | 25 + gas/testsuite/gasp/assign.was | 25 + gas/testsuite/gasp/condass.asm | 129 ++ gas/testsuite/gasp/condass.is | 155 ++ gas/testsuite/gasp/condass.was | 155 ++ gas/testsuite/gasp/crash.asm | 22 + gas/testsuite/gasp/crash.is | 3061 ++++++++++++++++++++++++++++++++ gas/testsuite/gasp/crash.was | 3061 ++++++++++++++++++++++++++++++++ gas/testsuite/gasp/crash1.asm | 13 + gas/testsuite/gasp/crash1.is | 26 + gas/testsuite/gasp/crash1.was | 26 + gas/testsuite/gasp/crash2.asm | 41 + gas/testsuite/gasp/data.asm | 23 + gas/testsuite/gasp/data.is | 46 + gas/testsuite/gasp/data.was | 46 + gas/testsuite/gasp/exp.asm | 80 + gas/testsuite/gasp/exp.is | 133 ++ gas/testsuite/gasp/exp.was | 133 ++ gas/testsuite/gasp/include.asm | 4 + gas/testsuite/gasp/include.is | 16 + gas/testsuite/gasp/include.was | 16 + gas/testsuite/gasp/listing.asm | 15 + gas/testsuite/gasp/listing.is | 32 + gas/testsuite/gasp/listing.was | 32 + gas/testsuite/gasp/macro.asm | 102 ++ gas/testsuite/gasp/macro.is | 375 ++++ gas/testsuite/gasp/macro.was | 375 ++++ gas/testsuite/gasp/reg.asm | 9 + gas/testsuite/gasp/reg.is | 16 + gas/testsuite/gasp/reg.was | 16 + gas/testsuite/gasp/rep.asm | 13 + gas/testsuite/gasp/rep.is | 392 ++++ gas/testsuite/gasp/rep.was | 392 ++++ gas/testsuite/gasp/repeat.asm | 14 + gas/testsuite/gasp/repeat.is | 212 +++ gas/testsuite/gasp/repeat.was | 212 +++ gas/testsuite/gasp/reperr.asm | 2 + gas/testsuite/gasp/reperr1.asm | 3 + gas/testsuite/gasp/reperr1.is | 6 + gas/testsuite/gasp/reperr1.was | 6 + gas/testsuite/gasp/reperr2.asm | 6 + gas/testsuite/gasp/reperr2.is | 16 + gas/testsuite/gasp/reperr2.was | 16 + gas/testsuite/gasp/reperr3.asm | 21 + gas/testsuite/gasp/reperr3.is | 2042 +++++++++++++++++++++ gas/testsuite/gasp/reperr3.was | 2042 +++++++++++++++++++++ gas/testsuite/gasp/sdata.asm | 24 + gas/testsuite/gasp/sdata.is | 62 + gas/testsuite/gasp/sdata.was | 62 + gas/testsuite/gasp/sfunc.asm | 26 + gas/testsuite/gasp/sfunc.is | 50 + gas/testsuite/gasp/sfunc.was | 50 + gas/testsuite/gasp/t1.asm | 3 + gas/testsuite/gasp/t1.is | 6 + gas/testsuite/gasp/t1.was | 6 + gas/testsuite/gasp/t2.asm | 8 + gas/testsuite/gasp/t2.is | 14 + gas/testsuite/gasp/t2.was | 14 + gas/testsuite/gasp/t3.asm | 12 + gas/testsuite/gasp/t3.is | 26 + gas/testsuite/gasp/t3.was | 26 + gas/testsuite/gasp/while.asm | 18 + gas/testsuite/gasp/while.is | 389 ++++ gas/testsuite/gasp/while.was | 389 ++++ 67 files changed, 14806 insertions(+) create mode 100644 gas/testsuite/gasp/INC1.H create mode 100644 gas/testsuite/gasp/INC2.H create mode 100644 gas/testsuite/gasp/assign.asm create mode 100644 gas/testsuite/gasp/assign.is create mode 100644 gas/testsuite/gasp/assign.was create mode 100644 gas/testsuite/gasp/condass.asm create mode 100644 gas/testsuite/gasp/condass.is create mode 100644 gas/testsuite/gasp/condass.was create mode 100644 gas/testsuite/gasp/crash.asm create mode 100644 gas/testsuite/gasp/crash.is create mode 100644 gas/testsuite/gasp/crash.was create mode 100644 gas/testsuite/gasp/crash1.asm create mode 100644 gas/testsuite/gasp/crash1.is create mode 100644 gas/testsuite/gasp/crash1.was create mode 100644 gas/testsuite/gasp/crash2.asm create mode 100644 gas/testsuite/gasp/data.asm create mode 100644 gas/testsuite/gasp/data.is create mode 100644 gas/testsuite/gasp/data.was create mode 100644 gas/testsuite/gasp/exp.asm create mode 100644 gas/testsuite/gasp/exp.is create mode 100644 gas/testsuite/gasp/exp.was create mode 100644 gas/testsuite/gasp/include.asm create mode 100644 gas/testsuite/gasp/include.is create mode 100644 gas/testsuite/gasp/include.was create mode 100644 gas/testsuite/gasp/listing.asm create mode 100644 gas/testsuite/gasp/listing.is create mode 100644 gas/testsuite/gasp/listing.was create mode 100644 gas/testsuite/gasp/macro.asm create mode 100644 gas/testsuite/gasp/macro.is create mode 100644 gas/testsuite/gasp/macro.was create mode 100644 gas/testsuite/gasp/reg.asm create mode 100644 gas/testsuite/gasp/reg.is create mode 100644 gas/testsuite/gasp/reg.was create mode 100644 gas/testsuite/gasp/rep.asm create mode 100644 gas/testsuite/gasp/rep.is create mode 100644 gas/testsuite/gasp/rep.was create mode 100644 gas/testsuite/gasp/repeat.asm create mode 100644 gas/testsuite/gasp/repeat.is create mode 100644 gas/testsuite/gasp/repeat.was create mode 100644 gas/testsuite/gasp/reperr.asm create mode 100644 gas/testsuite/gasp/reperr1.asm create mode 100644 gas/testsuite/gasp/reperr1.is create mode 100644 gas/testsuite/gasp/reperr1.was create mode 100644 gas/testsuite/gasp/reperr2.asm create mode 100644 gas/testsuite/gasp/reperr2.is create mode 100644 gas/testsuite/gasp/reperr2.was create mode 100644 gas/testsuite/gasp/reperr3.asm create mode 100644 gas/testsuite/gasp/reperr3.is create mode 100644 gas/testsuite/gasp/reperr3.was create mode 100644 gas/testsuite/gasp/sdata.asm create mode 100644 gas/testsuite/gasp/sdata.is create mode 100644 gas/testsuite/gasp/sdata.was create mode 100644 gas/testsuite/gasp/sfunc.asm create mode 100644 gas/testsuite/gasp/sfunc.is create mode 100644 gas/testsuite/gasp/sfunc.was create mode 100644 gas/testsuite/gasp/t1.asm create mode 100644 gas/testsuite/gasp/t1.is create mode 100644 gas/testsuite/gasp/t1.was create mode 100644 gas/testsuite/gasp/t2.asm create mode 100644 gas/testsuite/gasp/t2.is create mode 100644 gas/testsuite/gasp/t2.was create mode 100644 gas/testsuite/gasp/t3.asm create mode 100644 gas/testsuite/gasp/t3.is create mode 100644 gas/testsuite/gasp/t3.was create mode 100644 gas/testsuite/gasp/while.asm create mode 100644 gas/testsuite/gasp/while.is create mode 100644 gas/testsuite/gasp/while.was diff --git a/gas/testsuite/gasp/INC1.H b/gas/testsuite/gasp/INC1.H new file mode 100644 index 00000000000..0d3732310f4 --- /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 00000000000..083c3dce2c7 --- /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 00000000000..7f66718468d --- /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.is b/gas/testsuite/gasp/assign.is new file mode 100644 index 00000000000..65aadf3d5bf --- /dev/null +++ b/gas/testsuite/gasp/assign.is @@ -0,0 +1,25 @@ +******** assign.amp +! + +!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 +assign.amp:8 Can't find preprocessor variable bar. diff --git a/gas/testsuite/gasp/assign.was b/gas/testsuite/gasp/assign.was new file mode 100644 index 00000000000..65aadf3d5bf --- /dev/null +++ b/gas/testsuite/gasp/assign.was @@ -0,0 +1,25 @@ +******** assign.amp +! + +!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 +assign.amp:8 Can't find preprocessor variable bar. diff --git a/gas/testsuite/gasp/condass.asm b/gas/testsuite/gasp/condass.asm new file mode 100644 index 00000000000..2bd9f0732fb --- /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.is b/gas/testsuite/gasp/condass.is new file mode 100644 index 00000000000..a1093a741ff --- /dev/null +++ b/gas/testsuite/gasp/condass.is @@ -0,0 +1,155 @@ +******** condass.amp +! .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 +! .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/condass.was b/gas/testsuite/gasp/condass.was new file mode 100644 index 00000000000..a1093a741ff --- /dev/null +++ b/gas/testsuite/gasp/condass.was @@ -0,0 +1,155 @@ +******** condass.amp +! .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 +! .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 00000000000..0014bfd55b0 --- /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 + + + + \ No newline at end of file diff --git a/gas/testsuite/gasp/crash.is b/gas/testsuite/gasp/crash.is new file mode 100644 index 00000000000..9d12fe15ad7 --- /dev/null +++ b/gas/testsuite/gasp/crash.is @@ -0,0 +1,3061 @@ +******** crash.amp +! + +! 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 +crash.amp:18 Unreasonable expansion (-u turns off check). diff --git a/gas/testsuite/gasp/crash.was b/gas/testsuite/gasp/crash.was new file mode 100644 index 00000000000..9d12fe15ad7 --- /dev/null +++ b/gas/testsuite/gasp/crash.was @@ -0,0 +1,3061 @@ +******** crash.amp +! + +! 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 +crash.amp:18 Unreasonable expansion (-u turns off check). diff --git a/gas/testsuite/gasp/crash1.asm b/gas/testsuite/gasp/crash1.asm new file mode 100644 index 00000000000..d2b6b3082e6 --- /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.is b/gas/testsuite/gasp/crash1.is new file mode 100644 index 00000000000..d2c6b466415 --- /dev/null +++ b/gas/testsuite/gasp/crash1.is @@ -0,0 +1,26 @@ +******** crash1.amp +! + +! + +! .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 +crash1.amp:8 Too many positional arguments. diff --git a/gas/testsuite/gasp/crash1.was b/gas/testsuite/gasp/crash1.was new file mode 100644 index 00000000000..d2c6b466415 --- /dev/null +++ b/gas/testsuite/gasp/crash1.was @@ -0,0 +1,26 @@ +******** crash1.amp +! + +! + +! .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 +crash1.amp:8 Too many positional arguments. diff --git a/gas/testsuite/gasp/crash2.asm b/gas/testsuite/gasp/crash2.asm new file mode 100644 index 00000000000..288a003d9f9 --- /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/data.asm b/gas/testsuite/gasp/data.asm new file mode 100644 index 00000000000..ba6b0a046f8 --- /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.is b/gas/testsuite/gasp/data.is new file mode 100644 index 00000000000..0fe6974db7e --- /dev/null +++ b/gas/testsuite/gasp/data.is @@ -0,0 +1,46 @@ +******** data.amp +! + +!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/data.was b/gas/testsuite/gasp/data.was new file mode 100644 index 00000000000..0fe6974db7e --- /dev/null +++ b/gas/testsuite/gasp/data.was @@ -0,0 +1,46 @@ +******** data.amp +! + +!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 00000000000..041608a818e --- /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.is b/gas/testsuite/gasp/exp.is new file mode 100644 index 00000000000..ab2b5ee6bde --- /dev/null +++ b/gas/testsuite/gasp/exp.is @@ -0,0 +1,133 @@ +******** exp.amp +! + +!; 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 +exp.amp:56 can't add two relocatable expressions +exp.amp:57 the * operator cannot take non-absolute arguments. +exp.amp:58 the / operator cannot take non-absolute arguments. +exp.amp:59 the | operator cannot take non-absolute arguments. +exp.amp:60 the & operator cannot take non-absolute arguments. +exp.amp:61 the ~ operator cannot take non-absolute arguments. +exp.amp:62 the * operator cannot take non-absolute arguments. diff --git a/gas/testsuite/gasp/exp.was b/gas/testsuite/gasp/exp.was new file mode 100644 index 00000000000..ab2b5ee6bde --- /dev/null +++ b/gas/testsuite/gasp/exp.was @@ -0,0 +1,133 @@ +******** exp.amp +! + +!; 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 +exp.amp:56 can't add two relocatable expressions +exp.amp:57 the * operator cannot take non-absolute arguments. +exp.amp:58 the / operator cannot take non-absolute arguments. +exp.amp:59 the | operator cannot take non-absolute arguments. +exp.amp:60 the & operator cannot take non-absolute arguments. +exp.amp:61 the ~ operator cannot take non-absolute arguments. +exp.amp:62 the * operator cannot take non-absolute arguments. diff --git a/gas/testsuite/gasp/include.asm b/gas/testsuite/gasp/include.asm new file mode 100644 index 00000000000..69ed1dd5e88 --- /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.is b/gas/testsuite/gasp/include.is new file mode 100644 index 00000000000..3d35d8521f2 --- /dev/null +++ b/gas/testsuite/gasp/include.is @@ -0,0 +1,16 @@ +******** include.amp +! 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/include.was b/gas/testsuite/gasp/include.was new file mode 100644 index 00000000000..3d35d8521f2 --- /dev/null +++ b/gas/testsuite/gasp/include.was @@ -0,0 +1,16 @@ +******** include.amp +! 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 00000000000..b98ce96b20b --- /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 \ No newline at end of file diff --git a/gas/testsuite/gasp/listing.is b/gas/testsuite/gasp/listing.is new file mode 100644 index 00000000000..e4c50a2c508 --- /dev/null +++ b/gas/testsuite/gasp/listing.is @@ -0,0 +1,32 @@ +******** listing.amp +! + +! + +! .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 +end of file not at start of line. +.END missing from end of file. diff --git a/gas/testsuite/gasp/listing.was b/gas/testsuite/gasp/listing.was new file mode 100644 index 00000000000..4003fba8752 --- /dev/null +++ b/gas/testsuite/gasp/listing.was @@ -0,0 +1,32 @@ +******** listing.amp +! + +! + +! .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 +End of file not at start of line. +.END missing from end of file. diff --git a/gas/testsuite/gasp/macro.asm b/gas/testsuite/gasp/macro.asm new file mode 100644 index 00000000000..dfb16bff296 --- /dev/null +++ b/gas/testsuite/gasp/macro.asm @@ -0,0 +1,102 @@ + .MACRO SUM FROM=0, TO=9 + ; \FROM \TO + MOV R\FROM,R10 +COUNT .ASSIGNA \FROM+1 + .AWHILE \&COUNT LE \TO + MOV R\&COUNT,R10 +COUNT .ASSIGNA \&COUNT+1 + .AENDW + .ENDM + + SUM 0,5 + SUM TO=5 + SUM FROM=2, TO=5 + + +; hi this is a comment + .MACRO BACK_SLASH_SET + \(MOV #"\",R0) + .ENDM + BACK_SLASH_SET + .MACRO COMM + bar ; this comment will get copied out + foo \; this one will get dropped + .ENDM + COMM + BACK_SLASH_SET + .MACRO PLUS2 + ADD #1,R\&V1 + .SDATA "\&V'1" + .ENDM +V .ASSIGNC "R" +V1 .ASSIGNA 1 + PLUS2 + .MACRO PLUS1 P,P1 + ADD #1,\P1 + .SDATA "\P'1" + .ENDM + PLUS1 R,R1 + + .MACRO SUM P1 + MOV R0,R10 + ADD R1,R10 + ADD R2,R10 + \P1 + ADD R3,R10 + .ENDM + + SUM .EXITM + + .MACRO foo bar=a default=b + \bar + \default + bar + default + .ENDM + foo default=dog bar=cat + foo X Y + foo + foo bar=cat default=dog + + + .MACRO foo bar + HI + HI \bar + HI + .ENDM + + foo 1 + foo 123 + foo 1 2 3 4 + foo + + + .MACRO PUSH Rn + MOV.L \Rn,@-r15 + .ENDM + PUSH R0 + PUSH R1 + + + .MACRO RES_STR STR, Rn + MOV.L #str\@,\Rn + BRA end_str\@ + NOP +str\@ .SDATA "\STR" + .ALIGN 2 +end_str\@ + .ENDM + + RES_STR "ONE",R0 + RES_STR "TWO",R1 + RES_STR "THREE",R2 + + + + RES_STR STR=donkey Rn=R1 + RES_STR donkey,R1 + RES_STR donkey Rn=R1 + .END + + + diff --git a/gas/testsuite/gasp/macro.is b/gas/testsuite/gasp/macro.is new file mode 100644 index 00000000000..57211cbf62c --- /dev/null +++ b/gas/testsuite/gasp/macro.is @@ -0,0 +1,375 @@ +******** macro.amp +! .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 + foo +! 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 +! .END +macro.amp:70 Too many positional arguments. +macro.amp:98 Can't mix positional and keyword arguments. diff --git a/gas/testsuite/gasp/macro.was b/gas/testsuite/gasp/macro.was new file mode 100644 index 00000000000..57211cbf62c --- /dev/null +++ b/gas/testsuite/gasp/macro.was @@ -0,0 +1,375 @@ +******** macro.amp +! .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 + foo +! 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 +! .END +macro.amp:70 Too many positional arguments. +macro.amp:98 Can't mix positional and keyword arguments. diff --git a/gas/testsuite/gasp/reg.asm b/gas/testsuite/gasp/reg.asm new file mode 100644 index 00000000000..eb463ed7e7b --- /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.is b/gas/testsuite/gasp/reg.is new file mode 100644 index 00000000000..27f3d2b6b40 --- /dev/null +++ b/gas/testsuite/gasp/reg.is @@ -0,0 +1,16 @@ +******** reg.amp +! + +! + +!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/reg.was b/gas/testsuite/gasp/reg.was new file mode 100644 index 00000000000..27f3d2b6b40 --- /dev/null +++ b/gas/testsuite/gasp/reg.was @@ -0,0 +1,16 @@ +******** reg.amp +! + +! + +!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 00000000000..027ac470804 --- /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.is b/gas/testsuite/gasp/rep.is new file mode 100644 index 00000000000..5271b3e28e2 --- /dev/null +++ b/gas/testsuite/gasp/rep.is @@ -0,0 +1,392 @@ +******** rep.amp +! .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/rep.was b/gas/testsuite/gasp/rep.was new file mode 100644 index 00000000000..5271b3e28e2 --- /dev/null +++ b/gas/testsuite/gasp/rep.was @@ -0,0 +1,392 @@ +******** rep.amp +! .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 00000000000..7a85da314ad --- /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.is b/gas/testsuite/gasp/repeat.is new file mode 100644 index 00000000000..eb6c96755dc --- /dev/null +++ b/gas/testsuite/gasp/repeat.is @@ -0,0 +1,212 @@ +******** repeat.amp +! + +! .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/repeat.was b/gas/testsuite/gasp/repeat.was new file mode 100644 index 00000000000..eb6c96755dc --- /dev/null +++ b/gas/testsuite/gasp/repeat.was @@ -0,0 +1,212 @@ +******** repeat.amp +! + +! .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 00000000000..60882b2299b --- /dev/null +++ b/gas/testsuite/gasp/reperr.asm @@ -0,0 +1,2 @@ + + .REPEAT 10 diff --git a/gas/testsuite/gasp/reperr1.asm b/gas/testsuite/gasp/reperr1.asm new file mode 100644 index 00000000000..2d987e48f40 --- /dev/null +++ b/gas/testsuite/gasp/reperr1.asm @@ -0,0 +1,3 @@ + + .AREPEAT 10 + .END diff --git a/gas/testsuite/gasp/reperr1.is b/gas/testsuite/gasp/reperr1.is new file mode 100644 index 00000000000..72ae1bb57ab --- /dev/null +++ b/gas/testsuite/gasp/reperr1.is @@ -0,0 +1,6 @@ +******** reperr1.amp +! + +! .AREPEAT 10 +! .END +!End of file whilst inside .AREPEAT, started on line 3. diff --git a/gas/testsuite/gasp/reperr1.was b/gas/testsuite/gasp/reperr1.was new file mode 100644 index 00000000000..72ae1bb57ab --- /dev/null +++ b/gas/testsuite/gasp/reperr1.was @@ -0,0 +1,6 @@ +******** reperr1.amp +! + +! .AREPEAT 10 +! .END +!End of file whilst inside .AREPEAT, started on line 3. diff --git a/gas/testsuite/gasp/reperr2.asm b/gas/testsuite/gasp/reperr2.asm new file mode 100644 index 00000000000..de06a712170 --- /dev/null +++ b/gas/testsuite/gasp/reperr2.asm @@ -0,0 +1,6 @@ + + .AREPEAT 5 + .AENDR + .AENDR + .END + diff --git a/gas/testsuite/gasp/reperr2.is b/gas/testsuite/gasp/reperr2.is new file mode 100644 index 00000000000..bbcd1bf1c34 --- /dev/null +++ b/gas/testsuite/gasp/reperr2.is @@ -0,0 +1,16 @@ +******** reperr2.amp +! + +! .AREPEAT 5 +! .AENDR +! .AREPEAT 4 +! .AENDR +! .AREPEAT 3 +! .AENDR +! .AREPEAT 2 +! .AENDR +! .AREPEAT 1 +! .AENDR +! .AENDR +! .END +reperr2.amp:4 AENDR without a AREPEAT. diff --git a/gas/testsuite/gasp/reperr2.was b/gas/testsuite/gasp/reperr2.was new file mode 100644 index 00000000000..bbcd1bf1c34 --- /dev/null +++ b/gas/testsuite/gasp/reperr2.was @@ -0,0 +1,16 @@ +******** reperr2.amp +! + +! .AREPEAT 5 +! .AENDR +! .AREPEAT 4 +! .AENDR +! .AREPEAT 3 +! .AENDR +! .AREPEAT 2 +! .AENDR +! .AREPEAT 1 +! .AENDR +! .AENDR +! .END +reperr2.amp:4 AENDR without a AREPEAT. diff --git a/gas/testsuite/gasp/reperr3.asm b/gas/testsuite/gasp/reperr3.asm new file mode 100644 index 00000000000..464bc79ba3e --- /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.is b/gas/testsuite/gasp/reperr3.is new file mode 100644 index 00000000000..8bb555e5300 --- /dev/null +++ b/gas/testsuite/gasp/reperr3.is @@ -0,0 +1,2042 @@ +******** reperr3.amp +! .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 +reperr3.amp:14 AENDR without a AREPEAT. +reperr3.amp:16 AENDR without a AREPEAT. +reperr3.amp:17 AENDR without a AREPEAT. +reperr3.amp:18 AENDR without a AREPEAT. +reperr3.amp:19 AENDR without a AREPEAT. +reperr3.amp:20 AENDR without a AREPEAT. diff --git a/gas/testsuite/gasp/reperr3.was b/gas/testsuite/gasp/reperr3.was new file mode 100644 index 00000000000..8bb555e5300 --- /dev/null +++ b/gas/testsuite/gasp/reperr3.was @@ -0,0 +1,2042 @@ +******** reperr3.amp +! .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 +reperr3.amp:14 AENDR without a AREPEAT. +reperr3.amp:16 AENDR without a AREPEAT. +reperr3.amp:17 AENDR without a AREPEAT. +reperr3.amp:18 AENDR without a AREPEAT. +reperr3.amp:19 AENDR without a AREPEAT. +reperr3.amp:20 AENDR without a AREPEAT. diff --git a/gas/testsuite/gasp/sdata.asm b/gas/testsuite/gasp/sdata.asm new file mode 100644 index 00000000000..d6bd23c2453 --- /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" + + +a1: .SDATAZ "HI" +a2: .SDATAC "HI" +a3: .SDATA "HI" diff --git a/gas/testsuite/gasp/sdata.is b/gas/testsuite/gasp/sdata.is new file mode 100644 index 00000000000..57eef2f5438 --- /dev/null +++ b/gas/testsuite/gasp/sdata.is @@ -0,0 +1,62 @@ +******** sdata.amp +! + +! + +! .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,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 + +! + +! .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" + .byte 65,65,66,66,7 + .byte 65,65,66,66,7 +! + +! + +!a1: .SDATAZ "HI" +a1: .byte 72,73,0 +!a2: .SDATAC "HI" +a2: .byte 2,72,73 +!a3: .SDATA "HI" +a3: .byte 72,73 +!sdata.amp:11 illegal character in SDATA line (0x66). +.END missing from end of file. diff --git a/gas/testsuite/gasp/sdata.was b/gas/testsuite/gasp/sdata.was new file mode 100644 index 00000000000..57eef2f5438 --- /dev/null +++ b/gas/testsuite/gasp/sdata.was @@ -0,0 +1,62 @@ +******** sdata.amp +! + +! + +! .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,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 + +! + +! .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" + .byte 65,65,66,66,7 + .byte 65,65,66,66,7 +! + +! + +!a1: .SDATAZ "HI" +a1: .byte 72,73,0 +!a2: .SDATAC "HI" +a2: .byte 2,72,73 +!a3: .SDATA "HI" +a3: .byte 72,73 +!sdata.amp:11 illegal character in SDATA line (0x66). +.END missing from end of file. diff --git a/gas/testsuite/gasp/sfunc.asm b/gas/testsuite/gasp/sfunc.asm new file mode 100644 index 00000000000..b59949a9d14 --- /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.is b/gas/testsuite/gasp/sfunc.is new file mode 100644 index 00000000000..98e80d538fd --- /dev/null +++ b/gas/testsuite/gasp/sfunc.is @@ -0,0 +1,50 @@ +******** sfunc.amp +! + +! .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/sfunc.was b/gas/testsuite/gasp/sfunc.was new file mode 100644 index 00000000000..98e80d538fd --- /dev/null +++ b/gas/testsuite/gasp/sfunc.was @@ -0,0 +1,50 @@ +******** sfunc.amp +! + +! .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 00000000000..df54c6cdf2a --- /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.is b/gas/testsuite/gasp/t1.is new file mode 100644 index 00000000000..63ba4af9fde --- /dev/null +++ b/gas/testsuite/gasp/t1.is @@ -0,0 +1,6 @@ +******** t1.amp +! + +! test for eof in middle of line + test for eof in middle of line +! .END diff --git a/gas/testsuite/gasp/t1.was b/gas/testsuite/gasp/t1.was new file mode 100644 index 00000000000..63ba4af9fde --- /dev/null +++ b/gas/testsuite/gasp/t1.was @@ -0,0 +1,6 @@ +******** t1.amp +! + +! 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 00000000000..38a351a7755 --- /dev/null +++ b/gas/testsuite/gasp/t2.asm @@ -0,0 +1,8 @@ + + + test ++ continued ++ lines + + + .END diff --git a/gas/testsuite/gasp/t2.is b/gas/testsuite/gasp/t2.is new file mode 100644 index 00000000000..3df17e091a9 --- /dev/null +++ b/gas/testsuite/gasp/t2.is @@ -0,0 +1,14 @@ +******** t2.amp +! + +! + +! test +!+continued +!+lines + testcontinuedlines +! + +! + +! .END diff --git a/gas/testsuite/gasp/t2.was b/gas/testsuite/gasp/t2.was new file mode 100644 index 00000000000..3df17e091a9 --- /dev/null +++ b/gas/testsuite/gasp/t2.was @@ -0,0 +1,14 @@ +******** t2.amp +! + +! + +! test +!+continued +!+lines + testcontinuedlines +! + +! + +! .END diff --git a/gas/testsuite/gasp/t3.asm b/gas/testsuite/gasp/t3.asm new file mode 100644 index 00000000000..27702db8c81 --- /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.is b/gas/testsuite/gasp/t3.is new file mode 100644 index 00000000000..a16b5e87791 --- /dev/null +++ b/gas/testsuite/gasp/t3.is @@ -0,0 +1,26 @@ +******** t3.amp +! + +! 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 +!.END missing from end of file. diff --git a/gas/testsuite/gasp/t3.was b/gas/testsuite/gasp/t3.was new file mode 100644 index 00000000000..a16b5e87791 --- /dev/null +++ b/gas/testsuite/gasp/t3.was @@ -0,0 +1,26 @@ +******** t3.amp +! + +! 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 +!.END missing from end of file. diff --git a/gas/testsuite/gasp/while.asm b/gas/testsuite/gasp/while.asm new file mode 100644 index 00000000000..09143ccd818 --- /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.is b/gas/testsuite/gasp/while.is new file mode 100644 index 00000000000..d33fbc4d470 --- /dev/null +++ b/gas/testsuite/gasp/while.is @@ -0,0 +1,389 @@ +******** while.amp +! 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 diff --git a/gas/testsuite/gasp/while.was b/gas/testsuite/gasp/while.was new file mode 100644 index 00000000000..d33fbc4d470 --- /dev/null +++ b/gas/testsuite/gasp/while.was @@ -0,0 +1,389 @@ +******** while.amp +! 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 -- 2.30.2