SPARC return optimizations, misc fixes

Jakub Jelinek jakub@redhat.com
Thu Nov 25 09:29:00 GMT 1999


Hi!

The following patch allows the delay slot of the v9 return instruction to be
filled with various instructions (not only add and mov as has been till
now) and accepts lo_sum and <<1 for restore.

So now finally e.g.
long foo(void); long l;
long *bar(void)
{
        foo();
        return &l;
}
and
long baz(void)
{
	foo();
	return l<<2;
}
use the delay slot.
Besides that, gcc should now honour users requests for -fcall-used/-ffixed
if the reason to change it was just a convention and it was not needed for
the actual code generation. E.g. sparc32 linux kernel is compiled with
-fcall-used-g5 -fcall-used-g7 but g5 used to be fixed in spite of that.
Also, the leaf alloc order is changed so that it is more likely to get a
leaf function.

Cheers,
    Jakub
___________________________________________________________________
Jakub Jelinek | jakub@redhat.com | http://sunsite.mff.cuni.cz/~jj
Linux version 2.3.18 on a sparc64 machine (1343.49 BogoMips)
___________________________________________________________________


More information about the Gcc-patches mailing list