This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] PR/Target 47998
- From: Yoshinori Sato <ysato at users dot sourceforge dot jp>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 17 Mar 2011 00:32:12 +0900
- Subject: [PATCH] PR/Target 47998
Hi All,
This problem optimize rule missing.
gen_lowpart got invalid operand.
I attached fix patch.
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ca9398c..9982644 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-03-16 Yoshinori Sato <ysato@users.sourceforge.jp>
+
+ PR/target 47998
+ * config/h8300/h8300.md
+ (peephole): Add rule.
+
2011-03-16 Nick Clifton <nickc@redhat.com>
* config/rx/rx.h (JUMP_ALIGN): Define.
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md
index 5efe2cb..4aa7633 100644
--- a/gcc/config/h8300/h8300.md
+++ b/gcc/config/h8300/h8300.md
@@ -4940,6 +4940,8 @@
|| GET_MODE (operands[0]) == SImode)
&& GET_MODE (operands[0]) == GET_MODE (operands[1])
&& REGNO (operands[0]) == REGNO (operands[2])
+ && (GET_CODE (operands[1]) == REG
+ || GET_CODE (operands[1]) == SUBREG)
&& !reg_overlap_mentioned_p (operands[2], operands[1])
&& !(GET_MODE (operands[1]) != QImode
&& GET_CODE (operands[1]) == MEM
--
Yoshinori Sato
<ysato@users.sourceforge.jp>