On 02/02/18 12:21, Eric Botcazou wrote:
>> That's always been my interpretation too.  Seems like we may be changing
>> the meaning of this macro...
> 
> The main (and essentially only) effect of WORD_REGISTER_OPERATIONS in the 
> compiler happens during combine and is explained by this comment taken from 
> eliminate_regs_1 and written by Jim in 1998:
> 
> #ifdef WORD_REGISTER_OPERATIONS
>          /* On these machines, combine can create rtl of the form
>                     (set (subreg:m1 (reg:m2 R) 0) ...)
>             where m1 < m2, and expects something interesting to 
>             happen to the entire word.  Moreover, it will use the
>             (reg:m2 R) later, expecting all bits to be preserved.
>             So if the number of words is the same, preserve the 
>             subreg so that push_reloads can see it.  */
>          && ! ((x_size-1)/UNITS_PER_WORD == (new_size-1) UNITS_PER_WORD)
> #endif
> 


interesting.  So I guess it all comes down to what 'something
interesting' means and whether that has to be consistent for all modes.

Reply via email to