diff options
author | Mickael Guene <mickael.guene@st.com> | 2016-03-10 17:05:29 +0100 |
---|---|---|
committer | Christophe Lyon <christophe.lyon@linaro.org> | 2016-03-10 17:06:35 +0100 |
commit | a9f02af88d230aabf6771f94a6c401727a865188 (patch) | |
tree | e000eaf3c094176163f45952a579466d94b66ec3 /gas/testsuite | |
parent | 3ed4ff97cbbeeb2658286769ac9e8a6a35390f26 (diff) | |
download | gdb-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/ChangeLog | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/adds-thumb1-reloc-local-armv7-m.d | 16 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/adds-thumb1-reloc-local-armv7-m.s | 13 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/movs-thumb1-reloc-local-armv7-m.d | 16 | ||||
-rw-r--r-- | gas/testsuite/gas/arm/movs-thumb1-reloc-local-armv7-m.s | 13 |
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: |