aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAdrian Straetling <straetling@de.ibm.com>2005-05-09 17:07:57 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2005-05-09 17:07:57 +0000
commit342cf42be3342e39e4e7c9bcee6f2865674f552d (patch)
tree7f6ab3c34953f7887d9f1d1d385d2d3507a7d854 /gcc
parent9db2f16da9a677bbc87ccac6f32b739bc2a50a2b (diff)
downloadgcc-342cf42be3342e39e4e7c9bcee6f2865674f552d.zip
gcc-342cf42be3342e39e4e7c9bcee6f2865674f552d.tar.gz
gcc-342cf42be3342e39e4e7c9bcee6f2865674f552d.tar.bz2
s390.md: ("INT"): New mode macro.
2005-05-09 Adrian Straetling <straetling@de.ibm.com> * config/s390/s390.md: ("INT"): New mode macro. ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"): Merge. From-SVN: r99451
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/s390/s390.md53
2 files changed, 14 insertions, 44 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b6ed448..abc2104 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-05-09 Adrian Straetling <straetling@de.ibm.com>
+
+ * config/s390/s390.md: ("INT"): New mode macro.
+ ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
+ Merge.
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 6008468..5a258e4 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -247,6 +247,10 @@
;; the same template.
(define_mode_macro HQI [HI QI])
+;; This mode macro allows the integer patterns to be defined from the
+;; same template.
+(define_mode_macro INT [(DI "TARGET_64BIT") SI HI QI])
+
;; ICM mask required to load MODE value into the highest subreg
;; of a SImode register.
@@ -6582,53 +6586,14 @@
;;
;
-; one_cmpldi2 instruction pattern(s).
-;
-
-(define_expand "one_cmpldi2"
- [(parallel
- [(set (match_operand:DI 0 "register_operand" "")
- (xor:DI (match_operand:DI 1 "register_operand" "")
- (const_int -1)))
- (clobber (reg:CC 33))])]
- "TARGET_64BIT"
- "")
-
-;
-; one_cmplsi2 instruction pattern(s).
-;
-
-(define_expand "one_cmplsi2"
- [(parallel
- [(set (match_operand:SI 0 "register_operand" "")
- (xor:SI (match_operand:SI 1 "register_operand" "")
- (const_int -1)))
- (clobber (reg:CC 33))])]
- ""
- "")
-
-;
-; one_cmplhi2 instruction pattern(s).
-;
-
-(define_expand "one_cmplhi2"
- [(parallel
- [(set (match_operand:HI 0 "register_operand" "")
- (xor:HI (match_operand:HI 1 "register_operand" "")
- (const_int -1)))
- (clobber (reg:CC 33))])]
- ""
- "")
-
-;
-; one_cmplqi2 instruction pattern(s).
+; one_cmpl(di|si|hi|qi)2 instruction pattern(s).
;
-(define_expand "one_cmplqi2"
+(define_expand "one_cmpl<mode>2"
[(parallel
- [(set (match_operand:QI 0 "register_operand" "")
- (xor:QI (match_operand:QI 1 "register_operand" "")
- (const_int -1)))
+ [(set (match_operand:INT 0 "register_operand" "")
+ (xor:INT (match_operand:INT 1 "register_operand" "")
+ (const_int -1)))
(clobber (reg:CC 33))])]
""
"")