Activity log for bug #1996779

Date Who What changed Old value New value Message
2022-11-16 15:37:14 Dan Lewis bug added bug
2022-11-16 15:37:14 Dan Lewis attachment added test case for vldr s0,[r0,r1] https://bugs.launchpad.net/bugs/1996779/+attachment/5631027/+files/test.s
2022-11-16 15:57:55 Dan Lewis summary vldr s0,[r0,r1] accepted; assembles as vldr s0,[r0] vldr/vstr s0,[r0,r1] accepted; assembles as vldr/vstr s0,[r0]
2022-11-16 16:43:51 Dan Lewis summary vldr/vstr s0,[r0,r1] accepted; assembles as vldr/vstr s0,[r0] vldr/vstr s0,[r0,r1] not rejected and assembles w/out warning as vldr/vstr s0,[r0]
2022-11-16 16:44:11 Dan Lewis summary vldr/vstr s0,[r0,r1] not rejected and assembles w/out warning as vldr/vstr s0,[r0] vldr/vstr s0,[r0,r1] not rejected; assembles w/out warning as vldr/vstr s0,[r0]
2022-11-16 16:44:58 Dan Lewis description The assembler accepts without any warning or error message VSTR and VLDR instructions with the memory addressing mode of [Rn, Rm]. This memory addressing mode appears not to exist for these instructions, as the modes are limited to [Rn] and [Rn, #imm]. But the assembler accepts them anyway in this example code, but then produces code that ignores the Rm index register. .syntax unified .cpu cortex-m4 .text .global test .thumb_func .align test: vldr s0, [r0,r1] // disassembles as vldr s0, [r0] vstr s0, [r0,r1] // disassembles as vstr s0, [r0] bx lr .end The output from the arm-none-eabi-objdump -d obj/test-s.o command is: Disassembly of section .text: 00000000 <test>: 0: ed90 0a00 vldr s0, [r0] 4: ed80 0a00 vstr s0, [r0] 8: 4770 bx lr a: bf00 nop This is using arm-none-eabi-gcc-cs-12.2.0-1.fc36.x86_64 The assembler accepts without any warning or error message VSTR and VLDR instructions with the memory addressing mode of [Rn, Rm]. This memory addressing mode does not exist for these instructions, as the modes are limited to [Rn] and [Rn, #imm] in the Cortex-M4. But the assembler accepts them anyway in this example code, but then produces code that ignores the Rm index register.   .syntax unified   .cpu cortex-m4   .text   .global test   .thumb_func   .align test:   vldr s0, [r0,r1] // disassembles as vldr s0, [r0]   vstr s0, [r0,r1] // disassembles as vstr s0, [r0]   bx lr   .end The output from the arm-none-eabi-objdump -d obj/test-s.o command is: Disassembly of section .text: 00000000 <test>:     0: ed90 0a00 vldr s0, [r0]     4: ed80 0a00 vstr s0, [r0]     8: 4770 bx lr     a: bf00 nop This is using arm-none-eabi-gcc-cs-12.2.0-1.fc36.x86_64