From: Maciej W. Rozycki Date: Tue, 20 Feb 2018 20:51:37 +0000 (+0000) Subject: MIPS16/GAS/testsuite: Add cross-section R_MIPS16_PC16_S1 relocation tests X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1f1e0a5d0eb8474321a1a6431b4171f67a438231;p=binutils-gdb.git MIPS16/GAS/testsuite: Add cross-section R_MIPS16_PC16_S1 relocation tests Add a pair of MIPS16 branch tests to verify correct R_MIPS16_PC16_S1 relocation generation for cross-section references in a single source. This complements commit c9775dde3277 ("MIPS16: Add R_MIPS16_PC16_S1 branch relocation support"). gas/ * testsuite/gas/mips/mips16-branch-reloc-4.d: New test. * testsuite/gas/mips/mips16-branch-reloc-5.d: New test. * testsuite/gas/mips/mips16-branch-reloc-4.s: New test source. * testsuite/gas/mips/mips16-branch-reloc-5.s: New test source. * testsuite/gas/mips/mips.exp: Run the new tests. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 3ce69953544..07e35748611 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2018-02-20 Maciej W. Rozycki + + * testsuite/gas/mips/mips16-branch-reloc-4.d: New test. + * testsuite/gas/mips/mips16-branch-reloc-5.d: New test. + * testsuite/gas/mips/mips16-branch-reloc-4.s: New test source. + * testsuite/gas/mips/mips16-branch-reloc-5.s: New test source. + * testsuite/gas/mips/mips.exp: Run the new tests. + 2018-02-20 Max Filippov * config/tc-xtensa.c (struct litpool_frag): Add new field diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index d1191388b3c..026c2763048 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -1750,6 +1750,8 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test "mips16-branch-reloc-1" run_dump_test "mips16-branch-reloc-2" run_dump_test "mips16-branch-reloc-3" + run_dump_test "mips16-branch-reloc-4" + run_dump_test "mips16-branch-reloc-5" run_dump_test "mips16-branch-addend-0" run_dump_test "mips16-branch-addend-1" run_dump_test "mips16-branch-addend-2" diff --git a/gas/testsuite/gas/mips/mips16-branch-reloc-4.d b/gas/testsuite/gas/mips/mips16-branch-reloc-4.d new file mode 100644 index 00000000000..a2705f09a3b --- /dev/null +++ b/gas/testsuite/gas/mips/mips16-branch-reloc-4.d @@ -0,0 +1,24 @@ +#objdump: -dr --prefix-addresses --show-raw-insn +#name: MIPS16 branch relocation 4 +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text\.foo: + \.\.\. +[0-9a-f]+ <[^>]*> f7ff 101e b 00001000 +[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar +[0-9a-f]+ <[^>]*> f7ff 601e bteqz 00001004 +[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar +[0-9a-f]+ <[^>]*> f7ff 611e btnez 00001008 +[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar +[0-9a-f]+ <[^>]*> f7ff 221e beqz v0,0000100c +[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar +[0-9a-f]+ <[^>]*> f7ff 2a1e bnez v0,00001010 +[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar +[0-9a-f]+ <[^>]*> 6500 nop + \.\.\. + +Disassembly of section \.text\.bar: +[0-9a-f]+ <[^>]*> 6500 nop + \.\.\. diff --git a/gas/testsuite/gas/mips/mips16-branch-reloc-4.s b/gas/testsuite/gas/mips/mips16-branch-reloc-4.s new file mode 100644 index 00000000000..ed47a2a3113 --- /dev/null +++ b/gas/testsuite/gas/mips/mips16-branch-reloc-4.s @@ -0,0 +1,32 @@ + .section .text.foo, "ax", @progbits + + .space 0x1000 + + .ent foo + .set mips16 +foo: + b bar + bteqz bar + btnez bar + beqz $2, bar + bnez $2, bar + nop + .set nomips16 + .end foo + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 + + .section .text.bar, "ax", @progbits + + .ent bar + .set mips16 +bar: + nop + .set nomips16 + .end bar + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 diff --git a/gas/testsuite/gas/mips/mips16-branch-reloc-5.d b/gas/testsuite/gas/mips/mips16-branch-reloc-5.d new file mode 100644 index 00000000000..6cd7ebb42e1 --- /dev/null +++ b/gas/testsuite/gas/mips/mips16-branch-reloc-5.d @@ -0,0 +1,24 @@ +#objdump: -dr --prefix-addresses --show-raw-insn +#name: MIPS16 branch relocation 5 +#as: -32 + +.*: +file format .*mips.* + +Disassembly of section \.text\.bar: + \.\.\. +[0-9a-f]+ <[^>]*> 6500 nop + \.\.\. + +Disassembly of section \.text\.foo: +[0-9a-f]+ <[^>]*> f7ff 101e b 00000000 +[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar +[0-9a-f]+ <[^>]*> f7ff 601e bteqz 00000004 +[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar +[0-9a-f]+ <[^>]*> f7ff 611e btnez 00000008 +[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar +[0-9a-f]+ <[^>]*> f7ff 221e beqz v0,0000000c +[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar +[0-9a-f]+ <[^>]*> f7ff 2a1e bnez v0,00000010 +[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar +[0-9a-f]+ <[^>]*> 6500 nop + \.\.\. diff --git a/gas/testsuite/gas/mips/mips16-branch-reloc-5.s b/gas/testsuite/gas/mips/mips16-branch-reloc-5.s new file mode 100644 index 00000000000..1cf62c4ff70 --- /dev/null +++ b/gas/testsuite/gas/mips/mips16-branch-reloc-5.s @@ -0,0 +1,32 @@ + .section .text.bar, "ax", @progbits + + .space 0x1000 + + .ent bar + .set mips16 +bar: + nop + .set nomips16 + .end bar + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16 + + .section .text.foo, "ax", @progbits + + .ent foo + .set mips16 +foo: + b bar + bteqz bar + btnez bar + beqz $2, bar + bnez $2, bar + nop + .set nomips16 + .end foo + +# Force some (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 4, 0 + .space 16