summaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2010-11-13 11:59:21 +0000
committerRichard Sandiford <rdsandiford@googlemail.com>2010-11-13 11:59:21 +0000
commite391c02431f9d5973f685981cfaf1edfb0970cdb (patch)
tree84b8b1aa7e494d4b59c61d84cd1699ac0c851c3b /gas/testsuite
parent361c3115547239d39d2c4e57c67277d92f1c34a4 (diff)
downloadbinutils-e391c02431f9d5973f685981cfaf1edfb0970cdb.tar.gz
binutils-e391c02431f9d5973f685981cfaf1edfb0970cdb.tar.bz2
binutils-e391c02431f9d5973f685981cfaf1edfb0970cdb.zip
gas/
* config/tc-mips.c (macro_build): Remove gas_assert from 'o' case. Use a restricted gas_assert for 'i' and 'j'. gas/testsuite/ * gas/mips/elf-rel28.s, gas/mips/elf-rel28-n32.d, gas/mips/elf-rel28-n64.d: New test. * gas/mips/mips.exp: Run it.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/mips/elf-rel28-n32.d96
-rw-r--r--gas/testsuite/gas/mips/elf-rel28-n64.d180
-rw-r--r--gas/testsuite/gas/mips/elf-rel28.s48
-rw-r--r--gas/testsuite/gas/mips/mips.exp5
5 files changed, 335 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index b6e621903f3..b2f09dc9369 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2010-11-13 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * gas/mips/elf-rel28.s, gas/mips/elf-rel28-n32.d,
+ gas/mips/elf-rel28-n64.d: New test.
+ * gas/mips/mips.exp: Run it.
+
2010-11-10 Richard Sandiford <richard.sandiford@linaro.org>
* gas/arm/plt-1.s, gas/arm/plt-1.d: New test.
diff --git a/gas/testsuite/gas/mips/elf-rel28-n32.d b/gas/testsuite/gas/mips/elf-rel28-n32.d
new file mode 100644
index 00000000000..2ba277110b4
--- /dev/null
+++ b/gas/testsuite/gas/mips/elf-rel28-n32.d
@@ -0,0 +1,96 @@
+#source: elf-rel28.s
+#as: -n32
+#objdump: -dr
+#name: MIPS ELF reloc 28 (n32)
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+.* <foo>:
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_CALL_HI16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_CALL_LO16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_CALL16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT_DISP bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT_PAGE bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT_OFST bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT_HI16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT_LO16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GPREL16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_HIGHEST bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_HIGHER bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_SUB bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_GD bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_LDM bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_DTPREL_HI16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_DTPREL_LO16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_TPREL_HI16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_TPREL_LO16 bar
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_GOTTPREL bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_CALL_HI16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_CALL_LO16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_CALL16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT_DISP bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT_PAGE bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT_OFST bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT_HI16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT_LO16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GPREL16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_HIGHEST bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_HIGHER bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_SUB bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_GD bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_LDM bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_DTPREL_HI16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_DTPREL_LO16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_TPREL_HI16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_TPREL_LO16 bar
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_GOTTPREL bar
+ ...
diff --git a/gas/testsuite/gas/mips/elf-rel28-n64.d b/gas/testsuite/gas/mips/elf-rel28-n64.d
new file mode 100644
index 00000000000..be38e7d9cd1
--- /dev/null
+++ b/gas/testsuite/gas/mips/elf-rel28-n64.d
@@ -0,0 +1,180 @@
+#source: elf-rel28.s
+#as: -64
+#objdump: -dr
+#name: MIPS ELF reloc 28 (n64)
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+.* <foo>:
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_CALL_HI16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_CALL_LO16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_CALL16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT_DISP bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT_PAGE bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT_OFST bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT_HI16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT_LO16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GOT16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_GPREL16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_HIGHEST bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_HIGHER bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_SUB bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_GD bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_LDM bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_DTPREL_HI16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_DTPREL_LO16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_TPREL_HI16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_TPREL_LO16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: dc840000 ld a0,0\(a0\)
+ .*: R_MIPS_TLS_GOTTPREL bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_CALL_HI16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_CALL_LO16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_CALL16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT_DISP bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT_PAGE bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT_OFST bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT_HI16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT_LO16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GOT16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_GPREL16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_HIGHEST bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_HIGHER bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_SUB bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_GD bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_LDM bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_DTPREL_HI16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_DTPREL_LO16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_TPREL_HI16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_TPREL_LO16 bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+.*: fc840000 sd a0,0\(a0\)
+ .*: R_MIPS_TLS_GOTTPREL bar
+ .*: R_MIPS_NONE \*ABS\*
+ .*: R_MIPS_NONE \*ABS\*
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/elf-rel28.s b/gas/testsuite/gas/mips/elf-rel28.s
new file mode 100644
index 00000000000..ec4fb660c90
--- /dev/null
+++ b/gas/testsuite/gas/mips/elf-rel28.s
@@ -0,0 +1,48 @@
+ .ent foo
+foo:
+ # Many of these do not make conceptual sense, but they should
+ # at least assemble.
+ ld $4,%call_hi(bar)($4)
+ ld $4,%call_lo(bar)($4)
+ ld $4,%call16(bar)($4)
+ ld $4,%got_disp(bar)($4)
+ ld $4,%got_page(bar)($4)
+ ld $4,%got_ofst(bar)($4)
+ ld $4,%got_hi(bar)($4)
+ ld $4,%got_lo(bar)($4)
+ ld $4,%got(bar)($4)
+ ld $4,%gp_rel(bar)($4)
+ ld $4,%half(bar)($4)
+ ld $4,%highest(bar)($4)
+ ld $4,%higher(bar)($4)
+ ld $4,%neg(bar)($4)
+ ld $4,%tlsgd(bar)($4)
+ ld $4,%tlsldm(bar)($4)
+ ld $4,%dtprel_hi(bar)($4)
+ ld $4,%dtprel_lo(bar)($4)
+ ld $4,%tprel_hi(bar)($4)
+ ld $4,%tprel_lo(bar)($4)
+ ld $4,%gottprel(bar)($4)
+
+ sd $4,%call_hi(bar)($4)
+ sd $4,%call_lo(bar)($4)
+ sd $4,%call16(bar)($4)
+ sd $4,%got_disp(bar)($4)
+ sd $4,%got_page(bar)($4)
+ sd $4,%got_ofst(bar)($4)
+ sd $4,%got_hi(bar)($4)
+ sd $4,%got_lo(bar)($4)
+ sd $4,%got(bar)($4)
+ sd $4,%gp_rel(bar)($4)
+ sd $4,%half(bar)($4)
+ sd $4,%highest(bar)($4)
+ sd $4,%higher(bar)($4)
+ sd $4,%neg(bar)($4)
+ sd $4,%tlsgd(bar)($4)
+ sd $4,%tlsldm(bar)($4)
+ sd $4,%dtprel_hi(bar)($4)
+ sd $4,%dtprel_lo(bar)($4)
+ sd $4,%tprel_hi(bar)($4)
+ sd $4,%tprel_lo(bar)($4)
+ sd $4,%gottprel(bar)($4)
+ .end foo
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 3fb500389f4..6e98082c968 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -810,6 +810,11 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test_arches "elf-rel27" [mips_arch_list_all]
+ if $has_newabi {
+ run_dump_test "elf-rel28-n32"
+ run_dump_test "elf-rel28-n64"
+ }
+
if { !$no_mips16 } {
run_dump_test "${tmips}mips${el}16-e"
run_dump_test "${tmips}mips${el}16-f"