[PATCH] PR/Target 47998

Yoshinori Sato ysato@users.sourceforge.jp
Wed Mar 16 15:32:00 GMT 2011


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>



More information about the Gcc-patches mailing list