https://sourceware.org/bugzilla/show_bug.cgi?id=22049
Bug ID: 22049
Summary: PowerPC VLE: Lower 16 bit address offset not
calculated properly in some cases
Product: binutils
Version: 2.28
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gas
Assignee: unassigned at sourceware dot org
Reporter: vincegeg83 at gmail dot com
Target Milestone: ---
The following instruction sequence generates an invalid address offset:
.org 0x100100
data0:
.short 0x1234
e_lis r4, data0@ha
e_lhz r4, data0@l(r4)
... this will assemble to code that disassembles to:
e_lis r4, word_0x100000@ha
e_lhz r4, word_0x100000@l
In other words, it does not calculate the lower 16 bit offset correctly. This
also fails:
e_lis r4, data0@ha
e_addi16 r4, r4, data0@l
e_lhz r4, 0(r4)
Again, this assembles to reference address 0x100000 for data0. However, the
following sequence WORKS correctly:
e_lis r4, data0@ha
e_ori r4, r4, data0@l
e_lhz r4, 0(r4)
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-binutils