summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.dasc
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.dasc')
-rw-r--r--src/buildvm_x86.dasc16
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