diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2002-12-30 21:08:42 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2002-12-30 21:08:42 +0000 |
commit | 2d75548f6193337eb59eb3048d2433c56807c3f0 (patch) | |
tree | 64ab24fbb4cdff19b54a4e14d2f2b0c730211e1d | |
parent | b351c1d9055274266f493a6588a6f646a0b033bd (diff) | |
download | gcc-2d75548f6193337eb59eb3048d2433c56807c3f0.zip gcc-2d75548f6193337eb59eb3048d2433c56807c3f0.tar.gz gcc-2d75548f6193337eb59eb3048d2433c56807c3f0.tar.bz2 |
h8300.c (output_logical_op): Use extu.w in more cases.
* config/h8300/h8300.c (output_logical_op): Use extu.w in more
cases.
(compute_logical_op_length): Update to reflect the change in
output_logical_op.
(compute_logical_op_cc): Likewise.
From-SVN: r60649
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.c | 18 |
2 files changed, 20 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c091ed..8d8098f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2002-12-30 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/h8300.c (output_logical_op): Use extu.w in more + cases. + (compute_logical_op_length): Update to reflect the change in + output_logical_op. + (compute_logical_op_cc): Likewise. + 2002-12-30 Joseph S. Myers <jsm@polyomino.org.uk> * doc/service.texi: Uncomment and update FAQ link. diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index e77edaf..baa50bb 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -2152,8 +2152,10 @@ output_logical_op (mode, operands) && ((det & 0xffff0000) != 0) && (code == IOR || det != 0xffffff00) && (code == IOR || det != 0xffff00ff) - && (code != AND || det != 0xff00ff00) - && (code != AND || det != 0xff0000ff)) + && !(code == AND + && (det == 0xff00ffff + || (det & 0xffff00ff) == 0xff000000 + || (det & 0xffffff00) == 0xff000000))) { sprintf (insn_buf, "%s.l\t%%S2,%%S0", opname); output_asm_insn (insn_buf, operands); @@ -2285,8 +2287,10 @@ compute_logical_op_length (mode, operands) && ((det & 0xffff0000) != 0) && (code == IOR || det != 0xffffff00) && (code == IOR || det != 0xffff00ff) - && (code != AND || det != 0xff00ff00) - && (code != AND || det != 0xff0000ff)) + && !(code == AND + && (det == 0xff00ffff + || (det & 0xffff00ff) == 0xff000000 + || (det & 0xffffff00) == 0xff000000))) { if (REG_P (operands[2])) length += 4; @@ -2392,8 +2396,10 @@ compute_logical_op_cc (mode, operands) && ((det & 0xffff0000) != 0) && (code == IOR || det != 0xffffff00) && (code == IOR || det != 0xffff00ff) - && (code != AND || det != 0xff00ff00) - && (code != AND || det != 0xff0000ff)) + && !(code == AND + && (det == 0xff00ffff + || (det & 0xffff00ff) == 0xff000000 + || (det & 0xffffff00) == 0xff000000))) { cc = CC_SET_ZNV; } |