diff options
| -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" "") |
