[ARM/STM32L4XX] PR 20030: --fix-stm32l4xx-629360 fails to create vldm/vpop veneers...
authorChristophe Monat <christophe.monat@st.com>
Mon, 9 May 2016 13:10:37 +0000 (15:10 +0200)
committerChristophe Lyon <christophe.lyon@linaro.org>
Mon, 9 May 2016 13:10:37 +0000 (15:10 +0200)
commit9239bbd3a6bf901dba1c0170622c50c78f6d1096
tree9f383c10b9859fc9d8221e8b9b05ce3121d1597b
parent73597c183c78ed0bea291897de6d8867ec640208
[ARM/STM32L4XX] PR 20030: --fix-stm32l4xx-629360 fails to create vldm/vpop veneers for double-precision registers

bfd/
PR ld/20030
* elf32-arm.c (is_thumb2_vldm): Account for T1 (DP) encoding.
(stm32l4xx_need_create_replacing_stub): Rename ambiguous nb_regs
to nb_words.
(create_instruction_vldmia): Add is_dp to disambiguate SP/DP
encoding.
(create_instruction_vldmdb): Likewise.
(stm32l4xx_create_replacing_stub_vldm): is_dp detects DP encoding,
uses it to re-encode.

ld/
PR ld/20030
* testsuite/ld-arm/arm-elf.exp: Run new stm32l4xx-fix-vldm-dp
tests. Fix misnamed stm32l4xx-fix-all.
* testsuite/ld-arm/stm32l4xx-fix-vldm-dp.s: New tests for multiple
loads with DP registers.
* testsuite/ld-arm/stm32l4xx-fix-vldm-dp.d: New reference file.
* testsuite/ld-arm/stm32l4xx-fix-vldm.s: Add missing comment.
* testsuite/ld-arm/stm32l4xx-fix-all.s: Add tests for multiple
loads with DP registers.
* testsuite/ld-arm/stm32l4xx-fix-all.d: Update reference.
bfd/ChangeLog
bfd/elf32-arm.c
ld/ChangeLog
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/stm32l4xx-fix-all.d
ld/testsuite/ld-arm/stm32l4xx-fix-all.s
ld/testsuite/ld-arm/stm32l4xx-fix-vldm-dp.d [new file with mode: 0644]
ld/testsuite/ld-arm/stm32l4xx-fix-vldm-dp.s [new file with mode: 0644]
ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s