* gas/ppc/range64.s: New.
authorAlan Modra <amodra@gmail.com>
Fri, 20 Apr 2007 13:42:48 +0000 (13:42 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 20 Apr 2007 13:42:48 +0000 (13:42 +0000)
* gas/ppc/range64.l: New.
* gas/ppc/range.s: New.
* gas/ppc/range.l: New.
* gas/ppc/ppc.exp (run_list_test): New.  Use to run new tests.

gas/testsuite/ChangeLog
gas/testsuite/gas/ppc/ppc.exp
gas/testsuite/gas/ppc/range.l [new file with mode: 0644]
gas/testsuite/gas/ppc/range.s [new file with mode: 0644]
gas/testsuite/gas/ppc/range64.l [new file with mode: 0644]
gas/testsuite/gas/ppc/range64.s [new file with mode: 0644]

index 01713e6..19cc782 100644 (file)
@@ -1,3 +1,11 @@
+2007-04-20  Alan Modra  <amodra@bigpond.net.au>
+
+       * gas/ppc/range64.s: New.
+       * gas/ppc/range64.l: New.
+       * gas/ppc/range.s: New.
+       * gas/ppc/range.l: New.
+       * gas/ppc/ppc.exp (run_list_test): New.  Use to run new tests.
+
 2007-04-20  Richard Earnshaw  <rearnsha@arm.com>
 
        * gas/arm/mapshort.s: Add a small .data section.
index dc5ef2c..0f0e9bf 100644 (file)
@@ -2,6 +2,19 @@
 # Some PowerPC tests
 #
 
+proc run_list_test { name opts } {
+    global srcdir subdir
+    set testname "ppc $name"
+    set file $srcdir/$subdir/$name
+    gas_run ${name}.s $opts ">&dump.out"
+    if { [regexp_diff "dump.out" "${file}.l"] } then {
+       fail $testname
+       verbose "output is [file_contents "dump.out"]" 2
+       return
+    }
+    pass $testname
+}
+
 # These tests are currently ELF specific, only because nobody has
 # converted them to look for XCOFF relocations.
 
@@ -12,6 +25,7 @@ if { [istarget powerpc64*-*-*] || [istarget *-*-elf64*]} then {
     run_dump_test "test1elf64"
     run_dump_test "power4"
     run_dump_test "cell"
+    run_list_test "range64" "-a64"
 } elseif { [istarget powerpc*-*aix*] } then {
     run_dump_test "test1xcoff32"
 } elseif { [istarget powerpc*-*-*bsd*] \
@@ -39,5 +53,6 @@ if { [istarget powerpc*-*-*] } then {
        run_dump_test "altivec"
        run_dump_test "booke"
        run_dump_test "e500"
+       run_list_test "range" "-a32"
     }
 }
diff --git a/gas/testsuite/gas/ppc/range.l b/gas/testsuite/gas/ppc/range.l
new file mode 100644 (file)
index 0000000..9a71ca4
--- /dev/null
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:6: Error: operand out of range.*
+.*:7: Error: operand out of range.*
diff --git a/gas/testsuite/gas/ppc/range.s b/gas/testsuite/gas/ppc/range.s
new file mode 100644 (file)
index 0000000..04251e5
--- /dev/null
@@ -0,0 +1,7 @@
+ .text
+ lbz 4,-32768(3)
+ lbz 5,-1(3)
+ lbz 6,2(3)
+ lbz 7,32767(3)
+ lbz 8,32768(3)
+ lbz 9,-32769(3)
diff --git a/gas/testsuite/gas/ppc/range64.l b/gas/testsuite/gas/ppc/range64.l
new file mode 100644 (file)
index 0000000..6e28b7c
--- /dev/null
@@ -0,0 +1,6 @@
+.*: Assembler messages:
+.*:3: Error: operand out of domain \(-1 is not a multiple of 4\)
+.*:4: Error: operand out of domain \(2 is not a multiple of 4\)
+.*:5: Error: operand out of range.*
+.*:6: Error: operand out of range.*
+.*:7: Error: operand out of range.*
diff --git a/gas/testsuite/gas/ppc/range64.s b/gas/testsuite/gas/ppc/range64.s
new file mode 100644 (file)
index 0000000..b4a04cf
--- /dev/null
@@ -0,0 +1,7 @@
+ .text
+ ld 4,-32768(3)
+ ld 5,-1(3)
+ ld 6,2(3)
+ ld 7,32767(3)
+ ld 8,32768(3)
+ ld 9,-32769(3)