[parisc-linux] HPUX syscall ABI?
Philipp Rumpf
prumpf@suse.de
Mon, 2 Aug 1999 06:21:41 +0200
>> An ABI that would specify too many argument registers would force the
>> caller
>> to load them before the call and the callee to save them again because both
>> would need the additional argument registers.
> At function entry the compiler copies all parameters passed in registers into
> pseudo-registers.
>
> Those pseudo registers are then subject to normal register allocation. ie,
> the compiler can allocate it into a call saved register, into a stack slot
> (and bring it into a register where needed) or into a call clobbered register
> and save/restore it around calls based on which of the options minimizes
> cost.
Is this gcc-specific ?
> There's no benefit to not using those call clobbered registers for parameter
> passing other than to save a little stack space (you have a register flush to
> fixed areas in the frame inside varargs/stdarg functions).
I can imagine cases for which the PA1.1 ABI is better but of course I am not
sure how frequent they are. For syscalls we definitely want to avoid having
to look at the user stack as soon as we have PL 0.
Philipp Rumpf