[RS6000] rs6000_output_mi_thunk tidy

Alan Modra amodra@gmail.com
Sat Jul 27 07:46:00 GMT 2019


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



More information about the Gcc-patches mailing list