http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59034

--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
The fix is obvious:

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index c7ec0c1..a2c81e5 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1669,7 +1669,7 @@
   split_double_mode (DImode, &operands[1], 1, &operands[2], &operands[3]);

   operands[1] = gen_lowpart (DImode, operands[2]);
-  operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
+  operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (Pmode, stack_pointer_rtx,
                            GEN_INT (4)));
 })

@@ -1686,7 +1686,7 @@
   split_double_mode (DImode, &operands[1], 1, &operands[2], &operands[3]);

   operands[1] = gen_lowpart (DImode, operands[2]);
-  operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
+  operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (Pmode, stack_pointer_rtx,
                            GEN_INT (4)));
 })

I am testing it now.

Reply via email to