summaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s
diff options
context:
space:
mode:
authorChristophe Monat <christophe.monat@st.com>2016-05-09 15:10:37 +0200
committerChristophe Lyon <christophe.lyon@linaro.org>2016-05-09 15:10:37 +0200
commit9239bbd3a6bf901dba1c0170622c50c78f6d1096 (patch)
tree9f383c10b9859fc9d8221e8b9b05ce3121d1597b /ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s
parent73597c183c78ed0bea291897de6d8867ec640208 (diff)
downloadbinutils-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.s1
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}