This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC 4.3.0 Status Report (2008-02-14)


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
mark@codesourcery.com
(650) 331-3385 x713


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]