(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\";
-}"
+ "")
+
+(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 4)
- (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_insn "one_cmplsi2"
+(define_expand "one_cmplsi2"
[(set (match_operand:SI 0 "register_operand" "=r")
- (not:SI (match_operand:SI 1 "general_operand" "0")))]
+ (not:SI (match_operand:SI 1 "register_operand" "0")))]
""
- "*
-{
- if (TARGET_H8300)
- return \"not %w0\;not %x0\;not %y0\;not %z0\";
- else
- return \"not %S0\";
-}"
+ "")
+
+(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")
- (if_then_else (eq (symbol_ref "TARGET_H8300H || TARGET_H8300S")
- (const_int 0))
- (const_int 8)
- (const_int 2)))])
+ (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")])
\f
;; ----------------------------------------------------------------------
;; JUMP INSTRUCTIONS