diff options
-rw-r--r-- | src/host/buildvm_peobj.c | 3 | ||||
-rw-r--r-- | src/vm_arm64.dasc | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/host/buildvm_peobj.c b/src/host/buildvm_peobj.c index 7ce3b05a..8f04c496 100644 --- a/src/host/buildvm_peobj.c +++ b/src/host/buildvm_peobj.c | |||
@@ -373,11 +373,12 @@ void emit_peobj(BuildCtx *ctx) | |||
373 | 373 | ||
374 | /* Unwind codes for .text section with handler. */ | 374 | /* Unwind codes for .text section with handler. */ |
375 | p = uwc; | 375 | p = uwc; |
376 | CADD_FP(192); /* +2 */ | ||
376 | CSAVE_REGS(19, 28, 176); /* +5*2 */ | 377 | CSAVE_REGS(19, 28, 176); /* +5*2 */ |
377 | CSAVE_FREGS(8, 15, 96); /* +4*2 */ | 378 | CSAVE_FREGS(8, 15, 96); /* +4*2 */ |
378 | CSAVE_FPLR(192); /* +1 */ | 379 | CSAVE_FPLR(192); /* +1 */ |
379 | CALLOC_S(208); /* +1 */ | 380 | CALLOC_S(208); /* +1 */ |
380 | CEND_ALIGN; /* +1 +3 -> 24 */ | 381 | CEND_ALIGN; /* +1 +1 -> 24 */ |
381 | 382 | ||
382 | u32 = ((24u >> 2) << 27) | (1u << 20) | (fcofs >> 2); | 383 | u32 = ((24u >> 2) << 27) | (1u << 20) | (fcofs >> 2); |
383 | owrite(ctx, &u32, 4); | 384 | owrite(ctx, &u32, 4); |
diff --git a/src/vm_arm64.dasc b/src/vm_arm64.dasc index 3044a8ac..26973686 100644 --- a/src/vm_arm64.dasc +++ b/src/vm_arm64.dasc | |||
@@ -430,6 +430,7 @@ static void build_subroutines(BuildCtx *ctx) | |||
430 | | | 430 | | |
431 | |->vm_unwind_c: // Unwind C stack, return from vm_pcall. | 431 | |->vm_unwind_c: // Unwind C stack, return from vm_pcall. |
432 | | // (void *cframe, int errcode) | 432 | | // (void *cframe, int errcode) |
433 | | add fp, CARG1, # SAVE_FP_LR_ | ||
433 | | mov sp, CARG1 | 434 | | mov sp, CARG1 |
434 | | mov CRET1, CARG2 | 435 | | mov CRET1, CARG2 |
435 | | ldr L, SAVE_L | 436 | | ldr L, SAVE_L |
@@ -441,7 +442,8 @@ static void build_subroutines(BuildCtx *ctx) | |||
441 | | | 442 | | |
442 | |->vm_unwind_ff: // Unwind C stack, return from ff pcall. | 443 | |->vm_unwind_ff: // Unwind C stack, return from ff pcall. |
443 | | // (void *cframe) | 444 | | // (void *cframe) |
444 | | and sp, CARG1, #CFRAME_RAWMASK | 445 | | add fp, CARG1, # SAVE_FP_LR_ |
446 | | mov sp, CARG1 | ||
445 | | ldr L, SAVE_L | 447 | | ldr L, SAVE_L |
446 | | movz TISNUM, #(LJ_TISNUM>>1)&0xffff, lsl #48 | 448 | | movz TISNUM, #(LJ_TISNUM>>1)&0xffff, lsl #48 |
447 | | movz TISNUMhi, #(LJ_TISNUM>>1)&0xffff, lsl #16 | 449 | | movz TISNUMhi, #(LJ_TISNUM>>1)&0xffff, lsl #16 |