This patch adds tail call support to the 32-bit Sparc backend.
Two new instructions are defined, TAIL_CALL and TAIL_CALLri. They are encoded the same as CALL and BINDri, but are marked with isReturn so that the epilogue gets emitted. In contrast to CALL, TAIL_CALL is not marked with isCall. This makes it possible to use the leaf function optimization when the only call a function makes is a tail call.
TAIL_CALL modifies the return address in %o7, so for leaf functions the value in %o7 needs to be restored after the call. For normal functions which uses the restore instruction this is not necessary.
Whilst correct for now given the 64-bit lowering does not support tail calls, this condition only applies to the 32-bit SPARC ABI, as the 64-bit ABI does not have the extra unimp after the delay slot for struct-returning functions. Perhaps worth adding a comment here so this doesn't get forgotten?