[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