ABI and exception handling
Lionello Lunesu
lio at remove.lunesu.com
Tue Feb 28 06:30:31 PST 2006
> The x64 __fastcall may not be fully compatible with D. Note:
Yes, probably, but they need not be.
> "Any argument that doesnt fit in 8 bytes, or is not 1, 2, 4, or 8 bytes,
> must be passed by reference. The x87 register stack is unused. It may be
> used, but must be considered volatile across function calls."
>
> Sounds like yet another savage attack on 80-bit reals; it seems their ABI
> will not allow you to generate efficient x87 code.
> I'm also a little unclear about whether the scheme is compatible with
> nested functions, which as I understand it, manipulate ESP but not EBP.
I was not talking about adopting the x64 calling convention in D : ) but was
interested in the new way of stack unwinding. I must say, it's not really
clear to me (way over my head), but making the "try" fast and the "catch"
slow (which seems to be O(1) now) makes a lot of sense, and I was wondering
if it were _in theory_ possible to use a different unwind mechanism for D
code.
I suppose we can't expect D code to handle exception thrown in a C lib, can
we? : )
L.
More information about the Digitalmars-d
mailing list