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