diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2010-11-13 11:59:21 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2010-11-13 11:59:21 +0000 |
commit | e391c02431f9d5973f685981cfaf1edfb0970cdb (patch) | |
tree | 84b8b1aa7e494d4b59c61d84cd1699ac0c851c3b /gas/testsuite | |
parent | 361c3115547239d39d2c4e57c67277d92f1c34a4 (diff) | |
download | binutils-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/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/elf-rel28-n32.d | 96 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/elf-rel28-n64.d | 180 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/elf-rel28.s | 48 | ||||
-rw-r--r-- | gas/testsuite/gas/mips/mips.exp | 5 |
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" |