sinl.S 24 KB

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