exp2l.S 23 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010
  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 "exp2l.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin exp2l
  41. .text
  42. .align 16,0x90
  43. .globl exp2l
  44. exp2l:
  45. # parameter 1: 80 + %esp
  46. ..B1.1:
  47. ..L1:
  48. pushl %esi
  49. pushl %edi
  50. pushl %ebx
  51. subl $64, %esp
  52. ..B1.2:
  53. fnstcw 54(%esp)
  54. ..B1.3:
  55. movzwl 88(%esp), %ebx
  56. movl %ebx, %eax
  57. andl $32767, %eax
  58. lea -16383(%eax), %edx
  59. cmpl $15, %edx
  60. call ..L2
  61. ..L2:
  62. popl %edx
  63. lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%edx), %edx
  64. jae ..B1.10
  65. ..B1.4:
  66. movl %eax, %ecx
  67. movl $-1, %esi
  68. negl %ecx
  69. addl $30, %ecx
  70. shll %cl, %esi
  71. notl %esi
  72. andl 84(%esp), %esi
  73. orl 80(%esp), %esi
  74. jne ..B1.10
  75. ..B1.5:
  76. fldt 80(%esp)
  77. faddl _TWO_23H@GOTOFF(%edx)
  78. fstps 48(%esp)
  79. movl 48(%esp), %ecx
  80. shll $10, %ecx
  81. sarl $10, %ecx
  82. lea 16445(%ecx), %eax
  83. cmpl $32828, %eax
  84. ja ..B1.9
  85. ..B1.6:
  86. movl %ecx, %edx
  87. andb $127, 21(%esp)
  88. addl $16383, %edx
  89. jle ..B1.77
  90. ..B1.7:
  91. movzwl 20(%esp), %eax
  92. andl $32767, %edx
  93. andl $-32768, %eax
  94. orl %edx, %eax
  95. movw %ax, 20(%esp)
  96. movl $-2147483648, 16(%esp)
  97. movl $0, 12(%esp)
  98. ..B1.8:
  99. fldt 12(%esp)
  100. addl $64, %esp
  101. popl %ebx
  102. popl %edi
  103. popl %esi
  104. ret
  105. ..B1.9:
  106. movl %ebx, %eax
  107. andl $32767, %eax
  108. ..B1.10:
  109. cmpl $16389, %eax
  110. jge ..B1.49
  111. ..B1.11:
  112. movzwl 54(%esp), %ecx
  113. cmpl $16377, %eax
  114. jge ..B1.42
  115. ..B1.12:
  116. cmpl $16369, %eax
  117. jge ..B1.35
  118. ..B1.13:
  119. cmpl $16359, %eax
  120. jge ..B1.28
  121. ..B1.14:
  122. cmpl $16316, %eax
  123. jge ..B1.21
  124. ..B1.15:
  125. movl %ecx, %eax
  126. andl $768, %eax
  127. cmpl $768, %eax
  128. je ..B1.80
  129. ..B1.16:
  130. orl $-64768, %ecx
  131. movw %cx, 52(%esp)
  132. ..B1.17:
  133. fldcw 52(%esp)
  134. ..B1.18:
  135. fldt .L_2il0floatpacket.2@GOTOFF(%edx)
  136. fldt 80(%esp)
  137. faddp %st, %st(1)
  138. fstpt 12(%esp)
  139. ..B1.19:
  140. fldcw 54(%esp)
  141. ..B1.20:
  142. fldt 12(%esp)
  143. addl $64, %esp
  144. popl %ebx
  145. popl %edi
  146. popl %esi
  147. ret
  148. ..B1.21:
  149. movl %ecx, %eax
  150. andl $768, %eax
  151. cmpl $768, %eax
  152. je ..B1.81
  153. ..B1.22:
  154. orl $-64768, %ecx
  155. movw %cx, 52(%esp)
  156. ..B1.23:
  157. fldcw 52(%esp)
  158. ..B1.24:
  159. movl $1, %eax
  160. ..B1.25:
  161. fldt 80(%esp)
  162. testl %eax, %eax
  163. fldt 12+_Q2@GOTOFF(%edx)
  164. fmul %st(1), %st
  165. fldt _Q2@GOTOFF(%edx)
  166. faddp %st, %st(1)
  167. fmulp %st, %st(1)
  168. fldt .L_2il0floatpacket.2@GOTOFF(%edx)
  169. faddp %st, %st(1)
  170. fstpt 12(%esp)
  171. je ..B1.27
  172. ..B1.26:
  173. fldcw 54(%esp)
  174. ..B1.27:
  175. fldt 12(%esp)
  176. addl $64, %esp
  177. popl %ebx
  178. popl %edi
  179. popl %esi
  180. ret
  181. ..B1.28:
  182. movl %ecx, %eax
  183. andl $768, %eax
  184. cmpl $768, %eax
  185. je ..B1.82
  186. ..B1.29:
  187. orl $-64768, %ecx
  188. movw %cx, 52(%esp)
  189. ..B1.30:
  190. fldcw 52(%esp)
  191. ..B1.31:
  192. movl $1, %eax
  193. ..B1.32:
  194. fldt 80(%esp)
  195. testl %eax, %eax
  196. fld %st(0)
  197. fmul %st(1), %st
  198. fldt 36+_Q1@GOTOFF(%edx)
  199. fmul %st(1), %st
  200. fldt 24+_Q1@GOTOFF(%edx)
  201. fmul %st(2), %st
  202. fldt 12+_Q1@GOTOFF(%edx)
  203. faddp %st, %st(2)
  204. fxch %st(1)
  205. fmulp %st, %st(2)
  206. fldt _Q1@GOTOFF(%edx)
  207. faddp %st, %st(1)
  208. fmulp %st, %st(2)
  209. faddp %st, %st(1)
  210. fldt .L_2il0floatpacket.2@GOTOFF(%edx)
  211. faddp %st, %st(1)
  212. fstpt 12(%esp)
  213. je ..B1.34
  214. ..B1.33:
  215. fldcw 54(%esp)
  216. ..B1.34:
  217. fldt 12(%esp)
  218. addl $64, %esp
  219. popl %ebx
  220. popl %edi
  221. popl %esi
  222. ret
  223. ..B1.35:
  224. movl %ecx, %eax
  225. andl $768, %eax
  226. cmpl $768, %eax
  227. je ..B1.83
  228. ..B1.36:
  229. orl $-64768, %ecx
  230. movw %cx, 52(%esp)
  231. ..B1.37:
  232. fldcw 52(%esp)
  233. ..B1.38:
  234. movl $1, %eax
  235. ..B1.39:
  236. fldl _TWO_48H@GOTOFF(%edx)
  237. testl %eax, %eax
  238. fldt 80(%esp)
  239. fld %st(0)
  240. fmul %st(1), %st
  241. fld %st(1)
  242. fadd %st(3), %st
  243. fsub %st, %st(3)
  244. fld %st(2)
  245. fsub %st(4), %st
  246. fldt 84+_Q0@GOTOFF(%edx)
  247. fmul %st(3), %st
  248. fldt 72+_Q0@GOTOFF(%edx)
  249. fmul %st(4), %st
  250. fldt 60+_Q0@GOTOFF(%edx)
  251. faddp %st, %st(2)
  252. fxch %st(1)
  253. fmul %st(4), %st
  254. fldt 48+_Q0@GOTOFF(%edx)
  255. faddp %st, %st(2)
  256. fxch %st(1)
  257. fmul %st(4), %st
  258. fldt 36+_Q0@GOTOFF(%edx)
  259. faddp %st, %st(2)
  260. fxch %st(1)
  261. fmul %st(4), %st
  262. fldt 24+_Q0@GOTOFF(%edx)
  263. faddp %st, %st(2)
  264. fxch %st(1)
  265. fmul %st(4), %st
  266. fldt 12+_Q0@GOTOFF(%edx)
  267. faddp %st, %st(2)
  268. fxch %st(1)
  269. fmulp %st, %st(4)
  270. fldt _Q0@GOTOFF(%edx)
  271. faddp %st, %st(1)
  272. fmulp %st, %st(4)
  273. fxch %st(3)
  274. faddp %st, %st(2)
  275. fldt 96+_Q0@GOTOFF(%edx)
  276. fmul %st, %st(4)
  277. fmulp %st, %st(3)
  278. fxch %st(2)
  279. faddp %st, %st(1)
  280. fldt .L_2il0floatpacket.2@GOTOFF(%edx)
  281. faddp %st, %st(3)
  282. faddp %st, %st(2)
  283. fxch %st(1)
  284. fstpt 12(%esp)
  285. je ..B1.100
  286. ..B1.40:
  287. fstpt 24(%esp)
  288. ..B1.96:
  289. fldcw 54(%esp)
  290. jmp ..B1.41
  291. ..B1.100:
  292. fstp %st(0)
  293. ..B1.41:
  294. fldt 12(%esp)
  295. addl $64, %esp
  296. popl %ebx
  297. popl %edi
  298. popl %esi
  299. ret
  300. ..B1.42:
  301. movl %ecx, %eax
  302. andl $768, %eax
  303. cmpl $768, %eax
  304. je ..B1.84
  305. ..B1.43:
  306. orl $-64768, %ecx
  307. movw %cx, 52(%esp)
  308. ..B1.44:
  309. fldcw 52(%esp)
  310. ..B1.45:
  311. movl $1, %ebx
  312. ..B1.46:
  313. fldl _TWO_63H@GOTOFF(%edx)
  314. fldt 80(%esp)
  315. fldt .L_2il0floatpacket.0@GOTOFF(%edx)
  316. fmul %st(1), %st
  317. fadd %st(2), %st
  318. fstpt 24(%esp)
  319. fldt 24(%esp)
  320. fsubp %st, %st(2)
  321. fldt .L_2il0floatpacket.1@GOTOFF(%edx)
  322. fmulp %st, %st(2)
  323. movl 24(%esp), %eax
  324. fsubp %st, %st(1)
  325. fldl _TWO_48H@GOTOFF(%edx)
  326. fld %st(0)
  327. movsbl %al, %ecx
  328. fadd %st(2), %st
  329. subl %ecx, %eax
  330. fsub %st, %st(1)
  331. fld %st(1)
  332. fxch %st(2)
  333. fsubr %st, %st(3)
  334. shll $4, %ecx
  335. fxch %st(2)
  336. fadd %st(3), %st
  337. fld %st(0)
  338. fmul %st(1), %st
  339. fldt 60+_P@GOTOFF(%edx)
  340. fmul %st(1), %st
  341. fldt 48+_P@GOTOFF(%edx)
  342. fmul %st(2), %st
  343. fldt 36+_P@GOTOFF(%edx)
  344. shrl $8, %eax
  345. faddp %st, %st(2)
  346. fxch %st(1)
  347. fmul %st(2), %st
  348. fldt 24+_P@GOTOFF(%edx)
  349. shll $23, %eax
  350. faddp %st, %st(2)
  351. fxch %st(1)
  352. fmul %st(2), %st
  353. addl $1065353216, %eax
  354. fldt 12+_P@GOTOFF(%edx)
  355. testl %ebx, %ebx
  356. movl %eax, 36(%esp)
  357. faddp %st, %st(2)
  358. fxch %st(2)
  359. fmulp %st, %st(1)
  360. fldt _P@GOTOFF(%edx)
  361. faddp %st, %st(2)
  362. fxch %st(2)
  363. fmulp %st, %st(1)
  364. faddp %st, %st(1)
  365. fldt 72+_P@GOTOFF(%edx)
  366. fmul %st, %st(4)
  367. fxch %st(4)
  368. faddp %st, %st(1)
  369. fxch %st(3)
  370. fmulp %st, %st(2)
  371. fldl 2056+__libm_expl_table_256@GOTOFF(%edx,%ecx)
  372. fldl 2048+__libm_expl_table_256@GOTOFF(%edx,%ecx)
  373. fld %st(0)
  374. fmul %st(5), %st
  375. fxch %st(4)
  376. fadd %st, %st(5)
  377. fxch %st(2)
  378. fmul %st, %st(5)
  379. fxch %st(5)
  380. faddp %st, %st(4)
  381. fxch %st(4)
  382. faddp %st, %st(3)
  383. fmul %st(3), %st
  384. faddp %st, %st(3)
  385. fxch %st(1)
  386. faddp %st, %st(2)
  387. fxch %st(1)
  388. fmuls 36(%esp)
  389. fstpt 12(%esp)
  390. je ..B1.101
  391. ..B1.47:
  392. fstpt 24(%esp)
  393. ..B1.97:
  394. fldcw 54(%esp)
  395. jmp ..B1.48
  396. ..B1.101:
  397. fstp %st(0)
  398. ..B1.48:
  399. fldt 12(%esp)
  400. addl $64, %esp
  401. popl %ebx
  402. popl %edi
  403. popl %esi
  404. ret
  405. ..B1.49:
  406. movzbl 89(%esp), %ebx
  407. andl $128, %ebx
  408. shrl $7, %ebx
  409. lea (,%ebx,8), %ecx
  410. lea (%ecx,%ebx,4), %ecx
  411. movzwl 8+_ranges@GOTOFF(%ecx,%edx), %esi
  412. andl $32767, %esi
  413. cmpl %esi, %eax
  414. jl ..B1.54
  415. ..B1.50:
  416. jne ..B1.66
  417. ..B1.51:
  418. movl 84(%esp), %esi
  419. cmpl 4+_ranges@GOTOFF(%ecx,%edx), %esi
  420. jb ..B1.54
  421. ..B1.52:
  422. jne ..B1.66
  423. ..B1.53:
  424. movl 80(%esp), %esi
  425. cmpl _ranges@GOTOFF(%ecx,%edx), %esi
  426. jae ..B1.66
  427. ..B1.54:
  428. movzwl 54(%esp), %esi
  429. movl %esi, %eax
  430. andl $768, %eax
  431. cmpl $768, %eax
  432. je ..B1.88
  433. ..B1.55:
  434. orl $-64768, %esi
  435. movw %si, 52(%esp)
  436. ..B1.56:
  437. fldcw 52(%esp)
  438. ..B1.57:
  439. movl $1, %esi
  440. ..B1.58:
  441. fldt .L_2il0floatpacket.2@GOTOFF(%edx)
  442. fstpt 36(%esp)
  443. fldl _TWO_63H@GOTOFF(%edx)
  444. fldt 80(%esp)
  445. fldt .L_2il0floatpacket.0@GOTOFF(%edx)
  446. fmul %st(1), %st
  447. movl %ecx, 12(%esp)
  448. fadd %st(2), %st
  449. fstpt 24(%esp)
  450. fldt 24(%esp)
  451. fsubp %st, %st(2)
  452. fldt .L_2il0floatpacket.1@GOTOFF(%edx)
  453. fmulp %st, %st(2)
  454. movl 24(%esp), %eax
  455. movl %eax, %ecx
  456. movsbl %al, %edi
  457. addl $4196735, %eax
  458. subl %edi, %ecx
  459. fsubp %st, %st(1)
  460. fldl _TWO_48H@GOTOFF(%edx)
  461. fld %st(0)
  462. shll $4, %edi
  463. fadd %st(2), %st
  464. shrl $8, %ecx
  465. fsub %st, %st(1)
  466. fld %st(1)
  467. fxch %st(2)
  468. fsubr %st, %st(3)
  469. addl SC2_BIAS@GOTOFF(%edx,%ebx,4), %ecx
  470. fxch %st(2)
  471. fadd %st(3), %st
  472. fld %st(0)
  473. andl $32767, %ecx
  474. fmul %st(1), %st
  475. fldt 60+_P@GOTOFF(%edx)
  476. fmul %st(1), %st
  477. fldt 48+_P@GOTOFF(%edx)
  478. fmul %st(2), %st
  479. fldt 36+_P@GOTOFF(%edx)
  480. movl %esi, 16(%esp)
  481. faddp %st, %st(2)
  482. fxch %st(1)
  483. fmul %st(2), %st
  484. fldt 24+_P@GOTOFF(%edx)
  485. movzwl 8+.L_2il0floatpacket.2@GOTOFF(%edx), %esi
  486. faddp %st, %st(2)
  487. fxch %st(1)
  488. fmul %st(2), %st
  489. andl $-32768, %esi
  490. fldt 12+_P@GOTOFF(%edx)
  491. orl %ecx, %esi
  492. movw %si, 44(%esp)
  493. cmpl $3070, %eax
  494. movl 16(%esp), %esi
  495. faddp %st, %st(2)
  496. fxch %st(2)
  497. fmulp %st, %st(1)
  498. fldt _P@GOTOFF(%edx)
  499. movl 12(%esp), %ecx
  500. faddp %st, %st(2)
  501. fxch %st(2)
  502. fmulp %st, %st(1)
  503. faddp %st, %st(1)
  504. fldt 72+_P@GOTOFF(%edx)
  505. fmul %st, %st(4)
  506. fxch %st(4)
  507. faddp %st, %st(1)
  508. fxch %st(3)
  509. fmulp %st, %st(2)
  510. fldl 2048+__libm_expl_table_256@GOTOFF(%edx,%edi)
  511. fld %st(0)
  512. fmul %st(4), %st
  513. fxch %st(3)
  514. fadd %st, %st(4)
  515. fmul %st(1), %st
  516. faddp %st, %st(1)
  517. fxch %st(3)
  518. fmull 2056+__libm_expl_table_256@GOTOFF(%edx,%edi)
  519. faddp %st, %st(2)
  520. fldt 80(%esp)
  521. fxch %st(2)
  522. faddl 2056+__libm_expl_table_256@GOTOFF(%edx,%edi)
  523. ja ..B1.61
  524. ..B1.59:
  525. fldt _exp2but@GOTOFF(%edx)
  526. fcomp %st(3)
  527. fnstsw %ax
  528. sahf
  529. jbe ..B1.61
  530. ..B1.60:
  531. fstp %st(1)
  532. fstp %st(1)
  533. fldl _TWO_12H@GOTOFF(%edx)
  534. fld %st(2)
  535. fadd %st(2), %st
  536. fmul %st, %st(1)
  537. fadd %st(1), %st
  538. fsub %st, %st(1)
  539. fxch %st(1)
  540. fsubr %st, %st(3)
  541. fxch %st(3)
  542. faddp %st, %st(2)
  543. fldt _SC2@GOTOFF(%ecx,%edx)
  544. fldt 36(%esp)
  545. fmul %st, %st(4)
  546. fxch %st(1)
  547. fmul %st, %st(4)
  548. fxch %st(1)
  549. fmulp %st, %st(3)
  550. fmulp %st, %st(2)
  551. fxch %st(1)
  552. faddp %st, %st(2)
  553. fxch %st(1)
  554. fstpt 12(%esp)
  555. fldt 12(%esp)
  556. jmp ..B1.62
  557. ..B1.61:
  558. fstp %st(2)
  559. fldt 36(%esp)
  560. fxch %st(2)
  561. faddp %st, %st(3)
  562. fxch %st(1)
  563. fmulp %st, %st(2)
  564. fldt _SC2@GOTOFF(%ecx,%edx)
  565. fmulp %st, %st(2)
  566. fxch %st(1)
  567. fstpt 12(%esp)
  568. fldt 12(%esp)
  569. ..B1.62:
  570. fldt _minnorm@GOTOFF(%edx)
  571. fcompp
  572. fnstsw %ax
  573. sahf
  574. ja ..B1.85
  575. ..B1.63:
  576. testl %esi, %esi
  577. je ..B1.102
  578. ..B1.64:
  579. fstpt 24(%esp)
  580. ..B1.98:
  581. fldcw 54(%esp)
  582. jmp ..B1.65
  583. ..B1.102:
  584. fstp %st(0)
  585. ..B1.65:
  586. fldt 12(%esp)
  587. addl $64, %esp
  588. popl %ebx
  589. popl %edi
  590. popl %esi
  591. ret
  592. ..B1.66:
  593. movzwl 54(%esp), %esi
  594. movl %esi, %ecx
  595. andl $768, %ecx
  596. cmpl $768, %ecx
  597. je ..B1.93
  598. ..B1.67:
  599. orl $-64768, %esi
  600. movw %si, 52(%esp)
  601. ..B1.68:
  602. fldcw 52(%esp)
  603. ..B1.69:
  604. movzwl 88(%esp), %eax
  605. movl $1, %ecx
  606. andl $32767, %eax
  607. ..B1.70:
  608. cmpl $32767, %eax
  609. je ..B1.89
  610. ..B1.71:
  611. testl %ebx, %ebx
  612. je ..B1.73
  613. ..B1.72:
  614. fldt _small_value_80@GOTOFF(%edx)
  615. fmul %st(0), %st
  616. fstpt 12(%esp)
  617. jmp ..B1.74
  618. ..B1.73:
  619. fldt _large_value_80@GOTOFF(%edx)
  620. fmul %st(0), %st
  621. fstpt 12(%esp)
  622. ..B1.74:
  623. testl %ecx, %ecx
  624. je ..B1.76
  625. ..B1.75:
  626. fldcw 54(%esp)
  627. ..B1.76:
  628. fldt 12(%esp)
  629. addl $64, %esp
  630. popl %ebx
  631. popl %edi
  632. popl %esi
  633. ret
  634. ..B1.77:
  635. movzwl 20(%esp), %eax
  636. andl $-32768, %eax
  637. movw %ax, 20(%esp)
  638. cmpl $-31, %edx
  639. jle ..B1.79
  640. ..B1.78:
  641. addl $16413, %ecx
  642. movl $1, %eax
  643. shll %cl, %eax
  644. movl %eax, 16(%esp)
  645. movl $0, 12(%esp)
  646. jmp ..B1.8
  647. ..B1.79:
  648. addl $16413, %ecx
  649. movl $1, %eax
  650. shll %cl, %eax
  651. movl $0, 16(%esp)
  652. movl %eax, 12(%esp)
  653. jmp ..B1.8
  654. ..B1.80:
  655. fldt .L_2il0floatpacket.2@GOTOFF(%edx)
  656. fldt 80(%esp)
  657. faddp %st, %st(1)
  658. fstpt 12(%esp)
  659. jmp ..B1.20
  660. ..B1.81:
  661. xorl %eax, %eax
  662. jmp ..B1.25
  663. ..B1.82:
  664. xorl %eax, %eax
  665. jmp ..B1.32
  666. ..B1.83:
  667. xorl %eax, %eax
  668. jmp ..B1.39
  669. ..B1.84:
  670. xorl %ebx, %ebx
  671. jmp ..B1.46
  672. ..B1.85:
  673. fldt _small_value_80@GOTOFF(%edx)
  674. testl %esi, %esi
  675. fmul %st(0), %st
  676. fstpt (%esp)
  677. je ..B1.103
  678. ..B1.86:
  679. fstpt 24(%esp)
  680. ..B1.99:
  681. fldcw 54(%esp)
  682. jmp ..B1.87
  683. ..B1.103:
  684. fstp %st(0)
  685. ..B1.87:
  686. fldt 12(%esp)
  687. addl $64, %esp
  688. popl %ebx
  689. popl %edi
  690. popl %esi
  691. ret
  692. ..B1.88:
  693. xorl %esi, %esi
  694. jmp ..B1.58
  695. ..B1.89:
  696. cmpl $-2147483648, 84(%esp)
  697. jne ..B1.92
  698. ..B1.90:
  699. cmpl $0, 80(%esp)
  700. jne ..B1.92
  701. ..B1.91:
  702. fldl _inf_zeros@GOTOFF(%edx,%ebx,8)
  703. fstpt 12(%esp)
  704. jmp ..B1.74
  705. ..B1.92:
  706. fldt 80(%esp)
  707. fstpt 12(%esp)
  708. jmp ..B1.74
  709. ..B1.93:
  710. xorl %ecx, %ecx
  711. jmp ..B1.70
  712. .align 16,0x90
  713. .type exp2l,@function
  714. .size exp2l,.-exp2l
  715. .data
  716. # -- End exp2l
  717. .section .rodata, "a"
  718. .align 16
  719. .align 16
  720. .L_2il0floatpacket.0:
  721. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x07,0x40,0x00,0x00
  722. .type .L_2il0floatpacket.0,@object
  723. .size .L_2il0floatpacket.0,12
  724. .space 4, 0x00 # pad
  725. .align 16
  726. .L_2il0floatpacket.1:
  727. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xf7,0x3f,0x00,0x00
  728. .type .L_2il0floatpacket.1,@object
  729. .size .L_2il0floatpacket.1,12
  730. .space 4, 0x00 # pad
  731. .align 16
  732. .L_2il0floatpacket.2:
  733. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x3f,0x00,0x00
  734. .type .L_2il0floatpacket.2,@object
  735. .size .L_2il0floatpacket.2,12
  736. .align 4
  737. _TWO_23H:
  738. .long 0
  739. .long 1097334784
  740. .type _TWO_23H,@object
  741. .size _TWO_23H,8
  742. .align 4
  743. _TWO_48H:
  744. .long 0
  745. .long 1123549184
  746. .type _TWO_48H,@object
  747. .size _TWO_48H,8
  748. .align 4
  749. _TWO_63H:
  750. .long 0
  751. .long 1139277824
  752. .type _TWO_63H,@object
  753. .size _TWO_63H,8
  754. .align 4
  755. SC2_BIAS:
  756. .long 8191
  757. .long 24575
  758. .type SC2_BIAS,@object
  759. .size SC2_BIAS,8
  760. .align 4
  761. _TWO_12H:
  762. .long 0
  763. .long 1085800448
  764. .type _TWO_12H,@object
  765. .size _TWO_12H,8
  766. .align 4
  767. _inf_zeros:
  768. .long 0
  769. .long 2146435072
  770. .long 0
  771. .long 0
  772. .type _inf_zeros,@object
  773. .size _inf_zeros,16
  774. .align 2
  775. _Q2:
  776. .word 32967
  777. .word 53711
  778. .word 6135
  779. .word 45426
  780. .word 16382
  781. .word 0
  782. .word 32541
  783. .word 5676
  784. .word 61436
  785. .word 62973
  786. .word 16380
  787. .word 0
  788. .type _Q2,@object
  789. .size _Q2,24
  790. .align 2
  791. _Q1:
  792. .word 31148
  793. .word 53711
  794. .word 6135
  795. .word 45426
  796. .word 16382
  797. .word 0
  798. .word 30019
  799. .word 5676
  800. .word 61436
  801. .word 62973
  802. .word 16380
  803. .word 0
  804. .word 64504
  805. .word 31847
  806. .word 18104
  807. .word 58200
  808. .word 16378
  809. .word 0
  810. .word 27878
  811. .word 3845
  812. .word 23422
  813. .word 40341
  814. .word 16376
  815. .word 0
  816. .type _Q1,@object
  817. .size _Q1,48
  818. .align 2
  819. _Q0:
  820. .word 20226
  821. .word 52574
  822. .word 36475
  823. .word 49086
  824. .word 16363
  825. .word 0
  826. .word 30019
  827. .word 5676
  828. .word 61436
  829. .word 62973
  830. .word 16380
  831. .word 0
  832. .word 64711
  833. .word 9477
  834. .word 18104
  835. .word 58200
  836. .word 16378
  837. .word 0
  838. .word 47522
  839. .word 53875
  840. .word 23421
  841. .word 40341
  842. .word 16376
  843. .word 0
  844. .word 43745
  845. .word 20212
  846. .word 65340
  847. .word 44739
  848. .word 16373
  849. .word 0
  850. .word 65207
  851. .word 12853
  852. .word 35196
  853. .word 41348
  854. .word 16370
  855. .word 0
  856. .word 16083
  857. .word 62062
  858. .word 13520
  859. .word 65510
  860. .word 16366
  861. .word 0
  862. .word 39312
  863. .word 30281
  864. .word 14077
  865. .word 45408
  866. .word 16363
  867. .word 0
  868. .word 0
  869. .word 0
  870. .word 0
  871. .word 45426
  872. .word 16382
  873. .word 0
  874. .type _Q0,@object
  875. .size _Q0,108
  876. .align 2
  877. _P:
  878. .word 12039
  879. .word 52575
  880. .word 36475
  881. .word 49086
  882. .word 16363
  883. .word 0
  884. .word 30020
  885. .word 5676
  886. .word 61436
  887. .word 62973
  888. .word 16380
  889. .word 0
  890. .word 64966
  891. .word 9463
  892. .word 18104
  893. .word 58200
  894. .word 16378
  895. .word 0
  896. .word 46891
  897. .word 53866
  898. .word 23421
  899. .word 40341
  900. .word 16376
  901. .word 0
  902. .word 12114
  903. .word 63546
  904. .word 699
  905. .word 44740
  906. .word 16373
  907. .word 0
  908. .word 63250
  909. .word 29232
  910. .word 35994
  911. .word 41348
  912. .word 16370
  913. .word 0
  914. .word 0
  915. .word 0
  916. .word 0
  917. .word 45426
  918. .word 16382
  919. .word 0
  920. .type _P,@object
  921. .size _P,84
  922. .align 2
  923. _ranges:
  924. .word 0
  925. .word 0
  926. .word 0
  927. .word 32768
  928. .word 16397
  929. .word 0
  930. .word 65535
  931. .word 65535
  932. .word 65535
  933. .word 32894
  934. .word 16397
  935. .word 0
  936. .type _ranges,@object
  937. .size _ranges,24
  938. .align 2
  939. _exp2but:
  940. .word 0
  941. .word 0
  942. .word 0
  943. .word 65528
  944. .word 49164
  945. .word 0
  946. .type _exp2but,@object
  947. .size _exp2but,12
  948. .align 2
  949. _SC2:
  950. .word 0
  951. .word 0
  952. .word 0
  953. .word 32768
  954. .word 24575
  955. .word 0
  956. .word 0
  957. .word 0
  958. .word 0
  959. .word 32768
  960. .word 8191
  961. .word 0
  962. .type _SC2,@object
  963. .size _SC2,24
  964. .align 2
  965. _minnorm:
  966. .word 0
  967. .word 0
  968. .word 0
  969. .word 32768
  970. .word 1
  971. .word 0
  972. .type _minnorm,@object
  973. .size _minnorm,12
  974. .align 2
  975. _small_value_80:
  976. .word 0
  977. .word 0
  978. .word 0
  979. .word 32768
  980. .word 6383
  981. .word 0
  982. .word 0
  983. .word 0
  984. .word 0
  985. .word 32768
  986. .word 39151
  987. .word 0
  988. .type _small_value_80,@object
  989. .size _small_value_80,24
  990. .align 2
  991. _large_value_80:
  992. .word 0
  993. .word 0
  994. .word 0
  995. .word 32768
  996. .word 26383
  997. .word 0
  998. .word 0
  999. .word 0
  1000. .word 0
  1001. .word 32768
  1002. .word 59151
  1003. .word 0
  1004. .type _large_value_80,@object
  1005. .size _large_value_80,24
  1006. .data
  1007. .hidden __libm_expl_table_256
  1008. .section .note.GNU-stack, ""
  1009. # End