Iain Buclaw wrote:
I'm actually rather curious how DMD plans on doing varargs in 64bit. Not least
because I don't think their current method of "calculating" the address of the
_argptr takes 64bit parameter passing into account.
I'm working on it now. It's a bitch.
The way varargs works for the C ABI is inefficient, clumsy, and frankly won't
work for what D needs. So I'm going to have two varargs - one for extern (C)
which is compatible with the C ABI and one for extern (D) which will push things
on the stack as for 32 bits.
The only remaining nuisance for the D method is that some types have to be
aligned more strictly than the stack. That means TypeInfo will have to be
extended to provide an alignment size for the type.