* h8300.md (anonymous movhi pattern): Don't move (reg n) to
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Aug 2001 16:17:25 +0000 (16:17 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Aug 2001 16:17:25 +0000 (16:17 +0000)
(mem (pre_dec (reg n))
(anonymous movsi pattern): Likewise.

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

gcc/ChangeLog
gcc/config/h8300/h8300.md

index 796b208..86f674e 100644 (file)
@@ -1,5 +1,11 @@
 2001-08-29  Kazu Hirata  <kazu@hxi.com>
 
+       * h8300.md (anonymous movhi pattern): Don't move (reg n) to
+       (mem (pre_dec (reg n))
+       (anonymous movsi pattern): Likewise.
+
+2001-08-29  Kazu Hirata  <kazu@hxi.com>
+
        * h8300.h (RETURN_ADDR_RTX): New.
 
 2001-08-29  Kazu Hirata  <kazu@hxi.com>
index 216524e..b8a9b5e 100644 (file)
        (match_operand:HI 1 "general_operand_src" "I,r>,r,i,m,r"))]
   "TARGET_H8300
    && (register_operand (operands[0],HImode)
-       || register_operand (operands[1], HImode))"
+       || register_operand (operands[1], HImode))
+   && !(GET_CODE (operands[0]) == MEM
+       && GET_CODE (XEXP (operands[0], 0)) == PRE_DEC
+       && GET_CODE (XEXP (XEXP (operands[0], 0), 0)) == REG
+       && GET_CODE (operands[1]) == REG
+       && REGNO (XEXP (XEXP (operands[0], 0), 0)) == REGNO (operands[1]))"
   "@
    sub.w       %T0,%T0
    mov.w       %T1,%T0
        (match_operand:SI 1 "general_operand_src" "I,r,i,m,r,r,>,I,r,*a"))]
   "(TARGET_H8300S || TARGET_H8300H)
    && (register_operand (operands[0], SImode)
-       || register_operand (operands[1], SImode))"
+       || register_operand (operands[1], SImode))
+   && !(GET_CODE (operands[0]) == MEM
+       && GET_CODE (XEXP (operands[0], 0)) == PRE_DEC
+       && GET_CODE (XEXP (XEXP (operands[0], 0), 0)) == REG
+       && GET_CODE (operands[1]) == REG
+       && REGNO (XEXP (XEXP (operands[0], 0), 0)) == REGNO (operands[1]))"
   "*
 {
   switch (which_alternative)