https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84071

--- Comment #19 from Wilco <wilco at gcc dot gnu.org> ---
(In reply to Eric Botcazou from comment #16)

> > Also I wonder whether this means AArch64 should set it since targets like 
> > MIPS 
> > and Sparc already set it.
> 
> There seems to be a good reason against that:
> 
> /* WORD_REGISTER_OPERATIONS does not hold for AArch64.
>    The assigned word_mode is DImode but operations narrower than SImode
>    behave as 32-bit operations if using the W-form of the registers rather
>    than as word_mode (64-bit) operations as WORD_REGISTER_OPERATIONS
>    expects.  */
> #define WORD_REGISTER_OPERATIONS 0

How is this any different from 32-bit operations in say MIPS? The only
difference seems to be that MIPS sign-extends 32-bit operations to 64 bit while
AArch64 zero-extends. If that's correct for MIPS it seems that
WORD_REGISTER_OPERATIONS only applies to types smaller than SImode.

Reply via email to