mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +00:00
ARM64: Make tobit conversions match JIT backend behavior.
Thanks to Peter Cawley. #1253
This commit is contained in:
parent
f4fa5646a8
commit
cdc2db3aea
@ -1658,22 +1658,14 @@ static void build_subroutines(BuildCtx *ctx)
|
||||
|
|
||||
|//-- Bit library --------------------------------------------------------
|
||||
|
|
||||
|// FP number to bit conversion for soft-float. Clobbers CARG1-CARG3
|
||||
|// FP number to bit conversion. Clobbers CARG1-CARG2, FARG1-FARG2.
|
||||
|->vm_tobit_fb:
|
||||
| bls ->fff_fallback
|
||||
| add CARG2, CARG1, CARG1
|
||||
| mov CARG3, #1076
|
||||
| sub CARG3, CARG3, CARG2, lsr #53
|
||||
| cmp CARG3, #53
|
||||
| bhi >1
|
||||
| and CARG2, CARG2, #U64x(001fffff,ffffffff)
|
||||
| orr CARG2, CARG2, #U64x(00200000,00000000)
|
||||
| cmp CARG1, #0
|
||||
| lsr CARG2, CARG2, CARG3
|
||||
| cneg CARG1w, CARG2w, mi
|
||||
| br lr
|
||||
|1:
|
||||
| mov CARG1w, #0
|
||||
| fmov FARG1, CARG1
|
||||
| movz CARG2, #0x4338, lsl #48
|
||||
| fmov FARG2, CARG2
|
||||
| fadd FARG1, FARG1, FARG2
|
||||
| fmov CARG1w, s0
|
||||
| br lr
|
||||
|
|
||||
|.macro .ffunc_bit, name
|
||||
|
Loading…
Reference in New Issue
Block a user