Daniel Jacobowitz <[EMAIL PROTECTED]> writes: > I'm sure this has come up before, but I don't understand how the > -maltivec definition of STACK_BOUNDARY can be right. We tell the > compiler that STACK_BOUNDARY == 128 if -maltivec, without telling it > that other people may ignore that, because -maltivec is not supposed > to be an ABI changing option but IIUC STACK_BOUNDARY is. > > Why isn't it 64 in the !TARGET_ALTIVEC case with > PREFERRED_STACK_BOUNDARY == 128?
The case where this matters is a 32-bit ELF EABI target (the only case on powerpc that allows 8-byte stack alignment) using -maltivec but not -mabi=no-altivec. It's not clear to me that case works. I don't think that in general you want to do this in an embedded context, because of the extra code generated to align the stack; it'd be much better to just declare that you're going to use the AltiVec ABI, even if some parts of your embedded code won't be allowed to use any AltiVec instructions.