Re: Tidy store_bit_field_1 & co.

2012-10-23 Thread Eric Botcazou
> I should probably have responded to this earlier, sorry. I'm not sure > which part you mean, so here's an attempt at justifying the whole block: > > 1) WORDS_BIG_ENDIAN is deliberately ignored: > > /* The following line once was done only if WORDS_BIG_ENDIAN, >but I think that is

Re: Tidy store_bit_field_1 & co.

2012-10-23 Thread Richard Sandiford
Eric Botcazou writes: >> + enum machine_mode op_mode = mode_for_extraction (EP_insv, 3); >>if (HAVE_insv >>&& GET_MODE (value) != BLKmode >>&& bitsize > 0 >> @@ -690,25 +670,34 @@ store_bit_field_1 (rtx str_rtx, unsigned >> -fstrict-volatile-bitfields is in effect.

Re: Tidy store_bit_field_1 & co.

2012-10-20 Thread Eric Botcazou
> * expmed.c (lowpart_bit_field_p): New function. > (store_bit_field_1): Remove unit, offset, bitpos and byte_offset > from the outermost scope. Express conditions in terms of bitnum > rather than offset, bitpos and byte_offset. Split the plain move > cases into two,

Re: Tidy store_bit_field_1 & co.

2012-10-18 Thread Richard Sandiford
Hi Eric, Thanks for the review. Eric Botcazou writes: >> -476,34 +468,36 @@ store_bit_field_1 (rtx str_rtx, unsigne >> } >> >>/* If the target is a register, overwriting the entire object, or storing >> - a full-word or multi-word field can be done with just a SUBREG. + >> a fu

Re: Tidy store_bit_field_1 & co.

2012-10-17 Thread Eric Botcazou
> The patch is probably quite hard to review, sorry. I've made the changelog > a bit more detailed than usual in order to list the individual points. You meant scary, didn't you? :-) > * expmed.c (store_bit_field_1): Remove unit, offset, bitpos and > byte_offset from the outermost sc