diff options
Diffstat (limited to 'src/buildvm_x86.dasc')
-rw-r--r-- | src/buildvm_x86.dasc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc index b8be39fb..6fde191d 100644 --- a/src/buildvm_x86.dasc +++ b/src/buildvm_x86.dasc | |||
@@ -2028,7 +2028,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
2028 | } | 2028 | } |
2029 | |.ffunc_n math_log, fldln2; fyl2x; jmp ->fff_resn | 2029 | |.ffunc_n math_log, fldln2; fyl2x; jmp ->fff_resn |
2030 | |.ffunc_n math_log10, fldlg2; fyl2x; jmp ->fff_resn | 2030 | |.ffunc_n math_log10, fldlg2; fyl2x; jmp ->fff_resn |
2031 | |.ffunc_n math_exp; call ->vm_exp; jmp ->fff_resn | 2031 | |.ffunc_n math_exp; call ->vm_exp_x87; jmp ->fff_resn |
2032 | | | 2032 | | |
2033 | |.ffunc_n math_sin; fsin; jmp ->fff_resn | 2033 | |.ffunc_n math_sin; fsin; jmp ->fff_resn |
2034 | |.ffunc_n math_cos; fcos; jmp ->fff_resn | 2034 | |.ffunc_n math_cos; fcos; jmp ->fff_resn |
@@ -2055,7 +2055,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
2055 | | .endif | 2055 | | .endif |
2056 | ||} | 2056 | ||} |
2057 | | mov RB, BASE | 2057 | | mov RB, BASE |
2058 | | call extern lj_wrapper_ .. func | 2058 | | call extern lj_vm_ .. func |
2059 | | mov BASE, RB | 2059 | | mov BASE, RB |
2060 | | .if X64 | 2060 | | .if X64 |
2061 | | jmp ->fff_resxmm0 | 2061 | | jmp ->fff_resxmm0 |
@@ -3169,9 +3169,9 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
3169 | |// FP exponentiation e^x and 2^x. Called by math.exp fast function and | 3169 | |// FP exponentiation e^x and 2^x. Called by math.exp fast function and |
3170 | |// from JIT code. Arg/ret on x87 stack. No int/xmm regs modified. | 3170 | |// from JIT code. Arg/ret on x87 stack. No int/xmm regs modified. |
3171 | |// Caveat: needs 3 slots on x87 stack! | 3171 | |// Caveat: needs 3 slots on x87 stack! |
3172 | |->vm_exp: | 3172 | |->vm_exp_x87: |
3173 | | fldl2e; fmulp st1 // e^x ==> 2^(x*log2(e)) | 3173 | | fldl2e; fmulp st1 // e^x ==> 2^(x*log2(e)) |
3174 | |->vm_exp2: | 3174 | |->vm_exp2_x87: |
3175 | | .if X64WIN | 3175 | | .if X64WIN |
3176 | | .define expscratch, dword [rsp+8] // Use scratch area. | 3176 | | .define expscratch, dword [rsp+8] // Use scratch area. |
3177 | | .elif X64 | 3177 | | .elif X64 |
@@ -3444,11 +3444,11 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
3444 | | cmp fpmop, 5; ja >2 | 3444 | | cmp fpmop, 5; ja >2 |
3445 | | .if X64WIN; pop rax; .endif | 3445 | | .if X64WIN; pop rax; .endif |
3446 | | je >1 | 3446 | | je >1 |
3447 | | call ->vm_exp | 3447 | | call ->vm_exp_x87 |
3448 | | .if X64WIN; push rax; .endif | 3448 | | .if X64WIN; push rax; .endif |
3449 | | jmp >7 | 3449 | | jmp >7 |
3450 | |1: | 3450 | |1: |
3451 | | call ->vm_exp2 | 3451 | | call ->vm_exp2_x87 |
3452 | | .if X64WIN; push rax; .endif | 3452 | | .if X64WIN; push rax; .endif |
3453 | | jmp >7 | 3453 | | jmp >7 |
3454 | |2: ; cmp fpmop, 7; je >1; ja >2 | 3454 | |2: ; cmp fpmop, 7; je >1; ja >2 |
@@ -3487,7 +3487,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
3487 | | fld qword [esp+4] | 3487 | | fld qword [esp+4] |
3488 | | ret | 3488 | | ret |
3489 | |2: ; fld qword [esp+4] | 3489 | |2: ; fld qword [esp+4] |
3490 | | cmp fpmop, 5; jb ->vm_exp; je ->vm_exp2 | 3490 | | cmp fpmop, 5; jb ->vm_exp_x87; je ->vm_exp2_x87 |
3491 | |2: ; cmp fpmop, 7; je >1; ja >2 | 3491 | |2: ; cmp fpmop, 7; je >1; ja >2 |
3492 | | fldln2; fxch; fyl2x; ret | 3492 | | fldln2; fxch; fyl2x; ret |
3493 | |1: ; fld1; fxch; fyl2x; ret | 3493 | |1: ; fld1; fxch; fyl2x; ret |
@@ -3505,7 +3505,7 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse) | |||
3505 | | cmp fpmop, 1; jb ->vm_floor; je ->vm_ceil | 3505 | | cmp fpmop, 1; jb ->vm_floor; je ->vm_ceil |
3506 | | cmp fpmop, 3; jb ->vm_trunc; ja >2 | 3506 | | cmp fpmop, 3; jb ->vm_trunc; ja >2 |
3507 | | fsqrt; ret | 3507 | | fsqrt; ret |
3508 | |2: ; cmp fpmop, 5; jb ->vm_exp; je ->vm_exp2 | 3508 | |2: ; cmp fpmop, 5; jb ->vm_exp_x87; je ->vm_exp2_x87 |
3509 | | cmp fpmop, 7; je >1; ja >2 | 3509 | | cmp fpmop, 7; je >1; ja >2 |
3510 | | fldln2; fxch; fyl2x; ret | 3510 | | fldln2; fxch; fyl2x; ret |
3511 | |1: ; fld1; fxch; fyl2x; ret | 3511 | |1: ; fld1; fxch; fyl2x; ret |