OSDN Git Service

* i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 31 Jul 2000 10:30:44 +0000 (10:30 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 31 Jul 2000 10:30:44 +0000 (10:30 +0000)
in my last checkin.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35370 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 9e289d5..adb5675 100644 (file)
@@ -1,3 +1,8 @@
+Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
+       in my last checkin.
+
 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
        * recog.c (extract_insn): Set operand_mode according to
index a267232..5b2aea3 100644 (file)
   "
 {
   rtx pat;
-  operands[0] = gen_lowpart (SImode, operands[0]);
   /* In -fPIC mode the constructs like (const (unspec [symbol_ref]))
      may confuse gen_lowpart.  */
   if (GET_MODE (operands[0]) != Pmode)
       operands[1] = gen_lowpart (Pmode, operands[1]);
       operands[2] = gen_lowpart (Pmode, operands[2]);
     }
+  operands[0] = gen_lowpart (SImode, operands[0]);
   pat = gen_rtx_PLUS (Pmode, operands[1], operands[2]);
   if (Pmode != SImode)
     pat = gen_rtx_SUBREG (SImode, pat, 0);
 (define_insn "*ashlqi3_1_lea"
   [(set (match_operand:QI 0 "nonimmediate_operand" "=qm,r,r")
        (ashift:QI (match_operand:QI 1 "nonimmediate_operand" "0,0,r")
-                  (match_operand:QI 2 "nonmemory_operand" "cI,cI,r")))
+                  (match_operand:QI 2 "nonmemory_operand" "cI,cI,M")))
    (clobber (reg:CC 17))]
   "!TARGET_PARTIAL_REG_STALL
    && ix86_binary_operator_ok (ASHIFT, QImode, operands)"