aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-10-06 17:38:35 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-10-06 17:38:35 -0400
commit1bbd065b6cec92d339f9f076aee19f4bad67e81f (patch)
tree1e0e1b0e69edae87b925940ce77b5fc8e47064e6
parentffa8bd9bcbd42f40bd17134c3ff3703596782aad (diff)
downloadgcc-1bbd065b6cec92d339f9f076aee19f4bad67e81f.zip
gcc-1bbd065b6cec92d339f9f076aee19f4bad67e81f.tar.gz
gcc-1bbd065b6cec92d339f9f076aee19f4bad67e81f.tar.bz2
(cse_insn): Don't call force_const_mem on (const (truncate)).
From-SVN: r8231
-rw-r--r--gcc/cse.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 9bbe8a6..67f2c14 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -6724,7 +6724,11 @@ cse_insn (insn, in_libcall_block)
else if (constant_pool_entries_cost
&& CONSTANT_P (trial)
- && (src_folded == 0 || GET_CODE (src_folded) != MEM)
+ && ! (GET_CODE (trial) == CONST
+ && GET_CODE (XEXP (trial, 0)) == TRUNCATE)
+ && (src_folded == 0
+ || (GET_CODE (src_folded) != MEM
+ && ! src_folded_force_flag))
&& GET_MODE_CLASS (mode) != MODE_CC)
{
src_folded_force_flag = 1;