nop in load-delay-slot (on MIPS o32 PIC code)

cgd@broadcom.com cgd@broadcom.com
Tue Apr 20 15:30:00 GMT 2004


At Tue, 20 Apr 2004 11:33:21 +0000 (UTC), "Atsushi Nemoto" wrote:
> In MIPS PIC code, mips-linux-as produces a nop for load-delay-slot in
> many case even if -march=mips2 was specified.
> [ ... ]
> I think this nop can be omitted on "!gpr_interlocks" condition.  Is
> this nop required by MIPS ABI(o32) ?  The march=mips2 option should
> not override this behavior ?

You are correct.  This is an issue, but probably not worth fixing IMO.

I've got patches against an old version of binutils that did this for
lots of the cases that we cared about.  But, it was fairly invasive,
and, if i recall correctly, involved touching variant frags in some
cases.  There aren't enough test cases for these code paths, either,
which means that if one did this 'right' then it should also include a
bunch of new test cases (which we didn't do, for our own use here).

IMO The right solution is to use a newer compiler (3.4 8-) that
generates explicit relocs and .set noreorder code, so when the
explicit relocs code came along I dropped the patch from my source
tree.

I can probably find the patch for you w/o too much trouble.  But it's
nowhere near suitable for inclusion into binutils as-is.



chris



More information about the Binutils mailing list