This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas


"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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]