diff options
Diffstat (limited to 'src/vm_arm.dasc')
-rw-r--r-- | src/vm_arm.dasc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/vm_arm.dasc b/src/vm_arm.dasc index 4909d827..f00b3028 100644 --- a/src/vm_arm.dasc +++ b/src/vm_arm.dasc | |||
@@ -269,10 +269,12 @@ static void build_subroutines(BuildCtx *ctx) | |||
269 | | sub RA, RA, #8 | 269 | | sub RA, RA, #8 |
270 | | | 270 | | |
271 | |->vm_returnc: | 271 | |->vm_returnc: |
272 | | add RC, RC, #8 // RC = (nresults+1)*8. | 272 | | adds RC, RC, #8 // RC = (nresults+1)*8. |
273 | | ands CARG1, PC, #FRAME_TYPE | 273 | | mov CRET1, #LUA_YIELD |
274 | | beq ->vm_unwind_c_eh | ||
274 | | str RC, SAVE_MULTRES | 275 | | str RC, SAVE_MULTRES |
275 | | beq ->BC_RET_Z // Handle regular return to Lua. | 276 | | ands CARG1, PC, #FRAME_TYPE |
277 | | beq ->BC_RET_Z // Handle regular return to Lua. | ||
276 | | | 278 | | |
277 | |->vm_return: | 279 | |->vm_return: |
278 | | // BASE = base, RA = resultptr, RC/MULTRES = (nresults+1)*8, PC = return | 280 | | // BASE = base, RA = resultptr, RC/MULTRES = (nresults+1)*8, PC = return |