rs6000: r12 copy cleanup
Remove unnecessary tests before copying function address to r12. 2020-08-28 Bill Schmidt <wschmidt@linux.ibm.com> gcc/ * config/rs6000/rs6000.c (rs6000_call_aix): Remove test for r12. (rs6000_sibcall_aix): Likewise.
This commit is contained in:
parent
1c1e41b065
commit
26c24398d3
@ -24725,8 +24725,7 @@ rs6000_call_aix (rtx value, rtx func_desc, rtx tlsarg, rtx cookie)
|
|||||||
/* A function pointer in the ELFv2 ABI is just a plain address, but
|
/* A function pointer in the ELFv2 ABI is just a plain address, but
|
||||||
the ABI requires it to be loaded into r12 before the call. */
|
the ABI requires it to be loaded into r12 before the call. */
|
||||||
func_addr = gen_rtx_REG (Pmode, 12);
|
func_addr = gen_rtx_REG (Pmode, 12);
|
||||||
if (!rtx_equal_p (func_addr, func))
|
emit_move_insn (func_addr, func);
|
||||||
emit_move_insn (func_addr, func);
|
|
||||||
abi_reg = func_addr;
|
abi_reg = func_addr;
|
||||||
/* Indirect calls via CTR are strongly preferred over indirect
|
/* Indirect calls via CTR are strongly preferred over indirect
|
||||||
calls via LR, so move the address there. Needed to mark
|
calls via LR, so move the address there. Needed to mark
|
||||||
@ -24846,8 +24845,7 @@ rs6000_sibcall_aix (rtx value, rtx func_desc, rtx tlsarg, rtx cookie)
|
|||||||
if (GET_CODE (func_desc) != SYMBOL_REF && DEFAULT_ABI == ABI_ELFv2)
|
if (GET_CODE (func_desc) != SYMBOL_REF && DEFAULT_ABI == ABI_ELFv2)
|
||||||
{
|
{
|
||||||
r12 = gen_rtx_REG (Pmode, 12);
|
r12 = gen_rtx_REG (Pmode, 12);
|
||||||
if (!rtx_equal_p (r12, func_desc))
|
emit_move_insn (r12, func_desc);
|
||||||
emit_move_insn (r12, func_desc);
|
|
||||||
func_addr = gen_rtx_REG (Pmode, CTR_REGNO);
|
func_addr = gen_rtx_REG (Pmode, CTR_REGNO);
|
||||||
emit_move_insn (func_addr, r12);
|
emit_move_insn (func_addr, r12);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user