re PR bootstrap/44721 (Failed to bootstrap (ICE in extract_insn, at recog.c:2127))
authorH.J. Lu <hongjiu.lu@intel.com>
Wed, 30 Jun 2010 09:47:25 +0000 (09:47 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 30 Jun 2010 09:47:25 +0000 (09:47 +0000)
2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>

PR target/44721
* config/i386/i386.md (peephole2 for arithmetic ops with memory):
Fix last commit.

From-SVN: r161594

gcc/ChangeLog
gcc/config/i386/i386.md

index bd7f730d6c2eb880e18fb8e8abdf4f520ddab031..4d3dd5757206d1f457c5219a95459f357c5e20f2 100644 (file)
@@ -1,3 +1,9 @@
+2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/44721
+       * config/i386/i386.md (peephole2 for arithmetic ops with memory):
+       Fix last commit.
+
 2010-06-30  Nick Clifton  <nickc@redhat.com>
 
        * config/rx/rx-modes.def: New file.
index 7003f5225f3c73342a076ef70e61e1dc56b0a289..c450c384a5b2e6dea199959d0325210d9421f713 100644 (file)
 ;;  leal    (%edx,%eax,4), %eax
 
 (define_peephole2
-  [(match_scratch:SI 5 "r")
+  [(match_scratch:P 5 "r")
    (parallel [(set (match_operand 0 "register_operand" "")
                   (ashift (match_operand 1 "register_operand" "")
                           (match_operand 2 "const_int_operand" "")))
 
   operands[1] = gen_rtx_PLUS (Pmode, base,
                              gen_rtx_MULT (Pmode, index, GEN_INT (scale)));
-  if (mode != Pmode)
-    operands[1] = gen_rtx_SUBREG (mode, operands[1], 0);
   operands[5] = base;
+  if (mode != Pmode)
+    {
+      operands[1] = gen_rtx_SUBREG (mode, operands[1], 0);
+      operands[5] = gen_rtx_SUBREG (mode, operands[5], 0);
+    }
   operands[0] = dest;
 })
 \f