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 /ld/testsuite/ld-arm/thumb1-adds-armv7-m.s | |
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 'ld/testsuite/ld-arm/thumb1-adds-armv7-m.s')
-rw-r--r-- | ld/testsuite/ld-arm/thumb1-adds-armv7-m.s | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/ld/testsuite/ld-arm/thumb1-adds-armv7-m.s b/ld/testsuite/ld-arm/thumb1-adds-armv7-m.s new file mode 100644 index 0000000..9640072 --- /dev/null +++ b/ld/testsuite/ld-arm/thumb1-adds-armv7-m.s @@ -0,0 +1,43 @@ + .text + .arch armv7-m + .syntax unified + .global _start + .thumb_func + .type _start, %function +_start: + .thumb_func + .type thumb1, %function +thumb1: + adds r0, #:upper8_15:#thumb3 + adds r1, #:upper0_7:#thumb3 + adds r2, #:lower8_15:#thumb1 + adds r3, #:lower0_7:#thumb1 + adds r4, #:lower0_7:#thumb3 + adds r5, #:lower8_15:#thumb3 + adds r6, #:upper0_7:#thumb1 + adds r7, #:upper8_15:#thumb1 + .thumb_func + .type thumb2, %function +thumb2: + adds r0, #:upper8_15:#thumb3 + adds r1, #:upper0_7:#(var2 + 1) + adds r2, #:lower8_15:#(thumb3 + 255) + adds r3, #:lower0_7:#(var1 + 0xaa) + adds r7, #:upper8_15:#var1 + 4 + adds r6, #:upper0_7:#thumb3 + adds r5, #:lower8_15:#var2 + 0xff + adds r4, #:lower0_7:#var2 - (-2) +var1: + .byte 1 +var2: + .byte 2 + + .section .far, "ax", %progbits + .thumb_func + .type thumb3, %function +thumb3: + adds r0, #:upper8_15:#thumb1 + adds r1, #:upper0_7:#thumb2 + adds r2, #:lower8_15:#thumb3 + adds r3, #:lower0_7:#thumb1 + |