aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.ibm.com>2020-08-28 11:47:01 -0500
committerBill Schmidt <wschmidt@linux.ibm.com>2020-08-28 11:47:01 -0500
commit26c24398d3615aef43e599f87911c1ecc3bd2841 (patch)
tree55e19d5b3ff6a3f123a536337c30f41a57d98cc4 /gcc
parent1c1e41b06509c60c054792839618fad094ba17d1 (diff)
downloadgcc-26c24398d3615aef43e599f87911c1ecc3bd2841.zip
gcc-26c24398d3615aef43e599f87911c1ecc3bd2841.tar.gz
gcc-26c24398d3615aef43e599f87911c1ecc3bd2841.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 0954527..ca5b71e 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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
the ABI requires it to be loaded into r12 before the call. */
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;
/* Indirect calls via CTR are strongly preferred over indirect
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)
{
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);
emit_move_insn (func_addr, r12);
}