https://sourceware.org/bugzilla/show_bug.cgi?id=33142
Bug ID: 33142
Summary: CR16 loadx disp14 format broken
Product: binutils
Version: 2.46 (HEAD)
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: Jomosoto at proton dot me
Target Milestone: ---
Test case:
test.S
---
loadb [r12]3(r1,r0), r2
loadw [r12]3(r1,r0), r3
loadd [r12]3(r1,r0), (r5,r4)
---
Command: `as test.S`
objdump -D output:
---
Disassembly of section .text:
00000000 <.text>:
0: 60 86 03 00 loadb [r12]0x23:m(r1,r0),r6
4: f0 86 03 00 loadw [r12]0x33:m(r1,r0),r15
8: c0 86 03 00 loadw [r12]0x3:m(r1,r0),r12
---
Expected objdump -D ouput:
---
Disassembly of section .text:
00000000 <.text>:
0: 40 86 23 00 loadb [r12]0x3:m(r1,r0),r2
4: a0 86 33 00 loadw [r12]0x3:m(r1,r0),r3
8: 80 86 43 00 loadd [r12]0x3:m(r1,r0),(r5,r4)
---
It appears like the assembler tries to put reg dest to bits 2:3 instead of
16:19 (no effect at third example because "4" doesn't fit in the two bits)
The disassembler seems to interpret bits 0:3 as reg dest, but the disp is
decoded correctly (but broken in example 1 and 2, because of the wrong
behaviour in the assembly step)
--
You are receiving this mail because:
You are on the CC list for the bug.