aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2019-07-28 19:00:41 +0930
committerAlan Modra <amodra@gcc.gnu.org>2019-07-28 19:00:41 +0930
commitaef57966f4a2eb45d399af1c243f299e2f894000 (patch)
tree3fccd9ff423654aee047857fbbb76528e0538f5d /gcc
parent295ac7c79ebe8ec1dec799c748c49e44fd6b4b47 (diff)
downloadgcc-aef57966f4a2eb45d399af1c243f299e2f894000.zip
gcc-aef57966f4a2eb45d399af1c243f299e2f894000.tar.gz
gcc-aef57966f4a2eb45d399af1c243f299e2f894000.tar.bz2
[RS6000] rs6000_output_mi_thunk tidy
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. * gcc/config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use gen_sibcall. From-SVN: r273855
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000-call.c15
2 files changed, 6 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3412000..21ca5a8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2019-07-28 Alan Modra <amodra@gmail.com>
+ * gcc/config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
+ gen_sibcall.
+
+2019-07-28 Alan Modra <amodra@gmail.com>
+
PR target/91135
* config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
define.
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index 2ef8c7f..832eda7 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 ();