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.
What does the AltiVec ABI itself actually cover? Does it say which
registers are saved by callers vs. callees, or does it just say how to
pass values in AltiVec registers?
I assume we want to maintain backwards compatibility with existing
AltiVec-unaware code (i.e., code compiled with -mno-altivec
-mabi=no-altivec) compiled for Power GNU/Linux?
If so, then we have to use those conventions for which of the base
registers to save in callers vs. callees. But, with -maltivec
-mabi=no-altivec, then we have to save/restore the AltiVec registers.
If nothing else, why not have the caller assume they are clobbered by
calls, and, therefore save whatever AltiVec registers its using? Is
that what you're suggesting?
Daniel, perhaps you can put a full proposal on the table so that we can
try to get consensus on thsi?
Thanks,
--
Mark Mitchell
CodeSourcery
[EMAIL PROTECTED]
(650) 331-3385 x713