diff options
author | Andre Vieira <andre.simoesdiasvieira@arm.com> | 2019-04-15 11:18:57 +0100 |
---|---|---|
committer | Andre Vieira <andre.simoesdiasvieira@arm.com> | 2019-04-15 12:30:33 +0100 |
commit | e5d6e09ee6cea13942a8042945e784f483a6f3af (patch) | |
tree | 682983efcb6e4ceb1ec5cbebfbb196abaebf3b94 /elfcpp | |
parent | e2b0ab597857bfe9d7c8742ff50bbb77c70936c4 (diff) | |
download | binutils-gdb-e5d6e09ee6cea13942a8042945e784f483a6f3af.tar.gz |
[binutils, ARM, 5/16] BF insns infrastructure with new global reloc R_ARM_THM_BF16
This patch is part of a series of patches to add support for Armv8.1-M Mainline instructions to binutils.
This adds infrastructure for the BF instructions which is one of the first instructions in Arm that have more than one relocations in them.
This is the third infrastructure patch that adds a new relocation R_ARM_THM_BF16.
The inconsistency between external R_ARM_THM_BF16 and internal
BFD_RELOC_ARM_THUMB_BF17 is because internally we count the static bit-0 of the immediate and we don't externally.
ChangeLog entries are as follows :
*** bfd/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* reloc.c (BFD_RELOC_ARM_THUMB_BF17): New enum.
* bfd-in2.h: Regenerated.
* libbfd.h: Regenerated.
* bfd-elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF16.
(elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF17
and R_ARM_THM_BF16 together.
(get_value_helper): New reloc helper.
(elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF16.
*** elfcpp/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* arm.h (R_ARM_THM_BF16): New relocation code.
*** gas/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* config/tc-arm.c (md_pcrel_from_section): New switch case for
BFD_RELOC_ARM_THUMB_BF17.
(md_appdy_fix): Likewise.
(tc_gen_reloc): Likewise.
*** include/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF16.
*** opcodes/ChangeLog ***
2019-04-15 Sudakshina Das <sudi.das@arm.com>
* arm-dis.c (print_insn_thumb32): Updated to accept new %W pattern.
Diffstat (limited to 'elfcpp')
-rw-r--r-- | elfcpp/ChangeLog | 4 | ||||
-rw-r--r-- | elfcpp/arm.h | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog index eb1baa9fd4d..7770f7e8883 100644 --- a/elfcpp/ChangeLog +++ b/elfcpp/ChangeLog @@ -1,3 +1,7 @@ +2019-04-15 Sudakshina Das <sudi.das@arm.com> + + * arm.h (R_ARM_THM_BF16): New relocation code. + 2018-06-24 Nick Clifton <nickc@redhat.com> 2.32 branch created. diff --git a/elfcpp/arm.h b/elfcpp/arm.h index fb5cc25f069..b4cd67f87ce 100644 --- a/elfcpp/arm.h +++ b/elfcpp/arm.h @@ -194,7 +194,10 @@ enum R_ARM_ME_TOO = 128, // Obsolete R_ARM_THM_TLS_DESCSEQ16 = 129,// Static Thumb16 R_ARM_THM_TLS_DESCSEQ32 = 130,// Static Thumb32 - // 131 - 139 Unallocated + // 131 - 135 Unallocated + // Relocations for Armv8.1-M Mainline (BF/BFL) + R_ARM_THM_BF16 = 136, // Static Thumb32 ((S + A) | T) – P + // 139 Unallocated // 140 - 159 Dynamic Reserved for future allocation R_ARM_IRELATIVE = 160, // Dynamic // 161 - 255 Unallocated |