* gas/arm/armv1-bad.s gas/arm/armv1-bad.l: New files.
authorRichard Earnshaw <richard.earnshaw@arm.com>
Mon, 14 Jan 2002 15:00:18 +0000 (15:00 +0000)
committerRichard Earnshaw <richard.earnshaw@arm.com>
Mon, 14 Jan 2002 15:00:18 +0000 (15:00 +0000)
* gas/arm/arm.exp (run_error_test): New proc.
(armv1-bad): New error test.

gas/testsuite/ChangeLog
gas/testsuite/gas/arm/arm.exp
gas/testsuite/gas/arm/armv1-bad.l [new file with mode: 0644]
gas/testsuite/gas/arm/armv1-bad.s [new file with mode: 0644]

index 4f00f3d5b80ee416c6b7d4939b3890760ad1e9d3..9a2b609fcc6540b4be8fc3a90c88d6f7caf21098 100644 (file)
@@ -1,3 +1,9 @@
+2002-01-14   Richard Earnshaw  <rearnsha@arm.com>
+
+       * 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.
+
 2002-01-11   Richard Earnshaw  <rearnsha@arm.com>
 
        * gas/arm/ldconst.s gas/arm/ldconst.d: New files.  Test ldr with
index 12d7b3290f95a1cd219f2f58068b6fe6caa7319b..cacf0b093bf7beeda42cdcbe12cc3c353246d137 100644 (file)
@@ -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 (file)
index 0000000..96d9e73
--- /dev/null
@@ -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 (file)
index 0000000..c879a73
--- /dev/null
@@ -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]