On Sunday, 12 November 2017 at 22:00:58 UTC, Basile B. wrote:
On Sunday, 12 November 2017 at 21:27:28 UTC, Dibyendu Majumdar
Does the compiler generate appropriate unwind information on
Win64? Prsumably if a function is marked 'naked' then it
doesn't?
yeah about stack frame..., also don't forget to mark the asm
block "pure nothrow" if possible...
It's not documented but the syntax is like that:
```
void foo()
{
asm pure nothrow
{
naked;
ret;
}
}
```
I am not sure I have understood above; will DMD generate the
right Win64 unwind info for this contrived example:
int luaV_interp(lua_State *L)
{
asm pure nothrow {
naked;
push RDI;
push RSI;
push RBX;
push R12;
push R13;
push R14;
push R15;
sub RSP, 5*8;
mov RAX, 0;
add RSP, 5*8;
pop R15;
pop R14;
pop R13;
pop R12;
pop RBX;
pop RSI;
pop RDI;
pop RBP;
ret;
}
}