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