expm1l.S 29 KB

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