From 8ca00751f76d44f01ece03998635d38d6613ed47 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 30 Nov 1994 18:13:44 -0500 Subject: [PATCH] (emit_block_move): Only use movstr if size is small enough constant or MODE is at least BITS_PER_WORD. From-SVN: r8585 --- gcc/expr.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/expr.c b/gcc/expr.c index 57bf2ea4012..4c2ac5470d7 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -1624,7 +1624,10 @@ emit_block_move (x, y, size, align) here because if SIZE is less than the mode mask, as it is returned by the macro, it will definitely be less than the actual mode mask. */ - && (unsigned HOST_WIDE_INT) INTVAL (size) <= GET_MODE_MASK (mode) + && ((GET_CODE (size) == CONST_INT + && ((unsigned HOST_WIDE_INT) INTVAL (size) + <= GET_MODE_MASK (mode))) + || GET_MODE_BITSIZE (mode) >= BITS_PER_WORD) && (insn_operand_predicate[(int) code][0] == 0 || (*insn_operand_predicate[(int) code][0]) (x, BLKmode)) && (insn_operand_predicate[(int) code][1] == 0 -- 2.30.2