mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
PPC: Add math.ldexp/frexp/modf() fast functions.
This commit is contained in:
parent
52b67fd3ea
commit
793fb4a9ad
@ -1293,9 +1293,53 @@ static void build_subroutines(BuildCtx *ctx)
|
||||
| efdmul CRET1, CARG1, CARG2
|
||||
| b ->fff_restv
|
||||
|
|
||||
|.ffunc_nn math_ldexp; NYI
|
||||
|.ffunc_n math_frexp; NYI
|
||||
|.ffunc_n math_modf; NYI
|
||||
|.ffunc math_ldexp
|
||||
| cmplwi NARGS8:RC, 16
|
||||
| evldd CARG2, 0(BASE)
|
||||
| evldd CARG4, 8(BASE)
|
||||
| blt ->fff_fallback
|
||||
| evmergehi CARG1, CARG4, CARG2
|
||||
| checknum CARG1
|
||||
| checkanyfail ->fff_fallback
|
||||
| efdctsi CARG3, CARG4
|
||||
| bl extern ldexp
|
||||
| evmergelo CRET1, CRET1, CRET2
|
||||
| b ->fff_restv
|
||||
|
|
||||
|.ffunc math_frexp
|
||||
| cmplwi NARGS8:RC, 8
|
||||
| evldd CARG2, 0(BASE)
|
||||
| blt ->fff_fallback
|
||||
| checknum CARG2
|
||||
| evmergehi CARG1, CARG2, CARG2
|
||||
| checkfail ->fff_fallback
|
||||
| la CARG3, DISPATCH_GL(tmptv)(DISPATCH)
|
||||
| lwz PC, FRAME_PC(BASE)
|
||||
| bl extern frexp
|
||||
| lwz TMP1, DISPATCH_GL(tmptv)(DISPATCH)
|
||||
| evmergelo CRET1, CRET1, CRET2
|
||||
| efdcfsi CRET2, TMP1
|
||||
| la RA, -8(BASE)
|
||||
| evstdd CRET1, 0(RA)
|
||||
| li RD, (2+1)*8
|
||||
| evstdd CRET2, 8(RA)
|
||||
| b ->fff_res
|
||||
|
|
||||
|.ffunc math_modf
|
||||
| cmplwi NARGS8:RC, 8
|
||||
| evldd CARG2, 0(BASE)
|
||||
| blt ->fff_fallback
|
||||
| checknum CARG2
|
||||
| evmergehi CARG1, CARG2, CARG2
|
||||
| checkfail ->fff_fallback
|
||||
| la CARG3, -8(BASE)
|
||||
| lwz PC, FRAME_PC(BASE)
|
||||
| bl extern modf
|
||||
| evmergelo CRET1, CRET1, CRET2
|
||||
| la RA, -8(BASE)
|
||||
| evstdd CRET1, 0(BASE)
|
||||
| li RD, (2+1)*8
|
||||
| b ->fff_res
|
||||
|
|
||||
|.macro math_minmax, name, cmpop
|
||||
| .ffunc_1 name
|
||||
|
Loading…
Reference in New Issue
Block a user