On Mon, 2008-02-18 at 16:12 -0500, Jakub Jelinek wrote: > On Mon, Feb 18, 2008 at 03:57:10PM -0500, Daniel Jacobowitz wrote: > > On Mon, Feb 18, 2008 at 03:25:03PM -0500, Jakub Jelinek wrote: > > > What would break if in non-altivec ABI all Altivec registers are either > > > fixed (-mno-altivec) or call-used (-maltivec)? > > > > I still suggest that the correct choice is to use the same set of > > call-used and call-saved registers without the AltiVec ABI as we do > > with it. Which has no affect with -mno-altivec, but requires some > > prologue work with -maltivec -mabi=no-altivec. After that, whether > > the default ABI is AltiVec or not does not much matter to GCC. > > That can work too, assuming on ppc-linux we can rely the kernel and libc > handle saving/restoring the altivec regs (guess we can rely on it these > days). All I'm trying to say is that having an option combination where > some registers are neither fixed, nor call-used, nor call-saved > is a bug (in the current -m32 -maltivec case I think they are officially > call-saved, but nothing saves/restores them).
I have a patch, written since this thread started, that saves and restores AltiVec registers based on TARGET_ALTIVEC instead of TARGET_ALTIVEC_ABI. It passes gcc.target/powerpc tests and 176.gcc with "-O3 -maltivec -mabi=no-altivec". I'll post that soon and do full bootstrap/regtest. Janis