cosl.S 23 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022
  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 "cosl.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin cosl
  41. .text
  42. .align 16,0x90
  43. .globl cosl
  44. cosl:
  45. # parameter 1: 8 + %ebp
  46. ..B1.1:
  47. ..L1:
  48. pushl %ebp
  49. movl %esp, %ebp
  50. andl $-64, %esp
  51. pushl %esi
  52. pushl %edi
  53. pushl %ebx
  54. subl $180, %esp
  55. movl %gs:20, %eax
  56. xorl %esp, %eax
  57. movl %eax, 136(%esp)
  58. ..B1.2:
  59. fnstcw 46(%esp)
  60. ..B1.3:
  61. movzwl 16(%ebp), %edx
  62. andl $32767, %edx
  63. movzwl 46(%esp), %eax
  64. cmpl $16378, %edx
  65. call ..L2
  66. ..L2:
  67. popl %ebx
  68. lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%ebx), %ebx
  69. jge ..B1.47
  70. ..B1.4:
  71. cmpl $16372, %edx
  72. jge ..B1.39
  73. ..B1.5:
  74. cmpl $16364, %edx
  75. jge ..B1.31
  76. ..B1.6:
  77. cmpl $16308, %edx
  78. jge ..B1.23
  79. ..B1.7:
  80. movl %eax, %ecx
  81. andl $768, %ecx
  82. cmpl $768, %ecx
  83. je ..B1.77
  84. ..B1.8:
  85. orl $-64768, %eax
  86. movw %ax, 44(%esp)
  87. ..B1.9:
  88. fldcw 44(%esp)
  89. ..B1.10:
  90. movzwl 16(%ebp), %edx
  91. movl $1, %eax
  92. andl $32767, %edx
  93. ..B1.11:
  94. testl %edx, %edx
  95. jne ..B1.17
  96. ..B1.12:
  97. cmpl $0, 12(%ebp)
  98. jne ..B1.14
  99. ..B1.13:
  100. cmpl $0, 8(%ebp)
  101. je ..B1.18
  102. ..B1.91:
  103. cmpl $0, 12(%ebp)
  104. ..B1.14:
  105. jne ..B1.16
  106. ..B1.15:
  107. cmpl $0, 8(%ebp)
  108. je ..B1.17
  109. ..B1.16:
  110. fldl _smallest_value_64@GOTOFF(%ebx)
  111. fstpl (%esp)
  112. ..B1.17:
  113. fldt _small_value_80@GOTOFF(%ebx)
  114. fsubrl _ones@GOTOFF(%ebx)
  115. fstpt 8(%esp)
  116. jmp ..B1.19
  117. ..B1.18:
  118. fldl _ones@GOTOFF(%ebx)
  119. fstpt 8(%esp)
  120. ..B1.19:
  121. testl %eax, %eax
  122. je ..B1.21
  123. ..B1.20:
  124. fldcw 46(%esp)
  125. ..B1.21:
  126. movl 136(%esp), %eax
  127. xorl %esp, %eax
  128. cmpl %gs:20, %eax
  129. jne ..B1.76
  130. ..B1.22:
  131. fldt 8(%esp)
  132. addl $180, %esp
  133. popl %ebx
  134. popl %edi
  135. popl %esi
  136. movl %ebp, %esp
  137. popl %ebp
  138. ret
  139. ..B1.23:
  140. movl %eax, %edx
  141. andl $768, %edx
  142. cmpl $768, %edx
  143. je ..B1.79
  144. ..B1.24:
  145. orl $-64768, %eax
  146. movw %ax, 44(%esp)
  147. ..B1.25:
  148. fldcw 44(%esp)
  149. ..B1.26:
  150. movl $1, %eax
  151. ..B1.27:
  152. fldt 8(%ebp)
  153. testl %eax, %eax
  154. fldt _CP3@GOTOFF(%ebx)
  155. fmul %st(1), %st
  156. fmulp %st, %st(1)
  157. faddl _ones@GOTOFF(%ebx)
  158. fstpt 8(%esp)
  159. je ..B1.29
  160. ..B1.28:
  161. fldcw 46(%esp)
  162. ..B1.29:
  163. movl 136(%esp), %eax
  164. xorl %esp, %eax
  165. cmpl %gs:20, %eax
  166. jne ..B1.76
  167. ..B1.30:
  168. fldt 8(%esp)
  169. addl $180, %esp
  170. popl %ebx
  171. popl %edi
  172. popl %esi
  173. movl %ebp, %esp
  174. popl %ebp
  175. ret
  176. ..B1.31:
  177. movl %eax, %edx
  178. andl $768, %edx
  179. cmpl $768, %edx
  180. je ..B1.81
  181. ..B1.32:
  182. orl $-64768, %eax
  183. movw %ax, 44(%esp)
  184. ..B1.33:
  185. fldcw 44(%esp)
  186. ..B1.34:
  187. movl $1, %eax
  188. ..B1.35:
  189. fldt 8(%ebp)
  190. testl %eax, %eax
  191. fmul %st(0), %st
  192. fldt 12+_CP2@GOTOFF(%ebx)
  193. fmul %st(1), %st
  194. fldt _CP2@GOTOFF(%ebx)
  195. faddp %st, %st(1)
  196. fmulp %st, %st(1)
  197. faddl _ones@GOTOFF(%ebx)
  198. fstpt 8(%esp)
  199. je ..B1.37
  200. ..B1.36:
  201. fldcw 46(%esp)
  202. ..B1.37:
  203. movl 136(%esp), %eax
  204. xorl %esp, %eax
  205. cmpl %gs:20, %eax
  206. jne ..B1.76
  207. ..B1.38:
  208. fldt 8(%esp)
  209. addl $180, %esp
  210. popl %ebx
  211. popl %edi
  212. popl %esi
  213. movl %ebp, %esp
  214. popl %ebp
  215. ret
  216. ..B1.39:
  217. movl %eax, %edx
  218. andl $768, %edx
  219. cmpl $768, %edx
  220. je ..B1.83
  221. ..B1.40:
  222. orl $-64768, %eax
  223. movw %ax, 44(%esp)
  224. ..B1.41:
  225. fldcw 44(%esp)
  226. ..B1.42:
  227. movl $1, %eax
  228. ..B1.43:
  229. fldt 8(%ebp)
  230. testl %eax, %eax
  231. fmul %st(0), %st
  232. fld %st(0)
  233. fmul %st(1), %st
  234. fldt 36+_CP1@GOTOFF(%ebx)
  235. fmul %st(1), %st
  236. fldt 12+_CP1@GOTOFF(%ebx)
  237. faddp %st, %st(1)
  238. fmul %st(1), %st
  239. fldt 24+_CP1@GOTOFF(%ebx)
  240. fmulp %st, %st(2)
  241. fldt _CP1@GOTOFF(%ebx)
  242. faddp %st, %st(2)
  243. fxch %st(2)
  244. fmulp %st, %st(1)
  245. faddp %st, %st(1)
  246. faddl _ones@GOTOFF(%ebx)
  247. fstpt 8(%esp)
  248. je ..B1.45
  249. ..B1.44:
  250. fldcw 46(%esp)
  251. ..B1.45:
  252. movl 136(%esp), %eax
  253. xorl %esp, %eax
  254. cmpl %gs:20, %eax
  255. jne ..B1.76
  256. ..B1.46:
  257. fldt 8(%esp)
  258. addl $180, %esp
  259. popl %ebx
  260. popl %edi
  261. popl %esi
  262. movl %ebp, %esp
  263. popl %ebp
  264. ret
  265. ..B1.47:
  266. movl %eax, %ecx
  267. andl $768, %ecx
  268. cmpl $768, %ecx
  269. je ..B1.86
  270. ..B1.48:
  271. orl $-64768, %eax
  272. movw %ax, 44(%esp)
  273. ..B1.49:
  274. fldcw 44(%esp)
  275. ..B1.50:
  276. movzwl 16(%ebp), %edx
  277. movl $1, %esi
  278. andl $32767, %edx
  279. ..B1.51:
  280. cmpl $16413, %edx
  281. jge ..B1.58
  282. ..B1.52:
  283. fldt 8(%ebp)
  284. fldl _Pi4Inv@GOTOFF(%ebx)
  285. movzbl 17(%ebp), %eax
  286. andl $128, %eax
  287. shrl $7, %eax
  288. fxch %st(1)
  289. fmull _ones@GOTOFF(%ebx,%eax,8)
  290. fmul %st, %st(1)
  291. fxch %st(1)
  292. fstpt 20(%esp)
  293. movzwl 28(%esp), %ecx
  294. andl $32767, %ecx
  295. cmpl $16383, %ecx
  296. jge ..B1.54
  297. ..B1.53:
  298. fldl _TWO_52H@GOTOFF(%ebx)
  299. xorl %eax, %eax
  300. fmul %st(1), %st
  301. fld %st(1)
  302. movl $1, %ecx
  303. fadd %st(1), %st
  304. fsubp %st, %st(1)
  305. fld %st(1)
  306. fsub %st(1), %st
  307. fxch %st(2)
  308. fxch %st(1)
  309. fxch %st(2)
  310. jmp ..B1.69
  311. ..B1.54:
  312. fldl _TWO_32H@GOTOFF(%ebx)
  313. negl %ecx
  314. addl $30, %ecx
  315. movl 24(%esp), %eax
  316. shrl %cl, %eax
  317. lea 1(%eax), %ecx
  318. movl %ecx, %edi
  319. andl $-2, %edi
  320. movl %edi, 8(%esp)
  321. cmpl $16400, %edx
  322. fildl 8(%esp)
  323. jge ..B1.56
  324. ..B1.55:
  325. fldl _Pi04x3@GOTOFF(%ebx)
  326. fmul %st(1), %st
  327. fsubrp %st, %st(3)
  328. fxch %st(1)
  329. fmul %st(2), %st
  330. fld %st(2)
  331. fadd %st(1), %st
  332. fsubp %st, %st(1)
  333. fld %st(0)
  334. fxch %st(1)
  335. fsubr %st, %st(3)
  336. fldl 8+_Pi04x3@GOTOFF(%ebx)
  337. fmul %st(3), %st
  338. fsubr %st, %st(2)
  339. fxch %st(1)
  340. fsub %st(2), %st
  341. fsubp %st, %st(1)
  342. faddp %st, %st(3)
  343. fldl 16+_Pi04x3@GOTOFF(%ebx)
  344. fmulp %st, %st(2)
  345. fld %st(1)
  346. fsubr %st(1), %st
  347. fsubr %st, %st(1)
  348. fxch %st(2)
  349. fsubrp %st, %st(1)
  350. faddp %st, %st(2)
  351. jmp ..B1.57
  352. ..B1.56:
  353. fldl _Pi04x5@GOTOFF(%ebx)
  354. fmul %st(1), %st
  355. fsubrp %st, %st(3)
  356. fxch %st(1)
  357. fmul %st(2), %st
  358. fld %st(2)
  359. fadd %st(1), %st
  360. fsubp %st, %st(1)
  361. fld %st(0)
  362. fxch %st(1)
  363. fsubr %st, %st(3)
  364. fldl 8+_Pi04x5@GOTOFF(%ebx)
  365. fmul %st(3), %st
  366. fsubr %st, %st(2)
  367. fxch %st(1)
  368. fsub %st(2), %st
  369. fsubp %st, %st(1)
  370. faddp %st, %st(3)
  371. fldl 16+_Pi04x5@GOTOFF(%ebx)
  372. fmul %st(2), %st
  373. fld %st(0)
  374. fsubr %st(2), %st
  375. fsubr %st, %st(2)
  376. fxch %st(1)
  377. fsubrp %st, %st(2)
  378. fxch %st(1)
  379. faddp %st, %st(3)
  380. fldl 24+_Pi04x5@GOTOFF(%ebx)
  381. fmul %st(2), %st
  382. fld %st(0)
  383. fsubr %st(2), %st
  384. fsubr %st, %st(2)
  385. fxch %st(1)
  386. fsubrp %st, %st(2)
  387. fxch %st(1)
  388. faddp %st, %st(3)
  389. fldl 32+_Pi04x5@GOTOFF(%ebx)
  390. fmulp %st, %st(2)
  391. fld %st(1)
  392. fsubr %st(1), %st
  393. fsubr %st, %st(1)
  394. fxch %st(2)
  395. fsubrp %st, %st(1)
  396. faddp %st, %st(2)
  397. ..B1.57:
  398. fldl _TWO_52H@GOTOFF(%ebx)
  399. addl $3, %eax
  400. fmul %st(1), %st
  401. fld %st(1)
  402. shrl $2, %eax
  403. fadd %st(1), %st
  404. andl $1, %eax
  405. fsubp %st, %st(1)
  406. fsubr %st, %st(1)
  407. fxch %st(1)
  408. faddp %st, %st(2)
  409. fld %st(0)
  410. fadd %st(2), %st
  411. fxch %st(1)
  412. fxch %st(2)
  413. jmp ..B1.69
  414. ..B1.58:
  415. cmpl $32767, %edx
  416. jne ..B1.67
  417. ..B1.59:
  418. cmpl $-2147483648, 12(%ebp)
  419. jne ..B1.62
  420. ..B1.60:
  421. cmpl $0, 8(%ebp)
  422. jne ..B1.62
  423. ..B1.61:
  424. fldl _infs@GOTOFF(%ebx)
  425. fmull _zeros@GOTOFF(%ebx)
  426. fstpt 8(%esp)
  427. jmp ..B1.63
  428. ..B1.62:
  429. fldt 8(%ebp)
  430. fmull _ones@GOTOFF(%ebx)
  431. fstpt 8(%esp)
  432. ..B1.63:
  433. testl %esi, %esi
  434. je ..B1.65
  435. ..B1.64:
  436. fldcw 46(%esp)
  437. ..B1.65:
  438. movl 136(%esp), %eax
  439. xorl %esp, %eax
  440. cmpl %gs:20, %eax
  441. jne ..B1.76
  442. ..B1.66:
  443. fldt 8(%esp)
  444. addl $180, %esp
  445. popl %ebx
  446. popl %edi
  447. popl %esi
  448. movl %ebp, %esp
  449. popl %ebp
  450. ret
  451. ..B1.67:
  452. fldt 8(%ebp)
  453. addl $-32, %esp
  454. movzbl 17(%ebp), %eax
  455. lea 152(%esp), %edx
  456. andl $128, %eax
  457. shrl $7, %eax
  458. fmull _ones@GOTOFF(%ebx,%eax,8)
  459. fstpt (%esp)
  460. movl $0, 12(%esp)
  461. movl %edx, 16(%esp)
  462. call __libm_reduce_pi04l
  463. ..B1.89:
  464. movl %eax, %ecx
  465. addl $32, %esp
  466. ..B1.68:
  467. fldl 120(%esp)
  468. lea 3(%ecx), %eax
  469. fldl _TWO_52H@GOTOFF(%ebx)
  470. incl %ecx
  471. fmul %st(1), %st
  472. fld %st(0)
  473. shrl $2, %eax
  474. fadd %st(2), %st
  475. andl $1, %eax
  476. fsubp %st, %st(1)
  477. fld %st(0)
  478. fxch %st(1)
  479. fsubr %st, %st(2)
  480. fxch %st(2)
  481. faddl 128(%esp)
  482. fadd %st, %st(1)
  483. ..B1.69:
  484. fldl _TWO_53H@GOTOFF(%ebx)
  485. testb $2, %cl
  486. fstpt 48(%esp)
  487. fld %st(2)
  488. fmul %st(1), %st
  489. fld %st(1)
  490. fmul %st(3), %st
  491. faddp %st, %st(1)
  492. fstpt 80(%esp)
  493. fldt 80(%esp)
  494. fld %st(3)
  495. fmul %st(4), %st
  496. fld %st(0)
  497. fadd %st(2), %st
  498. fstpt 32(%esp)
  499. fldt 32(%esp)
  500. fld %st(1)
  501. fmul %st(3), %st
  502. fxch %st(1)
  503. fmulp %st, %st(3)
  504. faddp %st, %st(2)
  505. fxch %st(1)
  506. fstpt 64(%esp)
  507. fldt 64(%esp)
  508. fld %st(1)
  509. fmul %st(2), %st
  510. fld %st(0)
  511. faddp %st, %st(2)
  512. fldl _ones@GOTOFF(%ebx,%eax,8)
  513. fstpl 112(%esp)
  514. je ..B1.71
  515. ..B1.70:
  516. fldt 96+_SP@GOTOFF(%ebx)
  517. fmul %st(2), %st
  518. fxch %st(6)
  519. fstpt 8(%esp)
  520. fldt 84+_SP@GOTOFF(%ebx)
  521. fmul %st(2), %st
  522. fldt 72+_SP@GOTOFF(%ebx)
  523. faddp %st, %st(7)
  524. fxch %st(2)
  525. fmul %st, %st(6)
  526. fldt 60+_SP@GOTOFF(%ebx)
  527. faddp %st, %st(3)
  528. fmul %st, %st(2)
  529. fldt 48+_SP@GOTOFF(%ebx)
  530. faddp %st, %st(7)
  531. fmul %st, %st(6)
  532. fldt 36+_SP@GOTOFF(%ebx)
  533. faddp %st, %st(3)
  534. fmul %st, %st(2)
  535. fldt 24+_SP@GOTOFF(%ebx)
  536. faddp %st, %st(7)
  537. fmul %st, %st(6)
  538. fldt 12+_SP@GOTOFF(%ebx)
  539. faddp %st, %st(3)
  540. fmulp %st, %st(2)
  541. fldt _SP@GOTOFF(%ebx)
  542. faddp %st, %st(6)
  543. fldt 32(%esp)
  544. fmulp %st, %st(6)
  545. fxch %st(1)
  546. faddp %st, %st(5)
  547. fldt 64(%esp)
  548. fldt 80(%esp)
  549. fldt 120+_SP@GOTOFF(%ebx)
  550. fmul %st, %st(2)
  551. fxch %st(2)
  552. faddp %st, %st(7)
  553. fxch %st(1)
  554. fmulp %st, %st(2)
  555. fldt 108+_SP@GOTOFF(%ebx)
  556. fmul %st, %st(3)
  557. fxch %st(3)
  558. faddp %st, %st(2)
  559. fld %st(1)
  560. fxch %st(3)
  561. fmulp %st, %st(1)
  562. faddp %st, %st(5)
  563. fxch %st(1)
  564. fadd %st(4), %st
  565. fld %st(2)
  566. fldt 48(%esp)
  567. fmul %st(2), %st
  568. fadd %st, %st(2)
  569. fsubrp %st, %st(2)
  570. fmul %st(1), %st
  571. fxch %st(1)
  572. fsubr %st, %st(2)
  573. fxch %st(5)
  574. faddp %st, %st(2)
  575. fxch %st(3)
  576. fmulp %st, %st(1)
  577. faddp %st, %st(2)
  578. faddp %st, %st(1)
  579. fldt 8(%esp)
  580. fmul %st, %st(2)
  581. fld %st(0)
  582. fadd %st(3), %st
  583. fsubr %st, %st(1)
  584. fxch %st(3)
  585. faddp %st, %st(1)
  586. fadd %st, %st(1)
  587. fldl 112(%esp)
  588. fmul %st, %st(3)
  589. fmulp %st, %st(2)
  590. fxch %st(1)
  591. faddp %st, %st(2)
  592. fxch %st(1)
  593. fstpt 96(%esp)
  594. jmp ..B1.72
  595. ..B1.71:
  596. fstp %st(3)
  597. fstp %st(3)
  598. fstp %st(3)
  599. fldt 96+_CP@GOTOFF(%ebx)
  600. fmul %st(2), %st
  601. fldt 84+_CP@GOTOFF(%ebx)
  602. fmul %st(3), %st
  603. fldt 72+_CP@GOTOFF(%ebx)
  604. faddp %st, %st(2)
  605. fxch %st(1)
  606. fmul %st(3), %st
  607. fldt 60+_CP@GOTOFF(%ebx)
  608. faddp %st, %st(2)
  609. fxch %st(1)
  610. fmul %st(3), %st
  611. fldt 48+_CP@GOTOFF(%ebx)
  612. faddp %st, %st(2)
  613. fxch %st(1)
  614. fmul %st(3), %st
  615. fldt 36+_CP@GOTOFF(%ebx)
  616. faddp %st, %st(2)
  617. fxch %st(1)
  618. fmul %st(3), %st
  619. fldt 24+_CP@GOTOFF(%ebx)
  620. faddp %st, %st(2)
  621. fxch %st(1)
  622. fmul %st(3), %st
  623. fldt 12+_CP@GOTOFF(%ebx)
  624. faddp %st, %st(2)
  625. fxch %st(1)
  626. fmulp %st, %st(3)
  627. fldt _CP@GOTOFF(%ebx)
  628. faddp %st, %st(1)
  629. fldt 32(%esp)
  630. fmulp %st, %st(1)
  631. faddp %st, %st(2)
  632. fldt 64(%esp)
  633. fldt 80(%esp)
  634. fldt 120+_CP@GOTOFF(%ebx)
  635. fmul %st, %st(2)
  636. fxch %st(2)
  637. faddp %st, %st(4)
  638. fxch %st(1)
  639. fmulp %st, %st(2)
  640. fldt 108+_CP@GOTOFF(%ebx)
  641. fmul %st, %st(4)
  642. fxch %st(4)
  643. faddp %st, %st(2)
  644. fmulp %st, %st(3)
  645. fxch %st(2)
  646. faddp %st, %st(1)
  647. fld %st(1)
  648. fadd %st(1), %st
  649. fldt 48(%esp)
  650. fmul %st(1), %st
  651. fadd %st, %st(1)
  652. fsubrp %st, %st(1)
  653. fsubr %st, %st(2)
  654. fxch %st(1)
  655. faddp %st, %st(2)
  656. fld %st(0)
  657. fldl 112(%esp)
  658. fldl _ones@GOTOFF(%ebx)
  659. fadd %st, %st(2)
  660. fsub %st(2), %st
  661. faddp %st, %st(3)
  662. fxch %st(2)
  663. fadd %st, %st(3)
  664. fxch %st(2)
  665. fmul %st, %st(3)
  666. fmulp %st, %st(1)
  667. faddp %st, %st(2)
  668. fxch %st(1)
  669. fstpt 96(%esp)
  670. ..B1.72:
  671. testl %esi, %esi
  672. je ..B1.92
  673. ..B1.73:
  674. fstpt 20(%esp)
  675. ..B1.90:
  676. fldcw 46(%esp)
  677. jmp ..B1.74
  678. ..B1.92:
  679. fstp %st(0)
  680. ..B1.74:
  681. movl 136(%esp), %eax
  682. xorl %esp, %eax
  683. cmpl %gs:20, %eax
  684. jne ..B1.76
  685. ..B1.75:
  686. fldt 96(%esp)
  687. addl $180, %esp
  688. popl %ebx
  689. popl %edi
  690. popl %esi
  691. movl %ebp, %esp
  692. popl %ebp
  693. ret
  694. ..B1.76:
  695. call __stack_chk_fail@PLT
  696. ..B1.77:
  697. xorl %eax, %eax
  698. jmp ..B1.11
  699. ..B1.79:
  700. xorl %eax, %eax
  701. jmp ..B1.27
  702. ..B1.81:
  703. xorl %eax, %eax
  704. jmp ..B1.35
  705. ..B1.83:
  706. xorl %eax, %eax
  707. jmp ..B1.43
  708. ..B1.86:
  709. xorl %esi, %esi
  710. jmp ..B1.51
  711. .align 16,0x90
  712. .type cosl,@function
  713. .size cosl,.-cosl
  714. .data
  715. # -- End cosl
  716. .section .rodata, "a"
  717. .align 16
  718. .align 16
  719. _smallest_value_64:
  720. .long 1
  721. .long 0
  722. .long 1
  723. .long 2147483648
  724. .type _smallest_value_64,@object
  725. .size _smallest_value_64,16
  726. .align 16
  727. _small_value_80:
  728. .word 0
  729. .word 0
  730. .word 0
  731. .word 32768
  732. .word 6383
  733. .word 0
  734. .word 0
  735. .word 0
  736. .word 0
  737. .word 32768
  738. .word 39151
  739. .word 0
  740. .type _small_value_80,@object
  741. .size _small_value_80,24
  742. .space 8, 0x00 # pad
  743. .align 16
  744. _ones:
  745. .long 0
  746. .long 1072693248
  747. .long 0
  748. .long 3220176896
  749. .type _ones,@object
  750. .size _ones,16
  751. .align 16
  752. _CP3:
  753. .word 0
  754. .word 65450
  755. .word 65535
  756. .word 65535
  757. .word 49149
  758. .word 0
  759. .type _CP3,@object
  760. .size _CP3,12
  761. .space 4, 0x00 # pad
  762. .align 16
  763. _CP2:
  764. .word 63855
  765. .word 65535
  766. .word 65535
  767. .word 65535
  768. .word 49149
  769. .word 0
  770. .word 18238
  771. .word 17476
  772. .word 43656
  773. .word 43690
  774. .word 16378
  775. .word 0
  776. .type _CP2,@object
  777. .size _CP2,24
  778. .space 8, 0x00 # pad
  779. .align 16
  780. _CP1:
  781. .word 65535
  782. .word 65535
  783. .word 65535
  784. .word 65535
  785. .word 49149
  786. .word 0
  787. .word 47533
  788. .word 43689
  789. .word 43690
  790. .word 43690
  791. .word 16378
  792. .word 0
  793. .word 14131
  794. .word 49466
  795. .word 24756
  796. .word 46603
  797. .word 49141
  798. .word 0
  799. .word 37142
  800. .word 18013
  801. .word 35855
  802. .word 53259
  803. .word 16367
  804. .word 0
  805. .type _CP1,@object
  806. .size _CP1,48
  807. .align 16
  808. _Pi4Inv:
  809. .long 1841940611
  810. .long 1072979760
  811. .type _Pi4Inv,@object
  812. .size _Pi4Inv,8
  813. .space 8, 0x00 # pad
  814. .align 16
  815. _TWO_52H:
  816. .long 0
  817. .long 1127743488
  818. .type _TWO_52H,@object
  819. .size _TWO_52H,8
  820. .space 8, 0x00 # pad
  821. .align 16
  822. _TWO_32H:
  823. .long 0
  824. .long 1106771968
  825. .type _TWO_32H,@object
  826. .size _TWO_32H,8
  827. .space 8, 0x00 # pad
  828. .align 16
  829. _Pi04x3:
  830. .long 1413754112
  831. .long 1072243195
  832. .long 2563527040
  833. .long 1021855384
  834. .long 3417685868
  835. .long 3118450936
  836. .type _Pi04x3,@object
  837. .size _Pi04x3,24
  838. .space 8, 0x00 # pad
  839. .align 16
  840. _Pi04x5:
  841. .long 1413480448
  842. .long 1072243195
  843. .long 442499072
  844. .long 1036039265
  845. .long 771751936
  846. .long 999496074
  847. .long 622854144
  848. .long 963347354
  849. .long 1396597664
  850. .long 922906692
  851. .type _Pi04x5,@object
  852. .size _Pi04x5,40
  853. .space 8, 0x00 # pad
  854. .align 16
  855. _infs:
  856. .long 0
  857. .long 2146435072
  858. .long 0
  859. .long 4293918720
  860. .type _infs,@object
  861. .size _infs,16
  862. .align 16
  863. _zeros:
  864. .long 0
  865. .long 0
  866. .long 0
  867. .long 2147483648
  868. .type _zeros,@object
  869. .size _zeros,16
  870. .align 16
  871. _TWO_53H:
  872. .long 0
  873. .long 1128792064
  874. .type _TWO_53H,@object
  875. .size _TWO_53H,8
  876. .space 8, 0x00 # pad
  877. .align 16
  878. _SP:
  879. .word 43691
  880. .word 43690
  881. .word 43690
  882. .word 43690
  883. .word 49136
  884. .word 0
  885. .word 34948
  886. .word 34952
  887. .word 34952
  888. .word 34952
  889. .word 16368
  890. .word 0
  891. .word 53243
  892. .word 3328
  893. .word 208
  894. .word 53261
  895. .word 49138
  896. .word 0
  897. .word 30577
  898. .word 46649
  899. .word 7466
  900. .word 47343
  901. .word 16364
  902. .word 0
  903. .word 11760
  904. .word 43464
  905. .word 11071
  906. .word 55090
  907. .word 49125
  908. .word 0
  909. .word 47000
  910. .word 43232
  911. .word 12444
  912. .word 45202
  913. .word 16350
  914. .word 0
  915. .word 52983
  916. .word 47009
  917. .word 40440
  918. .word 55103
  919. .word 49110
  920. .word 0
  921. .word 35433
  922. .word 14927
  923. .word 40941
  924. .word 51860
  925. .word 16334
  926. .word 0
  927. .word 1340
  928. .word 16361
  929. .word 50747
  930. .word 38523
  931. .word 49094
  932. .word 0
  933. .word 0
  934. .word 0
  935. .word 0
  936. .word 43680
  937. .word 49148
  938. .word 0
  939. .word 0
  940. .word 0
  941. .word 0
  942. .word 34816
  943. .word 16376
  944. .word 0
  945. .type _SP,@object
  946. .size _SP,132
  947. .space 12, 0x00 # pad
  948. .align 16
  949. _CP:
  950. .word 51631
  951. .word 16464
  952. .word 16497
  953. .word 44012
  954. .word 16306
  955. .word 0
  956. .word 43685
  957. .word 43690
  958. .word 43690
  959. .word 43690
  960. .word 16372
  961. .word 0
  962. .word 46557
  963. .word 2912
  964. .word 24758
  965. .word 46603
  966. .word 49141
  967. .word 0
  968. .word 28380
  969. .word 3328
  970. .word 208
  971. .word 53261
  972. .word 16367
  973. .word 0
  974. .word 23816
  975. .word 50302
  976. .word 32187
  977. .word 37874
  978. .word 49129
  979. .word 0
  980. .word 49866
  981. .word 64527
  982. .word 51070
  983. .word 36726
  984. .word 16354
  985. .word 0
  986. .word 65056
  987. .word 3638
  988. .word 41889
  989. .word 51659
  990. .word 49114
  991. .word 0
  992. .word 13834
  993. .word 11317
  994. .word 33607
  995. .word 55101
  996. .word 16338
  997. .word 0
  998. .word 40709
  999. .word 42374
  1000. .word 64411
  1001. .word 45709
  1002. .word 49098
  1003. .word 0
  1004. .word 0
  1005. .word 0
  1006. .word 0
  1007. .word 32768
  1008. .word 49150
  1009. .word 0
  1010. .word 0
  1011. .word 0
  1012. .word 0
  1013. .word 43008
  1014. .word 16378
  1015. .word 0
  1016. .type _CP,@object
  1017. .size _CP,132
  1018. .data
  1019. .hidden __libm_reduce_pi04l
  1020. .section .note.GNU-stack, ""
  1021. # End