log10f_wmt.S 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745
  1. /*
  2. * Math library
  3. *
  4. * Copyright (C) 2016 Intel Corporation. All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted provided that the following conditions
  8. * are met:
  9. *
  10. * * Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. * * Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in
  14. * the documentation and/or other materials provided with the
  15. * distribution.
  16. * * Neither the name of Intel Corporation nor the names of its
  17. * contributors may be used to endorse or promote products derived
  18. * from this software without specific prior written permission.
  19. *
  20. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  21. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  22. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  23. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  24. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  25. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  26. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  27. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  28. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  29. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  30. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. *
  32. *
  33. * Author Name <jingwei.zhang@intel.com>
  34. * History:
  35. * 03-14-2016 Initial version. numerics svn rev. 12864
  36. */
  37. .file "log10f_wmt.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin static_func
  41. .text
  42. .align 16,0x90
  43. static_func:
  44. ..B1.1:
  45. ..L1:
  46. call ..L2
  47. ..L2:
  48. popl %eax
  49. lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
  50. lea static_const_table@GOTOFF(%eax), %eax
  51. ret
  52. .align 16,0x90
  53. .type static_func,@function
  54. .size static_func,.-static_func
  55. .data
  56. # -- End static_func
  57. .text
  58. # -- Begin log10f
  59. .text
  60. .align 16,0x90
  61. .globl log10f
  62. log10f:
  63. # parameter 1: 8 + %ebp
  64. ..B2.1:
  65. ..L3:
  66. ..B2.2:
  67. pushl %ebp
  68. movl %esp, %ebp
  69. subl $104, %esp
  70. movl %ebx, 40(%esp)
  71. call static_func
  72. movl %eax, %ebx
  73. movss 112(%esp), %xmm0
  74. movl $16384, %ecx
  75. movd %ecx, %xmm4
  76. movl $-32768, %eax
  77. movd %eax, %xmm2
  78. xorpd %xmm3, %xmm3
  79. movl $16368, %edx
  80. pinsrw $3, %edx, %xmm3
  81. xorpd %xmm5, %xmm5
  82. .L_2TAG_PACKET_0.0.3:
  83. movd %xmm0, %edx
  84. rcpss %xmm0, %xmm1
  85. movsd 2080(%ebx), %xmm7
  86. pshuflw $68, %xmm0, %xmm0
  87. paddd %xmm4, %xmm1
  88. subl $8388608, %edx
  89. cmpl $2113929216, %edx
  90. jae .L_2TAG_PACKET_1.0.3
  91. andps %xmm1, %xmm2
  92. cvtps2pd %xmm0, %xmm0
  93. cvtps2pd %xmm2, %xmm1
  94. movd %xmm2, %eax
  95. andl $-8388608, %edx
  96. subl $1056964608, %edx
  97. cvtsi2sdl %edx, %xmm6
  98. mulsd %xmm1, %xmm0
  99. subl $1056964608, %edx
  100. addl %edx, %eax
  101. shrl $12, %eax
  102. movsd (%ebx,%eax), %xmm4
  103. subsd %xmm3, %xmm0
  104. movsd 2088(%ebx), %xmm2
  105. movsd 2096(%ebx), %xmm1
  106. mulsd %xmm0, %xmm7
  107. addsd %xmm0, %xmm5
  108. mulsd %xmm0, %xmm0
  109. movsd 2104(%ebx), %xmm3
  110. mulsd %xmm2, %xmm6
  111. addsd %xmm7, %xmm1
  112. mulsd %xmm3, %xmm5
  113. addsd %xmm4, %xmm6
  114. mulsd %xmm1, %xmm0
  115. mulsd %xmm3, %xmm0
  116. addsd %xmm6, %xmm5
  117. addsd %xmm0, %xmm5
  118. cvtpd2ps %xmm5, %xmm0
  119. jmp .L_2TAG_PACKET_2.0.3
  120. .L_2TAG_PACKET_1.0.3:
  121. addl $8388608, %edx
  122. js .L_2TAG_PACKET_3.0.3
  123. cmpl $8388608, %edx
  124. jb .L_2TAG_PACKET_4.0.3
  125. cmpl $2139095040, %edx
  126. jae .L_2TAG_PACKET_5.0.3
  127. movl $528482304, %eax
  128. movd %eax, %xmm6
  129. movsd 2064(%ebx), %xmm5
  130. mulss %xmm6, %xmm0
  131. jmp .L_2TAG_PACKET_0.0.3
  132. .L_2TAG_PACKET_5.0.3:
  133. addss %xmm0, %xmm0
  134. jmp .L_2TAG_PACKET_2.0.3
  135. .L_2TAG_PACKET_3.0.3:
  136. cmpl $-2147483648, %edx
  137. je .L_2TAG_PACKET_6.0.3
  138. addl %edx, %edx
  139. cmpl $-16777216, %edx
  140. ja .L_2TAG_PACKET_5.0.3
  141. xorps %xmm0, %xmm0
  142. divss %xmm0, %xmm0
  143. movl $11, %edx
  144. .L_2TAG_PACKET_7.0.3:
  145. movss %xmm0, (%esp)
  146. movss 112(%esp), %xmm0
  147. subl $32, %esp
  148. lea 112(%esp), %eax
  149. movl %eax, (%esp)
  150. lea 112(%esp), %eax
  151. movl %eax, 4(%esp)
  152. lea 32(%esp), %eax
  153. movl %eax, 8(%esp)
  154. movl %edx, %eax
  155. movl %eax, 12(%esp)
  156. call __libm_error_support
  157. addl $32, %esp
  158. flds (%esp)
  159. jmp .L_2TAG_PACKET_8.0.3
  160. .L_2TAG_PACKET_4.0.3:
  161. cmpl $0, %edx
  162. je .L_2TAG_PACKET_6.0.3
  163. movl $1602224128, %eax
  164. movd %eax, %xmm7
  165. mulss %xmm7, %xmm0
  166. movsd 2072(%ebx), %xmm5
  167. jmp .L_2TAG_PACKET_0.0.3
  168. .L_2TAG_PACKET_6.0.3:
  169. movl $-1082130432, %eax
  170. movd %eax, %xmm0
  171. xorps %xmm1, %xmm1
  172. divss %xmm1, %xmm0
  173. movl $10, %edx
  174. jmp .L_2TAG_PACKET_7.0.3
  175. .L_2TAG_PACKET_2.0.3:
  176. movss %xmm0, 24(%esp)
  177. flds 24(%esp)
  178. .L_2TAG_PACKET_8.0.3:
  179. movl 40(%esp), %ebx
  180. movl %ebp, %esp
  181. popl %ebp
  182. ret
  183. ..B2.3:
  184. .align 16,0x90
  185. .type log10f,@function
  186. .size log10f,.-log10f
  187. .data
  188. # -- End log10f
  189. .text
  190. # -- Begin __libm_error_support
  191. .text
  192. .align 16,0x90
  193. __libm_error_support:
  194. # parameter 1: 4 + %esp
  195. # parameter 2: 8 + %esp
  196. # parameter 3: 12 + %esp
  197. # parameter 4: 16 + %esp
  198. ..B3.1:
  199. ..L4:
  200. ret
  201. .align 16,0x90
  202. .type __libm_error_support,@function
  203. .size __libm_error_support,.-__libm_error_support
  204. .data
  205. # -- End __libm_error_support
  206. .section .rodata, "a"
  207. .align 16
  208. .align 16
  209. static_const_table:
  210. .long 1352628734
  211. .long 1070810131
  212. .long 2987063119
  213. .long 1070803029
  214. .long 2814064164
  215. .long 1070795955
  216. .long 4212141943
  217. .long 1070788908
  218. .long 1980466875
  219. .long 1070781889
  220. .long 3813543508
  221. .long 1070774896
  222. .long 236279882
  223. .long 1070767931
  224. .long 3258536649
  225. .long 1070760991
  226. .long 3425300546
  227. .long 1070754078
  228. .long 4176272103
  229. .long 1070747191
  230. .long 370881335
  231. .long 1070740331
  232. .long 4057946465
  233. .long 1070733495
  234. .long 1525858624
  235. .long 1070726686
  236. .long 547082415
  237. .long 1070719902
  238. .long 313247743
  239. .long 1070713143
  240. .long 24949840
  241. .long 1070706409
  242. .long 3186584478
  243. .long 1070699699
  244. .long 426349118
  245. .long 1070693015
  246. .long 3855853989
  247. .long 1070686354
  248. .long 4120324153
  249. .long 1070679718
  250. .long 463247870
  251. .long 1070673107
  252. .long 726256111
  253. .long 1070666519
  254. .long 4169135061
  255. .long 1070659954
  256. .long 1469709924
  257. .long 1070653414
  258. .long 493534586
  259. .long 1070646897
  260. .long 523975765
  261. .long 1070640403
  262. .long 852037507
  263. .long 1070633932
  264. .long 776253054
  265. .long 1070627484
  266. .long 3897545900
  267. .long 1070621058
  268. .long 939256246
  269. .long 1070614656
  270. .long 4106776832
  271. .long 1070608275
  272. .long 4137779223
  273. .long 1070601917
  274. .long 733771778
  275. .long 1070595068
  276. .long 1451145848
  277. .long 1070582440
  278. .long 534475932
  279. .long 1070569856
  280. .long 988918143
  281. .long 1070557315
  282. .long 1537935568
  283. .long 1070544817
  284. .long 918084032
  285. .long 1070532362
  286. .long 2173800955
  287. .long 1070519949
  288. .long 4067295355
  289. .long 1070507578
  290. .long 1078375409
  291. .long 1070495250
  292. .long 584148105
  293. .long 1070482963
  294. .long 1384016078
  295. .long 1070470717
  296. .long 2289448314
  297. .long 1070458512
  298. .long 2123818995
  299. .long 1070446348
  300. .long 4017216324
  301. .long 1070434224
  302. .long 2521384792
  303. .long 1070422141
  304. .long 789441093
  305. .long 1070410098
  306. .long 1985788785
  307. .long 1070398094
  308. .long 696035438
  309. .long 1070386130
  310. .long 106715969
  311. .long 1070374205
  312. .long 3415214590
  313. .long 1070362318
  314. .long 944721792
  315. .long 1070350471
  316. .long 208866570
  317. .long 1070338662
  318. .long 141776059
  319. .long 1070326891
  320. .long 3982843004
  321. .long 1070315157
  322. .long 2096724351
  323. .long 1070303462
  324. .long 2037982183
  325. .long 1070291804
  326. .long 2781151897
  327. .long 1070280183
  328. .long 3310550777
  329. .long 1070268599
  330. .long 2620153983
  331. .long 1070257052
  332. .long 4008439778
  333. .long 1070245541
  334. .long 2193367512
  335. .long 1070234067
  336. .long 492128552
  337. .long 1070222629
  338. .long 2231095287
  339. .long 1070211226
  340. .long 2155771957
  341. .long 1070199859
  342. .long 3610551033
  343. .long 1070188527
  344. .long 1358732975
  345. .long 1070177231
  346. .long 3057253384
  347. .long 1070165969
  348. .long 3486771566
  349. .long 1070154742
  350. .long 1731433722
  351. .long 1070143550
  352. .long 1178768569
  353. .long 1070132392
  354. .long 929649969
  355. .long 1070121268
  356. .long 93163010
  357. .long 1070110178
  358. .long 2081471614
  359. .long 1070099121
  360. .long 1724818481
  361. .long 1070088098
  362. .long 2451297579
  363. .long 1070077108
  364. .long 3401857016
  365. .long 1070066151
  366. .long 3725172527
  367. .long 1070055227
  368. .long 2577555067
  369. .long 1070044336
  370. .long 3417827070
  371. .long 1070033477
  372. .long 1122330889
  373. .long 1070022651
  374. .long 3459676923
  375. .long 1070011856
  376. .long 1025885499
  377. .long 1070001094
  378. .long 1604039477
  379. .long 1069990363
  380. .long 99428678
  381. .long 1069979664
  382. .long 14303095
  383. .long 1069968996
  384. .long 562888951
  385. .long 1069958359
  386. .long 966275143
  387. .long 1069947753
  388. .long 452333559
  389. .long 1069937178
  390. .long 2550607841
  391. .long 1069926633
  392. .long 2207334103
  393. .long 1069916119
  394. .long 2965233831
  395. .long 1069905635
  396. .long 4078536805
  397. .long 1069895181
  398. .long 512906990
  399. .long 1069884758
  400. .long 125238661
  401. .long 1069874364
  402. .long 2188747907
  403. .long 1069863999
  404. .long 1687868933
  405. .long 1069853664
  406. .long 2203085958
  407. .long 1069843358
  408. .long 3025962321
  409. .long 1069833081
  410. .long 3454039745
  411. .long 1069822833
  412. .long 2790771261
  413. .long 1069812614
  414. .long 345455060
  415. .long 1069802424
  416. .long 4023103876
  417. .long 1069792261
  418. .long 259609597
  419. .long 1069782128
  420. .long 1266320102
  421. .long 1069772022
  422. .long 2080303760
  423. .long 1069761944
  424. .long 2039124234
  425. .long 1069751894
  426. .long 485812347
  427. .long 1069741872
  428. .long 1063773386
  429. .long 1069731877
  430. .long 3126793337
  431. .long 1069721909
  432. .long 1738980508
  433. .long 1069711969
  434. .long 559609852
  435. .long 1069702056
  436. .long 3253131575
  437. .long 1069692169
  438. .long 604213228
  439. .long 1069682310
  440. .long 582455508
  441. .long 1069672477
  442. .long 2572533957
  443. .long 1069662670
  444. .long 1669112468
  445. .long 1069652890
  446. .long 1561692097
  447. .long 1069643136
  448. .long 1649656812
  449. .long 1069633408
  450. .long 1337189125
  451. .long 1069623706
  452. .long 33219107
  453. .long 1069614030
  454. .long 1446341380
  455. .long 1069604379
  456. .long 699863590
  457. .long 1069594754
  458. .long 1511626603
  459. .long 1069585154
  460. .long 3309054272
  461. .long 1069575579
  462. .long 1229105731
  463. .long 1069566030
  464. .long 3298097489
  465. .long 1069556505
  466. .long 733771778
  467. .long 1069546492
  468. .long 941119219
  469. .long 1069527542
  470. .long 1822213925
  471. .long 1069508641
  472. .long 2284546201
  473. .long 1069489789
  474. .long 1244064507
  475. .long 1069470986
  476. .long 1920055672
  477. .long 1069452231
  478. .long 3245124337
  479. .long 1069433524
  480. .long 4160075380
  481. .long 1069414865
  482. .long 3613830132
  483. .long 1069396254
  484. .long 563343667
  485. .long 1069377691
  486. .long 2563457724
  487. .long 1069359174
  488. .long 4291983602
  489. .long 1069340704
  490. .long 434524432
  491. .long 1069322282
  492. .long 2864265762
  493. .long 1069303905
  494. .long 1987192266
  495. .long 1069285575
  496. .long 1101749477
  497. .long 1069267291
  498. .long 3513866209
  499. .long 1069249052
  500. .long 3946945232
  501. .long 1069230859
  502. .long 1426691339
  503. .long 1069212712
  504. .long 3576005763
  505. .long 1069194609
  506. .long 845110406
  507. .long 1069176552
  508. .long 871215109
  509. .long 1069158539
  510. .long 2708643652
  511. .long 1069140570
  512. .long 1123731696
  513. .long 1069122646
  514. .long 3774627455
  515. .long 1069104765
  516. .long 1146452958
  517. .long 1069086929
  518. .long 910975575
  519. .long 1069069136
  520. .long 2156738207
  521. .long 1069051386
  522. .long 3978928660
  523. .long 1069033679
  524. .long 1184347907
  525. .long 1069016016
  526. .long 1471215619
  527. .long 1068998395
  528. .long 3954270793
  529. .long 1068980816
  530. .long 3459676923
  531. .long 1068963280
  532. .long 3409862493
  533. .long 1068945786
  534. .long 2938558446
  535. .long 1068928334
  536. .long 1185705548
  537. .long 1068910924
  538. .long 1592362480
  539. .long 1068893555
  540. .long 3310712728
  541. .long 1068876227
  542. .long 1204006778
  543. .long 1068858941
  544. .long 3026374165
  545. .long 1068841695
  546. .long 3652963247
  547. .long 1068824490
  548. .long 2259754590
  549. .long 1068807326
  550. .long 2323505846
  551. .long 1068790202
  552. .long 3031762664
  553. .long 1068773118
  554. .long 3577772136
  555. .long 1068756074
  556. .long 3160429577
  557. .long 1068739070
  558. .long 984225922
  559. .long 1068722106
  560. .long 554163028
  561. .long 1068705181
  562. .long 1085767694
  563. .long 1068688295
  564. .long 1800008162
  565. .long 1068671448
  566. .long 1923243906
  567. .long 1068654640
  568. .long 687176001
  569. .long 1068637871
  570. .long 1623765358
  571. .long 1068621140
  572. .long 3975249632
  573. .long 1068604447
  574. .long 2694095274
  575. .long 1068587793
  576. .long 1327852021
  577. .long 1068571177
  578. .long 3429171449
  579. .long 1068554598
  580. .long 3965826047
  581. .long 1068538057
  582. .long 2205565303
  583. .long 1068521554
  584. .long 1716070423
  585. .long 1068505088
  586. .long 3549949915
  587. .long 1068478374
  588. .long 3329575661
  589. .long 1068445590
  590. .long 1345699131
  591. .long 1068412880
  592. .long 477545290
  593. .long 1068380243
  594. .long 3613830132
  595. .long 1068347678
  596. .long 767774141
  597. .long 1068315187
  598. .long 3436756955
  599. .long 1068282767
  600. .long 1652561627
  601. .long 1068250420
  602. .long 2635998437
  603. .long 1068218144
  604. .long 732052851
  605. .long 1068185940
  606. .long 3179609247
  607. .long 1068153806
  608. .long 46600657
  609. .long 1068121744
  610. .long 2884636118
  611. .long 1068089751
  612. .long 1779250255
  613. .long 1068057829
  614. .long 4004532339
  615. .long 1068025976
  616. .long 3958279445
  617. .long 1067994193
  618. .long 341790679
  619. .long 1067962480
  620. .long 454760347
  621. .long 1067930835
  622. .long 3015335440
  623. .long 1067899258
  624. .long 2455010382
  625. .long 1067867750
  626. .long 1803457173
  627. .long 1067836310
  628. .long 4098519806
  629. .long 1067804937
  630. .long 3796209455
  631. .long 1067773632
  632. .long 3950504195
  633. .long 1067742394
  634. .long 3328378381
  635. .long 1067711223
  636. .long 704701956
  637. .long 1067680119
  638. .long 3452107772
  639. .long 1067649080
  640. .long 1771121268
  641. .long 1067618108
  642. .long 3049832979
  643. .long 1067587201
  644. .long 1799062323
  645. .long 1067556360
  646. .long 1127129613
  647. .long 1067525584
  648. .long 4149857684
  649. .long 1067494872
  650. .long 1105606892
  651. .long 1067464226
  652. .long 3134934760
  653. .long 1067416919
  654. .long 166917834
  655. .long 1067355883
  656. .long 3892547049
  657. .long 1067294973
  658. .long 3436756955
  659. .long 1067234191
  660. .long 823651223
  661. .long 1067173536
  662. .long 2386449519
  663. .long 1067113006
  664. .long 1587501031
  665. .long 1067052602
  666. .long 493004867
  667. .long 1066992323
  668. .long 1182960573
  669. .long 1066932168
  670. .long 1456087142
  671. .long 1066872137
  672. .long 3419645072
  673. .long 1066812229
  674. .long 604423097
  675. .long 1066752445
  676. .long 3734431729
  677. .long 1066692782
  678. .long 2072088478
  679. .long 1066633242
  680. .long 2072815517
  681. .long 1066573823
  682. .long 1615129006
  683. .long 1066514525
  684. .long 2885435162
  685. .long 1066455347
  686. .long 3281014557
  687. .long 1066390787
  688. .long 184567846
  689. .long 1066272911
  690. .long 930630719
  691. .long 1066155272
  692. .long 1403389293
  693. .long 1066037870
  694. .long 1806815988
  695. .long 1065920704
  696. .long 2369503088
  697. .long 1065803773
  698. .long 3344465584
  699. .long 1065687076
  700. .long 713978687
  701. .long 1065570613
  702. .long 3369253777
  703. .long 1065454381
  704. .long 1795984717
  705. .long 1065323547
  706. .long 182837330
  707. .long 1065092008
  708. .long 2643543972
  709. .long 1064860927
  710. .long 1379209260
  711. .long 1064630304
  712. .long 1522032624
  713. .long 1064400136
  714. .long 3615182786
  715. .long 1064036203
  716. .long 2033862474
  717. .long 1063577678
  718. .long 494771387
  719. .long 1062984042
  720. .long 1170198564
  721. .long 1061933680
  722. .long 0
  723. .long 2147483648
  724. .long 0
  725. .long 2147483648
  726. .long 4277811695
  727. .long 1078341186
  728. .long 4277811695
  729. .long 3225824834
  730. .long 1431655765
  731. .long 1070945621
  732. .long 1352628734
  733. .long 1046692883
  734. .long 1107282704
  735. .long 3219128321
  736. .long 354870542
  737. .long 1071369083
  738. .type static_const_table,@object
  739. .size static_const_table,2112
  740. .data
  741. .section .note.GNU-stack, ""
  742. # End