http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55426
Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ramana at gcc dot gnu.org
--- Comment #3 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> 2012-11-28
03:14:03 UTC ---
(In reply to comment #2)
> (In reply to comment #1)
> > Reverting the definition of CANNOT_CHANGE_MODE_CLASS introduced on
> > 2012-10-22
> > at rev #192687 avoids the ICE too.
>
> I have tried this, reverting the revision #192687 would fix this issue. But
> as
> the comment of the patch specifies
> "In big-endian mode, modes greater than word size (i.e. DFmode) are stored in
> VFP registers in little-endian order. We can't describe that accurately to
> GCC, so avoid taking subregs of such values.".
>
> Reverting the patch would adversely affect the big-endian toolchain. Hence, I
> assume that we should have an alternate fix.
(In reply to comment #2)
> (In reply to comment #1)
> > Reverting the definition of CANNOT_CHANGE_MODE_CLASS introduced on
> > 2012-10-22
> > at rev #192687 avoids the ICE too.
>
> I have tried this, reverting the revision #192687 would fix this issue. But
> as
> the comment of the patch specifies
> "In big-endian mode, modes greater than word size (i.e. DFmode) are stored in
> VFP registers in little-endian order. We can't describe that accurately to
> GCC, so avoid taking subregs of such values.".
>
> Reverting the patch would adversely affect the big-endian toolchain. Hence, I
> assume that we should have an alternate fix.
We do have w-w moves in vfp.md *movdi_vfp and friends. why doesn't that work
for you ?
Ramana