diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2003-03-20 06:43:29 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2003-03-20 06:43:29 +0000 |
commit | f4613a2e502f72f3cf9058afbf8d7e229e1fb54b (patch) | |
tree | 0a3dd4501da6eb64dbcd0654948e98418fbc4e99 /gcc | |
parent | 31260fb8469ba4c69f53e354704fbf151798af5e (diff) | |
download | gcc-f4613a2e502f72f3cf9058afbf8d7e229e1fb54b.zip gcc-f4613a2e502f72f3cf9058afbf8d7e229e1fb54b.tar.gz gcc-f4613a2e502f72f3cf9058afbf8d7e229e1fb54b.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 46 |
2 files changed, 51 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3dd1e46..43217ac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-03-20 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/h8300.md (*addsi3_and_r_1): New. + (*addsi3_and_not_r_1): Likewise. + 2003-03-19 Loren James Rittle <ljrittle@acm.org> * Makefile.in (STRICT2_WARN): Add @WERROR@. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 6d19568..785be85 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" |