diff options
author | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2015-05-19 17:21:56 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2015-05-19 17:21:56 +0000 |
commit | 9e8ea2fc165e50248f1c6b6b78bc8b365881a09b (patch) | |
tree | 311837b1d7fcfd9d544fec01cae33a954145f29f /gcc | |
parent | 872d5034baa1007606d405e37937908602fbbe51 (diff) | |
download | gcc-9e8ea2fc165e50248f1c6b6b78bc8b365881a09b.zip gcc-9e8ea2fc165e50248f1c6b6b78bc8b365881a09b.tar.gz gcc-9e8ea2fc165e50248f1c6b6b78bc8b365881a09b.tar.bz2 |
S/390: Make shift_count_or_setmem_operand predicate to check for mode.
gcc/
* config/s390/predicates.md (shift_count_or_setmem_operand):
Add mode check to make sure that only scalar integer values
are accepted.
From-SVN: r223392
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/s390/predicates.md | 6 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8c8a526..dea95c1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> + + * config/s390/predicates.md (shift_count_or_setmem_operand): Add + mode check to make sure that only scalar integer values are + accepted. + 2015-05-19 Jan Hubicka <hubicka@ucw.cz> * tree.c (verify_type_variant): Fix #undef. diff --git a/gcc/config/s390/predicates.md b/gcc/config/s390/predicates.md index 4d3fd97..90758b1 100644 --- a/gcc/config/s390/predicates.md +++ b/gcc/config/s390/predicates.md @@ -75,7 +75,7 @@ (and (match_test "mode == Pmode") (match_test "!legitimate_la_operand_p (op)")))) -;; Return true if OP is a valid operand as shift count or setmem. +;; Return true if OP is a valid operand as scalar shift count or setmem. (define_predicate "shift_count_or_setmem_operand" (match_code "reg, subreg, plus, const_int") @@ -83,6 +83,10 @@ HOST_WIDE_INT offset; rtx base; + if (GET_MODE (op) != VOIDmode + && GET_MODE_CLASS (GET_MODE (op)) != MODE_INT) + return false; + /* Extract base register and offset. */ if (!s390_decompose_shift_count (op, &base, &offset)) return false; |