From: Richard Kenner Date: Wed, 30 Nov 1994 23:13:44 +0000 (-0500) Subject: (emit_block_move): Only use movstr if size is small enough constant or X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8ca00751f76d44f01ece03998635d38d6613ed47;p=gcc.git (emit_block_move): Only use movstr if size is small enough constant or MODE is at least BITS_PER_WORD. From-SVN: r8585 --- 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