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: 2.10.91: A problem with R_MIPS_CALL relocations within gas


On Fri, Nov 17, 2000 at 11:25:20AM -0800, Ian Lance Taylor wrote:

>    Oops, didn't complete my thought.  LA is not an actual MIPS instruction, but 
>    an assembler tool that may become replaced with multiple instructions.  The
>    following won't work for all cases if you expect the LA to be complete when
>    execution gets to LabelFoo.
> 
>      beq   $0, $0, LabelFoo
>      la    $1, <LabelBar>
> 
> True, gcc needs to break up the la as well.  It is able to do that
> using -msplit-addresses.  I don't know whether it does or not in this
> specific example.

Unless this has been changed recently -msplit-addresses does only support
non-PIC code but we're looking at PIC code here.  The PIC case is more
complex and GCC knows nothing about into what instruction sequence an
la could expand.  Even if it would that wouldn't really help - gas
can't assemble all all the nice stuff such as %got_disp etc. which got
introduce for the N32 / 64 ABIs.

  Ralf

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