h8300.md (one_cmpl patterns): Tighten the predicates of operands[1].

* config/h8300/h8300.md (one_cmpl patterns): Tighten the
	predicates of operands[1].  Split the patterns for each
	processor variant.

From-SVN: r49446
This commit is contained in:
Kazu Hirata 2002-02-02 20:57:06 +00:00 committed by Kazu Hirata
parent eceb175550
commit 54175a449d
2 changed files with 46 additions and 32 deletions

View File

@ -1,3 +1,9 @@
2002-02-02 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300.md (one_cmpl patterns): Tighten the
predicates of operands[1]. Split the patterns for each
processor variant.
2002-02-02 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300.md (xor patterns): Tighten the predicates

View File

@ -1348,47 +1348,55 @@
(define_insn "one_cmplqi2"
[(set (match_operand:QI 0 "register_operand" "=r")
(not:QI (match_operand:QI 1 "general_operand" "0")))]
(not:QI (match_operand:QI 1 "register_operand" "0")))]
""
"not %X0"
[(set_attr "length" "2")
(set_attr "cc" "set_znv")])
(define_insn "one_cmplhi2"
(define_expand "one_cmplhi2"
[(set (match_operand:HI 0 "register_operand" "=r")
(not:HI (match_operand:HI 1 "general_operand" "0")))]
(not:HI (match_operand:HI 1 "register_operand" "0")))]
""
"*
{
if (TARGET_H8300)
return \"not %s0\;not %t0\";
else
return \"not %T0\";
}"
[(set_attr "cc" "clobber")
(set (attr "length")
(if_then_else (eq (symbol_ref "TARGET_H8300H || TARGET_H8300S")
(const_int 0))
(const_int 4)
(const_int 2)))])
"")
(define_insn "one_cmplsi2"
[(set (match_operand:SI 0 "register_operand" "=r")
(not:SI (match_operand:SI 1 "general_operand" "0")))]
""
"*
{
if (TARGET_H8300)
return \"not %w0\;not %x0\;not %y0\;not %z0\";
else
return \"not %S0\";
}"
(define_insn ""
[(set (match_operand:HI 0 "register_operand" "=r")
(not:HI (match_operand:HI 1 "register_operand" "0")))]
"TARGET_H8300"
"not %s0\;not %t0"
[(set_attr "cc" "clobber")
(set (attr "length")
(if_then_else (eq (symbol_ref "TARGET_H8300H || TARGET_H8300S")
(const_int 0))
(const_int 8)
(const_int 2)))])
(set_attr "length" "4")])
(define_insn ""
[(set (match_operand:HI 0 "register_operand" "=r")
(not:HI (match_operand:HI 1 "register_operand" "0")))]
"TARGET_H8300H || TARGET_H8300S"
"not %T0"
[(set_attr "cc" "set_znv")
(set_attr "length" "2")])
(define_expand "one_cmplsi2"
[(set (match_operand:SI 0 "register_operand" "=r")
(not:SI (match_operand:SI 1 "register_operand" "0")))]
""
"")
(define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r")
(not:SI (match_operand:SI 1 "register_operand" "0")))]
"TARGET_H8300"
"not %w0\;not %x0\;not %y0\;not %z0"
[(set_attr "cc" "clobber")
(set_attr "length" "8")])
(define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r")
(not:SI (match_operand:SI 1 "register_operand" "0")))]
"TARGET_H8300H || TARGET_H8300S"
"not %S0"
[(set_attr "cc" "set_znv")
(set_attr "length" "2")])
;; ----------------------------------------------------------------------
;; JUMP INSTRUCTIONS