aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>1996-12-10 20:56:07 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>1996-12-10 20:56:07 +0000
commitbd8c4b14b51412daa1eaeeb11b9742cd395d5cda (patch)
tree18e90f8bfaed097c883104a8f4e1ad3678875f10 /gcc
parent8e90e2734ed1211709aa2aaf828b7bad1a91eaaf (diff)
downloadgcc-bd8c4b14b51412daa1eaeeb11b9742cd395d5cda.zip
gcc-bd8c4b14b51412daa1eaeeb11b9742cd395d5cda.tar.gz
gcc-bd8c4b14b51412daa1eaeeb11b9742cd395d5cda.tar.bz2
Treat ZERO_EXTEND like SIGN_EXTEND in emit_unop_insn
From-SVN: r13262
Diffstat (limited to 'gcc')
-rw-r--r--gcc/optabs.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c
index d743fc8..22a9d2a 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -2388,9 +2388,10 @@ emit_unop_insn (icode, target, op0, code)
op0 = protect_from_queue (op0, 0);
- /* Sign extension from memory is often done specially on RISC
- machines, so forcing into a register here can pessimize code. */
- if (flag_force_mem && code != SIGN_EXTEND)
+ /* Sign and zero extension from memory is often done specially on
+ RISC machines, so forcing into a register here can pessimize
+ code. */
+ if (flag_force_mem && code != SIGN_EXTEND && code != ZERO_EXTEND)
op0 = force_not_mem (op0);
/* Now, if insn does not accept our operands, put them into pseudos. */