diff options
author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-20 06:43:29 +0000 |
---|---|---|
committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-20 06:43:29 +0000 |
commit | 73dc612c22bfdb66adfe8ec3c53f7ab2e435fd7f (patch) | |
tree | 0a3dd4501da6eb64dbcd0654948e98418fbc4e99 | |
parent | aa73c668694db964b2d3bbd99861d9cd8adf226f (diff) | |
download | gcc-73dc612c22bfdb66adfe8ec3c53f7ab2e435fd7f.tar.gz |
* config/h8300/h8300.md (*addsi3_and_r_1): New.
(*addsi3_and_not_r_1): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64607 138bc75d-0d04-0410-961f-82ee72b054a4
-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 3dd1e4694b5..43217ac1404 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 6d19568a636..785be85c894 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" |