diff options
author | Christophe Monat <christophe.monat@st.com> | 2016-05-09 15:10:37 +0200 |
---|---|---|
committer | Christophe Lyon <christophe.lyon@linaro.org> | 2016-05-09 15:10:37 +0200 |
commit | 9239bbd3a6bf901dba1c0170622c50c78f6d1096 (patch) | |
tree | 9f383c10b9859fc9d8221e8b9b05ce3121d1597b /ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s | |
parent | 73597c183c78ed0bea291897de6d8867ec640208 (diff) | |
download | binutils-gdb-9239bbd3a6bf901dba1c0170622c50c78f6d1096.tar.gz |
[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.
Diffstat (limited to 'ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s')
-rw-r--r-- | ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s b/ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s index 94aa66e6d3b..b0728016fda 100644 --- a/ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s +++ b/ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s @@ -21,6 +21,7 @@ _start: @ Explicit VPOP test vpop {s1-s9} + @ VLDM CASE #3 @ vldmd rx!, {...} @ -> vldmb rx!, {8_words_or_less} for each needed 8_word vldmdb r11!, {s1-s31} |