From 1d269b0cdc000f4b68dc195e4c60afabf680cd81 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 15 Dec 1995 08:05:34 -0500 Subject: [PATCH] (store_bit_field): Don't use insv for BLKmode value. (store_split_bit_field): Set total_bits to BITS_PER_FOR for BLKmode value. From-SVN: r10732 --- gcc/expmed.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/expmed.c b/gcc/expmed.c index 4341b99..3c74e47 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -398,6 +398,7 @@ store_bit_field (str_rtx, bitsize, bitnum, fieldmode, value, align, total_size) #ifdef HAVE_insv if (HAVE_insv + && GET_MODE (value) != BLKmode && !(bitsize == 1 && GET_CODE (value) == CONST_INT) /* Ensure insv's size is wide enough for this field. */ && (GET_MODE_BITSIZE (insn_operand_mode[(int) CODE_FOR_insv][3]) @@ -776,7 +777,7 @@ store_split_bit_field (op0, bitsize, bitpos, value, align) /* We must do an endian conversion exactly the same way as it is done in extract_bit_field, so that the two calls to extract_fixed_bit_field will have comparable arguments. */ - if (GET_CODE (value) != MEM) + if (GET_CODE (value) != MEM || GET_MODE (value) == BLKmode) total_bits = BITS_PER_WORD; else total_bits = GET_MODE_BITSIZE (GET_MODE (value)); -- 2.7.4