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.
Perhaps worth using update_llc_test_checks.py, or at least adding some CHECK-NEXTs as the delay slot being filled (rather than something else being silently emitted in between) is pretty important.