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