2.10.91: A problem with R_MIPS_CALL relocations within gas

Ralf Baechle ralf@oss.sgi.com
Fri Nov 17 14:20:00 GMT 2000


On Fri, Nov 17, 2000 at 09:16:52AM -0800, Ian Lance Taylor wrote:

> 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.

I've taken a look at the dissassmbly of libc and found that gcc only does
a reasonable job of scheduling function calls in very few cases.
Essentially the only case where it does well is when it can move the
loading of the function address from the GOT out of a loop.

  Ralf


More information about the Binutils mailing list