> Eric, I tried my best to get the new code working properly on 64-bit > and I just couldn't figure out a reasonably way to do so.
Same here, this looks really tricky. On the one hand we could give in a little and tolerate inferior code quality in 64-bit mode, but on the other hand this is a bit hard to swallow as the instructions we can play with are the same. > One thing that really irks me is how pseudo's can only be subreg'd > on UNITS_PER_WORD boundaries. That's the real reason this stuff > doesn't work and it's nearly impossible to subreg 32-bit values > that end up in float regs on sparc when compiling 64-bit. Yes, this was done on purpose to solve very nasty RA/reload problems, but the irregularity of the SPARC register file in 64-bit mode clearly conflicts with it. And not all issues were solved, so we used CANNOT_CHANGE_MODE_CLASS to mask some of the remaining ones on SPARC (and on PA). > Anyways, commited to trunk and all the 64-bit failures should be gone. Do we have the same problem in VIS2/3 mode as in VIS1 mode? If so, then I agree that this is probably the best course of action in the short term. -- Eric Botcazou