* config/s390/s390.md ("trap", "conditional_trap", "*trap"): New insns.

From-SVN: r57102
This commit is contained in:
Hartmut Penner 2002-09-13 09:46:57 +00:00 committed by Hartmut Penner
parent 8764acde96
commit 4456530dac
2 changed files with 39 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2002-09-13 Hartmut Penner <hpenner@de.ibm.com>
* config/s390/s390.md ("trap", "conditional_trap", "*trap"): New
insns.
2002-09-12 Richard Henderson <rth@redhat.com>
* Makefile.in (HOST_PRINT): Use print-rtl1.o

View File

@ -5970,6 +5970,40 @@
(const_string "RR") (const_string "RX")))
(set_attr "atype" "mem")])
;;
;;- Trap instructions.
;;
(define_insn "trap"
[(trap_if (const_int 1) (const_int 0))]
""
"j\\t.+2"
[(set_attr "op_type" "RX")])
(define_expand "conditional_trap"
[(set (match_dup 2) (match_dup 3))
(trap_if (match_operator 0 "comparison_operator"
[(match_dup 2) (const_int 0)])
(match_operand:SI 1 "general_operand" ""))]
""
"
{
enum machine_mode ccmode;
if (operands[1] != const0_rtx) FAIL;
ccmode = s390_select_ccmode (GET_CODE (operands[0]),
s390_compare_op0, s390_compare_op1);
operands[2] = gen_rtx_REG (ccmode, 33);
operands[3] = gen_rtx_COMPARE (ccmode, s390_compare_op0, s390_compare_op1);
}")
(define_insn "*trap"
[(trap_if (match_operator 0 "comparison_operator" [(reg 33) (const_int 0)])
(const_int 0))]
""
"j%C0\\t.+2";
[(set_attr "op_type" "RX")])
;;
;;- Loop instructions.