Fix pow() optimization inconsistencies.

This commit is contained in:
Mike Pall
2022-01-24 14:37:50 +01:00
parent c18acfe756
commit 9512d5c1ac
15 changed files with 114 additions and 205 deletions

View File

@@ -1387,11 +1387,14 @@ static void build_subroutines(BuildCtx *ctx)
| b ->fff_resn
|.endmacro
|
|.macro math_extern2, func
| .ffunc_nn math_ .. func
|.macro math_extern2, name, func
| .ffunc_nn math_ .. name
| bl extern func
| b ->fff_resn
|.endmacro
|.macro math_extern2, func
| math_extern2 func, func
|.endmacro
|
|.ffunc_n math_sqrt
| fsqrt d0, d0
@@ -1420,7 +1423,7 @@ static void build_subroutines(BuildCtx *ctx)
| math_extern sinh
| math_extern cosh
| math_extern tanh
| math_extern2 pow
| math_extern2 pow, lj_vm_pow
| math_extern2 atan2
| math_extern2 fmod
|
@@ -2674,7 +2677,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
| ins_arithload FARG1, FARG2
| ins_arithfallback ins_arithcheck_num
|.if "fpins" == "fpow"
| bl extern pow
| bl extern lj_vm_pow
|.else
| fpins FARG1, FARG1, FARG2
|.endif