Hi Eric,

On Tue, Nov 20, 2018 at 10:05:21AM +0100, Eric Botcazou wrote:
> +/* Return true if X is an operation that always operates on the full
> +   registers for WORD_REGISTER_OPERATIONS architectures.  */
> +
> +inline bool
> +word_register_operation_p (const_rtx x)
> +{
> +  switch (GET_CODE (x))
> +    {
> +    case ROTATE:
> +    case ROTATERT:
> +    case SIGN_EXTRACT:
> +    case ZERO_EXTRACT:
> +      return false;
> +    
> +    default:
> +      return true;
> +    }
> +}

This is saying that *every* op except those very few works on the full
register.  And that for every architecture that has W_R_O.

It also only looks at the top code in the RTL, so it will say for example
a rotate-and-mask is just fine, while that isn't true.


Segher

Reply via email to