This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: MIPS: PSEUDO define for n32 abi is broken for non-pic


On Fri, 13 Aug 2010, Joseph S. Myers wrote:

> > I agree with you about the fix, should be applied to all the three ABIs.
> > 
> > According to the GIT sources, the 'nop' is present for o32 abi, only
> > needs to be applied to n64 and n32 abi.
> >  
> > I don't know when the PSEUDO define for PIC is used, as the macro is
> > redefined in sysdep-cancel.h file. I don't see the issue with the define
> > in this file.
> > 
> > Please find the revised patch.
> 
> Thanks.  I've applied this patch.

 I fail to see the reason for all these ".set noreorder" directives here 
in the first place.  One is only needed for the o32 ABI ".cpload" 
pseudo-op and the rest looks like a dumb copy & paste of code to me, the 
repeated use only making it more evident.

 One could argue it makes sure, conservatively, that LI is not reordered 
with regard to SYSCALL, but then there's a label immediately preceding so 
there's no place LI could be moved to and SYSCALL is not allowed in a 
branch delay slot, so it can't be moved either.  Then it's only done for 
the non-PIC variant making it all just a mess and causing the casual 
reader to abandon any suspicion of a plan behind it straight away.

  Maciej


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