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

--- Comment #19 from James Clarke <jrtc27 at jrtc27 dot com> ---
(In reply to Jim Wilson from comment #16)
> That referred patch was written by Eric Botcazou for PR59461 which is for
> SPARC, which operates same as Itanium, the upper 32-bits of a 32-bit value
> in a 64-bit reg are undefined.  So it does not appear to be correct for
> SPARC either.  Hence it appears that we need the same change for SPARC, and
> that breaks the fix for PR59461.  I think we need to revisit that.  If you
> have a paradoxical subreg of a reg, then it is only OK to use LOAD_EXTEND_OP
> if you know the value in the reg came from a memory location.  This check is
> missing.
> 
> If we are going to change the meaning of WORD_REGISTER_OPERATIONS, then we
> need a change to the docs also.  But I'm not convinced that this needs to
> change.

The difference is that SPARC has instructions to operate on 32-bit values in
the 64-bit registers, like many other RISC architectures, including for things
like shifts.

Reply via email to