OpenCores
First Prev 2/2 no use no use
[PATCH] GCC: split sfCC+bX
by Unknown on Mar 16, 2004
Not available!
Johan Rydberg wrote:

Scott Furman sfurman@rosum.com> wrote: : The linker already propagates carry bits from a 'lo(sym)' field to the : nearest preceding 'hi(sym)' field. (This is necessary because the : values of symbols change each time an object file is relocated and the : or32 linker uses REL-style relocation, in which the relocation offsets : are embedded in the instructions rather than in a separate section.) I did a small test. By putting the data segment at 0xfff00 forcing negative values into the low order bits. All relocations is done on the object "bar", located at 0xfff00. objdump output: 01000074 : 1000074: 18 60 00 0f l.movhi r3,0xf 1000078: 84 63 ff 00 l.lwz r3,0xffffff00(r3) Low order bits sign extended, no carry from lower bits to upper. EA result: 0xf0000 + -256 = 0xeff00. Invalid address!

Just to be clear, I wasn't saying that the linker already handled this
case - just that it already propagated carry from a lo(sym) relocation
to a preceding hi(sym) relocation. As you say, if you wanted to handle
both unsigned and signed lo(sym) variants, you would need a way for the
linker to modify the hi(sym) relocation for the latter type. This could
be handled by introducing a different relocation record type.

-Scott



First Prev 2/2 no use no use
© copyright 1999-2026 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.