aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorMickael Guene <mickael.guene@st.com>2016-03-10 17:05:29 +0100
committerChristophe Lyon <christophe.lyon@linaro.org>2016-03-10 17:06:35 +0100
commita9f02af88d230aabf6771f94a6c401727a865188 (patch)
treee000eaf3c094176163f45952a579466d94b66ec3 /gas/testsuite
parent3ed4ff97cbbeeb2658286769ac9e8a6a35390f26 (diff)
downloadgdb-a9f02af88d230aabf6771f94a6c401727a865188.zip
gdb-a9f02af88d230aabf6771f94a6c401727a865188.tar.gz
gdb-a9f02af88d230aabf6771f94a6c401727a865188.tar.bz2
PR gas/19744: Thumb-1 pcrop relocations don't work on Thumb-2 targets
gas/ * config/tc-arm.c (do_arit): Protect against bad relocations usage. (do_mov): Likewise. (do_t_add_sub): Allow pcrop relocations for Thumb-2 targets. (do_t_mov_cmp): Likewise. (do_t_add_sub): Protect against bad relocations usage. (do_t_mov_cmp): Likewise. gas/testsuite/ * gas/arm/adds-thumb1-reloc-local-armv7-m.s: New. * gas/arm/adds-thumb1-reloc-local-armv7-m.d: New. * gas/arm/movs-thumb1-reloc-local-armv7-m.s: New. * gas/arm/movs-thumb1-reloc-local-armv7-m.d: New. ld/ * testsuite/ld-arm/arm-elf.exp: New tests. * testsuite/ld-arm/thumb1-adds-armv7-m.s: New. * testsuite/ld-arm/thumb1-movs-armv7-m.s: New.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/ChangeLog8
-rw-r--r--gas/testsuite/gas/arm/adds-thumb1-reloc-local-armv7-m.d16
-rw-r--r--gas/testsuite/gas/arm/adds-thumb1-reloc-local-armv7-m.s13
-rw-r--r--gas/testsuite/gas/arm/movs-thumb1-reloc-local-armv7-m.d16
-rw-r--r--gas/testsuite/gas/arm/movs-thumb1-reloc-local-armv7-m.s13
5 files changed, 66 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index e9652f8..b94efee 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2016-03-10 Mickael Guene <mickael.guene@st.com>
+
+ PR gas/19744
+ * gas/arm/adds-thumb1-reloc-local-armv7-m.s: New.
+ * gas/arm/adds-thumb1-reloc-local-armv7-m.d: New.
+ * gas/arm/movs-thumb1-reloc-local-armv7-m.s: New.
+ * gas/arm/movs-thumb1-reloc-local-armv7-m.d: New.
+
2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
* gas/cfi/cfi-arc-1.d: New file.
diff --git a/gas/testsuite/gas/arm/adds-thumb1-reloc-local-armv7-m.d b/gas/testsuite/gas/arm/adds-thumb1-reloc-local-armv7-m.d
new file mode 100644
index 0000000..1bab56d
--- /dev/null
+++ b/gas/testsuite/gas/arm/adds-thumb1-reloc-local-armv7-m.d
@@ -0,0 +1,16 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#name: ADDS relocations against local symbols for armv7-m
+
+.*: +file format .*arm.*
+
+Disassembly of section .text:
+0[0-9a-f]+ <[^>]+> 3000 adds r0, #0
+ 0: R_ARM_THM_ALU_ABS_G3_NC bar
+0[0-9a-f]+ <[^>]+> 3000 adds r0, #0
+ 2: R_ARM_THM_ALU_ABS_G2_NC bar
+0[0-9a-f]+ <[^>]+> 3000 adds r0, #0
+ 4: R_ARM_THM_ALU_ABS_G1_NC bar
+0[0-9a-f]+ <[^>]+> 3000 adds r0, #0
+ 6: R_ARM_THM_ALU_ABS_G0_NC bar
+#...
diff --git a/gas/testsuite/gas/arm/adds-thumb1-reloc-local-armv7-m.s b/gas/testsuite/gas/arm/adds-thumb1-reloc-local-armv7-m.s
new file mode 100644
index 0000000..c5d95fc
--- /dev/null
+++ b/gas/testsuite/gas/arm/adds-thumb1-reloc-local-armv7-m.s
@@ -0,0 +1,13 @@
+.arch armv7-m
+.text
+.syntax unified
+.thumb
+foo:
+adds r0, #:upper8_15:#bar
+adds r0, #:upper0_7:#bar
+adds r0, #:lower8_15:#bar
+adds r0, #:lower0_7:#bar
+
+.space 0x10000
+
+bar:
diff --git a/gas/testsuite/gas/arm/movs-thumb1-reloc-local-armv7-m.d b/gas/testsuite/gas/arm/movs-thumb1-reloc-local-armv7-m.d
new file mode 100644
index 0000000..1e94394
--- /dev/null
+++ b/gas/testsuite/gas/arm/movs-thumb1-reloc-local-armv7-m.d
@@ -0,0 +1,16 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#name: MOVS relocations against local symbols for armv7-m
+
+.*: +file format .*arm.*
+
+Disassembly of section .text:
+0[0-9a-f]+ <[^>]+> 2000 movs r0, #0
+ 0: R_ARM_THM_ALU_ABS_G3_NC bar
+0[0-9a-f]+ <[^>]+> 2000 movs r0, #0
+ 2: R_ARM_THM_ALU_ABS_G2_NC bar
+0[0-9a-f]+ <[^>]+> 2000 movs r0, #0
+ 4: R_ARM_THM_ALU_ABS_G1_NC bar
+0[0-9a-f]+ <[^>]+> 2000 movs r0, #0
+ 6: R_ARM_THM_ALU_ABS_G0_NC bar
+#...
diff --git a/gas/testsuite/gas/arm/movs-thumb1-reloc-local-armv7-m.s b/gas/testsuite/gas/arm/movs-thumb1-reloc-local-armv7-m.s
new file mode 100644
index 0000000..6699fc7
--- /dev/null
+++ b/gas/testsuite/gas/arm/movs-thumb1-reloc-local-armv7-m.s
@@ -0,0 +1,13 @@
+.arch armv7-m
+.text
+.syntax unified
+.thumb
+foo:
+movs r0, #:upper8_15:#bar
+movs r0, #:upper0_7:#bar
+movs r0, #:lower8_15:#bar
+movs r0, #:lower0_7:#bar
+
+.space 0x10000
+
+bar: