* config/h8300/h8300.md (4 anonymous patterns): New.

From-SVN: r46554
This commit is contained in:
Kazu Hirata 2001-10-26 17:09:33 +00:00 committed by Kazu Hirata
parent cb33eb17f7
commit 11a802bf1d
2 changed files with 70 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2001-10-26 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300.md (4 anonymous patterns): New.
2001-10-26 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300.c (get_shift_alg): Clean up. Return the

View File

@ -2289,3 +2289,69 @@
[(set_attr "cc" "clobber")
(set_attr "length" "6")
(set_attr "adjust_length" "no")])
;; -----------------------------------------------------------------
;; COMBINE PATTERNS
;; -----------------------------------------------------------------
(define_insn ""
[(set (match_operand:HI 0 "register_operand" "=r")
(ior:HI
(zero_extend:HI (match_operand:QI 1 "register_operand" "r"))
(match_operand:HI 2 "register_operand" "0")))]
"REGNO (operands[0]) != REGNO (operands[1])"
"or\\t%X1,%s0"
[(set_attr "cc" "clobber")
(set_attr "length" "2")])
(define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r")
(ior:SI
(zero_extend:SI (match_operand:HI 1 "register_operand" "r"))
(match_operand:SI 2 "register_operand" "0")))]
"(TARGET_H8300H || TARGET_H8300S)
&& (REGNO (operands[0]) != REGNO (operands[1]))"
"or.w\\t%T1,%f0"
[(set_attr "cc" "clobber")
(set_attr "length" "2")])
(define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r")
(ior:SI
(zero_extend:SI (match_operand:QI 1 "register_operand" "r"))
(match_operand:SI 2 "register_operand" "0")))]
"REGNO (operands[0]) != REGNO (operands[1])"
"or\\t%X1,%s0"
[(set_attr "cc" "clobber")
(set_attr "length" "2")])
(define_insn ""
[(set (match_operand:HI 0 "register_operand" "=r")
(xor:HI
(zero_extend:HI (match_operand:QI 1 "register_operand" "r"))
(match_operand:HI 2 "register_operand" "0")))]
"REGNO (operands[0]) != REGNO (operands[1])"
"xor\\t%X1,%s0"
[(set_attr "cc" "clobber")
(set_attr "length" "2")])
(define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r")
(xor:SI
(zero_extend:SI (match_operand:HI 1 "register_operand" "r"))
(match_operand:SI 2 "register_operand" "0")))]
"(TARGET_H8300H || TARGET_H8300S)
&& (REGNO (operands[0]) != REGNO (operands[1]))"
"xor.w\\t%T1,%f0"
[(set_attr "cc" "clobber")
(set_attr "length" "2")])
(define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r")
(xor:SI
(zero_extend:SI (match_operand:QI 1 "register_operand" "r"))
(match_operand:SI 2 "register_operand" "0")))]
"REGNO (operands[0]) != REGNO (operands[1])"
"xor\\t%X1,%s0"
[(set_attr "cc" "clobber")
(set_attr "length" "2")])