rs6000: r12 copy cleanup
authorBill Schmidt <wschmidt@linux.ibm.com>
Fri, 28 Aug 2020 16:47:01 +0000 (11:47 -0500)
committerBill Schmidt <wschmidt@linux.ibm.com>
Fri, 28 Aug 2020 16:47:01 +0000 (11:47 -0500)
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.

gcc/config/rs6000/rs6000.c

index 09545278dcf8dc0c4a0bc21d0a81b614006b08e7..ca5b71ecdd3b0066791133244c0cbcb8ca3b0218 100644 (file)
@@ -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);
     }