aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Sandoe <iain@codesourcery.com>2014-10-07 18:59:24 +0000
committerMike Stump <mrs@gcc.gnu.org>2014-10-07 18:59:24 +0000
commit07056cbafb1bae32d3bbca42efd02f48143dcc54 (patch)
tree7d036ee2032de57b92921eb4b8395a2d8ed0a14d
parent1743a5251916586d633d42661cf655cdc44cc6d5 (diff)
downloadgcc-07056cbafb1bae32d3bbca42efd02f48143dcc54.zip
gcc-07056cbafb1bae32d3bbca42efd02f48143dcc54.tar.gz
gcc-07056cbafb1bae32d3bbca42efd02f48143dcc54.tar.bz2
re PR target/61387 (~900 test failures on on x86_64-apple-darwin13 for g++ with -m64 after r211089)
2014-10-07 Iain Sandoe <iain@codesourcery.com> PR target/61387 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout. From-SVN: r215983
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7f4094d..e198b2b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2014-10-07 Iain Sandoe <iain@codesourcery.com>
+
+ PR target/61387
+ * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
+
2014-10-07 Aldy Hernandez <aldyh@redhat.com>
* dwarf2out.c: Remove current_function_has_inlines.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index ed8fe2d..4c4a6eb 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -38979,9 +38979,11 @@ x86_output_mi_thunk (FILE *file, tree, HOST_WIDE_INT delta,
{
if (sibcall_insn_operand (fnaddr, word_mode))
{
- tmp = gen_rtx_CALL (VOIDmode, fnaddr, const0_rtx);
- tmp = emit_call_insn (tmp);
- SIBLING_CALL_P (tmp) = 1;
+ fnaddr = XEXP (DECL_RTL (function), 0);
+ tmp = gen_rtx_MEM (QImode, fnaddr);
+ tmp = gen_rtx_CALL (VOIDmode, tmp, const0_rtx);
+ tmp = emit_call_insn (tmp);
+ SIBLING_CALL_P (tmp) = 1;
}
else
emit_jump_insn (gen_indirect_jump (fnaddr));