s390.md: ("COMPARE"): New mode macro.
2005-05-09 Adrian Straetling <straetling@de.ibm.com> * config/s390/s390.md: ("COMPARE"): New mode macro. ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt", "bungt", "bunle", "bunge", "bltgt"): Merge. From-SVN: r99452
This commit is contained in:
parent
342cf42be3
commit
fa77b2518a
|
@ -1,3 +1,10 @@
|
|||
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
|
||||
|
||||
* config/s390/s390.md: ("COMPARE"): New mode macro.
|
||||
("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
|
||||
"ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
|
||||
"bungt", "bunle", "bunge", "bltgt"): Merge.
|
||||
|
||||
2005-05-09 Adrian Straetling <straetling@de.ibm.com>
|
||||
|
||||
* config/s390/s390.md: ("INT"): New mode macro.
|
||||
|
|
|
@ -251,6 +251,10 @@
|
|||
;; same template.
|
||||
(define_mode_macro INT [(DI "TARGET_64BIT") SI HI QI])
|
||||
|
||||
;; This macro allows to unify all 'bCOND' expander patterns.
|
||||
(define_code_macro COMPARE [eq ne gt gtu lt ltu ge geu le leu unordered
|
||||
ordered uneq unlt ungt unle unge ltgt])
|
||||
|
||||
|
||||
;; ICM mask required to load MODE value into the highest subreg
|
||||
;; of a SImode register.
|
||||
|
@ -6846,113 +6850,15 @@
|
|||
;; Branch instruction patterns.
|
||||
;;
|
||||
|
||||
(define_expand "beq"
|
||||
[(match_operand 0 "" "")]
|
||||
(define_expand "b<code>"
|
||||
[(set (pc)
|
||||
(if_then_else (COMPARE (match_operand 0 "" "")
|
||||
(const_int 0))
|
||||
(match_dup 0)
|
||||
(pc)))]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (EQ, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bne"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (NE, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bgt"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (GT, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bgtu"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (GTU, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "blt"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (LT, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bltu"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (LTU, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bge"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (GE, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bgeu"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (GEU, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "ble"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (LE, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bleu"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (LEU, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bunordered"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (UNORDERED, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bordered"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (ORDERED, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "buneq"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (UNEQ, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bunlt"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (UNLT, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bungt"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (UNGT, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bunle"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (UNLE, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bunge"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (UNGE, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
(define_expand "bltgt"
|
||||
[(match_operand 0 "" "")]
|
||||
""
|
||||
"s390_emit_jump (operands[0],
|
||||
s390_emit_compare (LTGT, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
s390_emit_compare (<CODE>, s390_compare_op0, s390_compare_op1)); DONE;")
|
||||
|
||||
|
||||
;;
|
||||
|
|
Loading…
Reference in New Issue