49 lines
1.2 KiB
ArmAsm
49 lines
1.2 KiB
ArmAsm
.text
|
|
|
|
|
|
// logl.
|
|
.globl _D5tanya4math8nbtheory9__T2lnTeZ2lnFNaNbNiNfeZe
|
|
.type _D5tanya4math8nbtheory9__T2lnTeZ2lnFNaNbNiNfeZe, @function
|
|
|
|
_D5tanya4math8nbtheory9__T2lnTeZ2lnFNaNbNiNfeZe:
|
|
fldln2 // Put lb(e) onto the FPU stack
|
|
fldt 8(%rsp) // Put the argument onto the FPU stack
|
|
fyl2x // %st1 * lb(%st0)
|
|
ret
|
|
|
|
|
|
// log.
|
|
.globl _D5tanya4math8nbtheory9__T2lnTdZ2lnFNaNbNiNfdZd
|
|
.type _D5tanya4math8nbtheory9__T2lnTdZ2lnFNaNbNiNfdZd, @function
|
|
|
|
_D5tanya4math8nbtheory9__T2lnTdZ2lnFNaNbNiNfdZd:
|
|
movsd %xmm0, -8(%rsp) // Put the argument onto the stack
|
|
|
|
fldln2 // Put lb(e) onto the FPU stack
|
|
fldl -8(%rsp) // Put a double onto the FPU stack
|
|
fyl2x // %st1 * lb(%st0)
|
|
|
|
// The result is on the FPU stack, but returned in %xmm0
|
|
fstpl -8(%rsp)
|
|
movsd -8(%rsp), %xmm0
|
|
|
|
ret
|
|
|
|
|
|
// logf.
|
|
.globl _D5tanya4math8nbtheory9__T2lnTfZ2lnFNaNbNiNffZf
|
|
.type _D5tanya4math8nbtheory9__T2lnTfZ2lnFNaNbNiNffZf, @function
|
|
|
|
_D5tanya4math8nbtheory9__T2lnTfZ2lnFNaNbNiNffZf:
|
|
movss %xmm0, -4(%rsp) // Put the argument onto the stack
|
|
|
|
fldln2 // Put lb(e) onto the FPU stack
|
|
flds -4(%rsp) // Put a float onto the FPU stack
|
|
fyl2x // %st1 * lb(%st0)
|
|
|
|
// The result is on the FPU stack, but returned in %xmm0
|
|
fstps -4(%rsp)
|
|
movss -4(%rsp), %xmm0
|
|
|
|
ret
|