summaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1994-10-06 21:38:35 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1994-10-06 21:38:35 +0000
commit88f6e1a4002bcafa7192f6d4ca43e0e800a6eb64 (patch)
tree1e0e1b0e69edae87b925940ce77b5fc8e47064e6 /gcc/cse.c
parent5d782ec853af9a0b7ead0e2dbbc4e580cd5ba28f (diff)
downloadgcc-88f6e1a4002bcafa7192f6d4ca43e0e800a6eb64.tar.gz
(cse_insn): Don't call force_const_mem on (const (truncate)).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8231 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 9bbe8a618e2..67f2c148b57 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;