aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@hxi.com>2001-08-30 17:17:17 +0000
committerKazu Hirata <kazu@hxi.com>2001-08-30 17:17:17 +0000
commit06ef4b3bc848d57c700d3a878c171ee684fb28fb (patch)
tree258cf52cb3f1e5fa93137db1669ee27ec99d9707
parent8dbbda5a60d499e4086e8a598e816de76537227a (diff)
* config/h8300/h8300.md (zero_extendqihi2): Changes to
define_expand to accomodate target-specific attributes. (anonymous zero_extendqihi2 patterns): New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@45290 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/h8300/h8300.md20
2 files changed, 24 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 735a3a1f49f..e0661aade98 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2001-08-30 Kazu Hirata <kazu@hxi.com>
+
+ * config/h8300/h8300.md (zero_extendqihi2): Changes to
+ define_expand to accomodate target-specific attributes.
+ (anonymous zero_extendqihi2 patterns): New.
+
Thu Aug 30 18:10:56 2001 J"orn Rennecke <amylaar@redhat.com>
* h8300.md (*andorhi3): New pattern.
diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md
index 8fb32711e20..eb7dc775c71 100644
--- a/gcc/config/h8300/h8300.md
+++ b/gcc/config/h8300/h8300.md
@@ -1604,16 +1604,32 @@
;; EXTEND INSTRUCTIONS
;; ----------------------------------------------------------------------
-(define_insn "zero_extendqihi2"
+(define_expand "zero_extendqihi2"
+ [(set (match_operand:HI 0 "register_operand" "")
+ (zero_extend:HI (match_operand:QI 1 "general_operand_src" "")))]
+ ""
+ "")
+
+(define_insn ""
[(set (match_operand:HI 0 "register_operand" "=r,r")
(zero_extend:HI (match_operand:QI 1 "general_operand_src" "0,g>")))]
- ""
+ "TARGET_H8300"
"@
mov.b #0,%t0
mov.b %R1,%s0\;mov.b #0,%t0"
[(set_attr "length" "2,10")
(set_attr "cc" "clobber,clobber")])
+(define_insn ""
+ [(set (match_operand:HI 0 "register_operand" "=r,r")
+ (zero_extend:HI (match_operand:QI 1 "general_operand_src" "0,g>")))]
+ "TARGET_H8300H || TARGET_H8300S"
+ "@
+ extu.w %T0
+ mov.b %R1,%s0\;extu.w %T0"
+ [(set_attr "length" "2,10")
+ (set_attr "cc" "set_znv,set_znv")])
+
;; The compiler can synthesize a 300H variant of this which is
;; just as efficient as one that we'd create
(define_insn "zero_extendqisi2"