summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@mips.com>2018-02-20 20:51:37 +0000
committerMaciej W. Rozycki <macro@mips.com>2018-02-20 20:51:37 +0000
commit1f1e0a5d0eb8474321a1a6431b4171f67a438231 (patch)
treee8ff299cb7783d19d0f2b1ca97904808b5234eae
parent75f31665204bf965cc5b3dd699636be12fb6bcfa (diff)
downloadbinutils-gdb-1f1e0a5d0eb8474321a1a6431b4171f67a438231.tar.gz
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.
-rw-r--r--gas/ChangeLog8
-rw-r--r--gas/testsuite/gas/mips/mips.exp2
-rw-r--r--gas/testsuite/gas/mips/mips16-branch-reloc-4.d24
-rw-r--r--gas/testsuite/gas/mips/mips16-branch-reloc-4.s32
-rw-r--r--gas/testsuite/gas/mips/mips16-branch-reloc-5.d24
-rw-r--r--gas/testsuite/gas/mips/mips16-branch-reloc-5.s32
6 files changed, 122 insertions, 0 deletions
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 <macro@mips.com>
+
+ * 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 <jcmvbkbc@gmail.com>
* 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 <foo>
+[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar
+[0-9a-f]+ <[^>]*> f7ff 601e bteqz 00001004 <foo\+0x4>
+[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar
+[0-9a-f]+ <[^>]*> f7ff 611e btnez 00001008 <foo\+0x8>
+[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar
+[0-9a-f]+ <[^>]*> f7ff 221e beqz v0,0000100c <foo\+0xc>
+[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar
+[0-9a-f]+ <[^>]*> f7ff 2a1e bnez v0,00001010 <foo\+0x10>
+[ ]*[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 <foo>
+[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar
+[0-9a-f]+ <[^>]*> f7ff 601e bteqz 00000004 <foo\+0x4>
+[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar
+[0-9a-f]+ <[^>]*> f7ff 611e btnez 00000008 <foo\+0x8>
+[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar
+[0-9a-f]+ <[^>]*> f7ff 221e beqz v0,0000000c <foo\+0xc>
+[ ]*[0-9a-f]+: R_MIPS16_PC16_S1 bar
+[0-9a-f]+ <[^>]*> f7ff 2a1e bnez v0,00000010 <foo\+0x10>
+[ ]*[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