]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* config/h8300/h8300.md (*extzv_8_23): New.
authorKazu Hirata <kazu@cs.umass.edu>
Sun, 5 Jan 2003 23:04:48 +0000 (23:04 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Sun, 5 Jan 2003 23:04:48 +0000 (23:04 +0000)
From-SVN: r60920

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

index f21a17f1dbe5c6d43516494202ab298907d33563..c3c015bf49353a167459086e1fac5fd23151f6b7 100644 (file)
@@ -1,3 +1,7 @@
+2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (*extzv_8_23): New.
+
 2003-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
        * pa64-hpux.h (JCR_SECTION_NAME): Define.
index defe9d446a3a6e4da06c194558b66a444e00337c..be6bc0ffbfcd97f266d1c21a47f01f30f351aadf 100644 (file)
 ;; COMBINE PATTERNS
 ;; -----------------------------------------------------------------
 
+;; extzv:SI
+
 (define_insn "*extzv_8_8"
   [(set (match_operand:SI 0 "register_operand" "=r")
        (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
   [(set_attr "cc" "set_znv")
    (set_attr "length" "6")])
 
+;; Extract the exponent of a float.
+
+(define_insn_and_split "*extzv_8_23"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (zero_extract:SI (match_operand:SI 1 "register_operand" "0")
+                        (const_int 8)
+                        (const_int 23)))]
+  "(TARGET_H8300H || TARGET_H8300S)"
+  "#"
+  "&& reload_completed"
+  [(parallel [(set (match_dup 0)
+                  (ashift:SI (match_dup 0)
+                             (const_int 1)))
+             (clobber (scratch:QI))])
+   (parallel [(set (match_dup 0)
+                  (lshiftrt:SI (match_dup 0)
+                               (const_int 24)))
+             (clobber (scratch:QI))])]
+  "")
+
 ;; plus:SI
 
 (define_insn "*addsi3_lshiftrt_16_zexthi"