aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/s390/constraints.md
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2016-03-01 09:26:20 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2016-03-01 09:26:20 +0000
commit708c0910a8f5bf48ec9ad54456dca3fc73360631 (patch)
tree283552d6e89f7c36ca91a7a959821bd47df1b32e /gcc/config/s390/constraints.md
parent674a959cd5eac469b63f9e64ab5d11890750451f (diff)
downloadgcc-708c0910a8f5bf48ec9ad54456dca3fc73360631.zip
gcc-708c0910a8f5bf48ec9ad54456dca3fc73360631.tar.gz
gcc-708c0910a8f5bf48ec9ad54456dca3fc73360631.tar.bz2
S/390: Use define_subst for the setmem patterns.
While trying to get rid of the Y constraint in the setmem patterns I noticed that for these patterns it isn't even a problem since these always only use the constraint with a Pmode match_operand. But while being at it I've tried to fold some of the patterns a bit. gcc/ChangeLog: 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/constraints.md ("jm8"): New constraint. * config/s390/predicates.md ("const_int_8bitset_operand"): New predicate. * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge into ... ("*setmem_long<setmem_and>"): New pattern. ("*setmem_long_31z", "*setmem_long_and_31z"): Merge into ... ("*setmem_long_31z<setmem_and>"): New pattern. * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"): New substitution rules with the required attributes. From-SVN: r233848
Diffstat (limited to 'gcc/config/s390/constraints.md')
-rw-r--r--gcc/config/s390/constraints.md5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/s390/constraints.md b/gcc/config/s390/constraints.md
index 60a7edf..6eeaa98 100644
--- a/gcc/config/s390/constraints.md
+++ b/gcc/config/s390/constraints.md
@@ -37,6 +37,7 @@
;; jKK: constant vector with all elements having the same value and
;; matching K constraint
;; jm6: An integer operand with the lowest order 6 bits all ones.
+;; jm8: An integer operand with the lowest order 8 bits all ones.
;; t -- Access registers 36 and 37.
;; v -- Vector registers v0-v31.
;; C -- A signed 8-bit constant (-128..127)
@@ -420,6 +421,10 @@
"@internal An integer operand with the lowest order 6 bits all ones."
(match_operand 0 "const_int_6bitset_operand"))
+(define_constraint "jm8"
+ "@internal An integer operand with the lowest order 8 bits all ones."
+ (match_operand 0 "const_int_8bitset_operand"))
+
;;
;; Memory constraints follow.
;;