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