x86/x64: Fix stack overflow handling for coroutine results.

This commit is contained in:
Mike Pall 2010-09-22 22:59:41 +02:00
parent 5baf0f9dc2
commit d351c2ae36
4 changed files with 2073 additions and 2068 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1722,6 +1722,11 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
| mov FCARG2, PC | mov FCARG2, PC
| mov FCARG1, L:RB | mov FCARG1, L:RB
| call extern lj_state_growstack@8 // (lua_State *L, int n) | call extern lj_state_growstack@8 // (lua_State *L, int n)
|.if X64
| mov L:PC, TMP1
|.else
| mov L:PC, ARG1
|.endif
| mov BASE, L:RB->base | mov BASE, L:RB->base
| jmp <4 // Retry the stack move. | jmp <4 // Retry the stack move.
|.endmacro |.endmacro

File diff suppressed because it is too large Load Diff