diff options
author | Mike Pall <mike> | 2012-10-09 13:19:57 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2012-10-09 13:19:57 +0200 |
commit | eabfdfe1aa3b4b9c37b99137e6d5fb7cadbd47e9 (patch) | |
tree | b7cf8922d69daedd5d5733214a77439c8986f570 /src/vm_mips.dasc | |
parent | da682b0e9184d4db7e8e477c682947d106790240 (diff) | |
download | luajit-eabfdfe1aa3b4b9c37b99137e6d5fb7cadbd47e9.tar.gz luajit-eabfdfe1aa3b4b9c37b99137e6d5fb7cadbd47e9.tar.bz2 luajit-eabfdfe1aa3b4b9c37b99137e6d5fb7cadbd47e9.zip |
Don't use stack unwinding for lua_yield().
Diffstat (limited to 'src/vm_mips.dasc')
-rw-r--r-- | src/vm_mips.dasc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/vm_mips.dasc b/src/vm_mips.dasc index f82cefe8..52fc5fe1 100644 --- a/src/vm_mips.dasc +++ b/src/vm_mips.dasc | |||
@@ -327,8 +327,10 @@ static void build_subroutines(BuildCtx *ctx) | |||
327 | | addiu RA, RA, -8 | 327 | | addiu RA, RA, -8 |
328 | | | 328 | | |
329 | |->vm_returnc: | 329 | |->vm_returnc: |
330 | | andi TMP0, PC, FRAME_TYPE | ||
331 | | addiu RD, RD, 8 // RD = (nresults+1)*8. | 330 | | addiu RD, RD, 8 // RD = (nresults+1)*8. |
331 | | andi TMP0, PC, FRAME_TYPE | ||
332 | | beqz RD, ->vm_unwind_c_eh | ||
333 | |. li CRET1, LUA_YIELD | ||
332 | | beqz TMP0, ->BC_RET_Z // Handle regular return to Lua. | 334 | | beqz TMP0, ->BC_RET_Z // Handle regular return to Lua. |
333 | |. move MULTRES, RD | 335 | |. move MULTRES, RD |
334 | | | 336 | | |