mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-12 12:16:04 +08:00
9239bbd3a6
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.
26 lines
688 B
ArmAsm
26 lines
688 B
ArmAsm
.syntax unified
|
|
.cpu cortex-m4
|
|
.fpu fpv4-sp-d16
|
|
.text
|
|
.align 1
|
|
.thumb
|
|
.thumb_func
|
|
.global _start
|
|
_start:
|
|
@ All LDM treatments for word acces <= 8 go through the same
|
|
@ replication code, but decoding may vary
|
|
ldm.w r9, {r1-r8}
|
|
ldm.w r9!, {r1-r8}
|
|
ldmdb.w r9, {r1-r8}
|
|
ldmdb.w r9!, {r1-r8}
|
|
pop {r1-r8}
|
|
|
|
@ All VLDM treatments for word acces <= 8 go through the same
|
|
@ replication code, but decoding may vary
|
|
vldm r9, {s1-s8}
|
|
vldm r6!, {s9-s16}
|
|
vpop {s1-s8}
|
|
vldm r9, {d1-d4}
|
|
vldm r6!, {d8-d11}
|
|
vpop {d1-d4}
|