diff options
author | Kaz Kojima <kkojima@gcc.gnu.org> | 2009-04-16 21:58:59 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2009-04-16 21:58:59 +0000 |
commit | b3f8558a56728c49f637ee6ad419aa4730ee8e4d (patch) | |
tree | 68eec846fd1427387251261ed77e3654bfacec06 | |
parent | f57597d9d09c55356b77b73bc6fe3f950d50ad7f (diff) | |
download | gcc-b3f8558a56728c49f637ee6ad419aa4730ee8e4d.zip gcc-b3f8558a56728c49f637ee6ad419aa4730ee8e4d.tar.gz gcc-b3f8558a56728c49f637ee6ad419aa4730ee8e4d.tar.bz2 |
re PR target/39767 (libgcc2.c:562: internal compiler error: RTL check: expected code 'reg', have 'ashiftrt' in rhs_regno, at rtl.h:1005)
PR target/39767
* config/sh/predicates.md (arith_operand): Check if the operand
of TRUNCATE is a REG.
From-SVN: r146216
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/sh/predicates.md | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 581689b..7fba65d5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org> + + PR target/39767 + * config/sh/predicates.md (arith_operand): Check if the operand + of TRUNCATE is a REG. + 2009-04-16 Kazu Hirata <kazu@codesourcery.com> * cfgrtl.c (delete_insn_chain_and_edges): Remove. diff --git a/gcc/config/sh/predicates.md b/gcc/config/sh/predicates.md index f800db7..da9962c 100644 --- a/gcc/config/sh/predicates.md +++ b/gcc/config/sh/predicates.md @@ -112,6 +112,7 @@ || satisfies_constraint_Css (op)) return 1; else if (GET_CODE (op) == TRUNCATE + && GET_CODE (XEXP (op, 0)) == REG && ! system_reg_operand (XEXP (op, 0), VOIDmode) && (mode == VOIDmode || mode == GET_MODE (op)) && (GET_MODE_SIZE (GET_MODE (op)) |