diff options
author | Kazu Hirata <kazu@hxi.com> | 2001-08-29 16:17:25 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2001-08-29 16:17:25 +0000 |
commit | 0cb3708d3c36f3344a72b28dc9c81300ce067210 (patch) | |
tree | 5dede8e81f343d12f82c1ba1cebaf71f44724952 | |
parent | af592bf91d48c28c2828d46bb5a683ca7bb86af3 (diff) | |
download | gcc-0cb3708d3c36f3344a72b28dc9c81300ce067210.zip gcc-0cb3708d3c36f3344a72b28dc9c81300ce067210.tar.gz gcc-0cb3708d3c36f3344a72b28dc9c81300ce067210.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 14 |
2 files changed, 18 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 796b208..86f674e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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> diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 216524e..b8a9b5e 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) |