[PATCH] rs6000: Support ELFv2 sibcall for indirect calls [PR96787]
Segher Boessenkool
segher@kernel.crashing.org
Thu Aug 27 18:41:53 GMT 2020
Hi!
On Thu, Aug 27, 2020 at 08:21:34AM -0500, Bill Schmidt wrote:
> + /* For ELFv2, r12 and CTR need to hold the function address
> + for an indirect call. */
> + if (GET_CODE (func_desc) != SYMBOL_REF && DEFAULT_ABI == ABI_ELFv2)
> + {
> + r12 = gen_rtx_REG (Pmode, 12);
> + if (!rtx_equal_p (r12, func_desc))
> + emit_move_insn (r12, func_desc);
These last two lines aren't needed? A move from r12 to r12 is harmless,
and should be optimised away just fine?
> /* Create the call. */
> - call[0] = gen_rtx_CALL (VOIDmode, gen_rtx_MEM (SImode, func_desc), tlsarg);
> + call[0] = gen_rtx_CALL (VOIDmode, gen_rtx_MEM (SImode, func_addr), tlsarg);
I don't understand this change? (Maybe I'm not looking well enough.)
Looks fine otherwise, yes :-)
Segher
More information about the Gcc-patches
mailing list