diff options
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r-- | bfd/ChangeLog | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d8a1f70..1ef747e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,71 @@ +2015-10-27 Laurent Alfonsi <laurent.alfonsi@st.com> + Christophe Monat <christophe.monat@st.com> + + * bfd-in2.h: Regenerate. + * bfd-in.h (bfd_arm_stm32l4xx_fix): New enum. Specify how + STM32L4XX instruction scanning should be done. + (bfd_elf32_arm_set_stm32l4xx_fix) + (bfd_elf32_arm_stm32l4xx_erratum_scan) + (bfd_elf32_arm_stm32l4xx_fix_veneer_locations): Add prototypes. + (bfd_elf32_arm_set_target_relocs): Add stm32l4xx fix type argument + to prototype. + * elf32-arm.c (STM32L4XX_ERRATUM_VENEER_SECTION_NAME) + (STM32L4XX_ERRATUM_VENEER_ENTRY_NAME): Define macros. + (elf32_stm32l4xx_erratum_type): New enum. + (elf32_stm32l4xx_erratum_list): New struct. List of veneers or + jumps to veneers. + (_arm_elf_section_data): Add stm32l4xx_erratumcount, + stm32l4xx_erratumlist. + (elf32_arm_link_hash_table): Add stm32l4xx_erratum_glue_size, + stm32l4xx_fix and num_stm32l4xx_fixes fields. + (ctz): New function. + (popcount): New function. + (elf32_arm_link_hash_table_create): Initialize stm32l4xx_fix. + (put_thumb2_insn): New function. + (STM32L4XX_ERRATUM_LDM_VENEER_SIZE): Define. Size of a veneer for + LDM instructions. + (STM32L4XX_ERRATUM_VLDM_VENEER_SIZE): Define. Size of a veneer for + VLDM instructions. + (bfd_elf32_arm_allocate_interworking_sections): Initialise erratum + glue section. + (record_stm32l4xx_erratum_veneer) : New function. Create a single + veneer, and its associated symbols. + (bfd_elf32_arm_add_glue_sections_to_bfd): Add STM32L4XX erratum glue. + (bfd_elf32_arm_set_stm32l4xx_fix): New function. Set the type of + erratum workaround required. + (bfd_elf32_arm_stm32l4xx_fix_veneer_locations): New function. Find + out where veneers and branches to veneers have been placed in + virtual memory after layout. + (is_thumb2_ldmia): New function. + (is_thumb2_ldmdb): Likewise. + (is_thumb2_vldm ): Likewise. + (stm32l4xx_need_create_replacing_stub): New function. Decide if a + veneer must be emitted. + (bfd_elf32_arm_stm32l4xx_erratum_scan): Scan the sections of an + input BFD for potential erratum-triggering insns. Record results. + (bfd_elf32_arm_set_target_relocs): Set stm32l4xx_fix field in + global hash table. + (elf32_arm_size_dynamic_sections): Collect glue information. + (create_instruction_branch_absolute): New function. + (create_instruction_ldmia): Likewise. + (create_instruction_ldmdb): Likewise. + (create_instruction_mov): Likewise. + (create_instruction_sub): Likewise. + (create_instruction_vldmia): Likewise. + (create_instruction_vldmdb): Likewise. + (create_instruction_udf_w): Likewise. + (create_instruction_udf): Likewise. + (push_thumb2_insn32): Likewise. + (push_thumb2_insn16): Likewise. + (stm32l4xx_fill_stub_udf): Likewise. + (stm32l4xx_create_replacing_stub_ldmia): New function. Expands the + replacing stub for ldmia instructions. + (stm32l4xx_create_replacing_stub_ldmdb): Likewise for ldmdb. + (stm32l4xx_create_replacing_stub_vldm): Likewise for vldm. + (stm32l4xx_create_replacing_stub): New function. Dispatches the + stub emission to the appropriate functions. + (elf32_arm_write_section): Output veneers, and branches to veneers. + 2015-10-27 Sangamesh Mallayya <nickc@redhat.com>sangamesh.swamy@in.ibm.com> * configure.ac (powerpc64-*-aix[5-9].*): Match powerpc64 running |