diff options
Diffstat (limited to '')
-rw-r--r-- | src/vm_x64.dasc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/vm_x64.dasc b/src/vm_x64.dasc index 3635ba28..8c46ea59 100644 --- a/src/vm_x64.dasc +++ b/src/vm_x64.dasc | |||
@@ -1463,6 +1463,9 @@ static void build_subroutines(BuildCtx *ctx) | |||
1463 | |//-- Base library: catch errors ---------------------------------------- | 1463 | |//-- Base library: catch errors ---------------------------------------- |
1464 | | | 1464 | | |
1465 | |.ffunc_1 pcall | 1465 | |.ffunc_1 pcall |
1466 | | mov L:RB, SAVE_L | ||
1467 | | lea RA, [BASE+NARGS:RD*8] | ||
1468 | | cmp RA, L:RB->maxstack; ja ->fff_fallback | ||
1466 | | lea RA, [BASE+16] | 1469 | | lea RA, [BASE+16] |
1467 | | sub NARGS:RDd, 1 | 1470 | | sub NARGS:RDd, 1 |
1468 | | mov PCd, 16+FRAME_PCALL | 1471 | | mov PCd, 16+FRAME_PCALL |
@@ -1481,6 +1484,9 @@ static void build_subroutines(BuildCtx *ctx) | |||
1481 | | jmp ->vm_call_dispatch | 1484 | | jmp ->vm_call_dispatch |
1482 | | | 1485 | | |
1483 | |.ffunc_2 xpcall | 1486 | |.ffunc_2 xpcall |
1487 | | mov L:RB, SAVE_L | ||
1488 | | lea RA, [BASE+NARGS:RD*8] | ||
1489 | | cmp RA, L:RB->maxstack; ja ->fff_fallback | ||
1484 | | mov LFUNC:RA, [BASE+8] | 1490 | | mov LFUNC:RA, [BASE+8] |
1485 | | checktp_nc LFUNC:RA, LJ_TFUNC, ->fff_fallback | 1491 | | checktp_nc LFUNC:RA, LJ_TFUNC, ->fff_fallback |
1486 | | mov LFUNC:RB, [BASE] // Swap function and traceback. | 1492 | | mov LFUNC:RB, [BASE] // Swap function and traceback. |