SPARC return optimizations, misc fixes

Jakub Jelinek
Thu Nov 25 09:29:00 GMT 1999


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)
        return &l;
long baz(void)
	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.

Jakub Jelinek | |
Linux version 2.3.18 on a sparc64 machine (1343.49 BogoMips)

More information about the Gcc-patches mailing list