sincosl.S 27 KB

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