On Fri, Oct 14, 2005 at 04:35:48PM -0700, Kean Johnston wrote: > This seems far less invasive that redefining an ABI.
No, it isn't less invasive. Your first case is not too difficult. No more difficult, really, than supporting alloca. Indeed, this is more or less exactly the code we emit in main. (Which got bypassed with the tailcall.) Your second case results in a variable displacement between the local stack frame and the incoming function arguments. This means we need an extra register to hold this displacement (or, equivalently, a pointer to the base of the arguments). Combine this with -fpic and alloca and 4 of the 8 general registers are consumed. At this point, lots of code stops compiling. You're coming into this discussion about 6 years late. > I think, and I may be wrong here, but I think if I simply > make sure that entry to main is correctly aligned, then > the majority of code will just work. Yes. Which is exactly why the dynamic alignment solutions were rejected. There's simply not enough gain. > The only other time it's likely to be > an issue is with signal delivery... And the code in the thread libraries that calls the thread start routine. r~