h8300.md (negsf2): New.
authorKazu Hirata <kazu@cs.umass.edu>
Sun, 22 Dec 2002 14:45:52 +0000 (14:45 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Sun, 22 Dec 2002 14:45:52 +0000 (14:45 +0000)
* config/h8300/h8300.md (negsf2): New.
(*negsf2_h8300): Likewise.
(*negsf2_h8300hs): Likewise.

From-SVN: r60405

gcc/ChangeLog
gcc/config/h8300/h8300.md

index 807897d060e3e88c56ba9d7d24ae60ef85d562cb..b59abe05f5f2dbd3fd8216e3cf02c10b0e958a59 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-22  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (negsf2): New.
+       (*negsf2_h8300): Likewise.
+       (*negsf2_h8300hs): Likewise.
+
 2002-12-21  Geoffrey Keating  <geoffk@apple.com>
 
        * integrate.c (output_inline_function): Don't hold private
index 7b44c8873b2c18db0efac41066d0fd248800f8fa..f5254f1fce83e4835248e41f5c6af04a464a1da1 100644 (file)
   [(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
 ;; ----------------------------------------------------------------------