From patchwork Wed Mar 16 15:32:12 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: PR/Target 47998 Date: Wed, 16 Mar 2011 05:32:12 -0000 From: Yoshinori Sato X-Patchwork-Id: 87269 Message-Id: <87mxkvxern.wl%ysato@users.sourceforge.jp> To: gcc-patches@gcc.gnu.org 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 + + PR/target 47998 + * config/h8300/h8300.md + (peephole): Add rule. + 2011-03-16 Nick Clifton * 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