Merge "libm: remove unused x86/x86_64 assembler."
This commit is contained in:
commit
eab2046e35
6 changed files with 0 additions and 11330 deletions
576
libm/x86/e_exp.S
576
libm/x86/e_exp.S
|
@ -1,576 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2014, Intel Corporation
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/******************************************************************************/
|
||||
// ALGORITHM DESCRIPTION
|
||||
// ---------------------
|
||||
//
|
||||
// Description:
|
||||
// Let K = 64 (table size).
|
||||
// x x/log(2) n
|
||||
// e = 2 = 2 * T[j] * (1 + P(y))
|
||||
// where
|
||||
// x = m*log(2)/K + y, y in [-log(2)/K..log(2)/K]
|
||||
// m = n*K + j, m,n,j - signed integer, j in [-K/2..K/2]
|
||||
// j/K
|
||||
// values of 2 are tabulated as T[j] = T_hi[j] ( 1 + T_lo[j]).
|
||||
//
|
||||
// P(y) is a minimax polynomial approximation of exp(x)-1
|
||||
// on small interval [-log(2)/K..log(2)/K] (were calculated by Maple V).
|
||||
//
|
||||
// To avoid problems with arithmetic overflow and underflow,
|
||||
// n n1 n2
|
||||
// value of 2 is safely computed as 2 * 2 where n1 in [-BIAS/2..BIAS/2]
|
||||
// where BIAS is a value of exponent bias.
|
||||
//
|
||||
// Special cases:
|
||||
// exp(NaN) = NaN
|
||||
// exp(+INF) = +INF
|
||||
// exp(-INF) = 0
|
||||
// exp(x) = 1 for subnormals
|
||||
// for finite argument, only exp(0)=1 is exact
|
||||
// For IEEE double
|
||||
// if x > 709.782712893383973096 then exp(x) overflow
|
||||
// if x < -745.133219101941108420 then exp(x) underflow
|
||||
//
|
||||
/******************************************************************************/
|
||||
|
||||
#include <private/bionic_asm.h>
|
||||
# -- Begin static_func
|
||||
.text
|
||||
.align __bionic_asm_align
|
||||
.type static_func, @function
|
||||
static_func:
|
||||
..B1.1:
|
||||
call ..L2
|
||||
..L2:
|
||||
popl %eax
|
||||
lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
|
||||
lea static_const_table@GOTOFF(%eax), %eax
|
||||
ret
|
||||
.size static_func,.-static_func
|
||||
# -- End static_func
|
||||
|
||||
# -- Begin exp
|
||||
ENTRY(exp)
|
||||
# parameter 1: 8 + %ebp
|
||||
..B2.1:
|
||||
..B2.2:
|
||||
pushl %ebp
|
||||
movl %esp, %ebp
|
||||
subl $120, %esp
|
||||
movl %ebx, 64(%esp)
|
||||
call static_func
|
||||
movl %eax, %ebx
|
||||
movsd 128(%esp), %xmm0
|
||||
unpcklpd %xmm0, %xmm0
|
||||
movapd 64(%ebx), %xmm1
|
||||
movapd 48(%ebx), %xmm6
|
||||
movapd 80(%ebx), %xmm2
|
||||
movapd 96(%ebx), %xmm3
|
||||
pextrw $3, %xmm0, %eax
|
||||
andl $32767, %eax
|
||||
movl $16527, %edx
|
||||
subl %eax, %edx
|
||||
subl $15504, %eax
|
||||
orl %eax, %edx
|
||||
cmpl $-2147483648, %edx
|
||||
jae .L_2TAG_PACKET_0.0.2
|
||||
mulpd %xmm0, %xmm1
|
||||
addpd %xmm6, %xmm1
|
||||
movapd %xmm1, %xmm7
|
||||
subpd %xmm6, %xmm1
|
||||
mulpd %xmm1, %xmm2
|
||||
movapd 128(%ebx), %xmm4
|
||||
mulpd %xmm1, %xmm3
|
||||
movapd 144(%ebx), %xmm5
|
||||
subpd %xmm2, %xmm0
|
||||
movd %xmm7, %eax
|
||||
movl %eax, %ecx
|
||||
andl $63, %ecx
|
||||
shll $4, %ecx
|
||||
sarl $6, %eax
|
||||
movl %eax, %edx
|
||||
movdqa 16(%ebx), %xmm6
|
||||
pand %xmm6, %xmm7
|
||||
movdqa 32(%ebx), %xmm6
|
||||
paddq %xmm6, %xmm7
|
||||
psllq $46, %xmm7
|
||||
subpd %xmm3, %xmm0
|
||||
movapd 160(%ebx,%ecx), %xmm2
|
||||
mulpd %xmm0, %xmm4
|
||||
movapd %xmm0, %xmm6
|
||||
movapd %xmm0, %xmm1
|
||||
mulpd %xmm6, %xmm6
|
||||
mulpd %xmm6, %xmm0
|
||||
addpd %xmm4, %xmm5
|
||||
mulsd %xmm6, %xmm0
|
||||
mulpd 112(%ebx), %xmm6
|
||||
addsd %xmm2, %xmm1
|
||||
unpckhpd %xmm2, %xmm2
|
||||
mulpd %xmm5, %xmm0
|
||||
addsd %xmm0, %xmm1
|
||||
orpd %xmm7, %xmm2
|
||||
unpckhpd %xmm0, %xmm0
|
||||
addsd %xmm1, %xmm0
|
||||
addsd %xmm6, %xmm0
|
||||
addl $894, %edx
|
||||
cmpl $1916, %edx
|
||||
ja .L_2TAG_PACKET_1.0.2
|
||||
mulsd %xmm2, %xmm0
|
||||
addsd %xmm2, %xmm0
|
||||
jmp .L_2TAG_PACKET_2.0.2
|
||||
.L_2TAG_PACKET_1.0.2:
|
||||
fstcw 24(%esp)
|
||||
movzwl 24(%esp), %edx
|
||||
orl $768, %edx
|
||||
movw %dx, 28(%esp)
|
||||
fldcw 28(%esp)
|
||||
movl %eax, %edx
|
||||
sarl $1, %eax
|
||||
subl %eax, %edx
|
||||
movdqa (%ebx), %xmm6
|
||||
pandn %xmm2, %xmm6
|
||||
addl $1023, %eax
|
||||
movd %eax, %xmm3
|
||||
psllq $52, %xmm3
|
||||
orpd %xmm3, %xmm6
|
||||
addl $1023, %edx
|
||||
movd %edx, %xmm4
|
||||
psllq $52, %xmm4
|
||||
movsd %xmm0, 8(%esp)
|
||||
fldl 8(%esp)
|
||||
movsd %xmm6, 16(%esp)
|
||||
fldl 16(%esp)
|
||||
fmul %st, %st(1)
|
||||
faddp %st, %st(1)
|
||||
movsd %xmm4, 8(%esp)
|
||||
fldl 8(%esp)
|
||||
fmulp %st, %st(1)
|
||||
fstpl 8(%esp)
|
||||
movsd 8(%esp), %xmm0
|
||||
fldcw 24(%esp)
|
||||
pextrw $3, %xmm0, %ecx
|
||||
andl $32752, %ecx
|
||||
cmpl $32752, %ecx
|
||||
jae .L_2TAG_PACKET_3.0.2
|
||||
cmpl $0, %ecx
|
||||
je .L_2TAG_PACKET_4.0.2
|
||||
jmp .L_2TAG_PACKET_2.0.2
|
||||
cmpl $-2147483648, %ecx
|
||||
jb .L_2TAG_PACKET_3.0.2
|
||||
cmpl $-1064950997, %ecx
|
||||
jb .L_2TAG_PACKET_2.0.2
|
||||
ja .L_2TAG_PACKET_4.0.2
|
||||
movl 128(%esp), %edx
|
||||
cmpl $-17155601, %edx
|
||||
jb .L_2TAG_PACKET_2.0.2
|
||||
jmp .L_2TAG_PACKET_4.0.2
|
||||
.L_2TAG_PACKET_3.0.2:
|
||||
movl $14, %edx
|
||||
jmp .L_2TAG_PACKET_5.0.2
|
||||
.L_2TAG_PACKET_4.0.2:
|
||||
movl $15, %edx
|
||||
.L_2TAG_PACKET_5.0.2:
|
||||
movsd %xmm0, (%esp)
|
||||
movsd 128(%esp), %xmm0
|
||||
fldl (%esp)
|
||||
jmp .L_2TAG_PACKET_6.0.2
|
||||
.L_2TAG_PACKET_7.0.2:
|
||||
cmpl $2146435072, %eax
|
||||
jae .L_2TAG_PACKET_8.0.2
|
||||
movl 132(%esp), %eax
|
||||
cmpl $-2147483648, %eax
|
||||
jae .L_2TAG_PACKET_9.0.2
|
||||
movsd 1208(%ebx), %xmm0
|
||||
mulsd %xmm0, %xmm0
|
||||
movl $14, %edx
|
||||
jmp .L_2TAG_PACKET_5.0.2
|
||||
.L_2TAG_PACKET_9.0.2:
|
||||
movsd 1216(%ebx), %xmm0
|
||||
mulsd %xmm0, %xmm0
|
||||
movl $15, %edx
|
||||
jmp .L_2TAG_PACKET_5.0.2
|
||||
.L_2TAG_PACKET_8.0.2:
|
||||
movl 128(%esp), %edx
|
||||
cmpl $2146435072, %eax
|
||||
ja .L_2TAG_PACKET_10.0.2
|
||||
cmpl $0, %edx
|
||||
jne .L_2TAG_PACKET_10.0.2
|
||||
movl 132(%esp), %eax
|
||||
cmpl $2146435072, %eax
|
||||
jne .L_2TAG_PACKET_11.0.2
|
||||
movsd 1192(%ebx), %xmm0
|
||||
jmp .L_2TAG_PACKET_2.0.2
|
||||
.L_2TAG_PACKET_11.0.2:
|
||||
movsd 1200(%ebx), %xmm0
|
||||
jmp .L_2TAG_PACKET_2.0.2
|
||||
.L_2TAG_PACKET_10.0.2:
|
||||
movsd 128(%esp), %xmm0
|
||||
addsd %xmm0, %xmm0
|
||||
jmp .L_2TAG_PACKET_2.0.2
|
||||
.L_2TAG_PACKET_0.0.2:
|
||||
movl 132(%esp), %eax
|
||||
andl $2147483647, %eax
|
||||
cmpl $1083179008, %eax
|
||||
jae .L_2TAG_PACKET_7.0.2
|
||||
movsd 128(%esp), %xmm0
|
||||
addsd 1184(%ebx), %xmm0
|
||||
jmp .L_2TAG_PACKET_2.0.2
|
||||
.L_2TAG_PACKET_2.0.2:
|
||||
movsd %xmm0, 48(%esp)
|
||||
fldl 48(%esp)
|
||||
.L_2TAG_PACKET_6.0.2:
|
||||
movl 64(%esp), %ebx
|
||||
movl %ebp, %esp
|
||||
popl %ebp
|
||||
ret
|
||||
..B2.3:
|
||||
END(exp)
|
||||
# -- End exp
|
||||
|
||||
# Start file scope ASM
|
||||
ALIAS_SYMBOL(expl, exp);
|
||||
# End file scope ASM
|
||||
.section .rodata, "a"
|
||||
.align 16
|
||||
.align 16
|
||||
static_const_table:
|
||||
.long 0
|
||||
.long 4293918720
|
||||
.long 0
|
||||
.long 4293918720
|
||||
.long 4294967232
|
||||
.long 0
|
||||
.long 4294967232
|
||||
.long 0
|
||||
.long 65472
|
||||
.long 0
|
||||
.long 65472
|
||||
.long 0
|
||||
.long 0
|
||||
.long 1127743488
|
||||
.long 0
|
||||
.long 1127743488
|
||||
.long 1697350398
|
||||
.long 1079448903
|
||||
.long 1697350398
|
||||
.long 1079448903
|
||||
.long 4277796864
|
||||
.long 1065758274
|
||||
.long 4277796864
|
||||
.long 1065758274
|
||||
.long 3164486458
|
||||
.long 1025308570
|
||||
.long 3164486458
|
||||
.long 1025308570
|
||||
.long 4294967294
|
||||
.long 1071644671
|
||||
.long 4294967294
|
||||
.long 1071644671
|
||||
.long 3811088480
|
||||
.long 1062650204
|
||||
.long 1432067621
|
||||
.long 1067799893
|
||||
.long 3230715663
|
||||
.long 1065423125
|
||||
.long 1431604129
|
||||
.long 1069897045
|
||||
.long 0
|
||||
.long 0
|
||||
.long 0
|
||||
.long 0
|
||||
.long 235107661
|
||||
.long 1018002367
|
||||
.long 1048019040
|
||||
.long 11418
|
||||
.long 896005651
|
||||
.long 1015861842
|
||||
.long 3541402996
|
||||
.long 22960
|
||||
.long 1642514529
|
||||
.long 1012987726
|
||||
.long 410360776
|
||||
.long 34629
|
||||
.long 1568897900
|
||||
.long 1016568486
|
||||
.long 1828292879
|
||||
.long 46424
|
||||
.long 1882168529
|
||||
.long 1010744893
|
||||
.long 852742562
|
||||
.long 58348
|
||||
.long 509852888
|
||||
.long 1017336174
|
||||
.long 3490863952
|
||||
.long 70401
|
||||
.long 653277307
|
||||
.long 1017431380
|
||||
.long 2930322911
|
||||
.long 82586
|
||||
.long 1649557430
|
||||
.long 1017729363
|
||||
.long 1014845818
|
||||
.long 94904
|
||||
.long 1058231231
|
||||
.long 1015777676
|
||||
.long 3949972341
|
||||
.long 107355
|
||||
.long 1044000607
|
||||
.long 1016786167
|
||||
.long 828946858
|
||||
.long 119943
|
||||
.long 1151779725
|
||||
.long 1015705409
|
||||
.long 2288159958
|
||||
.long 132667
|
||||
.long 3819481236
|
||||
.long 1016499965
|
||||
.long 1853186616
|
||||
.long 145530
|
||||
.long 2552227826
|
||||
.long 1015039787
|
||||
.long 1709341917
|
||||
.long 158533
|
||||
.long 1829350193
|
||||
.long 1015216097
|
||||
.long 4112506593
|
||||
.long 171677
|
||||
.long 1913391795
|
||||
.long 1015756674
|
||||
.long 2799960843
|
||||
.long 184965
|
||||
.long 1303423926
|
||||
.long 1015238005
|
||||
.long 171030293
|
||||
.long 198398
|
||||
.long 1574172746
|
||||
.long 1016061241
|
||||
.long 2992903935
|
||||
.long 211976
|
||||
.long 3424156969
|
||||
.long 1017196428
|
||||
.long 926591434
|
||||
.long 225703
|
||||
.long 1938513547
|
||||
.long 1017631273
|
||||
.long 887463926
|
||||
.long 239579
|
||||
.long 2804567149
|
||||
.long 1015390024
|
||||
.long 1276261410
|
||||
.long 253606
|
||||
.long 631083525
|
||||
.long 1017690182
|
||||
.long 569847337
|
||||
.long 267786
|
||||
.long 1623370770
|
||||
.long 1011049453
|
||||
.long 1617004845
|
||||
.long 282120
|
||||
.long 3667985273
|
||||
.long 1013894369
|
||||
.long 3049340112
|
||||
.long 296610
|
||||
.long 3145379760
|
||||
.long 1014403278
|
||||
.long 3577096743
|
||||
.long 311258
|
||||
.long 2603100681
|
||||
.long 1017152460
|
||||
.long 1990012070
|
||||
.long 326066
|
||||
.long 3249202951
|
||||
.long 1017448880
|
||||
.long 1453150081
|
||||
.long 341035
|
||||
.long 419288974
|
||||
.long 1016280325
|
||||
.long 917841882
|
||||
.long 356167
|
||||
.long 3793507337
|
||||
.long 1016095713
|
||||
.long 3712504873
|
||||
.long 371463
|
||||
.long 728023093
|
||||
.long 1016345318
|
||||
.long 363667784
|
||||
.long 386927
|
||||
.long 2582678538
|
||||
.long 1017123460
|
||||
.long 2956612996
|
||||
.long 402558
|
||||
.long 7592966
|
||||
.long 1016721543
|
||||
.long 2186617380
|
||||
.long 418360
|
||||
.long 228611441
|
||||
.long 1016696141
|
||||
.long 1719614412
|
||||
.long 434334
|
||||
.long 2261665670
|
||||
.long 1017457593
|
||||
.long 1013258798
|
||||
.long 450482
|
||||
.long 544148907
|
||||
.long 1017323666
|
||||
.long 3907805043
|
||||
.long 466805
|
||||
.long 2383914918
|
||||
.long 1017143586
|
||||
.long 1447192520
|
||||
.long 483307
|
||||
.long 1176412038
|
||||
.long 1017267372
|
||||
.long 1944781190
|
||||
.long 499988
|
||||
.long 2882956373
|
||||
.long 1013312481
|
||||
.long 919555682
|
||||
.long 516851
|
||||
.long 3154077648
|
||||
.long 1016528543
|
||||
.long 2571947538
|
||||
.long 533897
|
||||
.long 348651999
|
||||
.long 1016405780
|
||||
.long 2604962540
|
||||
.long 551129
|
||||
.long 3253791412
|
||||
.long 1015920431
|
||||
.long 1110089947
|
||||
.long 568549
|
||||
.long 1509121860
|
||||
.long 1014756995
|
||||
.long 2568320822
|
||||
.long 586158
|
||||
.long 2617649212
|
||||
.long 1017340090
|
||||
.long 2966275556
|
||||
.long 603959
|
||||
.long 553214634
|
||||
.long 1016457425
|
||||
.long 2682146383
|
||||
.long 621954
|
||||
.long 730975783
|
||||
.long 1014083580
|
||||
.long 2191782032
|
||||
.long 640145
|
||||
.long 1486499517
|
||||
.long 1016818996
|
||||
.long 2069751140
|
||||
.long 658534
|
||||
.long 2595788928
|
||||
.long 1016407932
|
||||
.long 2990417244
|
||||
.long 677123
|
||||
.long 1853053619
|
||||
.long 1015310724
|
||||
.long 1434058175
|
||||
.long 695915
|
||||
.long 2462790535
|
||||
.long 1015814775
|
||||
.long 2572866477
|
||||
.long 714911
|
||||
.long 3693944214
|
||||
.long 1017259110
|
||||
.long 3092190714
|
||||
.long 734114
|
||||
.long 2979333550
|
||||
.long 1017188654
|
||||
.long 4076559942
|
||||
.long 753526
|
||||
.long 174054861
|
||||
.long 1014300631
|
||||
.long 2420883922
|
||||
.long 773150
|
||||
.long 816778419
|
||||
.long 1014197934
|
||||
.long 3716502172
|
||||
.long 792987
|
||||
.long 3507050924
|
||||
.long 1015341199
|
||||
.long 777507147
|
||||
.long 813041
|
||||
.long 1821514088
|
||||
.long 1013410604
|
||||
.long 3706687593
|
||||
.long 833312
|
||||
.long 920623539
|
||||
.long 1016295433
|
||||
.long 1242007931
|
||||
.long 853805
|
||||
.long 2789017511
|
||||
.long 1014276997
|
||||
.long 3707479175
|
||||
.long 874520
|
||||
.long 3586233004
|
||||
.long 1015962192
|
||||
.long 64696965
|
||||
.long 895462
|
||||
.long 474650514
|
||||
.long 1016642419
|
||||
.long 863738718
|
||||
.long 916631
|
||||
.long 1614448851
|
||||
.long 1014281732
|
||||
.long 3884662774
|
||||
.long 938030
|
||||
.long 2450082086
|
||||
.long 1016164135
|
||||
.long 2728693977
|
||||
.long 959663
|
||||
.long 1101668360
|
||||
.long 1015989180
|
||||
.long 3999357479
|
||||
.long 981531
|
||||
.long 835814894
|
||||
.long 1015702697
|
||||
.long 1533953344
|
||||
.long 1003638
|
||||
.long 1301400989
|
||||
.long 1014466875
|
||||
.long 2174652632
|
||||
.long 1025985
|
||||
.long 0
|
||||
.long 1072693248
|
||||
.long 0
|
||||
.long 2146435072
|
||||
.long 0
|
||||
.long 0
|
||||
.long 4294967295
|
||||
.long 2146435071
|
||||
.long 0
|
||||
.long 1048576
|
||||
.type static_const_table,@object
|
||||
.size static_const_table,1224
|
||||
.data
|
||||
.section .note.GNU-stack, ""
|
||||
# End
|
780
libm/x86/e_log.S
780
libm/x86/e_log.S
|
@ -1,780 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2014, Intel Corporation
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/******************************************************************************/
|
||||
// ALGORITHM DESCRIPTION
|
||||
// ---------------------
|
||||
//
|
||||
// x=2^k * mx, mx in [1,2)
|
||||
//
|
||||
// Get B~1/mx based on the output of rcpss instruction (B0)
|
||||
// B = int((B0*2^7+0.5))/2^7
|
||||
//
|
||||
// Reduced argument: r=B*mx-1.0 (computed accurately in high and low parts)
|
||||
//
|
||||
// Result: k*log(2) - log(B) + p(r) if |x-1| >= small value (2^-6) and
|
||||
// p(r) is a degree 7 polynomial
|
||||
// -log(B) read from data table (high, low parts)
|
||||
// Result is formed from high and low parts
|
||||
//
|
||||
// Special cases:
|
||||
// log(NaN) = quiet NaN, and raise invalid exception
|
||||
// log(+INF) = that INF
|
||||
// log(0) = -INF with divide-by-zero exception raised
|
||||
// log(1) = +0
|
||||
// log(x) = NaN with invalid exception raised if x < -0, including -INF
|
||||
//
|
||||
/******************************************************************************/
|
||||
|
||||
#include <private/bionic_asm.h>
|
||||
# -- Begin static_func
|
||||
.text
|
||||
.align __bionic_asm_align
|
||||
.type static_func, @function
|
||||
static_func:
|
||||
..B1.1:
|
||||
call ..L2
|
||||
..L2:
|
||||
popl %eax
|
||||
lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
|
||||
lea static_const_table@GOTOFF(%eax), %eax
|
||||
ret
|
||||
.size static_func,.-static_func
|
||||
# -- End static_func
|
||||
|
||||
# -- Begin log
|
||||
ENTRY(log)
|
||||
# parameter 1: 8 + %ebp
|
||||
..B2.1:
|
||||
..B2.2:
|
||||
pushl %ebp
|
||||
movl %esp, %ebp
|
||||
subl $104, %esp
|
||||
movl %ebx, 40(%esp)
|
||||
call static_func
|
||||
movl %eax, %ebx
|
||||
xorpd %xmm2, %xmm2
|
||||
movl $16368, %eax
|
||||
pinsrw $3, %eax, %xmm2
|
||||
xorpd %xmm3, %xmm3
|
||||
movl $30704, %edx
|
||||
pinsrw $3, %edx, %xmm3
|
||||
movsd 112(%esp), %xmm0
|
||||
movapd %xmm0, %xmm1
|
||||
movl $32768, %ecx
|
||||
movd %ecx, %xmm4
|
||||
movsd 2128(%ebx), %xmm5
|
||||
pextrw $3, %xmm0, %eax
|
||||
orpd %xmm2, %xmm0
|
||||
psllq $5, %xmm0
|
||||
movl $16352, %ecx
|
||||
psrlq $34, %xmm0
|
||||
rcpss %xmm0, %xmm0
|
||||
psllq $12, %xmm1
|
||||
pshufd $228, %xmm5, %xmm6
|
||||
psrlq $12, %xmm1
|
||||
subl $16, %eax
|
||||
cmpl $32736, %eax
|
||||
jae .L_2TAG_PACKET_0.0.2
|
||||
.L_2TAG_PACKET_1.0.2:
|
||||
paddd %xmm4, %xmm0
|
||||
orpd %xmm3, %xmm1
|
||||
movd %xmm0, %edx
|
||||
psllq $29, %xmm0
|
||||
andpd %xmm1, %xmm5
|
||||
andpd %xmm6, %xmm0
|
||||
subsd %xmm5, %xmm1
|
||||
mulpd %xmm0, %xmm5
|
||||
andl $32752, %eax
|
||||
subl %ecx, %eax
|
||||
cvtsi2sdl %eax, %xmm7
|
||||
mulsd %xmm0, %xmm1
|
||||
movsd 2064(%ebx), %xmm6
|
||||
movapd 2080(%ebx), %xmm3
|
||||
subsd %xmm2, %xmm5
|
||||
andl $16711680, %edx
|
||||
shrl $12, %edx
|
||||
movapd (%ebx,%edx), %xmm0
|
||||
movapd 2096(%ebx), %xmm4
|
||||
addsd %xmm5, %xmm1
|
||||
movapd 2112(%ebx), %xmm2
|
||||
mulsd %xmm7, %xmm6
|
||||
pshufd $68, %xmm1, %xmm5
|
||||
mulsd 2072(%ebx), %xmm7
|
||||
mulsd %xmm1, %xmm3
|
||||
addsd %xmm6, %xmm0
|
||||
mulpd %xmm5, %xmm4
|
||||
mulpd %xmm5, %xmm5
|
||||
pshufd $228, %xmm0, %xmm6
|
||||
addsd %xmm1, %xmm0
|
||||
addpd %xmm2, %xmm4
|
||||
mulpd %xmm5, %xmm3
|
||||
subsd %xmm0, %xmm6
|
||||
mulsd %xmm1, %xmm4
|
||||
pshufd $238, %xmm0, %xmm2
|
||||
addsd %xmm6, %xmm1
|
||||
mulsd %xmm5, %xmm5
|
||||
addsd %xmm2, %xmm7
|
||||
addpd %xmm3, %xmm4
|
||||
addsd %xmm7, %xmm1
|
||||
mulpd %xmm5, %xmm4
|
||||
addsd %xmm4, %xmm1
|
||||
pshufd $238, %xmm4, %xmm5
|
||||
addsd %xmm5, %xmm1
|
||||
addsd %xmm1, %xmm0
|
||||
jmp .L_2TAG_PACKET_2.0.2
|
||||
.L_2TAG_PACKET_0.0.2:
|
||||
movsd 112(%esp), %xmm0
|
||||
movapd %xmm0, %xmm1
|
||||
addl $16, %eax
|
||||
cmpl $32768, %eax
|
||||
jae .L_2TAG_PACKET_3.0.2
|
||||
cmpl $16, %eax
|
||||
jb .L_2TAG_PACKET_4.0.2
|
||||
.L_2TAG_PACKET_5.0.2:
|
||||
addsd %xmm0, %xmm0
|
||||
jmp .L_2TAG_PACKET_2.0.2
|
||||
.L_2TAG_PACKET_6.0.2:
|
||||
ja .L_2TAG_PACKET_5.0.2
|
||||
cmpl $0, %edx
|
||||
ja .L_2TAG_PACKET_5.0.2
|
||||
jmp .L_2TAG_PACKET_7.0.2
|
||||
.L_2TAG_PACKET_3.0.2:
|
||||
movd %xmm1, %edx
|
||||
psrlq $32, %xmm1
|
||||
movd %xmm1, %ecx
|
||||
addl %ecx, %ecx
|
||||
cmpl $-2097152, %ecx
|
||||
jae .L_2TAG_PACKET_6.0.2
|
||||
orl %ecx, %edx
|
||||
cmpl $0, %edx
|
||||
je .L_2TAG_PACKET_8.0.2
|
||||
.L_2TAG_PACKET_7.0.2:
|
||||
xorpd %xmm1, %xmm1
|
||||
xorpd %xmm0, %xmm0
|
||||
movl $32752, %eax
|
||||
pinsrw $3, %eax, %xmm1
|
||||
movl $3, %edx
|
||||
mulsd %xmm1, %xmm0
|
||||
.L_2TAG_PACKET_9.0.2:
|
||||
movsd %xmm0, (%esp)
|
||||
movsd 112(%esp), %xmm0
|
||||
fldl (%esp)
|
||||
jmp .L_2TAG_PACKET_10.0.2
|
||||
.L_2TAG_PACKET_8.0.2:
|
||||
xorpd %xmm1, %xmm1
|
||||
xorpd %xmm0, %xmm0
|
||||
movl $49136, %eax
|
||||
pinsrw $3, %eax, %xmm0
|
||||
divsd %xmm1, %xmm0
|
||||
movl $2, %edx
|
||||
jmp .L_2TAG_PACKET_9.0.2
|
||||
.L_2TAG_PACKET_4.0.2:
|
||||
movd %xmm1, %edx
|
||||
psrlq $32, %xmm1
|
||||
movd %xmm1, %ecx
|
||||
orl %ecx, %edx
|
||||
cmpl $0, %edx
|
||||
je .L_2TAG_PACKET_8.0.2
|
||||
xorpd %xmm1, %xmm1
|
||||
movl $18416, %eax
|
||||
pinsrw $3, %eax, %xmm1
|
||||
mulsd %xmm1, %xmm0
|
||||
movapd %xmm0, %xmm1
|
||||
pextrw $3, %xmm0, %eax
|
||||
orpd %xmm2, %xmm0
|
||||
psllq $5, %xmm0
|
||||
movl $18416, %ecx
|
||||
psrlq $34, %xmm0
|
||||
rcpss %xmm0, %xmm0
|
||||
psllq $12, %xmm1
|
||||
pshufd $228, %xmm5, %xmm6
|
||||
psrlq $12, %xmm1
|
||||
jmp .L_2TAG_PACKET_1.0.2
|
||||
.L_2TAG_PACKET_2.0.2:
|
||||
movsd %xmm0, 24(%esp)
|
||||
fldl 24(%esp)
|
||||
.L_2TAG_PACKET_10.0.2:
|
||||
movl 40(%esp), %ebx
|
||||
movl %ebp, %esp
|
||||
popl %ebp
|
||||
ret
|
||||
..B2.3:
|
||||
END(log)
|
||||
# -- End log
|
||||
|
||||
# Start file scope ASM
|
||||
ALIAS_SYMBOL(logl, log);
|
||||
# End file scope ASM
|
||||
.section .rodata, "a"
|
||||
.align 16
|
||||
.align 16
|
||||
static_const_table:
|
||||
.long 4277811200
|
||||
.long 1072049730
|
||||
.long 2479318832
|
||||
.long 1026487127
|
||||
.long 2854492160
|
||||
.long 1072033410
|
||||
.long 215631550
|
||||
.long 1025638968
|
||||
.long 1547061248
|
||||
.long 1072017216
|
||||
.long 2886781435
|
||||
.long 1026423395
|
||||
.long 649825280
|
||||
.long 1072001146
|
||||
.long 4281533405
|
||||
.long 1024038923
|
||||
.long 646346752
|
||||
.long 1071985198
|
||||
.long 1562735921
|
||||
.long 1023790276
|
||||
.long 2203734016
|
||||
.long 1071969370
|
||||
.long 1838397691
|
||||
.long 3173936209
|
||||
.long 1872169984
|
||||
.long 1071953661
|
||||
.long 3981202460
|
||||
.long 1022325013
|
||||
.long 669557760
|
||||
.long 1071938069
|
||||
.long 4182597802
|
||||
.long 3173174122
|
||||
.long 4076413952
|
||||
.long 1071922591
|
||||
.long 1209029111
|
||||
.long 3170736207
|
||||
.long 556125184
|
||||
.long 1071907228
|
||||
.long 821086028
|
||||
.long 3173437049
|
||||
.long 204914688
|
||||
.long 1071891976
|
||||
.long 2097025986
|
||||
.long 3171071798
|
||||
.long 387545088
|
||||
.long 1071876834
|
||||
.long 3142936996
|
||||
.long 3173092218
|
||||
.long 2912783360
|
||||
.long 1071861800
|
||||
.long 2502420140
|
||||
.long 1024505919
|
||||
.long 1144260608
|
||||
.long 1071846874
|
||||
.long 3315658140
|
||||
.long 3173469843
|
||||
.long 1471209472
|
||||
.long 1071832053
|
||||
.long 129621009
|
||||
.long 3172443877
|
||||
.long 1829683200
|
||||
.long 1071817336
|
||||
.long 3885467693
|
||||
.long 1025535275
|
||||
.long 288676864
|
||||
.long 1071802722
|
||||
.long 86139472
|
||||
.long 3171639793
|
||||
.long 3636378624
|
||||
.long 1071788208
|
||||
.long 1850238587
|
||||
.long 1024654342
|
||||
.long 1606817792
|
||||
.long 1071773795
|
||||
.long 3388899795
|
||||
.long 3173675586
|
||||
.long 1236164608
|
||||
.long 1071759480
|
||||
.long 3983599207
|
||||
.long 1020046558
|
||||
.long 1089616896
|
||||
.long 1071745262
|
||||
.long 4171974224
|
||||
.long 1024773198
|
||||
.long 4143093760
|
||||
.long 1071731139
|
||||
.long 2727587401
|
||||
.long 3173965207
|
||||
.long 600267776
|
||||
.long 1071717112
|
||||
.long 3147685042
|
||||
.long 3173353031
|
||||
.long 2249313280
|
||||
.long 1071703177
|
||||
.long 125835074
|
||||
.long 1025255832
|
||||
.long 3805303808
|
||||
.long 1071689334
|
||||
.long 2289991207
|
||||
.long 1025460331
|
||||
.long 87278592
|
||||
.long 1071675583
|
||||
.long 1106114045
|
||||
.long 1025933602
|
||||
.long 3195405312
|
||||
.long 1071661920
|
||||
.long 3885316576
|
||||
.long 3171206239
|
||||
.long 3853649920
|
||||
.long 1071648346
|
||||
.long 2977069852
|
||||
.long 3171236771
|
||||
.long 2944026624
|
||||
.long 1071625048
|
||||
.long 1008093493
|
||||
.long 1023444474
|
||||
.long 3993180160
|
||||
.long 1071598247
|
||||
.long 1862355595
|
||||
.long 1024642533
|
||||
.long 1454641152
|
||||
.long 1071571617
|
||||
.long 1514603089
|
||||
.long 1026500596
|
||||
.long 3286085632
|
||||
.long 1071545154
|
||||
.long 1400028424
|
||||
.long 3173279056
|
||||
.long 438773760
|
||||
.long 1071518858
|
||||
.long 120727864
|
||||
.long 3172148914
|
||||
.long 1212979200
|
||||
.long 1071492725
|
||||
.long 1625055594
|
||||
.long 3172901933
|
||||
.long 1189017600
|
||||
.long 1071466754
|
||||
.long 3920062376
|
||||
.long 1025727407
|
||||
.long 403064832
|
||||
.long 1071440943
|
||||
.long 1053271728
|
||||
.long 3171391427
|
||||
.long 3343210496
|
||||
.long 1071415289
|
||||
.long 3243395502
|
||||
.long 3173627613
|
||||
.long 1765777408
|
||||
.long 1071389792
|
||||
.long 2145968512
|
||||
.long 1026354304
|
||||
.long 461430784
|
||||
.long 1071364449
|
||||
.long 4094322285
|
||||
.long 1026021467
|
||||
.long 71706624
|
||||
.long 1071339258
|
||||
.long 763632021
|
||||
.long 1024496933
|
||||
.long 1380503552
|
||||
.long 1071314217
|
||||
.long 1383547992
|
||||
.long 3173088453
|
||||
.long 1015732224
|
||||
.long 1071289325
|
||||
.long 3198646877
|
||||
.long 1025390322
|
||||
.long 35977216
|
||||
.long 1071264580
|
||||
.long 2141026805
|
||||
.long 1025754693
|
||||
.long 3927306240
|
||||
.long 1071239979
|
||||
.long 282116272
|
||||
.long 3173394334
|
||||
.long 1125341184
|
||||
.long 1071215523
|
||||
.long 2768427504
|
||||
.long 3172279059
|
||||
.long 1666971648
|
||||
.long 1071191208
|
||||
.long 786837629
|
||||
.long 3172427445
|
||||
.long 2827694080
|
||||
.long 1071167033
|
||||
.long 3857122416
|
||||
.long 3173014241
|
||||
.long 2003683328
|
||||
.long 1071142997
|
||||
.long 859010954
|
||||
.long 1026545007
|
||||
.long 1004017664
|
||||
.long 1071119098
|
||||
.long 3356644970
|
||||
.long 3173458064
|
||||
.long 1753020416
|
||||
.long 1071095334
|
||||
.long 788338552
|
||||
.long 1026157693
|
||||
.long 1992718336
|
||||
.long 1071071704
|
||||
.long 1239179443
|
||||
.long 1026394889
|
||||
.long 3870234624
|
||||
.long 1071048206
|
||||
.long 2082614663
|
||||
.long 1024926053
|
||||
.long 1050437632
|
||||
.long 1071024840
|
||||
.long 660007840
|
||||
.long 1025548499
|
||||
.long 188395520
|
||||
.long 1071001603
|
||||
.long 3878792704
|
||||
.long 3173889571
|
||||
.long 3747176448
|
||||
.long 1070978493
|
||||
.long 144991708
|
||||
.long 3171552042
|
||||
.long 1405669376
|
||||
.long 1070955511
|
||||
.long 3999088879
|
||||
.long 1025486317
|
||||
.long 121151488
|
||||
.long 1070932654
|
||||
.long 2170865497
|
||||
.long 1026473584
|
||||
.long 2652319744
|
||||
.long 1070909920
|
||||
.long 453695652
|
||||
.long 3173916809
|
||||
.long 3262236672
|
||||
.long 1070887309
|
||||
.long 157800053
|
||||
.long 3173984206
|
||||
.long 601221120
|
||||
.long 1070864820
|
||||
.long 3968917661
|
||||
.long 1023992886
|
||||
.long 1999843328
|
||||
.long 1070842450
|
||||
.long 3053895004
|
||||
.long 1024998228
|
||||
.long 1992167424
|
||||
.long 1070820199
|
||||
.long 2968614856
|
||||
.long 1024552653
|
||||
.long 3788726272
|
||||
.long 1070798065
|
||||
.long 3542170808
|
||||
.long 3173573242
|
||||
.long 2094829568
|
||||
.long 1070776048
|
||||
.long 1246758132
|
||||
.long 1026202874
|
||||
.long 288675840
|
||||
.long 1070754146
|
||||
.long 3747328950
|
||||
.long 1026331585
|
||||
.long 1829681152
|
||||
.long 1070732357
|
||||
.long 3125197546
|
||||
.long 1024100318
|
||||
.long 1666869248
|
||||
.long 1070710681
|
||||
.long 1363656119
|
||||
.long 1026336493
|
||||
.long 3417110528
|
||||
.long 1070689116
|
||||
.long 4154791553
|
||||
.long 1026267853
|
||||
.long 2183653376
|
||||
.long 1070667662
|
||||
.long 1671819292
|
||||
.long 3173785870
|
||||
.long 1734434816
|
||||
.long 1070646317
|
||||
.long 373091049
|
||||
.long 1025972363
|
||||
.long 1615681536
|
||||
.long 1070625080
|
||||
.long 384650897
|
||||
.long 1022926043
|
||||
.long 1445382144
|
||||
.long 1070603950
|
||||
.long 344320330
|
||||
.long 3172397196
|
||||
.long 1823715328
|
||||
.long 1070569756
|
||||
.long 3389841200
|
||||
.long 1025231852
|
||||
.long 3839688704
|
||||
.long 1070527917
|
||||
.long 1706790417
|
||||
.long 3167363349
|
||||
.long 4293332992
|
||||
.long 1070486286
|
||||
.long 1614935088
|
||||
.long 1019351591
|
||||
.long 2966720512
|
||||
.long 1070444861
|
||||
.long 4145393717
|
||||
.long 3173711658
|
||||
.long 4066729984
|
||||
.long 1070403639
|
||||
.long 1974925028
|
||||
.long 3171437182
|
||||
.long 3337621504
|
||||
.long 1070362619
|
||||
.long 3314953170
|
||||
.long 3169971314
|
||||
.long 943448064
|
||||
.long 1070321799
|
||||
.long 1498682038
|
||||
.long 3173862340
|
||||
.long 1465634816
|
||||
.long 1070281176
|
||||
.long 1319952810
|
||||
.long 3171693965
|
||||
.long 1015734272
|
||||
.long 1070240749
|
||||
.long 1347821929
|
||||
.long 3173544515
|
||||
.long 118001664
|
||||
.long 1070200516
|
||||
.long 1751482746
|
||||
.long 1026134093
|
||||
.long 3707174912
|
||||
.long 1070160474
|
||||
.long 1486946159
|
||||
.long 1023930920
|
||||
.long 3946381312
|
||||
.long 1070120623
|
||||
.long 2867408081
|
||||
.long 3171368276
|
||||
.long 1699848192
|
||||
.long 1070080961
|
||||
.long 2590187139
|
||||
.long 1025379803
|
||||
.long 2235846656
|
||||
.long 1070041485
|
||||
.long 1888568069
|
||||
.long 3172754960
|
||||
.long 2339729408
|
||||
.long 1070002194
|
||||
.long 3852214753
|
||||
.long 3173323149
|
||||
.long 3196850176
|
||||
.long 1069963086
|
||||
.long 742141560
|
||||
.long 1025101707
|
||||
.long 1800683520
|
||||
.long 1069924160
|
||||
.long 3949500444
|
||||
.long 3172102179
|
||||
.long 3835801600
|
||||
.long 1069885413
|
||||
.long 3848895943
|
||||
.long 1025913832
|
||||
.long 2201202688
|
||||
.long 1069846845
|
||||
.long 1425913464
|
||||
.long 1025868665
|
||||
.long 2778279936
|
||||
.long 1069808453
|
||||
.long 2120889677
|
||||
.long 3173831128
|
||||
.long 2954203136
|
||||
.long 1069770236
|
||||
.long 592147081
|
||||
.long 1019621288
|
||||
.long 210141184
|
||||
.long 1069732193
|
||||
.long 3414275233
|
||||
.long 1023647084
|
||||
.long 709476352
|
||||
.long 1069694321
|
||||
.long 2413027164
|
||||
.long 1024462115
|
||||
.long 2116284416
|
||||
.long 1069656619
|
||||
.long 1144559924
|
||||
.long 1026336654
|
||||
.long 2183651328
|
||||
.long 1069619086
|
||||
.long 3459057650
|
||||
.long 1025634168
|
||||
.long 3047047168
|
||||
.long 1069581720
|
||||
.long 1879674924
|
||||
.long 3173508573
|
||||
.long 970711040
|
||||
.long 1069541521
|
||||
.long 1335954173
|
||||
.long 3173332182
|
||||
.long 2198478848
|
||||
.long 1069467449
|
||||
.long 2951103968
|
||||
.long 3173892200
|
||||
.long 1669611520
|
||||
.long 1069393703
|
||||
.long 531044147
|
||||
.long 1025149248
|
||||
.long 29114368
|
||||
.long 1069320280
|
||||
.long 3327831251
|
||||
.long 1025918673
|
||||
.long 2376949760
|
||||
.long 1069247176
|
||||
.long 737634533
|
||||
.long 3172176000
|
||||
.long 1085390848
|
||||
.long 1069174390
|
||||
.long 3108243400
|
||||
.long 3171828406
|
||||
.long 1566130176
|
||||
.long 1069101918
|
||||
.long 985483226
|
||||
.long 1025708380
|
||||
.long 792780800
|
||||
.long 1069029758
|
||||
.long 4184866295
|
||||
.long 1024426204
|
||||
.long 183156736
|
||||
.long 1068957907
|
||||
.long 2845699378
|
||||
.long 1022107277
|
||||
.long 1301782528
|
||||
.long 1068886362
|
||||
.long 1012735262
|
||||
.long 3173804294
|
||||
.long 1562411008
|
||||
.long 1068815121
|
||||
.long 2197086703
|
||||
.long 3170187813
|
||||
.long 2815549440
|
||||
.long 1068744181
|
||||
.long 2782613207
|
||||
.long 1026345054
|
||||
.long 2756124672
|
||||
.long 1068673540
|
||||
.long 2929486205
|
||||
.long 3173037800
|
||||
.long 3511050240
|
||||
.long 1068603195
|
||||
.long 1443733147
|
||||
.long 3173331549
|
||||
.long 3047047168
|
||||
.long 1068533144
|
||||
.long 1879674924
|
||||
.long 3172459997
|
||||
.long 3221667840
|
||||
.long 1068427825
|
||||
.long 1338588027
|
||||
.long 3171815742
|
||||
.long 3453861888
|
||||
.long 1068288883
|
||||
.long 1205348359
|
||||
.long 3172624626
|
||||
.long 3506110464
|
||||
.long 1068150514
|
||||
.long 893105198
|
||||
.long 1025571866
|
||||
.long 346013696
|
||||
.long 1068012714
|
||||
.long 3495569021
|
||||
.long 3172563349
|
||||
.long 4074029056
|
||||
.long 1067875476
|
||||
.long 3961106338
|
||||
.long 3171065595
|
||||
.long 3559784448
|
||||
.long 1067738798
|
||||
.long 1975385384
|
||||
.long 3173783155
|
||||
.long 797769728
|
||||
.long 1067602675
|
||||
.long 3760305787
|
||||
.long 1026047642
|
||||
.long 2313633792
|
||||
.long 1067467101
|
||||
.long 1559353171
|
||||
.long 1023480256
|
||||
.long 3960766464
|
||||
.long 1067213778
|
||||
.long 1067365107
|
||||
.long 1025865926
|
||||
.long 684261376
|
||||
.long 1066944805
|
||||
.long 844762164
|
||||
.long 3173687482
|
||||
.long 630718464
|
||||
.long 1066676905
|
||||
.long 2458269694
|
||||
.long 1024033081
|
||||
.long 1486061568
|
||||
.long 1066410070
|
||||
.long 115537874
|
||||
.long 3173243995
|
||||
.long 2743664640
|
||||
.long 1065886792
|
||||
.long 3665098304
|
||||
.long 3173471607
|
||||
.long 1971912704
|
||||
.long 1065357333
|
||||
.long 2577214440
|
||||
.long 3171993451
|
||||
.long 1498939392
|
||||
.long 1064306693
|
||||
.long 3409036923
|
||||
.long 1025599151
|
||||
.long 0
|
||||
.long 0
|
||||
.long 0
|
||||
.long 2147483648
|
||||
.long 4277811200
|
||||
.long 1067855426
|
||||
.long 2479318832
|
||||
.long 1022292823
|
||||
.long 2454267026
|
||||
.long 1069697316
|
||||
.long 0
|
||||
.long 3218079744
|
||||
.long 1030730101
|
||||
.long 3217380702
|
||||
.long 1431655765
|
||||
.long 1070945621
|
||||
.long 2576980378
|
||||
.long 1070176665
|
||||
.long 0
|
||||
.long 3219128320
|
||||
.long 0
|
||||
.long 4294959104
|
||||
.long 0
|
||||
.long 4294959104
|
||||
.type static_const_table,@object
|
||||
.size static_const_table,2144
|
||||
.data
|
||||
.section .note.GNU-stack, ""
|
||||
# End
|
4277
libm/x86/e_pow.S
4277
libm/x86/e_pow.S
File diff suppressed because it is too large
Load diff
|
@ -1,636 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2014, Intel Corporation
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/******************************************************************************/
|
||||
// ALGORITHM DESCRIPTION
|
||||
// ---------------------
|
||||
//
|
||||
// Description:
|
||||
// Let K = 64 (table size).
|
||||
// x x/log(2) n
|
||||
// e = 2 = 2 * T[j] * (1 + P(y))
|
||||
// where
|
||||
// x = m*log(2)/K + y, y in [-log(2)/K..log(2)/K]
|
||||
// m = n*K + j, m,n,j - signed integer, j in [-K/2..K/2]
|
||||
// j/K
|
||||
// values of 2 are tabulated as T[j] = T_hi[j] ( 1 + T_lo[j]).
|
||||
//
|
||||
// P(y) is a minimax polynomial approximation of exp(x)-1
|
||||
// on small interval [-log(2)/K..log(2)/K] (were calculated by Maple V).
|
||||
//
|
||||
// To avoid problems with arithmetic overflow and underflow,
|
||||
// n n1 n2
|
||||
// value of 2 is safely computed as 2 * 2 where n1 in [-BIAS/2..BIAS/2]
|
||||
// where BIAS is a value of exponent bias.
|
||||
//
|
||||
// Special cases:
|
||||
// exp(NaN) = NaN
|
||||
// exp(+INF) = +INF
|
||||
// exp(-INF) = 0
|
||||
// exp(x) = 1 for subnormals
|
||||
// for finite argument, only exp(0)=1 is exact
|
||||
// For IEEE double
|
||||
// if x > 709.782712893383973096 then exp(x) overflow
|
||||
// if x < -745.133219101941108420 then exp(x) underflow
|
||||
//
|
||||
/******************************************************************************/
|
||||
|
||||
#include <private/bionic_asm.h>
|
||||
# -- Begin exp
|
||||
ENTRY(exp)
|
||||
# parameter 1: %xmm0
|
||||
..B1.1:
|
||||
..___tag_value_exp.1:
|
||||
subq $24, %rsp
|
||||
..___tag_value_exp.3:
|
||||
movsd %xmm0, 8(%rsp)
|
||||
..B1.2:
|
||||
unpcklpd %xmm0, %xmm0
|
||||
movapd cv(%rip), %xmm1
|
||||
movapd Shifter(%rip), %xmm6
|
||||
movapd 16+cv(%rip), %xmm2
|
||||
movapd 32+cv(%rip), %xmm3
|
||||
pextrw $3, %xmm0, %eax
|
||||
andl $32767, %eax
|
||||
movl $16527, %edx
|
||||
subl %eax, %edx
|
||||
subl $15504, %eax
|
||||
orl %eax, %edx
|
||||
cmpl $-2147483648, %edx
|
||||
jae .L_2TAG_PACKET_0.0.2
|
||||
mulpd %xmm0, %xmm1
|
||||
addpd %xmm6, %xmm1
|
||||
movapd %xmm1, %xmm7
|
||||
subpd %xmm6, %xmm1
|
||||
mulpd %xmm1, %xmm2
|
||||
movapd 64+cv(%rip), %xmm4
|
||||
mulpd %xmm1, %xmm3
|
||||
movapd 80+cv(%rip), %xmm5
|
||||
subpd %xmm2, %xmm0
|
||||
movd %xmm7, %eax
|
||||
movl %eax, %ecx
|
||||
andl $63, %ecx
|
||||
shll $4, %ecx
|
||||
sarl $6, %eax
|
||||
movl %eax, %edx
|
||||
movdqa mmask(%rip), %xmm6
|
||||
pand %xmm6, %xmm7
|
||||
movdqa bias(%rip), %xmm6
|
||||
paddq %xmm6, %xmm7
|
||||
psllq $46, %xmm7
|
||||
subpd %xmm3, %xmm0
|
||||
lea Tbl_addr(%rip), %r8
|
||||
movapd (%rcx,%r8), %xmm2
|
||||
mulpd %xmm0, %xmm4
|
||||
movapd %xmm0, %xmm6
|
||||
movapd %xmm0, %xmm1
|
||||
mulpd %xmm6, %xmm6
|
||||
mulpd %xmm6, %xmm0
|
||||
addpd %xmm4, %xmm5
|
||||
mulsd %xmm6, %xmm0
|
||||
mulpd 48+cv(%rip), %xmm6
|
||||
addsd %xmm2, %xmm1
|
||||
unpckhpd %xmm2, %xmm2
|
||||
mulpd %xmm5, %xmm0
|
||||
addsd %xmm0, %xmm1
|
||||
orpd %xmm7, %xmm2
|
||||
unpckhpd %xmm0, %xmm0
|
||||
addsd %xmm1, %xmm0
|
||||
addsd %xmm6, %xmm0
|
||||
addl $894, %edx
|
||||
cmpl $1916, %edx
|
||||
ja .L_2TAG_PACKET_1.0.2
|
||||
mulsd %xmm2, %xmm0
|
||||
addsd %xmm2, %xmm0
|
||||
jmp ..B1.5
|
||||
.L_2TAG_PACKET_1.0.2:
|
||||
xorpd %xmm3, %xmm3
|
||||
movapd ALLONES(%rip), %xmm4
|
||||
movl $-1022, %edx
|
||||
subl %eax, %edx
|
||||
movd %edx, %xmm5
|
||||
psllq %xmm5, %xmm4
|
||||
movl %eax, %ecx
|
||||
sarl $1, %eax
|
||||
pinsrw $3, %eax, %xmm3
|
||||
movapd ebias(%rip), %xmm6
|
||||
psllq $4, %xmm3
|
||||
psubd %xmm3, %xmm2
|
||||
mulsd %xmm2, %xmm0
|
||||
cmpl $52, %edx
|
||||
jg .L_2TAG_PACKET_2.0.2
|
||||
andpd %xmm2, %xmm4
|
||||
paddd %xmm6, %xmm3
|
||||
subsd %xmm4, %xmm2
|
||||
addsd %xmm2, %xmm0
|
||||
cmpl $1023, %ecx
|
||||
jge .L_2TAG_PACKET_3.0.2
|
||||
pextrw $3, %xmm0, %ecx
|
||||
andl $32768, %ecx
|
||||
orl %ecx, %edx
|
||||
cmpl $0, %edx
|
||||
je .L_2TAG_PACKET_4.0.2
|
||||
movapd %xmm0, %xmm6
|
||||
addsd %xmm4, %xmm0
|
||||
mulsd %xmm3, %xmm0
|
||||
pextrw $3, %xmm0, %ecx
|
||||
andl $32752, %ecx
|
||||
cmpl $0, %ecx
|
||||
je .L_2TAG_PACKET_5.0.2
|
||||
jmp ..B1.5
|
||||
.L_2TAG_PACKET_5.0.2:
|
||||
mulsd %xmm3, %xmm6
|
||||
mulsd %xmm3, %xmm4
|
||||
movq %xmm6, %xmm0
|
||||
pxor %xmm4, %xmm6
|
||||
psrad $31, %xmm6
|
||||
pshufd $85, %xmm6, %xmm6
|
||||
psllq $1, %xmm0
|
||||
psrlq $1, %xmm0
|
||||
pxor %xmm6, %xmm0
|
||||
psrlq $63, %xmm6
|
||||
paddq %xmm6, %xmm0
|
||||
paddq %xmm4, %xmm0
|
||||
movl $15, (%rsp)
|
||||
jmp .L_2TAG_PACKET_6.0.2
|
||||
.L_2TAG_PACKET_4.0.2:
|
||||
addsd %xmm4, %xmm0
|
||||
mulsd %xmm3, %xmm0
|
||||
jmp ..B1.5
|
||||
.L_2TAG_PACKET_3.0.2:
|
||||
addsd %xmm4, %xmm0
|
||||
mulsd %xmm3, %xmm0
|
||||
pextrw $3, %xmm0, %ecx
|
||||
andl $32752, %ecx
|
||||
cmpl $32752, %ecx
|
||||
jnb .L_2TAG_PACKET_7.0.2
|
||||
jmp ..B1.5
|
||||
.L_2TAG_PACKET_2.0.2:
|
||||
paddd %xmm6, %xmm3
|
||||
addpd %xmm2, %xmm0
|
||||
mulsd %xmm3, %xmm0
|
||||
movl $15, (%rsp)
|
||||
jmp .L_2TAG_PACKET_6.0.2
|
||||
.L_2TAG_PACKET_8.0.2:
|
||||
cmpl $2146435072, %eax
|
||||
jae .L_2TAG_PACKET_9.0.2
|
||||
movl 12(%rsp), %eax
|
||||
cmpl $-2147483648, %eax
|
||||
jae .L_2TAG_PACKET_10.0.2
|
||||
movsd XMAX(%rip), %xmm0
|
||||
mulsd %xmm0, %xmm0
|
||||
.L_2TAG_PACKET_7.0.2:
|
||||
movl $14, (%rsp)
|
||||
jmp .L_2TAG_PACKET_6.0.2
|
||||
.L_2TAG_PACKET_10.0.2:
|
||||
movsd XMIN(%rip), %xmm0
|
||||
mulsd %xmm0, %xmm0
|
||||
movl $15, (%rsp)
|
||||
jmp .L_2TAG_PACKET_6.0.2
|
||||
.L_2TAG_PACKET_9.0.2:
|
||||
movl 8(%rsp), %edx
|
||||
cmpl $2146435072, %eax
|
||||
ja .L_2TAG_PACKET_11.0.2
|
||||
cmpl $0, %edx
|
||||
jne .L_2TAG_PACKET_11.0.2
|
||||
movl 12(%rsp), %eax
|
||||
cmpl $2146435072, %eax
|
||||
jne .L_2TAG_PACKET_12.0.2
|
||||
movsd INF(%rip), %xmm0
|
||||
jmp ..B1.5
|
||||
.L_2TAG_PACKET_12.0.2:
|
||||
movsd ZERO(%rip), %xmm0
|
||||
jmp ..B1.5
|
||||
.L_2TAG_PACKET_11.0.2:
|
||||
movsd 8(%rsp), %xmm0
|
||||
addsd %xmm0, %xmm0
|
||||
jmp ..B1.5
|
||||
.L_2TAG_PACKET_0.0.2:
|
||||
movl 12(%rsp), %eax
|
||||
andl $2147483647, %eax
|
||||
cmpl $1083179008, %eax
|
||||
jae .L_2TAG_PACKET_8.0.2
|
||||
movsd 8(%rsp), %xmm0
|
||||
addsd ONE_val(%rip), %xmm0
|
||||
jmp ..B1.5
|
||||
.L_2TAG_PACKET_6.0.2:
|
||||
movq %xmm0, 16(%rsp)
|
||||
..B1.3:
|
||||
movq 16(%rsp), %xmm0
|
||||
.L_2TAG_PACKET_13.0.2:
|
||||
..B1.5:
|
||||
addq $24, %rsp
|
||||
..___tag_value_exp.4:
|
||||
ret
|
||||
..___tag_value_exp.5:
|
||||
END(exp)
|
||||
# -- End exp
|
||||
.section .rodata, "a"
|
||||
.align 16
|
||||
.align 16
|
||||
cv:
|
||||
.long 1697350398
|
||||
.long 1079448903
|
||||
.long 1697350398
|
||||
.long 1079448903
|
||||
.long 4277796864
|
||||
.long 1065758274
|
||||
.long 4277796864
|
||||
.long 1065758274
|
||||
.long 3164486458
|
||||
.long 1025308570
|
||||
.long 3164486458
|
||||
.long 1025308570
|
||||
.long 4294967294
|
||||
.long 1071644671
|
||||
.long 4294967294
|
||||
.long 1071644671
|
||||
.long 3811088480
|
||||
.long 1062650204
|
||||
.long 1432067621
|
||||
.long 1067799893
|
||||
.long 3230715663
|
||||
.long 1065423125
|
||||
.long 1431604129
|
||||
.long 1069897045
|
||||
.type cv,@object
|
||||
.size cv,96
|
||||
.align 16
|
||||
Shifter:
|
||||
.long 0
|
||||
.long 1127743488
|
||||
.long 0
|
||||
.long 1127743488
|
||||
.type Shifter,@object
|
||||
.size Shifter,16
|
||||
.align 16
|
||||
mmask:
|
||||
.long 4294967232
|
||||
.long 0
|
||||
.long 4294967232
|
||||
.long 0
|
||||
.type mmask,@object
|
||||
.size mmask,16
|
||||
.align 16
|
||||
bias:
|
||||
.long 65472
|
||||
.long 0
|
||||
.long 65472
|
||||
.long 0
|
||||
.type bias,@object
|
||||
.size bias,16
|
||||
.align 16
|
||||
Tbl_addr:
|
||||
.long 0
|
||||
.long 0
|
||||
.long 0
|
||||
.long 0
|
||||
.long 235107661
|
||||
.long 1018002367
|
||||
.long 1048019040
|
||||
.long 11418
|
||||
.long 896005651
|
||||
.long 1015861842
|
||||
.long 3541402996
|
||||
.long 22960
|
||||
.long 1642514529
|
||||
.long 1012987726
|
||||
.long 410360776
|
||||
.long 34629
|
||||
.long 1568897900
|
||||
.long 1016568486
|
||||
.long 1828292879
|
||||
.long 46424
|
||||
.long 1882168529
|
||||
.long 1010744893
|
||||
.long 852742562
|
||||
.long 58348
|
||||
.long 509852888
|
||||
.long 1017336174
|
||||
.long 3490863952
|
||||
.long 70401
|
||||
.long 653277307
|
||||
.long 1017431380
|
||||
.long 2930322911
|
||||
.long 82586
|
||||
.long 1649557430
|
||||
.long 1017729363
|
||||
.long 1014845818
|
||||
.long 94904
|
||||
.long 1058231231
|
||||
.long 1015777676
|
||||
.long 3949972341
|
||||
.long 107355
|
||||
.long 1044000607
|
||||
.long 1016786167
|
||||
.long 828946858
|
||||
.long 119943
|
||||
.long 1151779725
|
||||
.long 1015705409
|
||||
.long 2288159958
|
||||
.long 132667
|
||||
.long 3819481236
|
||||
.long 1016499965
|
||||
.long 1853186616
|
||||
.long 145530
|
||||
.long 2552227826
|
||||
.long 1015039787
|
||||
.long 1709341917
|
||||
.long 158533
|
||||
.long 1829350193
|
||||
.long 1015216097
|
||||
.long 4112506593
|
||||
.long 171677
|
||||
.long 1913391795
|
||||
.long 1015756674
|
||||
.long 2799960843
|
||||
.long 184965
|
||||
.long 1303423926
|
||||
.long 1015238005
|
||||
.long 171030293
|
||||
.long 198398
|
||||
.long 1574172746
|
||||
.long 1016061241
|
||||
.long 2992903935
|
||||
.long 211976
|
||||
.long 3424156969
|
||||
.long 1017196428
|
||||
.long 926591434
|
||||
.long 225703
|
||||
.long 1938513547
|
||||
.long 1017631273
|
||||
.long 887463926
|
||||
.long 239579
|
||||
.long 2804567149
|
||||
.long 1015390024
|
||||
.long 1276261410
|
||||
.long 253606
|
||||
.long 631083525
|
||||
.long 1017690182
|
||||
.long 569847337
|
||||
.long 267786
|
||||
.long 1623370770
|
||||
.long 1011049453
|
||||
.long 1617004845
|
||||
.long 282120
|
||||
.long 3667985273
|
||||
.long 1013894369
|
||||
.long 3049340112
|
||||
.long 296610
|
||||
.long 3145379760
|
||||
.long 1014403278
|
||||
.long 3577096743
|
||||
.long 311258
|
||||
.long 2603100681
|
||||
.long 1017152460
|
||||
.long 1990012070
|
||||
.long 326066
|
||||
.long 3249202951
|
||||
.long 1017448880
|
||||
.long 1453150081
|
||||
.long 341035
|
||||
.long 419288974
|
||||
.long 1016280325
|
||||
.long 917841882
|
||||
.long 356167
|
||||
.long 3793507337
|
||||
.long 1016095713
|
||||
.long 3712504873
|
||||
.long 371463
|
||||
.long 728023093
|
||||
.long 1016345318
|
||||
.long 363667784
|
||||
.long 386927
|
||||
.long 2582678538
|
||||
.long 1017123460
|
||||
.long 2956612996
|
||||
.long 402558
|
||||
.long 7592966
|
||||
.long 1016721543
|
||||
.long 2186617380
|
||||
.long 418360
|
||||
.long 228611441
|
||||
.long 1016696141
|
||||
.long 1719614412
|
||||
.long 434334
|
||||
.long 2261665670
|
||||
.long 1017457593
|
||||
.long 1013258798
|
||||
.long 450482
|
||||
.long 544148907
|
||||
.long 1017323666
|
||||
.long 3907805043
|
||||
.long 466805
|
||||
.long 2383914918
|
||||
.long 1017143586
|
||||
.long 1447192520
|
||||
.long 483307
|
||||
.long 1176412038
|
||||
.long 1017267372
|
||||
.long 1944781190
|
||||
.long 499988
|
||||
.long 2882956373
|
||||
.long 1013312481
|
||||
.long 919555682
|
||||
.long 516851
|
||||
.long 3154077648
|
||||
.long 1016528543
|
||||
.long 2571947538
|
||||
.long 533897
|
||||
.long 348651999
|
||||
.long 1016405780
|
||||
.long 2604962540
|
||||
.long 551129
|
||||
.long 3253791412
|
||||
.long 1015920431
|
||||
.long 1110089947
|
||||
.long 568549
|
||||
.long 1509121860
|
||||
.long 1014756995
|
||||
.long 2568320822
|
||||
.long 586158
|
||||
.long 2617649212
|
||||
.long 1017340090
|
||||
.long 2966275556
|
||||
.long 603959
|
||||
.long 553214634
|
||||
.long 1016457425
|
||||
.long 2682146383
|
||||
.long 621954
|
||||
.long 730975783
|
||||
.long 1014083580
|
||||
.long 2191782032
|
||||
.long 640145
|
||||
.long 1486499517
|
||||
.long 1016818996
|
||||
.long 2069751140
|
||||
.long 658534
|
||||
.long 2595788928
|
||||
.long 1016407932
|
||||
.long 2990417244
|
||||
.long 677123
|
||||
.long 1853053619
|
||||
.long 1015310724
|
||||
.long 1434058175
|
||||
.long 695915
|
||||
.long 2462790535
|
||||
.long 1015814775
|
||||
.long 2572866477
|
||||
.long 714911
|
||||
.long 3693944214
|
||||
.long 1017259110
|
||||
.long 3092190714
|
||||
.long 734114
|
||||
.long 2979333550
|
||||
.long 1017188654
|
||||
.long 4076559942
|
||||
.long 753526
|
||||
.long 174054861
|
||||
.long 1014300631
|
||||
.long 2420883922
|
||||
.long 773150
|
||||
.long 816778419
|
||||
.long 1014197934
|
||||
.long 3716502172
|
||||
.long 792987
|
||||
.long 3507050924
|
||||
.long 1015341199
|
||||
.long 777507147
|
||||
.long 813041
|
||||
.long 1821514088
|
||||
.long 1013410604
|
||||
.long 3706687593
|
||||
.long 833312
|
||||
.long 920623539
|
||||
.long 1016295433
|
||||
.long 1242007931
|
||||
.long 853805
|
||||
.long 2789017511
|
||||
.long 1014276997
|
||||
.long 3707479175
|
||||
.long 874520
|
||||
.long 3586233004
|
||||
.long 1015962192
|
||||
.long 64696965
|
||||
.long 895462
|
||||
.long 474650514
|
||||
.long 1016642419
|
||||
.long 863738718
|
||||
.long 916631
|
||||
.long 1614448851
|
||||
.long 1014281732
|
||||
.long 3884662774
|
||||
.long 938030
|
||||
.long 2450082086
|
||||
.long 1016164135
|
||||
.long 2728693977
|
||||
.long 959663
|
||||
.long 1101668360
|
||||
.long 1015989180
|
||||
.long 3999357479
|
||||
.long 981531
|
||||
.long 835814894
|
||||
.long 1015702697
|
||||
.long 1533953344
|
||||
.long 1003638
|
||||
.long 1301400989
|
||||
.long 1014466875
|
||||
.long 2174652632
|
||||
.long 1025985
|
||||
.type Tbl_addr,@object
|
||||
.size Tbl_addr,1024
|
||||
.align 16
|
||||
ALLONES:
|
||||
.long 4294967295
|
||||
.long 4294967295
|
||||
.long 4294967295
|
||||
.long 4294967295
|
||||
.type ALLONES,@object
|
||||
.size ALLONES,16
|
||||
.align 16
|
||||
ebias:
|
||||
.long 0
|
||||
.long 1072693248
|
||||
.long 0
|
||||
.long 1072693248
|
||||
.type ebias,@object
|
||||
.size ebias,16
|
||||
.align 4
|
||||
XMAX:
|
||||
.long 4294967295
|
||||
.long 2146435071
|
||||
.type XMAX,@object
|
||||
.size XMAX,8
|
||||
.align 4
|
||||
XMIN:
|
||||
.long 0
|
||||
.long 1048576
|
||||
.type XMIN,@object
|
||||
.size XMIN,8
|
||||
.align 4
|
||||
INF:
|
||||
.long 0
|
||||
.long 2146435072
|
||||
.type INF,@object
|
||||
.size INF,8
|
||||
.align 4
|
||||
ZERO:
|
||||
.long 0
|
||||
.long 0
|
||||
.type ZERO,@object
|
||||
.size ZERO,8
|
||||
.align 4
|
||||
ONE_val:
|
||||
.long 0
|
||||
.long 1072693248
|
||||
.type ONE_val,@object
|
||||
.size ONE_val,8
|
||||
.data
|
||||
.section .note.GNU-stack, ""
|
||||
// -- Begin DWARF2 SEGMENT .eh_frame
|
||||
.section .eh_frame,"a",@progbits
|
||||
.eh_frame_seg:
|
||||
.align 1
|
||||
.4byte 0x00000014
|
||||
.8byte 0x00527a0100000000
|
||||
.8byte 0x08070c1b01107801
|
||||
.4byte 0x00000190
|
||||
.4byte 0x0000001c
|
||||
.4byte 0x0000001c
|
||||
.4byte ..___tag_value_exp.1-.
|
||||
.4byte ..___tag_value_exp.5-..___tag_value_exp.1
|
||||
.2byte 0x0400
|
||||
.4byte ..___tag_value_exp.3-..___tag_value_exp.1
|
||||
.2byte 0x200e
|
||||
.byte 0x04
|
||||
.4byte ..___tag_value_exp.4-..___tag_value_exp.3
|
||||
.2byte 0x080e
|
||||
.byte 0x00
|
||||
# End
|
|
@ -1,779 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2014, Intel Corporation
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of Intel Corporation nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/******************************************************************************/
|
||||
// ALGORITHM DESCRIPTION
|
||||
// ---------------------
|
||||
//
|
||||
// x=2^k * mx, mx in [1,2)
|
||||
//
|
||||
// Get B~1/mx based on the output of rcpss instruction (B0)
|
||||
// B = int((B0*2^7+0.5))/2^7
|
||||
//
|
||||
// Reduced argument: r=B*mx-1.0 (computed accurately in high and low parts)
|
||||
//
|
||||
// Result: k*log(2) - log(B) + p(r) if |x-1| >= small value (2^-6) and
|
||||
// p(r) is a degree 7 polynomial
|
||||
// -log(B) read from data table (high, low parts)
|
||||
// Result is formed from high and low parts
|
||||
//
|
||||
// Special cases:
|
||||
// log(NaN) = quiet NaN, and raise invalid exception
|
||||
// log(+INF) = that INF
|
||||
// log(0) = -INF with divide-by-zero exception raised
|
||||
// log(1) = +0
|
||||
// log(x) = NaN with invalid exception raised if x < -0, including -INF
|
||||
//
|
||||
/******************************************************************************/
|
||||
|
||||
#include <private/bionic_asm.h>
|
||||
# -- Begin log
|
||||
ENTRY(log)
|
||||
# parameter 1: %xmm0
|
||||
..B1.1:
|
||||
..___tag_value_log.1:
|
||||
subq $24, %rsp
|
||||
..___tag_value_log.3:
|
||||
movsd %xmm0, (%rsp)
|
||||
..B1.2:
|
||||
movq $0x3ff0000000000000, %rax
|
||||
movd %rax, %xmm2
|
||||
movq $0x77f0000000000000, %rdx
|
||||
movd %rdx, %xmm3
|
||||
movl $32768, %ecx
|
||||
movd %rcx, %xmm4
|
||||
movq $0xffffe00000000000, %r8
|
||||
movd %r8, %xmm5
|
||||
movq %xmm0, %xmm1
|
||||
pextrw $3, %xmm0, %eax
|
||||
orpd %xmm2, %xmm0
|
||||
movl $16352, %ecx
|
||||
psrlq $27, %xmm0
|
||||
lea L_tbl(%rip), %r11
|
||||
psrld $2, %xmm0
|
||||
rcpps %xmm0, %xmm0
|
||||
psllq $12, %xmm1
|
||||
pshufd $228, %xmm5, %xmm6
|
||||
psrlq $12, %xmm1
|
||||
subl $16, %eax
|
||||
cmpl $32736, %eax
|
||||
jae .L_2TAG_PACKET_0.0.2
|
||||
.L_2TAG_PACKET_1.0.2:
|
||||
paddd %xmm4, %xmm0
|
||||
orpd %xmm3, %xmm1
|
||||
movd %xmm0, %edx
|
||||
psllq $29, %xmm0
|
||||
andpd %xmm1, %xmm5
|
||||
andpd %xmm6, %xmm0
|
||||
subsd %xmm5, %xmm1
|
||||
mulpd %xmm0, %xmm5
|
||||
andl $32752, %eax
|
||||
subl %ecx, %eax
|
||||
cvtsi2sd %eax, %xmm7
|
||||
mulsd %xmm0, %xmm1
|
||||
movq log2(%rip), %xmm6
|
||||
movapd coeff(%rip), %xmm3
|
||||
subsd %xmm2, %xmm5
|
||||
andl $16711680, %edx
|
||||
shrl $12, %edx
|
||||
movapd (%r11,%rdx), %xmm0
|
||||
movapd 16+coeff(%rip), %xmm4
|
||||
addsd %xmm5, %xmm1
|
||||
movapd 32+coeff(%rip), %xmm2
|
||||
mulsd %xmm7, %xmm6
|
||||
movddup %xmm1, %xmm5
|
||||
mulsd 8+log2(%rip), %xmm7
|
||||
mulsd %xmm1, %xmm3
|
||||
addsd %xmm6, %xmm0
|
||||
mulpd %xmm5, %xmm4
|
||||
mulpd %xmm5, %xmm5
|
||||
movddup %xmm0, %xmm6
|
||||
addsd %xmm1, %xmm0
|
||||
addpd %xmm2, %xmm4
|
||||
mulpd %xmm5, %xmm3
|
||||
subsd %xmm0, %xmm6
|
||||
mulsd %xmm1, %xmm4
|
||||
pshufd $238, %xmm0, %xmm2
|
||||
addsd %xmm6, %xmm1
|
||||
mulsd %xmm5, %xmm5
|
||||
addsd %xmm2, %xmm7
|
||||
addpd %xmm3, %xmm4
|
||||
addsd %xmm7, %xmm1
|
||||
mulpd %xmm5, %xmm4
|
||||
addsd %xmm4, %xmm1
|
||||
pshufd $238, %xmm4, %xmm5
|
||||
addsd %xmm5, %xmm1
|
||||
addsd %xmm1, %xmm0
|
||||
jmp ..B1.5
|
||||
.L_2TAG_PACKET_0.0.2:
|
||||
movq (%rsp), %xmm0
|
||||
movq (%rsp), %xmm1
|
||||
addl $16, %eax
|
||||
cmpl $32768, %eax
|
||||
jae .L_2TAG_PACKET_2.0.2
|
||||
cmpl $16, %eax
|
||||
jb .L_2TAG_PACKET_3.0.2
|
||||
.L_2TAG_PACKET_4.0.2:
|
||||
addsd %xmm0, %xmm0
|
||||
jmp ..B1.5
|
||||
.L_2TAG_PACKET_5.0.2:
|
||||
ja .L_2TAG_PACKET_4.0.2
|
||||
cmpl $0, %edx
|
||||
ja .L_2TAG_PACKET_4.0.2
|
||||
jmp .L_2TAG_PACKET_6.0.2
|
||||
.L_2TAG_PACKET_3.0.2:
|
||||
xorpd %xmm1, %xmm1
|
||||
addsd %xmm0, %xmm1
|
||||
movd %xmm1, %edx
|
||||
psrlq $32, %xmm1
|
||||
movd %xmm1, %ecx
|
||||
orl %ecx, %edx
|
||||
cmpl $0, %edx
|
||||
je .L_2TAG_PACKET_7.0.2
|
||||
xorpd %xmm1, %xmm1
|
||||
movl $18416, %eax
|
||||
pinsrw $3, %eax, %xmm1
|
||||
mulsd %xmm1, %xmm0
|
||||
movq %xmm0, %xmm1
|
||||
pextrw $3, %xmm0, %eax
|
||||
orpd %xmm2, %xmm0
|
||||
psrlq $27, %xmm0
|
||||
movl $18416, %ecx
|
||||
psrld $2, %xmm0
|
||||
rcpps %xmm0, %xmm0
|
||||
psllq $12, %xmm1
|
||||
pshufd $228, %xmm5, %xmm6
|
||||
psrlq $12, %xmm1
|
||||
jmp .L_2TAG_PACKET_1.0.2
|
||||
.L_2TAG_PACKET_2.0.2:
|
||||
movd %xmm1, %edx
|
||||
psrlq $32, %xmm1
|
||||
movd %xmm1, %ecx
|
||||
addl %ecx, %ecx
|
||||
cmpl $-2097152, %ecx
|
||||
jae .L_2TAG_PACKET_5.0.2
|
||||
orl %ecx, %edx
|
||||
cmpl $0, %edx
|
||||
je .L_2TAG_PACKET_7.0.2
|
||||
.L_2TAG_PACKET_6.0.2:
|
||||
xorpd %xmm1, %xmm1
|
||||
xorpd %xmm0, %xmm0
|
||||
movl $32752, %eax
|
||||
pinsrw $3, %eax, %xmm1
|
||||
mulsd %xmm1, %xmm0
|
||||
movl $3, 16(%rsp)
|
||||
jmp .L_2TAG_PACKET_8.0.2
|
||||
.L_2TAG_PACKET_7.0.2:
|
||||
xorpd %xmm1, %xmm1
|
||||
xorpd %xmm0, %xmm0
|
||||
movl $49136, %eax
|
||||
pinsrw $3, %eax, %xmm0
|
||||
divsd %xmm1, %xmm0
|
||||
movl $2, 16(%rsp)
|
||||
.L_2TAG_PACKET_8.0.2:
|
||||
movq %xmm0, 8(%rsp)
|
||||
..B1.3:
|
||||
movq 8(%rsp), %xmm0
|
||||
.L_2TAG_PACKET_9.0.2:
|
||||
..B1.5:
|
||||
addq $24, %rsp
|
||||
..___tag_value_log.4:
|
||||
ret
|
||||
..___tag_value_log.5:
|
||||
END(log)
|
||||
# -- End log
|
||||
.section .rodata, "a"
|
||||
.align 16
|
||||
.align 16
|
||||
L_tbl:
|
||||
.long 4277811200
|
||||
.long 1072049730
|
||||
.long 2479318832
|
||||
.long 1026487127
|
||||
.long 2854492160
|
||||
.long 1072033410
|
||||
.long 215631550
|
||||
.long 1025638968
|
||||
.long 1547061248
|
||||
.long 1072017216
|
||||
.long 2886781435
|
||||
.long 1026423395
|
||||
.long 649825280
|
||||
.long 1072001146
|
||||
.long 4281533405
|
||||
.long 1024038923
|
||||
.long 646346752
|
||||
.long 1071985198
|
||||
.long 1562735921
|
||||
.long 1023790276
|
||||
.long 2203734016
|
||||
.long 1071969370
|
||||
.long 1838397691
|
||||
.long 3173936209
|
||||
.long 1872169984
|
||||
.long 1071953661
|
||||
.long 3981202460
|
||||
.long 1022325013
|
||||
.long 669557760
|
||||
.long 1071938069
|
||||
.long 4182597802
|
||||
.long 3173174122
|
||||
.long 4076413952
|
||||
.long 1071922591
|
||||
.long 1209029111
|
||||
.long 3170736207
|
||||
.long 556125184
|
||||
.long 1071907228
|
||||
.long 821086028
|
||||
.long 3173437049
|
||||
.long 204914688
|
||||
.long 1071891976
|
||||
.long 2097025986
|
||||
.long 3171071798
|
||||
.long 387545088
|
||||
.long 1071876834
|
||||
.long 3142936996
|
||||
.long 3173092218
|
||||
.long 2912783360
|
||||
.long 1071861800
|
||||
.long 2502420140
|
||||
.long 1024505919
|
||||
.long 1144260608
|
||||
.long 1071846874
|
||||
.long 3315658140
|
||||
.long 3173469843
|
||||
.long 1471209472
|
||||
.long 1071832053
|
||||
.long 129621009
|
||||
.long 3172443877
|
||||
.long 1829683200
|
||||
.long 1071817336
|
||||
.long 3885467693
|
||||
.long 1025535275
|
||||
.long 288676864
|
||||
.long 1071802722
|
||||
.long 86139472
|
||||
.long 3171639793
|
||||
.long 3636378624
|
||||
.long 1071788208
|
||||
.long 1850238587
|
||||
.long 1024654342
|
||||
.long 1606817792
|
||||
.long 1071773795
|
||||
.long 3388899795
|
||||
.long 3173675586
|
||||
.long 1236164608
|
||||
.long 1071759480
|
||||
.long 3983599207
|
||||
.long 1020046558
|
||||
.long 1089616896
|
||||
.long 1071745262
|
||||
.long 4171974224
|
||||
.long 1024773198
|
||||
.long 4143093760
|
||||
.long 1071731139
|
||||
.long 2727587401
|
||||
.long 3173965207
|
||||
.long 600267776
|
||||
.long 1071717112
|
||||
.long 3147685042
|
||||
.long 3173353031
|
||||
.long 2249313280
|
||||
.long 1071703177
|
||||
.long 125835074
|
||||
.long 1025255832
|
||||
.long 3805303808
|
||||
.long 1071689334
|
||||
.long 2289991207
|
||||
.long 1025460331
|
||||
.long 87278592
|
||||
.long 1071675583
|
||||
.long 1106114045
|
||||
.long 1025933602
|
||||
.long 3195405312
|
||||
.long 1071661920
|
||||
.long 3885316576
|
||||
.long 3171206239
|
||||
.long 3853649920
|
||||
.long 1071648346
|
||||
.long 2977069852
|
||||
.long 3171236771
|
||||
.long 2944026624
|
||||
.long 1071625048
|
||||
.long 1008093493
|
||||
.long 1023444474
|
||||
.long 3993180160
|
||||
.long 1071598247
|
||||
.long 1862355595
|
||||
.long 1024642533
|
||||
.long 1454641152
|
||||
.long 1071571617
|
||||
.long 1514603089
|
||||
.long 1026500596
|
||||
.long 3286085632
|
||||
.long 1071545154
|
||||
.long 1400028424
|
||||
.long 3173279056
|
||||
.long 438773760
|
||||
.long 1071518858
|
||||
.long 120727864
|
||||
.long 3172148914
|
||||
.long 1212979200
|
||||
.long 1071492725
|
||||
.long 1625055594
|
||||
.long 3172901933
|
||||
.long 1189017600
|
||||
.long 1071466754
|
||||
.long 3920062376
|
||||
.long 1025727407
|
||||
.long 403064832
|
||||
.long 1071440943
|
||||
.long 1053271728
|
||||
.long 3171391427
|
||||
.long 3343210496
|
||||
.long 1071415289
|
||||
.long 3243395502
|
||||
.long 3173627613
|
||||
.long 1765777408
|
||||
.long 1071389792
|
||||
.long 2145968512
|
||||
.long 1026354304
|
||||
.long 461430784
|
||||
.long 1071364449
|
||||
.long 4094322285
|
||||
.long 1026021467
|
||||
.long 71706624
|
||||
.long 1071339258
|
||||
.long 763632021
|
||||
.long 1024496933
|
||||
.long 1380503552
|
||||
.long 1071314217
|
||||
.long 1383547992
|
||||
.long 3173088453
|
||||
.long 1015732224
|
||||
.long 1071289325
|
||||
.long 3198646877
|
||||
.long 1025390322
|
||||
.long 35977216
|
||||
.long 1071264580
|
||||
.long 2141026805
|
||||
.long 1025754693
|
||||
.long 3927306240
|
||||
.long 1071239979
|
||||
.long 282116272
|
||||
.long 3173394334
|
||||
.long 1125341184
|
||||
.long 1071215523
|
||||
.long 2768427504
|
||||
.long 3172279059
|
||||
.long 1666971648
|
||||
.long 1071191208
|
||||
.long 786837629
|
||||
.long 3172427445
|
||||
.long 2827694080
|
||||
.long 1071167033
|
||||
.long 3857122416
|
||||
.long 3173014241
|
||||
.long 2003683328
|
||||
.long 1071142997
|
||||
.long 859010954
|
||||
.long 1026545007
|
||||
.long 1004017664
|
||||
.long 1071119098
|
||||
.long 3356644970
|
||||
.long 3173458064
|
||||
.long 1753020416
|
||||
.long 1071095334
|
||||
.long 788338552
|
||||
.long 1026157693
|
||||
.long 1992718336
|
||||
.long 1071071704
|
||||
.long 1239179443
|
||||
.long 1026394889
|
||||
.long 3870234624
|
||||
.long 1071048206
|
||||
.long 2082614663
|
||||
.long 1024926053
|
||||
.long 1050437632
|
||||
.long 1071024840
|
||||
.long 660007840
|
||||
.long 1025548499
|
||||
.long 188395520
|
||||
.long 1071001603
|
||||
.long 3878792704
|
||||
.long 3173889571
|
||||
.long 3747176448
|
||||
.long 1070978493
|
||||
.long 144991708
|
||||
.long 3171552042
|
||||
.long 1405669376
|
||||
.long 1070955511
|
||||
.long 3999088879
|
||||
.long 1025486317
|
||||
.long 121151488
|
||||
.long 1070932654
|
||||
.long 2170865497
|
||||
.long 1026473584
|
||||
.long 2652319744
|
||||
.long 1070909920
|
||||
.long 453695652
|
||||
.long 3173916809
|
||||
.long 3262236672
|
||||
.long 1070887309
|
||||
.long 157800053
|
||||
.long 3173984206
|
||||
.long 601221120
|
||||
.long 1070864820
|
||||
.long 3968917661
|
||||
.long 1023992886
|
||||
.long 1999843328
|
||||
.long 1070842450
|
||||
.long 3053895004
|
||||
.long 1024998228
|
||||
.long 1992167424
|
||||
.long 1070820199
|
||||
.long 2968614856
|
||||
.long 1024552653
|
||||
.long 3788726272
|
||||
.long 1070798065
|
||||
.long 3542170808
|
||||
.long 3173573242
|
||||
.long 2094829568
|
||||
.long 1070776048
|
||||
.long 1246758132
|
||||
.long 1026202874
|
||||
.long 288675840
|
||||
.long 1070754146
|
||||
.long 3747328950
|
||||
.long 1026331585
|
||||
.long 1829681152
|
||||
.long 1070732357
|
||||
.long 3125197546
|
||||
.long 1024100318
|
||||
.long 1666869248
|
||||
.long 1070710681
|
||||
.long 1363656119
|
||||
.long 1026336493
|
||||
.long 3417110528
|
||||
.long 1070689116
|
||||
.long 4154791553
|
||||
.long 1026267853
|
||||
.long 2183653376
|
||||
.long 1070667662
|
||||
.long 1671819292
|
||||
.long 3173785870
|
||||
.long 1734434816
|
||||
.long 1070646317
|
||||
.long 373091049
|
||||
.long 1025972363
|
||||
.long 1615681536
|
||||
.long 1070625080
|
||||
.long 384650897
|
||||
.long 1022926043
|
||||
.long 1445382144
|
||||
.long 1070603950
|
||||
.long 344320330
|
||||
.long 3172397196
|
||||
.long 1823715328
|
||||
.long 1070569756
|
||||
.long 3389841200
|
||||
.long 1025231852
|
||||
.long 3839688704
|
||||
.long 1070527917
|
||||
.long 1706790417
|
||||
.long 3167363349
|
||||
.long 4293332992
|
||||
.long 1070486286
|
||||
.long 1614935088
|
||||
.long 1019351591
|
||||
.long 2966720512
|
||||
.long 1070444861
|
||||
.long 4145393717
|
||||
.long 3173711658
|
||||
.long 4066729984
|
||||
.long 1070403639
|
||||
.long 1974925028
|
||||
.long 3171437182
|
||||
.long 3337621504
|
||||
.long 1070362619
|
||||
.long 3314953170
|
||||
.long 3169971314
|
||||
.long 943448064
|
||||
.long 1070321799
|
||||
.long 1498682038
|
||||
.long 3173862340
|
||||
.long 1465634816
|
||||
.long 1070281176
|
||||
.long 1319952810
|
||||
.long 3171693965
|
||||
.long 1015734272
|
||||
.long 1070240749
|
||||
.long 1347821929
|
||||
.long 3173544515
|
||||
.long 118001664
|
||||
.long 1070200516
|
||||
.long 1751482746
|
||||
.long 1026134093
|
||||
.long 3707174912
|
||||
.long 1070160474
|
||||
.long 1486946159
|
||||
.long 1023930920
|
||||
.long 3946381312
|
||||
.long 1070120623
|
||||
.long 2867408081
|
||||
.long 3171368276
|
||||
.long 1699848192
|
||||
.long 1070080961
|
||||
.long 2590187139
|
||||
.long 1025379803
|
||||
.long 2235846656
|
||||
.long 1070041485
|
||||
.long 1888568069
|
||||
.long 3172754960
|
||||
.long 2339729408
|
||||
.long 1070002194
|
||||
.long 3852214753
|
||||
.long 3173323149
|
||||
.long 3196850176
|
||||
.long 1069963086
|
||||
.long 742141560
|
||||
.long 1025101707
|
||||
.long 1800683520
|
||||
.long 1069924160
|
||||
.long 3949500444
|
||||
.long 3172102179
|
||||
.long 3835801600
|
||||
.long 1069885413
|
||||
.long 3848895943
|
||||
.long 1025913832
|
||||
.long 2201202688
|
||||
.long 1069846845
|
||||
.long 1425913464
|
||||
.long 1025868665
|
||||
.long 2778279936
|
||||
.long 1069808453
|
||||
.long 2120889677
|
||||
.long 3173831128
|
||||
.long 2954203136
|
||||
.long 1069770236
|
||||
.long 592147081
|
||||
.long 1019621288
|
||||
.long 210141184
|
||||
.long 1069732193
|
||||
.long 3414275233
|
||||
.long 1023647084
|
||||
.long 709476352
|
||||
.long 1069694321
|
||||
.long 2413027164
|
||||
.long 1024462115
|
||||
.long 2116284416
|
||||
.long 1069656619
|
||||
.long 1144559924
|
||||
.long 1026336654
|
||||
.long 2183651328
|
||||
.long 1069619086
|
||||
.long 3459057650
|
||||
.long 1025634168
|
||||
.long 3047047168
|
||||
.long 1069581720
|
||||
.long 1879674924
|
||||
.long 3173508573
|
||||
.long 970711040
|
||||
.long 1069541521
|
||||
.long 1335954173
|
||||
.long 3173332182
|
||||
.long 2198478848
|
||||
.long 1069467449
|
||||
.long 2951103968
|
||||
.long 3173892200
|
||||
.long 1669611520
|
||||
.long 1069393703
|
||||
.long 531044147
|
||||
.long 1025149248
|
||||
.long 29114368
|
||||
.long 1069320280
|
||||
.long 3327831251
|
||||
.long 1025918673
|
||||
.long 2376949760
|
||||
.long 1069247176
|
||||
.long 737634533
|
||||
.long 3172176000
|
||||
.long 1085390848
|
||||
.long 1069174390
|
||||
.long 3108243400
|
||||
.long 3171828406
|
||||
.long 1566130176
|
||||
.long 1069101918
|
||||
.long 985483226
|
||||
.long 1025708380
|
||||
.long 792780800
|
||||
.long 1069029758
|
||||
.long 4184866295
|
||||
.long 1024426204
|
||||
.long 183156736
|
||||
.long 1068957907
|
||||
.long 2845699378
|
||||
.long 1022107277
|
||||
.long 1301782528
|
||||
.long 1068886362
|
||||
.long 1012735262
|
||||
.long 3173804294
|
||||
.long 1562411008
|
||||
.long 1068815121
|
||||
.long 2197086703
|
||||
.long 3170187813
|
||||
.long 2815549440
|
||||
.long 1068744181
|
||||
.long 2782613207
|
||||
.long 1026345054
|
||||
.long 2756124672
|
||||
.long 1068673540
|
||||
.long 2929486205
|
||||
.long 3173037800
|
||||
.long 3511050240
|
||||
.long 1068603195
|
||||
.long 1443733147
|
||||
.long 3173331549
|
||||
.long 3047047168
|
||||
.long 1068533144
|
||||
.long 1879674924
|
||||
.long 3172459997
|
||||
.long 3221667840
|
||||
.long 1068427825
|
||||
.long 1338588027
|
||||
.long 3171815742
|
||||
.long 3453861888
|
||||
.long 1068288883
|
||||
.long 1205348359
|
||||
.long 3172624626
|
||||
.long 3506110464
|
||||
.long 1068150514
|
||||
.long 893105198
|
||||
.long 1025571866
|
||||
.long 346013696
|
||||
.long 1068012714
|
||||
.long 3495569021
|
||||
.long 3172563349
|
||||
.long 4074029056
|
||||
.long 1067875476
|
||||
.long 3961106338
|
||||
.long 3171065595
|
||||
.long 3559784448
|
||||
.long 1067738798
|
||||
.long 1975385384
|
||||
.long 3173783155
|
||||
.long 797769728
|
||||
.long 1067602675
|
||||
.long 3760305787
|
||||
.long 1026047642
|
||||
.long 2313633792
|
||||
.long 1067467101
|
||||
.long 1559353171
|
||||
.long 1023480256
|
||||
.long 3960766464
|
||||
.long 1067213778
|
||||
.long 1067365107
|
||||
.long 1025865926
|
||||
.long 684261376
|
||||
.long 1066944805
|
||||
.long 844762164
|
||||
.long 3173687482
|
||||
.long 630718464
|
||||
.long 1066676905
|
||||
.long 2458269694
|
||||
.long 1024033081
|
||||
.long 1486061568
|
||||
.long 1066410070
|
||||
.long 115537874
|
||||
.long 3173243995
|
||||
.long 2743664640
|
||||
.long 1065886792
|
||||
.long 3665098304
|
||||
.long 3173471607
|
||||
.long 1971912704
|
||||
.long 1065357333
|
||||
.long 2577214440
|
||||
.long 3171993451
|
||||
.long 1498939392
|
||||
.long 1064306693
|
||||
.long 3409036923
|
||||
.long 1025599151
|
||||
.long 0
|
||||
.long 0
|
||||
.long 0
|
||||
.long 2147483648
|
||||
.type L_tbl,@object
|
||||
.size L_tbl,2064
|
||||
.align 16
|
||||
log2:
|
||||
.long 4277811200
|
||||
.long 1067855426
|
||||
.long 2479318832
|
||||
.long 1022292823
|
||||
.type log2,@object
|
||||
.size log2,16
|
||||
.align 16
|
||||
coeff:
|
||||
.long 2454267026
|
||||
.long 1069697316
|
||||
.long 0
|
||||
.long 3218079744
|
||||
.long 1030730101
|
||||
.long 3217380702
|
||||
.long 1431655765
|
||||
.long 1070945621
|
||||
.long 2576980378
|
||||
.long 1070176665
|
||||
.long 0
|
||||
.long 3219128320
|
||||
.type coeff,@object
|
||||
.size coeff,48
|
||||
.data
|
||||
.section .note.GNU-stack, ""
|
||||
// -- Begin DWARF2 SEGMENT .eh_frame
|
||||
.section .eh_frame,"a",@progbits
|
||||
.eh_frame_seg:
|
||||
.align 1
|
||||
.4byte 0x00000014
|
||||
.8byte 0x00527a0100000000
|
||||
.8byte 0x08070c1b01107801
|
||||
.4byte 0x00000190
|
||||
.4byte 0x0000001c
|
||||
.4byte 0x0000001c
|
||||
.4byte ..___tag_value_log.1-.
|
||||
.4byte ..___tag_value_log.5-..___tag_value_log.1
|
||||
.2byte 0x0400
|
||||
.4byte ..___tag_value_log.3-..___tag_value_log.1
|
||||
.2byte 0x200e
|
||||
.byte 0x04
|
||||
.4byte ..___tag_value_log.4-..___tag_value_log.3
|
||||
.2byte 0x080e
|
||||
.byte 0x00
|
||||
# End
|
4282
libm/x86_64/e_pow.S
4282
libm/x86_64/e_pow.S
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue