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

Reply via email to