http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48830

Hans-Peter Nilsson <hp at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |NEW

--- Comment #8 from Hans-Peter Nilsson <hp at gcc dot gnu.org> 2011-05-01 
11:03:45 UTC ---
(In reply to comment #7)
> > The root problem seems to be that the SPARC port allows a change from 
> > DImode to
> > SImode for regno 66 (%f34) (by CANNOT_CHANGE_MODE_CLASS)
> I'm a bit reluctant to tweak the macro on the
> release branches because this is a sensitive one.

A quick vetting of uses will hopefully convince you like me: when CLASS is
EXTRA_FP_REGS, for at least 4.4 and trunk all uses seem to be from testing an
"upper" floating-point register number, for which TO has no reason to be
SImode.  Being a port-local change, this seems as safe as it can be.  (Famous
last words.)

BTW incidentally-related: maybe a good time to introduce a register class that
is actually the EXTRA_FP_REGS (the upper ones), with its current contents
renamed to ALL_FP_REGS. See "misnomer" in the sparc.h enum reg_class comment.

> I'll investigate on
> my side.

Very much appreciated.  Feel free to take the bug; I'm unassigning myself as I
can't commit to testing the patches (at least) the next few days.

Reply via email to