From 8fb52ad1f09bcf187a727e99c8deb1ee71c8f9bc Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sun, 22 Dec 2002 14:45:52 +0000 Subject: h8300.md (negsf2): New. * config/h8300/h8300.md (negsf2): New. (*negsf2_h8300): Likewise. (*negsf2_h8300hs): Likewise. From-SVN: r60405 --- gcc/ChangeLog | 6 ++++++ gcc/config/h8300/h8300.md | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 807897d..b59abe0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-12-22 Kazu Hirata + + * config/h8300/h8300.md (negsf2): New. + (*negsf2_h8300): Likewise. + (*negsf2_h8300hs): Likewise. + 2002-12-21 Geoffrey Keating * integrate.c (output_inline_function): Don't hold private diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 7b44c88..f5254f1 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -1389,6 +1389,28 @@ [(set_attr "length" "2") (set_attr "cc" "set_zn")]) +(define_expand "negsf2" + [(set (match_operand:SF 0 "register_operand" "") + (neg:SF (match_operand:SF 1 "register_operand" "")))] + "" + "") + +(define_insn "*negsf2_h8300" + [(set (match_operand:SF 0 "register_operand" "=r") + (neg:SF (match_operand:SF 1 "register_operand" "0")))] + "TARGET_H8300" + "xor.b\t#128,%z0" + [(set_attr "cc" "clobber") + (set_attr "length" "2")]) + +(define_insn "*negsf2_h8300hs" + [(set (match_operand:SF 0 "register_operand" "=r") + (neg:SF (match_operand:SF 1 "register_operand" "0")))] + "TARGET_H8300H || TARGET_H8300S" + "xor.w\t#32768,%e0" + [(set_attr "cc" "clobber") + (set_attr "length" "4")]) + ;; ---------------------------------------------------------------------- ;; NOT INSTRUCTIONS ;; ---------------------------------------------------------------------- -- cgit v1.1