Add support for Thumb-2 long branch veneers
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Fri, 17 Jun 2016 17:26:08 +0000 (18:26 +0100)
committerThomas Preud'homme <thomas.preudhomme@arm.com>
Fri, 17 Jun 2016 17:28:08 +0000 (18:28 +0100)
commit80c135e55489435f47bbeeb3715b42289c51e30e
tree7f3062bede1cd44d29cd9b932faa159b8e4b636f
parent21a770913c24ab085fe66a5274ebe7cf9e031982
Add support for Thumb-2 long branch veneers

2016-06-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
    Tony Wang  <tony.wang@arm.com>

bfd/
* elf32-arm.c (elf32_arm_stub_long_branch_thumb2_only): Define stub
sequence.
(stub_long_branch_thumb2_only): Define stub.
(arm_stub_is_thumb): Add case for arm_stub_long_branch_thumb2_only.
(arm_stub_long_branch_thumb2_only): Likewise.
(arm_type_of_stub): Use arm_stub_long_branch_thumb2_only for Thumb-2
capable targets.

ld/
* testsuite/ld-arm/arm-elf.exp (Thumb-Thumb farcall M profile):
Assemble for ARMv6-M.
(Thumb2-Thumb2 farcall M profile): New testcase.
* testsuite/ld-arm/farcall-thumb2-thumb2-m.d: New file.
* testsuite/ld-arm/jump-reloc-veneers-cond-long-backward.d: Update to
reflect the use of Thumb-2 veneers for Thumb-2 capable targets.
* testsuite/ld-arm/jump-reloc-veneers-cond-long.d: Likewise.
bfd/ChangeLog
bfd/elf32-arm.c
ld/ChangeLog
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/farcall-thumb2-thumb2-m.d [new file with mode: 0644]
ld/testsuite/ld-arm/jump-reloc-veneers-cond-long-backward.d
ld/testsuite/ld-arm/jump-reloc-veneers-cond-long.d