libm_logl_k80.S 32 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277
  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 "libm_logl_k80.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin __libm_logl_k80
  41. .text
  42. .align 16,0x90
  43. .hidden __libm_logl_k80
  44. .globl __libm_logl_k80
  45. __libm_logl_k80:
  46. # parameter 1: 8 + %ebp
  47. # parameter 2: 20 + %ebp
  48. # parameter 3: 32 + %ebp
  49. ..B1.1:
  50. ..L1:
  51. pushl %ebp
  52. movl %esp, %ebp
  53. andl $-16, %esp
  54. pushl %esi
  55. pushl %edi
  56. pushl %ebx
  57. subl $36, %esp
  58. fldt 8(%ebp)
  59. movzbl 17(%ebp), %esi
  60. andl $128, %esi
  61. shrl $7, %esi
  62. movzwl 16(%ebp), %ebx
  63. movl %esi, %eax
  64. movl %ebx, 12(%esp)
  65. andl $32767, %ebx
  66. shll $15, %eax
  67. movl 12(%ebp), %edx
  68. orl %ebx, %eax
  69. movl %edx, %edi
  70. shll $16, %eax
  71. shrl $16, %edi
  72. orl %edi, %eax
  73. call ..L2
  74. ..L2:
  75. popl %ecx
  76. lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%ecx), %ecx
  77. cmpl $2147450880, %eax
  78. fstpt 24(%esp)
  79. fldt 24(%esp)
  80. fldt 20(%ebp)
  81. jae ..B1.14
  82. ..B1.2:
  83. lea -1073674240(%eax), %esi
  84. cmpl $36864, %esi
  85. ja ..B1.7
  86. ..B1.3:
  87. addl $-1073676287, %eax
  88. cmpl $32769, %eax
  89. ja ..B1.6
  90. ..B1.4:
  91. fldl _ones@GOTOFF(%ecx)
  92. fucom %st(2)
  93. fnstsw %ax
  94. sahf
  95. jp ..B1.5
  96. je ..B1.23
  97. ..B1.5:
  98. fldt 36+_Q1@GOTOFF(%ecx)
  99. fld %st(3)
  100. movl 32(%ebp), %eax
  101. fsub %st(2), %st
  102. fld %st(2)
  103. fadd %st(1), %st
  104. fsubrp %st, %st(5)
  105. faddp %st, %st(4)
  106. fld %st(2)
  107. fadd %st(4), %st
  108. fld %st(0)
  109. fxch %st(1)
  110. fsub %st, %st(5)
  111. fxch %st(5)
  112. fsubrp %st, %st(4)
  113. fadd %st(3), %st
  114. fld %st(0)
  115. fmul %st(1), %st
  116. fmul %st, %st(2)
  117. fxch %st(1)
  118. fstpt 24(%esp)
  119. fldt 24(%esp)
  120. fldt 12+_Q1@GOTOFF(%ecx)
  121. faddp %st, %st(3)
  122. fxch %st(1)
  123. fmul %st, %st(2)
  124. fxch %st(1)
  125. fmulp %st, %st(2)
  126. fldt 24+_Q1@GOTOFF(%ecx)
  127. fmul %st(1), %st
  128. fldt _Q1@GOTOFF(%ecx)
  129. faddp %st, %st(1)
  130. fmulp %st, %st(1)
  131. faddp %st, %st(1)
  132. fld %st(3)
  133. fadd %st(1), %st
  134. fstpt (%eax)
  135. fldt (%eax)
  136. fsubrp %st, %st(4)
  137. faddp %st, %st(3)
  138. fxch %st(2)
  139. faddp %st, %st(1)
  140. fstpt 12(%eax)
  141. addl $36, %esp
  142. popl %ebx
  143. popl %edi
  144. popl %esi
  145. movl %ebp, %esp
  146. popl %ebp
  147. ret
  148. ..B1.6:
  149. fldl 8+_ones@GOTOFF(%ecx)
  150. fld %st(2)
  151. movl 32(%ebp), %eax
  152. fadd %st(1), %st
  153. fld %st(0)
  154. fxch %st(1)
  155. fsubr %st, %st(2)
  156. fxch %st(4)
  157. faddp %st, %st(2)
  158. fxch %st(2)
  159. faddp %st, %st(1)
  160. fadd %st, %st(1)
  161. fld %st(1)
  162. fld %st(2)
  163. fxch %st(3)
  164. fstpt 24(%esp)
  165. fldt 24(%esp)
  166. fsubr %st, %st(4)
  167. fxch %st(2)
  168. faddp %st, %st(4)
  169. fldl _TWO_52H@GOTOFF(%ecx)
  170. fmul %st(2), %st
  171. fadd %st, %st(1)
  172. fsubrp %st, %st(1)
  173. fld %st(0)
  174. fld %st(1)
  175. fmul %st(2), %st
  176. fxch %st(2)
  177. fsubr %st, %st(4)
  178. fxch %st(5)
  179. faddp %st, %st(4)
  180. fxch %st(3)
  181. fstpt (%esp)
  182. fldt (%esp)
  183. fmul %st, %st(3)
  184. fmul %st(2), %st
  185. faddp %st, %st(3)
  186. fld %st(2)
  187. fadd %st(1), %st
  188. fldt 156+_Q2@GOTOFF(%ecx)
  189. fmul %st(1), %st
  190. fldt 132+_Q2@GOTOFF(%ecx)
  191. faddp %st, %st(1)
  192. fmul %st(1), %st
  193. fldt 108+_Q2@GOTOFF(%ecx)
  194. faddp %st, %st(1)
  195. fmul %st(1), %st
  196. fldt 84+_Q2@GOTOFF(%ecx)
  197. faddp %st, %st(1)
  198. fmul %st(1), %st
  199. fldt 60+_Q2@GOTOFF(%ecx)
  200. faddp %st, %st(1)
  201. fmul %st(1), %st
  202. fldt 36+_Q2@GOTOFF(%ecx)
  203. faddp %st, %st(1)
  204. fmul %st(1), %st
  205. fldt 12+_Q2@GOTOFF(%ecx)
  206. faddp %st, %st(1)
  207. fmul %st(1), %st
  208. fldt 144+_Q2@GOTOFF(%ecx)
  209. fmul %st(2), %st
  210. fldt 120+_Q2@GOTOFF(%ecx)
  211. faddp %st, %st(1)
  212. fmul %st(2), %st
  213. fldt 96+_Q2@GOTOFF(%ecx)
  214. faddp %st, %st(1)
  215. fmul %st(2), %st
  216. fldt 72+_Q2@GOTOFF(%ecx)
  217. faddp %st, %st(1)
  218. fmul %st(2), %st
  219. fldt 48+_Q2@GOTOFF(%ecx)
  220. faddp %st, %st(1)
  221. fmul %st(2), %st
  222. fldt 24+_Q2@GOTOFF(%ecx)
  223. faddp %st, %st(1)
  224. fmulp %st, %st(2)
  225. fldt _Q2@GOTOFF(%ecx)
  226. faddp %st, %st(2)
  227. fxch %st(3)
  228. fmulp %st, %st(1)
  229. faddp %st, %st(2)
  230. fldt 180+_Q2@GOTOFF(%ecx)
  231. fmul %st, %st(3)
  232. fxch %st(3)
  233. faddp %st, %st(2)
  234. fmulp %st, %st(2)
  235. fld %st(2)
  236. fldt 168+_Q2@GOTOFF(%ecx)
  237. fld %st(0)
  238. fmul %st(5), %st
  239. faddp %st, %st(4)
  240. fldt (%esp)
  241. fmul %st, %st(1)
  242. fxch %st(1)
  243. faddp %st, %st(3)
  244. fxch %st(1)
  245. fmul %st(2), %st
  246. fxch %st(2)
  247. fadd %st(3), %st
  248. fmul %st(1), %st
  249. faddp %st, %st(2)
  250. faddp %st, %st(1)
  251. fxch %st(1)
  252. fmul %st(2), %st
  253. fld %st(2)
  254. fadd %st(1), %st
  255. fsubr %st, %st(3)
  256. fxch %st(1)
  257. faddp %st, %st(3)
  258. fxch %st(2)
  259. faddp %st, %st(1)
  260. fld %st(1)
  261. fadd %st(1), %st
  262. fstpt (%eax)
  263. fldt (%eax)
  264. fsubrp %st, %st(2)
  265. faddp %st, %st(1)
  266. fstpt 12(%eax)
  267. fldl _ones@GOTOFF(%ecx)
  268. addl $36, %esp
  269. popl %ebx
  270. popl %edi
  271. popl %esi
  272. movl %ebp, %esp
  273. popl %ebp
  274. ret
  275. ..B1.7:
  276. fldl _zeros@GOTOFF(%ecx)
  277. testl %ebx, %ebx
  278. jne ..B1.10
  279. ..B1.8:
  280. fldl _TWO_75@GOTOFF(%ecx)
  281. fmul %st, %st(3)
  282. fxch %st(3)
  283. fucom %st(1)
  284. fnstsw %ax
  285. fxch %st(3)
  286. fmulp %st, %st(2)
  287. sahf
  288. jp ..B1.9
  289. je ..B1.27
  290. ..B1.9:
  291. fxch %st(2)
  292. fstpt 24(%esp)
  293. movl $-16458, %esi
  294. movzwl 32(%esp), %ebx
  295. movl 28(%esp), %edx
  296. movl %ebx, 12(%esp)
  297. andl $32767, %ebx
  298. jmp ..B1.11
  299. ..B1.10:
  300. fstp %st(2)
  301. movl $-16383, %esi
  302. ..B1.11:
  303. addl %ebx, %esi
  304. fucom %st(1)
  305. fnstsw %ax
  306. fxch %st(1)
  307. fstp %st(0)
  308. sahf
  309. jp ..B1.12
  310. je ..B1.13
  311. ..B1.12:
  312. fstpt (%esp)
  313. movzwl 8(%esp), %eax
  314. movl %eax, %edi
  315. subl %ebx, %eax
  316. andl $-32768, %edi
  317. addl $16383, %eax
  318. andl $32767, %eax
  319. orl %eax, %edi
  320. movw %di, 8(%esp)
  321. fldt (%esp)
  322. ..B1.13:
  323. fldl _TWO_32H@GOTOFF(%ecx)
  324. fldl 8+_ones@GOTOFF(%ecx)
  325. fldt 60+_P@GOTOFF(%ecx)
  326. movl 12(%esp), %eax
  327. andl $-32768, %eax
  328. orl $-49153, %eax
  329. movw %ax, 32(%esp)
  330. fldt 24(%esp)
  331. fld %st(0)
  332. shrl $23, %edx
  333. fadd %st(4), %st
  334. movzbl %dl, %edx
  335. fsubp %st, %st(4)
  336. movl %esi, 16(%esp)
  337. fsub %st(3), %st
  338. flds __libm_rcp_table_256@GOTOFF(%ecx,%edx,4)
  339. fmul %st, %st(4)
  340. fmul %st, %st(1)
  341. fmulp %st, %st(5)
  342. fxch %st(4)
  343. fstpt (%esp)
  344. fldt (%esp)
  345. fld %st(2)
  346. shll $4, %edx
  347. fadd %st(4), %st
  348. movl 32(%ebp), %ebx
  349. fsubr %st, %st(3)
  350. fxch %st(4)
  351. faddp %st, %st(3)
  352. fld %st(3)
  353. fxch %st(5)
  354. faddp %st, %st(1)
  355. faddp %st, %st(2)
  356. fxch %st(1)
  357. fadd %st, %st(3)
  358. fld %st(3)
  359. fmul %st(4), %st
  360. fmul %st, %st(2)
  361. fxch %st(4)
  362. fstpt 24(%esp)
  363. fldt 24(%esp)
  364. fildl 16(%esp)
  365. fldt 36+_P@GOTOFF(%ecx)
  366. faddp %st, %st(4)
  367. fxch %st(3)
  368. fmul %st(5), %st
  369. fldt 12+_P@GOTOFF(%ecx)
  370. faddp %st, %st(1)
  371. fmul %st(5), %st
  372. fmulp %st, %st(1)
  373. fldt 48+_P@GOTOFF(%ecx)
  374. fmul %st(5), %st
  375. fldt 24+_P@GOTOFF(%ecx)
  376. faddp %st, %st(1)
  377. fmul %st(5), %st
  378. fldt _P@GOTOFF(%ecx)
  379. faddp %st, %st(1)
  380. fmulp %st, %st(5)
  381. faddp %st, %st(4)
  382. faddp %st, %st(3)
  383. fldt .L_2il0floatpacket.2@GOTOFF(%ecx)
  384. fmul %st(1), %st
  385. fldt .L_2il0floatpacket.3@GOTOFF(%ecx)
  386. fmulp %st, %st(2)
  387. faddl 8+__libm_logl_table_256@GOTOFF(%ecx,%edx)
  388. faddp %st, %st(3)
  389. faddl __libm_logl_table_256@GOTOFF(%edx,%ecx)
  390. faddp %st, %st(1)
  391. fld %st(0)
  392. fadd %st(2), %st
  393. fstpt (%ebx)
  394. fldt (%ebx)
  395. fsubrp %st, %st(1)
  396. faddp %st, %st(1)
  397. fstpt 12(%ebx)
  398. fldl _ones@GOTOFF(%ecx)
  399. addl $36, %esp
  400. popl %ebx
  401. popl %edi
  402. popl %esi
  403. movl %ebp, %esp
  404. popl %ebp
  405. ret
  406. ..B1.14:
  407. fstp %st(0)
  408. testl %esi, %esi
  409. jne ..B1.16
  410. ..B1.15:
  411. fldl _ones@GOTOFF(%ecx)
  412. fmul %st, %st(1)
  413. fldl _zeros@GOTOFF(%ecx)
  414. fxch %st(2)
  415. fxch %st(1)
  416. jmp ..B1.22
  417. ..B1.16:
  418. cmpl $32767, %ebx
  419. je ..B1.25
  420. ..B1.17:
  421. fstp %st(0)
  422. testl %ebx, %ebx
  423. jne ..B1.21
  424. ..B1.18:
  425. testl %edx, %edx
  426. jne ..B1.21
  427. ..B1.19:
  428. cmpl $0, 24(%esp)
  429. jne ..B1.21
  430. ..B1.20:
  431. fldl _zeros@GOTOFF(%ecx)
  432. fldl 8+_ones@GOTOFF(%ecx)
  433. fdiv %st(1), %st
  434. fldl _ones@GOTOFF(%ecx)
  435. jmp ..B1.22
  436. ..B1.21:
  437. fldl _zeros@GOTOFF(%ecx)
  438. fldl _infs@GOTOFF(%ecx)
  439. fmul %st(1), %st
  440. fldl _ones@GOTOFF(%ecx)
  441. ..B1.22:
  442. movl 32(%ebp), %eax
  443. fxch %st(1)
  444. fstpt (%eax)
  445. fxch %st(1)
  446. fstpt 12(%eax)
  447. addl $36, %esp
  448. popl %ebx
  449. popl %edi
  450. popl %esi
  451. movl %ebp, %esp
  452. popl %ebp
  453. ret
  454. ..B1.23:
  455. fldl _zeros@GOTOFF(%ecx)
  456. fucom %st(2)
  457. fnstsw %ax
  458. sahf
  459. jp ..B1.30
  460. je ..B1.24
  461. ..B1.30:
  462. fstp %st(0)
  463. jmp ..B1.5
  464. ..B1.24:
  465. fstp %st(1)
  466. fstp %st(2)
  467. fstp %st(0)
  468. movl 32(%ebp), %eax
  469. fld %st(0)
  470. fxch %st(1)
  471. fstpt (%eax)
  472. fldt (%eax)
  473. fstpt 12(%eax)
  474. addl $36, %esp
  475. popl %ebx
  476. popl %edi
  477. popl %esi
  478. movl %ebp, %esp
  479. popl %ebp
  480. ret
  481. ..B1.25:
  482. cmpl $-2147483648, %edx
  483. jne ..B1.15
  484. ..B1.26:
  485. cmpl $0, 24(%esp)
  486. jne ..B1.15
  487. jmp ..B1.31
  488. ..B1.27:
  489. fstp %st(2)
  490. fstp %st(0)
  491. fldl 8+_ones@GOTOFF(%ecx)
  492. fdiv %st(1), %st
  493. movl 32(%ebp), %eax
  494. fstpt (%eax)
  495. fstpt 12(%eax)
  496. fldl _ones@GOTOFF(%ecx)
  497. addl $36, %esp
  498. popl %ebx
  499. popl %edi
  500. popl %esi
  501. movl %ebp, %esp
  502. popl %ebp
  503. ret
  504. ..B1.31:
  505. fstp %st(0)
  506. jmp ..B1.21
  507. .align 16,0x90
  508. .type __libm_logl_k80,@function
  509. .size __libm_logl_k80,.-__libm_logl_k80
  510. .data
  511. # -- End __libm_logl_k80
  512. .text
  513. # -- Begin __libm_log_k80
  514. .text
  515. .align 16,0x90
  516. .hidden __libm_log_k80
  517. .globl __libm_log_k80
  518. __libm_log_k80:
  519. # parameter 1: 8 + %ebp
  520. # parameter 2: 12 + %ebp
  521. ..B2.1:
  522. ..L3:
  523. pushl %ebp
  524. movl %esp, %ebp
  525. andl $-16, %esp
  526. pushl %esi
  527. pushl %edi
  528. pushl %ebx
  529. subl $100, %esp
  530. movl %gs:20, %eax
  531. xorl %esp, %eax
  532. movl %eax, 84(%esp)
  533. addl $4, %esp
  534. movl 12(%ebp), %ebx
  535. pushl %ebx
  536. call __libm_normalizel_k80
  537. ..B2.2:
  538. fldt (%ebx)
  539. fldt 12(%ebx)
  540. movl 24(%ebx), %eax
  541. cmpl $-1, %eax
  542. call ..L4
  543. ..L4:
  544. popl %ebx
  545. lea _GLOBAL_OFFSET_TABLE_+[. - ..L4](%ebx), %ebx
  546. je ..B2.41
  547. ..B2.3:
  548. movl %eax, 48(%esp)
  549. fildl 48(%esp)
  550. ..B2.4:
  551. fxch %st(2)
  552. fstpt 32(%esp)
  553. fldt 32(%esp)
  554. movzbl 41(%esp), %esi
  555. andl $128, %esi
  556. shrl $7, %esi
  557. movzwl 40(%esp), %edx
  558. movl %esi, %eax
  559. movl %edx, 28(%esp)
  560. andl $32767, %edx
  561. shll $15, %eax
  562. movl 36(%esp), %ecx
  563. orl %edx, %eax
  564. movl %ecx, %edi
  565. shll $16, %eax
  566. shrl $16, %edi
  567. orl %edi, %eax
  568. cmpl $2147450880, %eax
  569. jae ..B2.17
  570. ..B2.5:
  571. lea -1073674240(%eax), %esi
  572. cmpl $36864, %esi
  573. ja ..B2.10
  574. ..B2.6:
  575. fldl _ones@GOTOFF(%ebx)
  576. addl $-1073676287, %eax
  577. cmpl $32769, %eax
  578. ja ..B2.9
  579. ..B2.7:
  580. fucom %st(1)
  581. fnstsw %ax
  582. sahf
  583. jp ..B2.8
  584. je ..B2.35
  585. ..B2.8:
  586. fldt 12+_Q1@GOTOFF(%ebx)
  587. fld %st(2)
  588. fsub %st(2), %st
  589. fld %st(2)
  590. fadd %st(1), %st
  591. fsubrp %st, %st(4)
  592. faddp %st, %st(3)
  593. fld %st(3)
  594. fadd %st(3), %st
  595. fsub %st, %st(3)
  596. fxch %st(3)
  597. fsubrp %st, %st(4)
  598. fld %st(2)
  599. fadd %st(4), %st
  600. fld %st(0)
  601. fmul %st(1), %st
  602. fldt 36+_Q1@GOTOFF(%ebx)
  603. fmul %st(1), %st
  604. faddp %st, %st(3)
  605. fmul %st, %st(2)
  606. fxch %st(1)
  607. fmulp %st, %st(2)
  608. fldt 24+_Q1@GOTOFF(%ebx)
  609. fmul %st(1), %st
  610. fldt _Q1@GOTOFF(%ebx)
  611. faddp %st, %st(1)
  612. fmulp %st, %st(1)
  613. faddp %st, %st(1)
  614. fld %st(2)
  615. fadd %st(1), %st
  616. fsubr %st, %st(3)
  617. fxch %st(3)
  618. faddp %st, %st(1)
  619. faddp %st, %st(3)
  620. jmp ..B2.26
  621. ..B2.9:
  622. fldl 8+_ones@GOTOFF(%ebx)
  623. fld %st(2)
  624. fadd %st(1), %st
  625. fsubr %st, %st(1)
  626. fxch %st(3)
  627. faddp %st, %st(1)
  628. faddp %st, %st(3)
  629. fstpt 32(%esp)
  630. fld %st(0)
  631. fadd %st(2), %st
  632. fld %st(0)
  633. fld %st(1)
  634. fxch %st(5)
  635. fstpt 16(%esp)
  636. fxch %st(1)
  637. fsubr %st, %st(2)
  638. fxch %st(3)
  639. faddp %st, %st(2)
  640. fldl _TWO_52H@GOTOFF(%ebx)
  641. fmul %st(3), %st
  642. fadd %st, %st(1)
  643. fsubrp %st, %st(1)
  644. fld %st(0)
  645. fld %st(1)
  646. fmul %st(2), %st
  647. fxch %st(2)
  648. fsubr %st, %st(5)
  649. fxch %st(3)
  650. faddp %st, %st(5)
  651. fxch %st(4)
  652. fstpt 48(%esp)
  653. fldt 48(%esp)
  654. fmul %st, %st(4)
  655. fmul %st(3), %st
  656. faddp %st, %st(4)
  657. fld %st(3)
  658. fadd %st(1), %st
  659. fldt 156+_Q2@GOTOFF(%ebx)
  660. fmul %st(1), %st
  661. fldt 132+_Q2@GOTOFF(%ebx)
  662. faddp %st, %st(1)
  663. fmul %st(1), %st
  664. fldt 108+_Q2@GOTOFF(%ebx)
  665. faddp %st, %st(1)
  666. fmul %st(1), %st
  667. fldt 84+_Q2@GOTOFF(%ebx)
  668. faddp %st, %st(1)
  669. fmul %st(1), %st
  670. fldt 60+_Q2@GOTOFF(%ebx)
  671. faddp %st, %st(1)
  672. fmul %st(1), %st
  673. fldt 36+_Q2@GOTOFF(%ebx)
  674. faddp %st, %st(1)
  675. fmul %st(1), %st
  676. fldt 12+_Q2@GOTOFF(%ebx)
  677. faddp %st, %st(1)
  678. fmul %st(1), %st
  679. fldt 144+_Q2@GOTOFF(%ebx)
  680. fmul %st(2), %st
  681. fldt 120+_Q2@GOTOFF(%ebx)
  682. faddp %st, %st(1)
  683. fmul %st(2), %st
  684. fldt 96+_Q2@GOTOFF(%ebx)
  685. faddp %st, %st(1)
  686. fmul %st(2), %st
  687. fldt 72+_Q2@GOTOFF(%ebx)
  688. faddp %st, %st(1)
  689. fmul %st(2), %st
  690. fldt 48+_Q2@GOTOFF(%ebx)
  691. faddp %st, %st(1)
  692. fmul %st(2), %st
  693. fldt 24+_Q2@GOTOFF(%ebx)
  694. faddp %st, %st(1)
  695. fmulp %st, %st(2)
  696. fldt _Q2@GOTOFF(%ebx)
  697. faddp %st, %st(2)
  698. fxch %st(4)
  699. fmulp %st, %st(1)
  700. faddp %st, %st(3)
  701. fldt 180+_Q2@GOTOFF(%ebx)
  702. fmul %st, %st(4)
  703. fxch %st(4)
  704. faddp %st, %st(3)
  705. fmulp %st, %st(3)
  706. fld %st(0)
  707. fldt 168+_Q2@GOTOFF(%ebx)
  708. fld %st(0)
  709. fmul %st(3), %st
  710. faddp %st, %st(5)
  711. fldt 48(%esp)
  712. fmul %st, %st(1)
  713. fxch %st(1)
  714. faddp %st, %st(4)
  715. fxch %st(1)
  716. fmul %st(3), %st
  717. fxch %st(3)
  718. fadd %st(4), %st
  719. fmul %st(1), %st
  720. faddp %st, %st(3)
  721. faddp %st, %st(2)
  722. fmul %st, %st(2)
  723. fld %st(0)
  724. fadd %st(3), %st
  725. fld %st(0)
  726. fxch %st(1)
  727. fsubr %st, %st(2)
  728. fxch %st(4)
  729. faddp %st, %st(2)
  730. fxch %st(1)
  731. faddp %st, %st(2)
  732. fadd %st(1), %st
  733. fsubr %st, %st(2)
  734. fxch %st(2)
  735. faddp %st, %st(1)
  736. fldt 32(%esp)
  737. fldt 16(%esp)
  738. fxch %st(3)
  739. fxch %st(1)
  740. jmp ..B2.26
  741. ..B2.10:
  742. fldl _zeros@GOTOFF(%ebx)
  743. testl %edx, %edx
  744. jne ..B2.13
  745. ..B2.11:
  746. fldl _TWO_75@GOTOFF(%ebx)
  747. fmul %st, %st(2)
  748. fxch %st(2)
  749. fucom %st(1)
  750. fnstsw %ax
  751. fxch %st(2)
  752. fmulp %st, %st(3)
  753. sahf
  754. jp ..B2.12
  755. je ..B2.37
  756. ..B2.12:
  757. fxch %st(1)
  758. fstpt 32(%esp)
  759. movl $-16458, %esi
  760. movzwl 40(%esp), %edx
  761. movl 36(%esp), %ecx
  762. movl %edx, 28(%esp)
  763. andl $32767, %edx
  764. jmp ..B2.14
  765. ..B2.13:
  766. fstp %st(1)
  767. movl $-16383, %esi
  768. ..B2.14:
  769. addl %edx, %esi
  770. fucomp %st(1)
  771. fnstsw %ax
  772. sahf
  773. jp ..B2.15
  774. je ..B2.16
  775. ..B2.15:
  776. fstpt 16(%esp)
  777. movzwl 24(%esp), %eax
  778. movl %eax, %edi
  779. subl %edx, %eax
  780. andl $-32768, %edi
  781. addl $16383, %eax
  782. andl $32767, %eax
  783. orl %eax, %edi
  784. movw %di, 24(%esp)
  785. fldt 16(%esp)
  786. ..B2.16:
  787. fldl _TWO_32H@GOTOFF(%ebx)
  788. fldt 36+_P@GOTOFF(%ebx)
  789. movl 28(%esp), %eax
  790. andl $-32768, %eax
  791. orl $-49153, %eax
  792. movw %ax, 40(%esp)
  793. fldt 32(%esp)
  794. fld %st(0)
  795. shrl $23, %ecx
  796. fadd %st(3), %st
  797. movzbl %cl, %ecx
  798. fsubp %st, %st(3)
  799. movl %esi, 48(%esp)
  800. fsub %st(2), %st
  801. fildl 48(%esp)
  802. flds __libm_rcp_table_256@GOTOFF(%ebx,%ecx,4)
  803. fmul %st, %st(4)
  804. fmul %st, %st(2)
  805. fmulp %st, %st(5)
  806. shll $4, %ecx
  807. fxch %st(1)
  808. faddp %st, %st(4)
  809. fldl 8+_ones@GOTOFF(%ebx)
  810. fld %st(0)
  811. fadd %st(4), %st
  812. fld %st(0)
  813. fxch %st(1)
  814. fsubr %st, %st(2)
  815. fxch %st(5)
  816. faddp %st, %st(2)
  817. fxch %st(5)
  818. faddp %st, %st(1)
  819. fadd %st, %st(4)
  820. fld %st(4)
  821. fmul %st(5), %st
  822. fldt 60+_P@GOTOFF(%ebx)
  823. fmul %st(1), %st
  824. faddp %st, %st(4)
  825. fmul %st, %st(3)
  826. fldt 12+_P@GOTOFF(%ebx)
  827. faddp %st, %st(4)
  828. fmul %st, %st(3)
  829. fxch %st(5)
  830. fmulp %st, %st(3)
  831. fldt 48+_P@GOTOFF(%ebx)
  832. fmul %st(5), %st
  833. fldt 24+_P@GOTOFF(%ebx)
  834. faddp %st, %st(1)
  835. fmul %st(5), %st
  836. fldt _P@GOTOFF(%ebx)
  837. faddp %st, %st(1)
  838. fmulp %st, %st(5)
  839. fxch %st(4)
  840. faddp %st, %st(2)
  841. fxch %st(1)
  842. faddp %st, %st(3)
  843. fldt .L_2il0floatpacket.2@GOTOFF(%ebx)
  844. fmul %st(1), %st
  845. fldt .L_2il0floatpacket.3@GOTOFF(%ebx)
  846. fmulp %st, %st(2)
  847. faddl 8+__libm_logl_table_256@GOTOFF(%ebx,%ecx)
  848. faddp %st, %st(3)
  849. fldl _ones@GOTOFF(%ebx)
  850. fxch %st(1)
  851. faddl __libm_logl_table_256@GOTOFF(%ecx,%ebx)
  852. faddp %st, %st(2)
  853. fld %st(1)
  854. fadd %st(3), %st
  855. fsubr %st, %st(2)
  856. fxch %st(2)
  857. faddp %st, %st(3)
  858. jmp ..B2.26
  859. ..B2.17:
  860. fstp %st(1)
  861. testl %esi, %esi
  862. jne ..B2.19
  863. ..B2.18:
  864. fldl _ones@GOTOFF(%ebx)
  865. fmul %st, %st(1)
  866. fldl _zeros@GOTOFF(%ebx)
  867. fxch %st(2)
  868. fxch %st(1)
  869. jmp ..B2.26
  870. ..B2.19:
  871. cmpl $32767, %edx
  872. je ..B2.39
  873. ..B2.20:
  874. fstp %st(0)
  875. testl %edx, %edx
  876. jne ..B2.24
  877. ..B2.21:
  878. testl %ecx, %ecx
  879. jne ..B2.24
  880. ..B2.22:
  881. cmpl $0, 32(%esp)
  882. jne ..B2.24
  883. ..B2.23:
  884. fldl _zeros@GOTOFF(%ebx)
  885. fldl 8+_ones@GOTOFF(%ebx)
  886. fdiv %st(1), %st
  887. fldl _ones@GOTOFF(%ebx)
  888. jmp ..B2.26
  889. ..B2.24:
  890. fldl _zeros@GOTOFF(%ebx)
  891. fldl _infs@GOTOFF(%ebx)
  892. fmul %st(1), %st
  893. fldl _ones@GOTOFF(%ebx)
  894. ..B2.26:
  895. fldt 12+_LN2_K80@GOTOFF(%ebx)
  896. lea 72(%esp), %edx
  897. fmul %st(4), %st
  898. movl 8(%ebp), %eax
  899. fstpt -44(%edx)
  900. fldt -44(%edx)
  901. fxch %st(1)
  902. fmul %st, %st(2)
  903. fxch %st(2)
  904. fstpt -12(%edx)
  905. fldt -12(%edx)
  906. fxch %st(3)
  907. fmulp %st, %st(2)
  908. movzwl -4(%edx), %esi
  909. andl $32767, %esi
  910. fxch %st(1)
  911. fstpt (%edx)
  912. fldt (%edx)
  913. fldt _LN2_K80@GOTOFF(%ebx)
  914. fmulp %st, %st(4)
  915. fxch %st(3)
  916. fstpt -56(%edx)
  917. fldt -56(%edx)
  918. fld %st(2)
  919. movzwl -48(%edx), %ecx
  920. fadd %st(1), %st
  921. andl $32767, %ecx
  922. movl $0, 24(%eax)
  923. cmpl %esi, %ecx
  924. jg ..B2.31
  925. ..B2.27:
  926. jne ..B2.32
  927. ..B2.28:
  928. movl 20(%esp), %edx
  929. movl 64(%esp), %ecx
  930. cmpl %ecx, %edx
  931. ja ..B2.31
  932. ..B2.29:
  933. jne ..B2.32
  934. ..B2.30:
  935. movl 16(%esp), %edx
  936. cmpl 60(%esp), %edx
  937. jbe ..B2.32
  938. ..B2.31:
  939. fsubr %st, %st(1)
  940. fxch %st(3)
  941. faddp %st, %st(1)
  942. faddp %st, %st(3)
  943. faddp %st, %st(2)
  944. jmp ..B2.33
  945. ..B2.32:
  946. fsubr %st, %st(3)
  947. fxch %st(1)
  948. faddp %st, %st(3)
  949. fxch %st(1)
  950. faddp %st, %st(2)
  951. fxch %st(1)
  952. faddp %st, %st(2)
  953. ..B2.33:
  954. fld %st(0)
  955. fadd %st(2), %st
  956. fstpt (%eax)
  957. fldt (%eax)
  958. fsubrp %st, %st(1)
  959. faddp %st, %st(1)
  960. fstpt 12(%eax)
  961. movl 84(%esp), %eax
  962. xorl %esp, %eax
  963. cmpl %gs:20, %eax
  964. jne ..B2.38
  965. ..B2.34:
  966. addl $100, %esp
  967. popl %ebx
  968. popl %edi
  969. popl %esi
  970. movl %ebp, %esp
  971. popl %ebp
  972. ret
  973. ..B2.35:
  974. fldl _zeros@GOTOFF(%ebx)
  975. fucom %st(3)
  976. fnstsw %ax
  977. sahf
  978. jp ..B2.44
  979. je ..B2.36
  980. ..B2.44:
  981. fstp %st(0)
  982. jmp ..B2.8
  983. ..B2.36:
  984. fstp %st(2)
  985. fstp %st(2)
  986. fstp %st(1)
  987. fld %st(0)
  988. fld %st(1)
  989. fxch %st(1)
  990. fxch %st(2)
  991. fxch %st(1)
  992. jmp ..B2.26
  993. ..B2.37:
  994. fstp %st(1)
  995. fstp %st(1)
  996. fldl 8+_ones@GOTOFF(%ebx)
  997. fdiv %st(1), %st
  998. fldl _ones@GOTOFF(%ebx)
  999. jmp ..B2.26
  1000. ..B2.38:
  1001. call __stack_chk_fail@PLT
  1002. ..B2.39:
  1003. cmpl $-2147483648, %ecx
  1004. jne ..B2.18
  1005. ..B2.40:
  1006. cmpl $0, 32(%esp)
  1007. jne ..B2.18
  1008. jmp ..B2.45
  1009. ..B2.41:
  1010. fldl _zeros@GOTOFF(%ebx)
  1011. fldt halfs@GOTOFF(%ebx)
  1012. fmul %st, %st(3)
  1013. fmulp %st, %st(2)
  1014. jmp ..B2.4
  1015. ..B2.45:
  1016. fstp %st(0)
  1017. jmp ..B2.24
  1018. .align 16,0x90
  1019. .type __libm_log_k80,@function
  1020. .size __libm_log_k80,.-__libm_log_k80
  1021. .data
  1022. # -- End __libm_log_k80
  1023. .section .rodata, "a"
  1024. .align 16
  1025. .align 16
  1026. .L_2il0floatpacket.2:
  1027. .byte 0x00,0x30,0x71,0xd8,0x50,0x19,0xc2,0xb8,0xdc,0xbf,0x00,0x00
  1028. .type .L_2il0floatpacket.2,@object
  1029. .size .L_2il0floatpacket.2,12
  1030. .space 4, 0x00 # pad
  1031. .align 16
  1032. .L_2il0floatpacket.3:
  1033. .byte 0x00,0x00,0x00,0x00,0xf8,0x17,0x72,0xb1,0xfe,0x3f,0x00,0x00
  1034. .type .L_2il0floatpacket.3,@object
  1035. .size .L_2il0floatpacket.3,12
  1036. .align 4
  1037. _ones:
  1038. .long 0
  1039. .long 1072693248
  1040. .long 0
  1041. .long 3220176896
  1042. .type _ones,@object
  1043. .size _ones,16
  1044. .align 4
  1045. _TWO_52H:
  1046. .long 0
  1047. .long 1127743488
  1048. .type _TWO_52H,@object
  1049. .size _TWO_52H,8
  1050. .align 4
  1051. _zeros:
  1052. .long 0
  1053. .long 0
  1054. .long 0
  1055. .long 2147483648
  1056. .type _zeros,@object
  1057. .size _zeros,16
  1058. .align 4
  1059. _TWO_75:
  1060. .long 0
  1061. .long 1151336448
  1062. .long 0
  1063. .long 994050048
  1064. .type _TWO_75,@object
  1065. .size _TWO_75,16
  1066. .align 4
  1067. _TWO_32H:
  1068. .long 0
  1069. .long 1106771968
  1070. .type _TWO_32H,@object
  1071. .size _TWO_32H,8
  1072. .align 4
  1073. _infs:
  1074. .long 0
  1075. .long 2146435072
  1076. .long 0
  1077. .long 4293918720
  1078. .type _infs,@object
  1079. .size _infs,16
  1080. .align 4
  1081. halfs:
  1082. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xfe,0x3f,0x00,0x00
  1083. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xfe,0xbf,0x00,0x00
  1084. .type halfs,@object
  1085. .size halfs,24
  1086. .align 2
  1087. _Q1:
  1088. .word 0
  1089. .word 0
  1090. .word 0
  1091. .word 32768
  1092. .word 49150
  1093. .word 0
  1094. .word 5458
  1095. .word 43692
  1096. .word 43690
  1097. .word 43690
  1098. .word 16381
  1099. .word 0
  1100. .word 44682
  1101. .word 49156
  1102. .word 65535
  1103. .word 65535
  1104. .word 49148
  1105. .word 0
  1106. .word 63914
  1107. .word 24446
  1108. .word 52434
  1109. .word 52426
  1110. .word 16380
  1111. .word 0
  1112. .type _Q1,@object
  1113. .size _Q1,48
  1114. .align 2
  1115. _Q2:
  1116. .word 58950
  1117. .word 11767
  1118. .word 59949
  1119. .word 40744
  1120. .word 49076
  1121. .word 0
  1122. .word 44486
  1123. .word 43690
  1124. .word 43690
  1125. .word 43690
  1126. .word 16369
  1127. .word 0
  1128. .word 65514
  1129. .word 65535
  1130. .word 65535
  1131. .word 65535
  1132. .word 49148
  1133. .word 0
  1134. .word 49718
  1135. .word 52428
  1136. .word 52428
  1137. .word 52428
  1138. .word 16380
  1139. .word 0
  1140. .word 36693
  1141. .word 43691
  1142. .word 43690
  1143. .word 43690
  1144. .word 49148
  1145. .word 0
  1146. .word 41156
  1147. .word 18852
  1148. .word 9362
  1149. .word 37449
  1150. .word 16380
  1151. .word 0
  1152. .word 14101
  1153. .word 65290
  1154. .word 65535
  1155. .word 65535
  1156. .word 49147
  1157. .word 0
  1158. .word 21744
  1159. .word 48151
  1160. .word 14557
  1161. .word 58254
  1162. .word 16379
  1163. .word 0
  1164. .word 57454
  1165. .word 983
  1166. .word 52353
  1167. .word 52428
  1168. .word 49147
  1169. .word 0
  1170. .word 54021
  1171. .word 59409
  1172. .word 39452
  1173. .word 47662
  1174. .word 16379
  1175. .word 0
  1176. .word 35608
  1177. .word 4659
  1178. .word 11214
  1179. .word 43692
  1180. .word 49147
  1181. .word 0
  1182. .word 35524
  1183. .word 31332
  1184. .word 8749
  1185. .word 40326
  1186. .word 16379
  1187. .word 0
  1188. .word 54832
  1189. .word 20873
  1190. .word 17674
  1191. .word 36915
  1192. .word 49147
  1193. .word 0
  1194. .word 48567
  1195. .word 9481
  1196. .word 46911
  1197. .word 55870
  1198. .word 16378
  1199. .word 0
  1200. .word 0
  1201. .word 0
  1202. .word 0
  1203. .word 32768
  1204. .word 49150
  1205. .word 0
  1206. .word 0
  1207. .word 0
  1208. .word 0
  1209. .word 43680
  1210. .word 16381
  1211. .word 0
  1212. .type _Q2,@object
  1213. .size _Q2,192
  1214. .align 2
  1215. _P:
  1216. .word 65
  1217. .word 0
  1218. .word 0
  1219. .word 32768
  1220. .word 49150
  1221. .word 0
  1222. .word 44010
  1223. .word 43690
  1224. .word 43690
  1225. .word 43690
  1226. .word 16381
  1227. .word 0
  1228. .word 58670
  1229. .word 61414
  1230. .word 65535
  1231. .word 65535
  1232. .word 49148
  1233. .word 0
  1234. .word 24905
  1235. .word 46201
  1236. .word 52428
  1237. .word 52428
  1238. .word 16380
  1239. .word 0
  1240. .word 57053
  1241. .word 27587
  1242. .word 64478
  1243. .word 43690
  1244. .word 49148
  1245. .word 0
  1246. .word 41508
  1247. .word 48914
  1248. .word 32459
  1249. .word 37449
  1250. .word 16380
  1251. .word 0
  1252. .type _P,@object
  1253. .size _P,72
  1254. .align 2
  1255. _LN2_K80:
  1256. .word 0
  1257. .word 0
  1258. .word 6136
  1259. .word 45426
  1260. .word 16382
  1261. .word 0
  1262. .word 12704
  1263. .word 55409
  1264. .word 6480
  1265. .word 47298
  1266. .word 49116
  1267. .word 0
  1268. .type _LN2_K80,@object
  1269. .size _LN2_K80,24
  1270. .data
  1271. .hidden __libm_rcp_table_256
  1272. .hidden __libm_logl_table_256
  1273. .hidden __libm_normalizel_k80
  1274. .section .note.GNU-stack, ""
  1275. # End