win64: add tiny unwind data for setjmp/longjmp
This enables native unwind semantics with longjmp on win64 by putting an entry into the .pdata section for each compiled fuction. Also, the function now use a fixed stack and store arguments into X(%rsp) rather than using push.
This commit is contained in:
@ -426,6 +426,10 @@ static void gen_disp32(ExprValue *pe)
|
||||
elimination in the linker */
|
||||
gen_le32(pe->v + sym->jnext - ind - 4);
|
||||
} else {
|
||||
if (sym && sym->type.t == VT_VOID) {
|
||||
sym->type.t = VT_FUNC;
|
||||
sym->type.ref = NULL;
|
||||
}
|
||||
gen_addrpc32(VT_SYM, sym, pe->v);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user