diff options
Diffstat (limited to 'src/buildvm_x86.dasc')
-rw-r--r-- | src/buildvm_x86.dasc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc index 5af00d38..69672adc 100644 --- a/src/buildvm_x86.dasc +++ b/src/buildvm_x86.dasc | |||
@@ -574,11 +574,10 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
574 | | mov BASE, L:RB->base | 574 | | mov BASE, L:RB->base |
575 | | mov RD, L:RB->top | 575 | | mov RD, L:RB->top |
576 | | mov LFUNC:RB, [BASE-8] | 576 | | mov LFUNC:RB, [BASE-8] |
577 | | mov PC, [BASE-4] | ||
578 | | sub RD, BASE | 577 | | sub RD, BASE |
579 | | shr RD, 3 | 578 | | shr RD, 3 |
580 | | add NARGS:RD, 1 | 579 | | add NARGS:RD, 1 |
581 | | // BASE = new base, RB = LFUNC, RD = nargs+1, PC restored. | 580 | | // BASE = new base, RB = LFUNC, RD = nargs+1 |
582 | | ins_callt // Just retry the call. | 581 | | ins_callt // Just retry the call. |
583 | | | 582 | | |
584 | |//----------------------------------------------------------------------- | 583 | |//----------------------------------------------------------------------- |
@@ -3079,6 +3078,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
3079 | |// Callable from C: double lj_vm_foldfpm(double x, int fpm) | 3078 | |// Callable from C: double lj_vm_foldfpm(double x, int fpm) |
3080 | |// Computes fpm(x) for extended math functions. ORDER FPM. | 3079 | |// Computes fpm(x) for extended math functions. ORDER FPM. |
3081 | |->vm_foldfpm: | 3080 | |->vm_foldfpm: |
3081 | #if LJ_HASJIT | ||
3082 | if (sse) { | 3082 | if (sse) { |
3083 | |.if X64 | 3083 | |.if X64 |
3084 | | | 3084 | | |
@@ -3174,6 +3174,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
3174 | |1: ; fptan; fpop; ret | 3174 | |1: ; fptan; fpop; ret |
3175 | } | 3175 | } |
3176 | |9: ; int3 // Bad fpm. | 3176 | |9: ; int3 // Bad fpm. |
3177 | #endif | ||
3177 | | | 3178 | | |
3178 | |// Callable from C: double lj_vm_foldarith(double x, double y, int op) | 3179 | |// Callable from C: double lj_vm_foldarith(double x, double y, int op) |
3179 | |// Compute x op y for basic arithmetic operators (+ - * / % ^ and unary -) | 3180 | |// Compute x op y for basic arithmetic operators (+ - * / % ^ and unary -) |