summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas
diff options
context:
space:
mode:
authorRichard Earnshaw <richard.earnshaw@arm.com>2002-01-14 15:00:18 +0000
committerRichard Earnshaw <richard.earnshaw@arm.com>2002-01-14 15:00:18 +0000
commitf090c58c2e770978737639c76734fe6db89c0507 (patch)
tree497c2c7fae1615f2a9dba04135cb74278517587f /gas/testsuite/gas
parentf29cf0e3717f6f9b3b30ec3ab0193849f2065307 (diff)
downloadbinutils-redhat-f090c58c2e770978737639c76734fe6db89c0507.tar.gz
* gas/arm/armv1-bad.s gas/arm/armv1-bad.l: New files.
* gas/arm/arm.exp (run_error_test): New proc. (armv1-bad): New error test.
Diffstat (limited to 'gas/testsuite/gas')
-rw-r--r--gas/testsuite/gas/arm/arm.exp15
-rw-r--r--gas/testsuite/gas/arm/armv1-bad.l8
-rw-r--r--gas/testsuite/gas/arm/armv1-bad.s10
3 files changed, 33 insertions, 0 deletions
diff --git a/gas/testsuite/gas/arm/arm.exp b/gas/testsuite/gas/arm/arm.exp
index 12d7b3290f..cacf0b093b 100644
--- a/gas/testsuite/gas/arm/arm.exp
+++ b/gas/testsuite/gas/arm/arm.exp
@@ -1,11 +1,26 @@
#
# Some ARM tests
#
+proc run_errors_test { name opts tname} {
+ global srcdir subdir
+ set testname "$tname"
+ set file $srcdir/$subdir/$name
+ gas_run ${name}.s $opts ">&${name}.out"
+ if { [regexp_diff "${name}.out" "${file}.l"] } then {
+ fail $testname
+ verbose "output is [file_contents "${name}.out"]" 2
+ return
+ }
+ pass $testname
+}
+
if {[istarget *arm*-*-*] || [istarget "xscale-*-*"]} then {
run_dump_test "inst"
run_dump_test "ldconst"
+ run_errors_test "armv1-bad" "-marm1" "ARM v1 errors"
+
gas_test "arm3.s" "-marm3" $stdoptlist "Arm 3 instructions"
gas_test "arm6.s" "-marm6" $stdoptlist "Arm 6 instructions"
diff --git a/gas/testsuite/gas/arm/armv1-bad.l b/gas/testsuite/gas/arm/armv1-bad.l
new file mode 100644
index 0000000000..96d9e73981
--- /dev/null
+++ b/gas/testsuite/gas/arm/armv1-bad.l
@@ -0,0 +1,8 @@
+[^:]*: Assembler messages:
+[^:]*:4: Error: invalid pseudo operation -- `str r0,=0x00ff0000'
+[^:]*:5: Error: bad expression -- `ldr r0,{r1}'
+[^:]*:6: Error: address offset too large -- `ldr r0,\[r1,#4096\]'
+[^:]*:7: Error: address offset too large -- `ldr r0,\[r1,#-4096\]'
+[^:]*:8: Error: invalid constant -- `mov r0,#0x1ff'
+[^:]*:9: Error: bad instruction `cmpl r0,r0'
+[^:]*:10: Error: selected processor does not support `strh r0,\[r1\]'
diff --git a/gas/testsuite/gas/arm/armv1-bad.s b/gas/testsuite/gas/arm/armv1-bad.s
new file mode 100644
index 0000000000..c879a739e0
--- /dev/null
+++ b/gas/testsuite/gas/arm/armv1-bad.s
@@ -0,0 +1,10 @@
+ .global entry
+ .text
+entry:
+ str r0, =0x00ff0000
+ ldr r0, {r1}
+ ldr r0, [r1, #4096]
+ ldr r0, [r1, #-4096]
+ mov r0, #0x1ff
+ cmpl r0, r0
+ strh r0, [r1]