34 lines
719 B
C
34 lines
719 B
C
unwind_context_t _eh_elf(unwind_context_t ctx, uintptr_t pc) {
|
|
unwind_context_t out_ctx;
|
|
if(pc < 0x619) {
|
|
// IP=0x615 ... 0x618
|
|
goto _factor_3;
|
|
} else {
|
|
if(pc < 0x659) {
|
|
// IP=0x619 ... 0x658
|
|
goto _factor_4;
|
|
} else {
|
|
// IP=0x659 ... 0x659
|
|
goto _factor_3;
|
|
}
|
|
}
|
|
|
|
_factor_default:
|
|
out_ctx.flags = 128u;
|
|
return out_ctx;
|
|
|
|
/* ===== LABELS ======== */
|
|
|
|
_factor_4:
|
|
out_ctx.rsp = ctx.rsp + (48);
|
|
out_ctx.rip = *((uintptr_t*)(out_ctx.rsp + (-8)));
|
|
out_ctx.flags = 3u;
|
|
return out_ctx;
|
|
|
|
_factor_3:
|
|
out_ctx.rsp = ctx.rsp + (8);
|
|
out_ctx.rip = *((uintptr_t*)(out_ctx.rsp + (-8)));
|
|
out_ctx.flags = 3u;
|
|
return out_ctx;
|
|
}
|