sinhcoshl.S 30 KB

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