summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-18 12:50:26 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-18 12:50:26 +0000
commit27848d5f59e24e2486e5242593d730623f44ba4e (patch)
treed088abef8d10956ca7c225064cc91fb91c89d2e4
parent47a9ecd11f8e3bd9aec8318aad1f6cd25bf03e4e (diff)
downloadppe42-gcc-27848d5f59e24e2486e5242593d730623f44ba4e.tar.gz
ppe42-gcc-27848d5f59e24e2486e5242593d730623f44ba4e.zip
* config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64531 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/h8300/h8300.md18
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ca7cc2ee627..dadb5d81475 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2003-03-18 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
+
2003-03-18 Andreas Schwab <schwab@suse.de>
* dwarf2out.c (output_file_names): Cast size_t to unsigned long
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md
index ccf3d6ea71d..6d19568a636 100644
--- a/gcc/config/h8300/h8300.md
+++ b/gcc/config/h8300/h8300.md
@@ -2921,6 +2921,24 @@
[(set_attr "cc" "clobber")
(set_attr "length" "2")])
+(define_insn_and_split "*iorsi3_two_qi_zext"
+ [(set (match_operand:SI 0 "register_operand" "=&r")
+ (ior:SI (zero_extend:SI (match_operand:QI 1 "memory_operand" "m"))
+
+ (and:SI (ashift:SI (subreg:SI (match_operand:QI 2 "memory_operand" "m") 0)
+ (const_int 8))
+ (const_int 65280))))]
+ "(TARGET_H8300H || TARGET_H8300S)"
+ "#"
+ "&& reload_completed"
+ [(set (match_dup 3)
+ (ior:HI (zero_extend:HI (match_dup 1))
+ (ashift:HI (subreg:HI (match_dup 2) 0)
+ (const_int 8))))
+ (set (match_dup 0)
+ (zero_extend:SI (match_dup 3)))]
+ "operands[3] = gen_rtx_REG (HImode, REGNO (operands[0]));")
+
(define_insn "*iorsi3_e2f"
[(set (match_operand:SI 0 "register_operand" "=r")
(ior:SI (and:SI (match_operand:SI 1 "register_operand" "0")
OpenPOWER on IntegriCloud