OSDN Git Service

2005-05-10 Adrian Straetling <straetling@de.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / config / s390 / s390.md
index 7c6e821..a74bd63 100644 (file)
 ;;- And instructions.
 ;;
 
+(define_expand "and<mode>3"
+  [(set (match_operand:INT 0 "nonimmediate_operand" "")
+        (and:INT (match_operand:INT 1 "nonimmediate_operand" "")
+                 (match_operand:INT 2 "general_operand" "")))
+   (clobber (reg:CC CC_REGNUM))]
+  ""
+  "s390_expand_logical_operator (AND, <MODE>mode, operands); DONE;")
+
 ;
 ; anddi3 instruction pattern(s).
 ;
      (clobber (reg:CC CC_REGNUM))])]
   "s390_narrow_logical_operator (AND, &operands[0], &operands[1]);")
 
-(define_expand "anddi3"
-  [(set (match_operand:DI 0 "nonimmediate_operand" "")
-        (and:DI (match_operand:DI 1 "nonimmediate_operand" "")
-                (match_operand:DI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  "TARGET_64BIT"
-  "s390_expand_logical_operator (AND, DImode, operands); DONE;")
 
 ;
 ; andsi3 instruction pattern(s).
      (clobber (reg:CC CC_REGNUM))])]
   "s390_narrow_logical_operator (AND, &operands[0], &operands[1]);")
 
-(define_expand "andsi3"
-  [(set (match_operand:SI 0 "nonimmediate_operand" "")
-        (and:SI (match_operand:SI 1 "nonimmediate_operand" "")
-                (match_operand:SI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  ""
-  "s390_expand_logical_operator (AND, SImode, operands); DONE;")
-
 ;
 ; andhi3 instruction pattern(s).
 ;
      (clobber (reg:CC CC_REGNUM))])]
   "s390_narrow_logical_operator (AND, &operands[0], &operands[1]);")
 
-(define_expand "andhi3"
-  [(set (match_operand:HI 0 "nonimmediate_operand" "")
-        (and:HI (match_operand:HI 1 "nonimmediate_operand" "")
-                (match_operand:HI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  ""
-  "s390_expand_logical_operator (AND, HImode, operands); DONE;")
-
 ;
 ; andqi3 instruction pattern(s).
 ;
    #"
   [(set_attr "op_type"  "RR,SI,SS")])
 
-(define_expand "andqi3"
-  [(set (match_operand:QI 0 "nonimmediate_operand" "")
-        (and:QI (match_operand:QI 1 "nonimmediate_operand" "")
-                (match_operand:QI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  ""
-  "s390_expand_logical_operator (AND, QImode, operands); DONE;")
-
 ;
 ; Block and (NC) patterns.
 ;
 ;;- Bit set (inclusive or) instructions.
 ;;
 
+(define_expand "ior<mode>3"
+  [(set (match_operand:INT 0 "nonimmediate_operand" "")
+        (ior:INT (match_operand:INT 1 "nonimmediate_operand" "")
+                 (match_operand:INT 2 "general_operand" "")))
+   (clobber (reg:CC CC_REGNUM))]
+  ""
+  "s390_expand_logical_operator (IOR, <MODE>mode, operands); DONE;")
+
 ;
 ; iordi3 instruction pattern(s).
 ;
      (clobber (reg:CC CC_REGNUM))])]
   "s390_narrow_logical_operator (IOR, &operands[0], &operands[1]);")
 
-(define_expand "iordi3"
-  [(set (match_operand:DI 0 "nonimmediate_operand" "")
-        (ior:DI (match_operand:DI 1 "nonimmediate_operand" "")
-                (match_operand:DI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  "TARGET_64BIT"
-  "s390_expand_logical_operator (IOR, DImode, operands); DONE;")
-
 ;
 ; iorsi3 instruction pattern(s).
 ;
      (clobber (reg:CC CC_REGNUM))])]
   "s390_narrow_logical_operator (IOR, &operands[0], &operands[1]);")
 
-(define_expand "iorsi3"
-  [(set (match_operand:SI 0 "nonimmediate_operand" "")
-        (ior:SI (match_operand:SI 1 "nonimmediate_operand" "")
-                (match_operand:SI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  ""
-  "s390_expand_logical_operator (IOR, SImode, operands); DONE;")
-
 ;
 ; iorhi3 instruction pattern(s).
 ;
      (clobber (reg:CC CC_REGNUM))])]
   "s390_narrow_logical_operator (IOR, &operands[0], &operands[1]);")
 
-(define_expand "iorhi3"
-  [(set (match_operand:HI 0 "nonimmediate_operand" "")
-        (ior:HI (match_operand:HI 1 "nonimmediate_operand" "")
-                (match_operand:HI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  ""
-  "s390_expand_logical_operator (IOR, HImode, operands); DONE;")
-
 ;
 ; iorqi3 instruction pattern(s).
 ;
    #"
   [(set_attr "op_type"  "RR,SI,SS")])
 
-(define_expand "iorqi3"
-  [(set (match_operand:QI 0 "nonimmediate_operand" "")
-        (ior:QI (match_operand:QI 1 "nonimmediate_operand" "")
-                (match_operand:QI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  ""
-  "s390_expand_logical_operator (IOR, QImode, operands); DONE;")
-
 ;
 ; Block inclusive or (OC) patterns.
 ;
 ;;- Xor instructions.
 ;;
 
+(define_expand "xor<mode>3"
+  [(set (match_operand:INT 0 "nonimmediate_operand" "")
+        (xor:INT (match_operand:INT 1 "nonimmediate_operand" "")
+                 (match_operand:INT 2 "general_operand" "")))
+   (clobber (reg:CC CC_REGNUM))]
+  ""
+  "s390_expand_logical_operator (XOR, <MODE>mode, operands); DONE;")
+
 ;
 ; xordi3 instruction pattern(s).
 ;
      (clobber (reg:CC CC_REGNUM))])]
   "s390_narrow_logical_operator (XOR, &operands[0], &operands[1]);")
 
-(define_expand "xordi3"
-  [(set (match_operand:DI 0 "nonimmediate_operand" "")
-        (xor:DI (match_operand:DI 1 "nonimmediate_operand" "")
-                (match_operand:DI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  "TARGET_64BIT"
-  "s390_expand_logical_operator (XOR, DImode, operands); DONE;")
-
 ;
 ; xorsi3 instruction pattern(s).
 ;
      (clobber (reg:CC CC_REGNUM))])]
   "s390_narrow_logical_operator (XOR, &operands[0], &operands[1]);")
 
-(define_expand "xorsi3"
-  [(set (match_operand:SI 0 "nonimmediate_operand" "")
-        (xor:SI (match_operand:SI 1 "nonimmediate_operand" "")
-                (match_operand:SI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  ""
-  "s390_expand_logical_operator (XOR, SImode, operands); DONE;")
-
 ;
 ; xorhi3 instruction pattern(s).
 ;
      (clobber (reg:CC CC_REGNUM))])]
   "s390_narrow_logical_operator (XOR, &operands[0], &operands[1]);")
 
-(define_expand "xorhi3"
-  [(set (match_operand:HI 0 "nonimmediate_operand" "")
-        (xor:HI (match_operand:HI 1 "nonimmediate_operand" "")
-                (match_operand:HI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  ""
-  "s390_expand_logical_operator (XOR, HImode, operands); DONE;")
-
 ;
 ; xorqi3 instruction pattern(s).
 ;
    #"
   [(set_attr "op_type"  "RR,SI,SIY,SS")])
 
-(define_expand "xorqi3"
-  [(set (match_operand:QI 0 "nonimmediate_operand" "")
-        (xor:QI (match_operand:QI 1 "nonimmediate_operand" "")
-                (match_operand:QI 2 "general_operand" "")))
-   (clobber (reg:CC CC_REGNUM))]
-  ""
-  "s390_expand_logical_operator (XOR, QImode, operands); DONE;")
-
 ;
 ; Block exclusive or (XC) patterns.
 ;