From f4613a2e502f72f3cf9058afbf8d7e229e1fb54b Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Thu, 20 Mar 2003 06:43:29 +0000 Subject: [PATCH] h8300.md (*addsi3_and_r_1): New. * config/h8300/h8300.md (*addsi3_and_r_1): New. (*addsi3_and_not_r_1): Likewise. From-SVN: r64607 --- gcc/ChangeLog | 5 +++++ gcc/config/h8300/h8300.md | 46 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3dd1e4694b56..43217ac14043 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-03-20 Kazu Hirata + + * config/h8300/h8300.md (*addsi3_and_r_1): New. + (*addsi3_and_not_r_1): Likewise. + 2003-03-19 Loren James Rittle * Makefile.in (STRICT2_WARN): Add @WERROR@. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 6d19568a6363..785be85c8945 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -2855,6 +2855,52 @@ [(set_attr "cc" "clobber") (set_attr "length" "2")]) +(define_insn_and_split "*addsi3_and_r_1" + [(set (match_operand:SI 0 "register_operand" "=r") + (plus:SI (and:SI (match_operand:SI 1 "register_operand" "r") + (const_int 1)) + (match_operand:SI 2 "register_operand" "0")))] + "(TARGET_H8300H || TARGET_H8300S)" + "#" + "&& reload_completed" + [(set (cc0) + (zero_extract:SI (match_dup 1) + (const_int 1) + (const_int 0))) + (set (pc) + (if_then_else (eq (cc0) + (const_int 0)) + (label_ref (match_dup 3)) + (pc))) + (set (match_dup 2) + (plus:SI (match_dup 2) + (const_int 1))) + (match_dup 3)] + "operands[3] = gen_label_rtx ();") + +(define_insn_and_split "*addsi3_and_not_r_1" + [(set (match_operand:SI 0 "register_operand" "=r") + (plus:SI (and:SI (not:SI (match_operand:SI 1 "register_operand" "r")) + (const_int 1)) + (match_operand:SI 2 "register_operand" "0")))] + "(TARGET_H8300H || TARGET_H8300S)" + "#" + "&& reload_completed" + [(set (cc0) + (zero_extract:SI (match_dup 1) + (const_int 1) + (const_int 0))) + (set (pc) + (if_then_else (ne (cc0) + (const_int 0)) + (label_ref (match_dup 3)) + (pc))) + (set (match_dup 2) + (plus:SI (match_dup 2) + (const_int 1))) + (match_dup 3)] + "operands[3] = gen_label_rtx ();") + ;; ior:HI (define_insn "*iorhi3_ashift_8"