Since svn r123193 (git 327202e27a) the comment about scratch regs was
no longer correct, and I think gen_sibcall could have been used even
then.

Bootstrapped and regression tested powerpc64le-linux.  OK for mainline?

        * gcc/config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
        gen_sibcall.

diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index 2ef8c7f861e..832eda7cbad 100644
--- a/gcc/config/rs6000/rs6000-call.c
+++ b/gcc/config/rs6000/rs6000-call.c
@@ -8099,20 +8099,7 @@ rs6000_output_mi_thunk (FILE *file, tree thunk_fndecl 
ATTRIBUTE_UNUSED,
   funexp = XEXP (DECL_RTL (function), 0);
   funexp = gen_rtx_MEM (FUNCTION_MODE, funexp);
 
-#if TARGET_MACHO
-  if (MACHOPIC_INDIRECT)
-    funexp = machopic_indirect_call_target (funexp);
-#endif
-
-  /* gen_sibcall expects reload to convert scratch pseudo to LR so we must
-     generate sibcall RTL explicitly.  */
-  insn = emit_call_insn (
-          gen_rtx_PARALLEL (VOIDmode,
-            gen_rtvec (3,
-                       gen_rtx_CALL (VOIDmode,
-                                     funexp, const0_rtx),
-                       gen_rtx_USE (VOIDmode, const0_rtx),
-                       simple_return_rtx)));
+  insn = emit_call_insn (gen_sibcall (funexp, const0_rtx, const0_rtx));
   SIBLING_CALL_P (insn) = 1;
   emit_barrier ();
 

-- 
Alan Modra
Australia Development Lab, IBM

Reply via email to