From 0cb3708d3c36f3344a72b28dc9c81300ce067210 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Wed, 29 Aug 2001 16:17:25 +0000 Subject: [PATCH] h8300.md (anonymous movhi pattern): Don't move (reg n) to (mem (pre_dec (reg n)) (anonymous movsi pattern): Likewise. * h8300.md (anonymous movhi pattern): Don't move (reg n) to (mem (pre_dec (reg n)) (anonymous movsi pattern): Likewise. From-SVN: r45266 --- gcc/ChangeLog | 6 ++++++ gcc/config/h8300/h8300.md | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 796b2080944d..86f674efd7de 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-08-29 Kazu Hirata + + * 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 * h8300.h (RETURN_ADDR_RTX): New. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 216524ec070f..b8a9b5e0a994 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -175,7 +175,12 @@ (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 @@ -404,7 +409,12 @@ (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) -- 2.43.5