[PATCH] Fix distinction of 32/64bit addresses in MIPS gas
cgd@broadcom.com
cgd@broadcom.com
Mon Sep 3 23:07:00 GMT 2001
"H . J . Lu" <hjl@lucon.org> writes:
> > yes, i know that the pointer is going to be constrainted to being a
> > sign-extended 32-bit value, but neither the compiler or any assembly
> > code that uses it needs to know that (or should). As far as they're
> > concerned, pointers are 64-bit values and they're loaded with ld, etc.
>
> Why do you need R_MIPS_64 for that?
Don't really know that that specific reloc is necessary... but that
_is_ what the tools seem to generate, no?
However no matter how you cut it, you still need a reloc that "32 bit
address, plus 32 bits of sign extension."
> What is the 32bit address of `foo'?
bit 31 may or may not be set, depending on what exactly you're
compiling.
(I've personally used that type of construction for both things that
live at the boot address, and things which live down in (k)useg, and
we contanute to use that on a daily basis.)
cgd
More information about the Binutils
mailing list