From 1caf72a5849abf9a717ed3e0232abf591ff933e7 Mon Sep 17 00:00:00 2001 From: Andre Vieira Date: Mon, 15 Apr 2019 11:37:51 +0100 Subject: [binutils, ARM, 8/16] BFL infrastructure with new global reloc R_ARM_THM_BF18 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 BFL instructions which is one of the first instructions in Arm that have more than one relocations in them. This adds a new relocation R_ARM_THM_BF18. The inconsistency between external R_ARM_THM_BF18 and internal BFD_RELOC_ARM_THUMB_BF19 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 * reloc.c (BFD_RELOC_ARM_THUMB_BF19): New * libbfd.h: Regenerated. * bfd-in2.h: Regenerated. * bfd-elf32-arm.c (elf32_arm_howto_table_1): New entry for R_ARM_THM_BF18. (elf32_arm_reloc_map elf32_arm_reloc_map): Map BFD_RELOC_ARM_THUMB_BF19 and R_ARM_THM_BF18 together. (elf32_arm_final_link_relocate): New switch case for R_ARM_THM_BF19. *** elfcpp/ChangeLog *** 2019-04-15 Sudakshina Das * arm.h (R_ARM_THM_BF18): New relocation code. *** gas/ChangeLog *** 2019-04-15 Sudakshina Das * config/tc-arm.c (md_pcrel_from_section): New switch case for BFD_RELOC_ARM_THUMB_BF19. (md_appdy_fix): Likewise. (tc_gen_reloc): Likewise. *** include/ChangeLog *** 2019-04-15 Sudakshina Das * elf/arm.h (START_RELOC_NUMBERS): New entry for R_ARM_THM_BF18. *** opcodes/ChangeLog *** 2019-04-15 Sudakshina Das * arm-dis.c (print_insn_thumb32): Updated to accept new %Y pattern. --- elfcpp/ChangeLog | 4 ++++ elfcpp/arm.h | 1 + 2 files changed, 5 insertions(+) (limited to 'elfcpp') diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog index 7770f7e888..fab2744d9e 100644 --- a/elfcpp/ChangeLog +++ b/elfcpp/ChangeLog @@ -1,3 +1,7 @@ +2019-04-15 Sudakshina Das + + * arm.h (R_ARM_THM_BF18): New relocation code. + 2019-04-15 Sudakshina Das * arm.h (R_ARM_THM_BF16): New relocation code. diff --git a/elfcpp/arm.h b/elfcpp/arm.h index b4cd67f87c..bc5e0cce17 100644 --- a/elfcpp/arm.h +++ b/elfcpp/arm.h @@ -197,6 +197,7 @@ enum // 131 - 135 Unallocated // Relocations for Armv8.1-M Mainline (BF/BFL) R_ARM_THM_BF16 = 136, // Static Thumb32 ((S + A) | T) – P + R_ARM_THM_BF18 = 138, // Static Thumb32 ((S + A) | T) – P // 139 Unallocated // 140 - 159 Dynamic Reserved for future allocation R_ARM_IRELATIVE = 160, // Dynamic -- cgit v1.2.3