diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-12-27 15:25:01 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-12-27 15:25:01 -0500 |
commit | 8e1e2862ad00842e7cd07d024e9044f0bdc7e6ee (patch) | |
tree | c81211d8e387a783a055d111b21f78b8d8b9b881 | |
parent | d902f80a15d0091b602ef7e3aaf18dc91d978cdd (diff) | |
download | gcc-8e1e2862ad00842e7cd07d024e9044f0bdc7e6ee.zip gcc-8e1e2862ad00842e7cd07d024e9044f0bdc7e6ee.tar.gz gcc-8e1e2862ad00842e7cd07d024e9044f0bdc7e6ee.tar.bz2 |
(emit_unop_insn): Don't do -fforce-mem for SIGN_EXTEND.
From-SVN: r10872
-rw-r--r-- | gcc/optabs.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c index bb1b839..cae4c4e 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -2374,7 +2374,9 @@ emit_unop_insn (icode, target, op0, code) op0 = protect_from_queue (op0, 0); - if (flag_force_mem) + /* 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) op0 = force_not_mem (op0); /* Now, if insn does not accept our operands, put them into pseudos. */ |