Messages in this thread |  | | From | "H. Peter Anvin" <> | Subject | Re: Where is it written? | Date | 11 Nov 2000 15:30:43 -0800 |
| |
Followup to: <20001111171749.A32100@wire.cadcamlab.org> By author: Peter Samuelson <peter@cadcamlab.org> In newsgroup: linux.dev.kernel > > [Andrea Arcangeli] > > Can you think at one case where it's better to push the parameter on > > the stack instead of passing them through the callee clobbered > > ebx/eax/edx? > > Well it's safer if you are lazy about prototyping varargs functions. > But of course by doing that you're treading on thin ice anyway, in > terms of type promotion and portability. So I guess it's much better > to say "varargs functions MUST be prototyped" and use the registers. >
It definitely is now. At the time the original x86 ABI was created, a lot of C code was still K&R, and thus prototypes didn't exist...
> > AIUI gcc can cope OK with multiple ABIs to be chosen at runtime, am I > right? IRIX, HP-UX and AIX all have both 32-bit and 64-bit ABIs. >
I don't think we want to introduce a new ABI in user space at this time. If we ever have to major-rev the ABI (libc.so.7), then we should consider this.
-hpa -- <hpa@transmeta.com> at work, <hpa@zytor.com> in private! "Unix gives you enough rope to shoot yourself in the foot." http://www.zytor.com/~hpa/puzzle.txt - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |