* config/ia64/ia64.md (trap, conditional_trap): New.

From-SVN: r52486
This commit is contained in:
Richard Henderson 2002-04-18 12:41:26 -07:00 committed by Richard Henderson
parent c5c263146f
commit 2561d3871c
2 changed files with 35 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2002-04-18 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.md (trap, conditional_trap): New.
2002-04-18 Jakub Jelinek <jakub@redhat.com>
PR c/6358

View File

@ -5045,6 +5045,37 @@
[(set_attr "itanium_class" "stop_bit")
(set_attr "predicable" "no")])
(define_expand "trap"
[(trap_if (const_int 1) (const_int 0))]
""
"")
;; ??? We don't have a match-any slot type. Setting the type to unknown
;; produces worse code that setting the slot type to A.
(define_insn "*trap"
[(trap_if (const_int 1) (match_operand 0 "const_int_operand" ""))]
""
"break %0"
[(set_attr "itanium_class" "chk_s")])
(define_expand "conditional_trap"
[(trap_if (match_operand 0 "" "") (match_operand 1 "" ""))]
""
{
operands[0] = ia64_expand_compare (GET_CODE (operands[0]), VOIDmode);
})
(define_insn "*conditional_trap"
[(trap_if (match_operator 0 "predicate_operator"
[(match_operand:BI 1 "register_operand" "c")
(const_int 0)])
(match_operand 2 "const_int_operand" ""))]
""
"(%j0) break %2"
[(set_attr "itanium_class" "chk_s")
(set_attr "predicable" "no")])
(define_insn "break_f"
[(unspec_volatile [(const_int 0)] 3)]
""