expl.S 22 KB

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