123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632 |
- /*
- * Math library
- *
- * Copyright (C) 2016 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.
- *
- *
- * Author Name <jingwei.zhang@intel.com>
- * History:
- * 03-14-2016 Initial version. numerics svn rev. 12864
- */
- .file "libm_log_k64.c"
- .text
- ..TXTST0:
- # -- Begin __libm_log_k64
- .text
- .align 16,0x90
- .globl __libm_log_k64
- __libm_log_k64:
- # parameter 1: %xmm0
- # parameter 2: %xmm1
- # parameter 3: %rdi
- ..B1.1:
- .cfi_startproc
- ..___tag_value___libm_log_k64.1:
- ..L2:
- movaps %xmm1, %xmm6
- movsd %xmm0, -24(%rsp)
- movzwl -18(%rsp), %esi
- andl $32752, %esi
- shrl $4, %esi
- cmpl $2047, %esi
- jge ..B1.12
- ..B1.2:
- testl %esi, %esi
- jne ..B1.6
- ..B1.3:
- testl $1048575, -20(%rsp)
- jne ..B1.6
- ..B1.4:
- cmpl $0, -24(%rsp)
- jne ..B1.6
- ..B1.5:
- lea 1640+_libm_log_k64_table(%rip), %rax
- lea 1624+_libm_log_k64_table(%rip), %rcx
- movq (%rax), %rdx
- movq (%rcx), %rsi
- movq %rdx, (%rdi)
- movq %rsi, 8(%rdi)
- ret
- ..B1.6:
- testb $-128, -17(%rsp)
- jne ..B1.11
- ..B1.7:
- movsd -24(%rsp), %xmm4
- testl %esi, %esi
- jne ..B1.9
- ..B1.8:
- lea 1656+_libm_log_k64_table(%rip), %rax
- pxor %xmm9, %xmm9
- movsd (%rax), %xmm0
- mulsd %xmm0, %xmm4
- mulsd %xmm0, %xmm6
- movsd %xmm4, -24(%rsp)
- movzwl -18(%rsp), %esi
- andl $32752, %esi
- shrl $4, %esi
- addl $-1076, %esi
- cvtsi2sd %esi, %xmm9
- jmp ..B1.10
- ..B1.9:
- addl $-1023, %esi
- pxor %xmm9, %xmm9
- cvtsi2sd %esi, %xmm9
- ..B1.10:
- lea 1616+_libm_log_k64_table(%rip), %rcx
- negl %esi
- addl $1023, %esi
- lea 1664+_libm_log_k64_table(%rip), %rax
- andl $2047, %esi
- lea _libm_log_k64_table(%rip), %r11
- shll $4, %esi
- lea 1672+_libm_log_k64_table(%rip), %rdx
- movzwl 6(%rcx), %r8d
- movsd (%rcx), %xmm5
- andl $-32753, %r8d
- movsd %xmm5, -16(%rsp)
- orl %esi, %r8d
- movw %r8w, -10(%rsp)
- lea 1680+_libm_log_k64_table(%rip), %rsi
- movsd (%rax), %xmm7
- lea 1688+_libm_log_k64_table(%rip), %rax
- movsd -16(%rsp), %xmm1
- lea 1600+_libm_log_k64_table(%rip), %rcx
- movsd (%rdx), %xmm0
- lea 1608+_libm_log_k64_table(%rip), %rdx
- movsd (%rsi), %xmm2
- lea 1592+_libm_log_k64_table(%rip), %rsi
- movsd (%rax), %xmm3
- lea 1584+_libm_log_k64_table(%rip), %r8
- movaps %xmm3, %xmm8
- lea 1560+_libm_log_k64_table(%rip), %rax
- mulsd %xmm1, %xmm4
- mulsd %xmm1, %xmm6
- mulsd %xmm9, %xmm7
- addsd %xmm4, %xmm8
- mulsd %xmm0, %xmm9
- addsd %xmm4, %xmm2
- subsd %xmm3, %xmm8
- movsd %xmm2, -8(%rsp)
- subsd %xmm8, %xmm4
- movl -8(%rsp), %r9d
- addsd %xmm4, %xmm6
- andl $127, %r9d
- movsd %xmm8, -24(%rsp)
- movsd (%rdx), %xmm4
- lea (%r9,%r9,2), %r10d
- lea 1576+_libm_log_k64_table(%rip), %r9
- movsd (%r11,%r10,8), %xmm10
- mulsd %xmm10, %xmm8
- addsd 8(%r11,%r10,8), %xmm7
- addsd 16(%r11,%r10,8), %xmm9
- mulsd %xmm6, %xmm10
- subsd %xmm5, %xmm8
- movaps %xmm8, %xmm6
- lea 1568+_libm_log_k64_table(%rip), %r11
- addsd %xmm10, %xmm6
- addsd %xmm9, %xmm10
- addsd %xmm7, %xmm8
- mulsd %xmm6, %xmm4
- movsd %xmm8, (%rdi)
- addsd (%rcx), %xmm4
- mulsd %xmm6, %xmm4
- addsd (%rsi), %xmm4
- mulsd %xmm6, %xmm4
- addsd (%r8), %xmm4
- mulsd %xmm6, %xmm4
- addsd (%r9), %xmm4
- mulsd %xmm6, %xmm4
- addsd (%r11), %xmm4
- mulsd %xmm6, %xmm4
- mulsd %xmm6, %xmm6
- addsd (%rax), %xmm4
- mulsd %xmm4, %xmm6
- addsd %xmm6, %xmm10
- movsd %xmm10, 8(%rdi)
- ret
- ..B1.11:
- lea 1648+_libm_log_k64_table(%rip), %rax
- movq (%rax), %rdx
- movq %rdx, (%rdi)
- movq %rdx, 8(%rdi)
- ret
- ..B1.12:
- lea 1632+_libm_log_k64_table(%rip), %rax
- lea 1624+_libm_log_k64_table(%rip), %rdx
- movsd -24(%rsp), %xmm0
- movq (%rdx), %rcx
- movq %rcx, 8(%rdi)
- addsd (%rax), %xmm0
- movsd %xmm0, (%rdi)
- ..B1.13:
- ret
- .align 16,0x90
- .cfi_endproc
- .type __libm_log_k64,@function
- .size __libm_log_k64,.-__libm_log_k64
- .data
- # -- End __libm_log_k64
- .section .rodata, "a"
- .align 16
- .align 16
- _libm_log_k64_table:
- .long 0
- .long 1072693248
- .long 0
- .long 0
- .long 0
- .long 0
- .long 0
- .long 1072660480
- .long 1486880768
- .long 1066410070
- .long 1813744607
- .long 3179892593
- .long 0
- .long 1072629760
- .long 377487360
- .long 1067416219
- .long 919019713
- .long 3179241129
- .long 0
- .long 1072599040
- .long 1513619456
- .long 1067944025
- .long 874573033
- .long 3178512940
- .long 0
- .long 1072570368
- .long 3221749760
- .long 1068427825
- .long 4181665006
- .long 3177478212
- .long 0
- .long 1072541696
- .long 4162322432
- .long 1068708823
- .long 627020255
- .long 1028629941
- .long 0
- .long 1072513024
- .long 183107584
- .long 1068957907
- .long 2376703469
- .long 1030233118
- .long 0
- .long 1072486400
- .long 1053425664
- .long 1069192557
- .long 696277142
- .long 1030474863
- .long 0
- .long 1072459776
- .long 3996123136
- .long 1069430535
- .long 2630798680
- .long 1028792016
- .long 0
- .long 1072435200
- .long 3452764160
- .long 1069600382
- .long 624954044
- .long 3177101741
- .long 0
- .long 1072409600
- .long 207650816
- .long 1069717971
- .long 3272735636
- .long 3175176575
- .long 0
- .long 1072386048
- .long 2647228416
- .long 1069827627
- .long 3594228712
- .long 1029303785
- .long 0
- .long 1072362496
- .long 2712010752
- .long 1069938736
- .long 3653242769
- .long 3176839013
- .long 0
- .long 1072338944
- .long 374439936
- .long 1070051337
- .long 4072775574
- .long 3176577495
- .long 0
- .long 1072316416
- .long 3707174912
- .long 1070160474
- .long 1486946159
- .long 1023930920
- .long 0
- .long 1072294912
- .long 1443954688
- .long 1070265993
- .long 293532967
- .long 3176278277
- .long 0
- .long 1072273408
- .long 127762432
- .long 1070372856
- .long 3404145447
- .long 3177023955
- .long 0
- .long 1072252928
- .long 2053832704
- .long 1070475911
- .long 1575076358
- .long 1029048544
- .long 0
- .long 1072232448
- .long 3194093568
- .long 1070580248
- .long 1864169120
- .long 1026866084
- .long 0
- .long 1072212992
- .long 3917201408
- .long 1070638340
- .long 2362145246
- .long 3175606197
- .long 0
- .long 1072193536
- .long 3417112576
- .long 1070689116
- .long 70087871
- .long 3174183577
- .long 0
- .long 1072175104
- .long 4226777088
- .long 1070737793
- .long 1620410586
- .long 3174700065
- .long 0
- .long 1072156672
- .long 3168870400
- .long 1070787042
- .long 311238082
- .long 1025781772
- .long 0
- .long 1072139264
- .long 2150580224
- .long 1070834092
- .long 1664262457
- .long 3175299224
- .long 0
- .long 1072120832
- .long 4095672320
- .long 1070884491
- .long 1657121015
- .long 3174674199
- .long 0
- .long 1072104448
- .long 2595577856
- .long 1070929805
- .long 2014006823
- .long 3175423830
- .long 0
- .long 1072087040
- .long 3747176448
- .long 1070978493
- .long 144991708
- .long 3171552042
- .long 0
- .long 1072070656
- .long 1050435584
- .long 1071024840
- .long 3386227432
- .long 1027876916
- .long 0
- .long 1072055296
- .long 255516672
- .long 1071068760
- .long 2637594316
- .long 1028049573
- .long 0
- .long 1072038912
- .long 1640783872
- .long 1071116120
- .long 893247007
- .long 1028452162
- .long 0
- .long 1072023552
- .long 2940411904
- .long 1071161011
- .long 813240633
- .long 1027664048
- .long 0
- .long 1072009216
- .long 882917376
- .long 1071203348
- .long 2376597551
- .long 3175828767
- .long 0
- .long 1071993856
- .long 213966848
- .long 1071249188
- .long 2977204125
- .long 1028350609
- .long 0
- .long 1071979520
- .long 2921504768
- .long 1071292428
- .long 523218347
- .long 1028007004
- .long 0
- .long 1071965184
- .long 3186655232
- .long 1071336119
- .long 2352907891
- .long 1026967097
- .long 0
- .long 1071951872
- .long 2653364224
- .long 1071377101
- .long 2453418583
- .long 3174349512
- .long 0
- .long 1071938560
- .long 3759783936
- .long 1071418487
- .long 3685870403
- .long 3175415611
- .long 0
- .long 1071925248
- .long 2468364288
- .long 1071460286
- .long 1578908842
- .long 3175510517
- .long 0
- .long 1071911936
- .long 81903616
- .long 1071502506
- .long 770710269
- .long 1026742353
- .long 0
- .long 1071899648
- .long 2799321088
- .long 1071541858
- .long 3822266185
- .long 1028434427
- .long 0
- .long 1071886336
- .long 2142265344
- .long 1071584911
- .long 175901806
- .long 3173871540
- .long 0
- .long 1071874048
- .long 2944024576
- .long 1071625048
- .long 2747360403
- .long 1027672159
- .long 0
- .long 1071862784
- .long 3434301440
- .long 1071653426
- .long 4194662196
- .long 3173893003
- .long 0
- .long 1071850496
- .long 1547755520
- .long 1071673870
- .long 4248764681
- .long 3172759087
- .long 0
- .long 1071839232
- .long 4246986752
- .long 1071692786
- .long 2840205638
- .long 3174430911
- .long 0
- .long 1071826944
- .long 3418390528
- .long 1071713619
- .long 3041880823
- .long 1025440860
- .long 0
- .long 1071816704
- .long 4143093760
- .long 1071731139
- .long 2727587401
- .long 3173965207
- .long 0
- .long 1071805440
- .long 3121326080
- .long 1071750582
- .long 3173887692
- .long 3174190163
- .long 0
- .long 1071794176
- .long 1852893184
- .long 1071770207
- .long 3951060252
- .long 1027348295
- .long 0
- .long 1071783936
- .long 3636379648
- .long 1071788208
- .long 1684924001
- .long 3174777086
- .long 0
- .long 1071773696
- .long 516505600
- .long 1071806366
- .long 429181199
- .long 3173211033
- .long 0
- .long 1071763456
- .long 4186185728
- .long 1071824681
- .long 2044904577
- .long 3174967132
- .long 0
- .long 1071753216
- .long 877596672
- .long 1071843159
- .long 1396318105
- .long 3173959727
- .long 0
- .long 1071742976
- .long 2912784384
- .long 1071861800
- .long 448136789
- .long 3174814192
- .long 0
- .long 1071733760
- .long 3722825728
- .long 1071878720
- .long 714165913
- .long 3173439560
- .long 0
- .long 1071723520
- .long 2522374144
- .long 1071897682
- .long 3227240353
- .long 3173394323
- .long 0
- .long 1071714304
- .long 4165410816
- .long 1071914895
- .long 1365684961
- .long 3174365060
- .long 0
- .long 1071705088
- .long 3477135360
- .long 1071932251
- .long 368482985
- .long 3174140821
- .long 0
- .long 1071695872
- .long 2079455232
- .long 1071949752
- .long 1320576317
- .long 1026822714
- .long 0
- .long 1071687680
- .long 851795968
- .long 1071965432
- .long 3702467026
- .long 1025224125
- .long 0
- .long 1071678464
- .long 647743488
- .long 1071983213
- .long 772992109
- .long 3174038459
- .long 0
- .long 1071670272
- .long 26537984
- .long 1071999146
- .long 2360214276
- .long 3174861275
- .long 0
- .long 1071661056
- .long 1547061248
- .long 1072017216
- .long 2886781435
- .long 1026423395
- .long 0
- .long 1071652864
- .long 2854492160
- .long 1072033410
- .long 215631550
- .long 1025638968
- .long 0
- .long 1071644672
- .long 4277811200
- .long 1072049730
- .long 2479318832
- .long 1026487127
- .long 0
- .long 3219128320
- .long 1431655955
- .long 1070945621
- .long 610
- .long 3218079744
- .long 2545118337
- .long 1070176665
- .long 1378399119
- .long 3217380693
- .long 612435357
- .long 1069697472
- .long 94536557
- .long 3217031348
- .long 0
- .long 1072693248
- .long 0
- .long 0
- .long 0
- .long 2146435072
- .long 0
- .long 4293918720
- .long 0
- .long 4294443008
- .long 0
- .long 1128267776
- .long 4277811200
- .long 1072049730
- .long 2479318832
- .long 1026487127
- .long 64
- .long 1120927744
- .long 0
- .long 1094713344
- .type _libm_log_k64_table,@object
- .size _libm_log_k64_table,1696
- .data
- .section .note.GNU-stack, ""
- // -- Begin DWARF2 SEGMENT .eh_frame
- .section .eh_frame,"a",@progbits
- .eh_frame_seg:
- .align 1
- # End
|