On Mon, 5 Jan 2004, Benjamin Herrenschmidt wrote: > > SIGILL and we use setjmp/longjmp to recover from the trap. However, > > last he checked, gcc -mabi=altivec caused setjmp/longjmp to try to save > > altivec registers, failing on the G3. There are several possible
(Reportedly, this is no longer the case with the latest Debian/testing, although I'm not sure I would want to rely on this fact.) > You can detect differently by using the ELF AUX tables passed by the > kernel to any executable. The AT_HWCAP entry contains "feature" bits, > one of them indicating the support of Altivec, see the kernel > include/asm/cputable.h for the bit definitions. Thanks! We'll look into this. The remaining issue is probably stack alignment; I'm told I was wrong, and -mabi=altivec is required for 16-byte stack alignment. Ideally, we would like to avoid requiring FFTW-using programs to use this flag, and we may be able to deal with it in a similar way to how we align the stack on x86: use an assembly hack to align the stack at FFTW entry points, and compile FFTW itself with -mabi=altivec to preserve 16-byte alignment internally once it is established. In any case, this will have to wait for the next release of FFTW; the current version is Altivec-only if you compile with --enable-altivec. Cordially, Steven G. Johnson

