aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2003-01-05 23:04:48 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2003-01-05 23:04:48 +0000
commitdff0ea43a846f225f032d4dfde7648f08ca93ea7 (patch)
tree8c6fb34557a598a2ae0e8555f899b1e3ca16f2cb /gcc
parent94e6fd3e2b8326c8634b63741a16f6113c404873 (diff)
downloadgcc-dff0ea43a846f225f032d4dfde7648f08ca93ea7.zip
gcc-dff0ea43a846f225f032d4dfde7648f08ca93ea7.tar.gz
gcc-dff0ea43a846f225f032d4dfde7648f08ca93ea7.tar.bz2
* config/h8300/h8300.md (*extzv_8_23): New.
From-SVN: r60920
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/h8300/h8300.md22
2 files changed, 26 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f21a17f..c3c015b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md
index defe9d4..be6bc0f 100644
--- a/gcc/config/h8300/h8300.md
+++ b/gcc/config/h8300/h8300.md
@@ -2534,6 +2534,8 @@
;; 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")
@@ -2554,6 +2556,26 @@
[(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"