OSDN Git Service

2005-05-09 Adrian Straetling <straetling@de.ibm.com>
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 May 2005 17:07:57 +0000 (17:07 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 9 May 2005 17:07:57 +0000 (17:07 +0000)
* config/s390/s390.md: ("INT"): New mode macro.
("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
Merge.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99451 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/s390/s390.md

index b6ed448..abc2104 100644 (file)
@@ -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>
 
index 6008468..5a258e4 100644 (file)
 ;; 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.
 ;;
 
 ;
-; 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))])]
   ""
   "")