Where is the splitting of MIPS %hi and %lo relocations handled?

David Daney ddaney@avtrex.com
Mon Nov 6 19:35:00 GMT 2006


Ian Lance Taylor wrote:
> David Daney <ddaney@avtrex.com> writes:
> 
> 
>>I am going to try to fix:
>>
>>http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29721
>>
>>Which is a problem where a %lo relocation gets separated from its
>>corresponding %hi.
>>
>>What is the mechanism that tries to prevent this from happening?  And
>>where is it implemented?
> 
> 
> This implemented by having the assembler sort the relocations so that
> each %lo relocations follows the appropriate set of %hi relocations.
> It is implemented in gas/config/tc-mips.c in append_insn.  Look for
> reloc_needs_lo_p and mips_frob_file.
> 
> At first glance the assembler does appear to handle %got correctly, so
> I'm not sure why it is failing for you.

Did you look at the assembly fragment in the PR?

Is it correct in that there is a pair of %got/%lo in the middle of 
another %got/%lo pair?

David Daney,



More information about the Gcc mailing list