aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2009-02-06 00:29:03 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2009-02-06 00:29:03 +0000
commit6d39673dce04f511bc7e764a6773c2c5da6b0178 (patch)
tree4860039d5d3ae30262d476aafa56a955ff12f7c5
parente25e4088b968c9d738986e1d4896a9eab6d2b9ae (diff)
downloadgcc-6d39673dce04f511bc7e764a6773c2c5da6b0178.zip
gcc-6d39673dce04f511bc7e764a6773c2c5da6b0178.tar.gz
gcc-6d39673dce04f511bc7e764a6773c2c5da6b0178.tar.bz2
re PR target/38991 (SH: ICE in extract_insn at recog.c:1990)
PR target/38991 * config/sh/predicates.md (general_movsrc_operand): Don't check the subreg of system registers here. From-SVN: r143978
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/sh/predicates.md8
2 files changed, 7 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 92bb49c..f0822dc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/38991
+ * config/sh/predicates.md (general_movsrc_operand): Don't check
+ the subreg of system registers here.
+
2009-02-05 Jakub Jelinek <jakub@redhat.com>
PR c++/39106
diff --git a/gcc/config/sh/predicates.md b/gcc/config/sh/predicates.md
index ff6a1a28..bbd5fd4 100644
--- a/gcc/config/sh/predicates.md
+++ b/gcc/config/sh/predicates.md
@@ -1,5 +1,5 @@
;; Predicate definitions for Renesas / SuperH SH.
-;; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
@@ -392,12 +392,6 @@
return 0;
}
- if ((mode == QImode || mode == HImode)
- && (GET_CODE (op) == SUBREG
- && GET_CODE (XEXP (op, 0)) == REG
- && system_reg_operand (XEXP (op, 0), mode)))
- return 0;
-
if (TARGET_SHMEDIA
&& (GET_CODE (op) == PARALLEL || GET_CODE (op) == CONST_VECTOR)
&& sh_rep_vec (op, mode))