diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2003-03-03 12:49:38 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2003-03-03 12:49:38 +0000 |
commit | 1f7e87909e7d00c3ef6270c2783d765e164e317f (patch) | |
tree | 86141f9cc7a4d1c12363edb4b96e80e0c3b59d91 | |
parent | 2807791e08b7995dc88a27d3199fcff042ef39ac (diff) | |
download | gcc-1f7e87909e7d00c3ef6270c2783d765e164e317f.zip gcc-1f7e87909e7d00c3ef6270c2783d765e164e317f.tar.gz gcc-1f7e87909e7d00c3ef6270c2783d765e164e317f.tar.bz2 |
h8300.md (*extzv_8_8): Use shorter code when operands[0] and operands[1] are different.
* config/h8300/h8300.md (*extzv_8_8): Use shorter code when
operands[0] and operands[1] are different.
From-SVN: r63718
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.md | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 79429c2..8b81f7e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,9 @@ -2003-03-02 Kazu Hirata <kazu@cs.umass.edu> +2003-03-03 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/h8300.md (*extzv_8_8): Use shorter code when + operands[0] and operands[1] are different. + +2003-03-03 Kazu Hirata <kazu@cs.umass.edu> * reload1.c (reload_cse_move2add): Remove variable success. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index 61ae4b6..28cb87e 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -2630,7 +2630,14 @@ (const_int 8) (const_int 8)))] "TARGET_H8300H || TARGET_H8300S" - "mov.b\\t%x1,%w0\;extu.w\\t%f0\;extu.l\\t%S0" + "* +{ + if (REG_P (operands[0]) && REG_P (operands[1]) + && REGNO (operands[0]) != REGNO (operands[1])) + return \"sub.l\\t%S0,%S0\;mov.b\\t%x1,%w0\"; + else + return \"mov.b\\t%x1,%w0\;extu.w\\t%f0\;extu.l\\t%S0\"; +}" [(set_attr "cc" "set_znv") (set_attr "length" "6")]) |