2.10.91: A problem with R_MIPS_CALL relocations within gas

Ian Lance Taylor ian@zembu.com
Fri Nov 17 09:17:00 GMT 2000


   Date: Fri, 17 Nov 2000 18:11:21 +0100 (MET)
   From: "Maciej W. Rozycki" <macro@ds2.pg.gda.pl>

   Gcc however prefers to
   generate code like the following:

   la $25,<symbol>
   jalr $25

   possibly because there are problems with other MIPS assemblers.

FYI, gcc does this to permit better instruction scheduling.  Splitting
up the instructions permits, e.g., putting the la instruction in a
delay slot.  Other MIPS toolchains do extensive instruction scheduling
in the assembler, but in the GNU toolchain gcc can do a better job of
that.

Your patch looks OK to me.  The only thing I would change would be the
comments, to put ``if tempreg is PIC_CALL_REG'' before the new sample
code, as in ``or, if tempreg is PIC_CALL_REG,''.

Ian


More information about the Binutils mailing list