diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2003-04-07 10:17:24 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2003-04-07 10:17:24 +0000 |
commit | 093b05b68f7b6c8bd35bf2dc50acfea95a418f39 (patch) | |
tree | 753477b4daa69bde72da1e74fe353b8e46806864 /gcc | |
parent | 9a94f7f323d52007fa3222cc744cce4aa6f1f22b (diff) | |
download | gcc-093b05b68f7b6c8bd35bf2dc50acfea95a418f39.zip gcc-093b05b68f7b6c8bd35bf2dc50acfea95a418f39.tar.gz gcc-093b05b68f7b6c8bd35bf2dc50acfea95a418f39.tar.bz2 |
h8300.md (*zero_extendqisi2_h8300hs): Always split.
* config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always
split.
(a splitter): Do zero-extension via HImode.
From-SVN: r65327
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 13 |
2 files changed, 12 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a9d111d..716f7d1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-04-07 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always + split. + (a splitter): Do zero-extension via HImode. + 2003-04-07 James A. Morrison <ja2morri@uwaterloo.ca> * doc/invoke.texi: Eliminate extra white-space caused by diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 6bc0cf0..89014dd 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -2084,11 +2084,7 @@ [(set (match_operand:SI 0 "register_operand" "=r,r") (zero_extend:SI (match_operand:QI 1 "general_operand_src" "0,g>")))] "TARGET_H8300H || TARGET_H8300S" - "@ - extu.w %T0\;extu.l %S0 - #" - [(set_attr "length" "4,12") - (set_attr "cc" "set_znv,set_znv")]) + "#") (define_split [(set (match_operand:SI 0 "register_operand" "") @@ -2098,9 +2094,12 @@ && reload_completed" [(set (match_dup 2) (match_dup 1)) + (set (match_dup 3) + (zero_extend:HI (match_dup 2))) (set (match_dup 0) - (zero_extend:SI (match_dup 2)))] - "operands[2] = gen_rtx_REG (QImode, REGNO (operands[0]));") + (zero_extend:SI (match_dup 3)))] + "operands[2] = gen_lowpart (QImode, operands[0]); + operands[3] = gen_lowpart (HImode, operands[0]);") (define_split [(set (match_operand:SI 0 "register_operand" "") |