sindl.S 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871
  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 "sindl.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin sindl
  41. .text
  42. .align 16,0x90
  43. .globl sindl
  44. sindl:
  45. # parameter 1: 8 + %ebp
  46. ..B1.1:
  47. ..L1:
  48. pushl %ebp
  49. movl %esp, %ebp
  50. andl $-16, %esp
  51. pushl %esi
  52. pushl %edi
  53. pushl %ebx
  54. subl $84, %esp
  55. ..B1.2:
  56. fnstcw 30(%esp)
  57. ..B1.3:
  58. movzwl 30(%esp), %edx
  59. movl %edx, %eax
  60. andl $3840, %eax
  61. cmpl $768, %eax
  62. je ..B1.53
  63. ..B1.4:
  64. andl $-3841, %edx
  65. orl $-64768, %edx
  66. movw %dx, 28(%esp)
  67. ..B1.5:
  68. fldcw 28(%esp)
  69. ..B1.6:
  70. movl $1, %edi
  71. ..B1.7:
  72. movzbl 17(%ebp), %esi
  73. movzwl 16(%ebp), %ecx
  74. andl $128, %esi
  75. andl $32767, %ecx
  76. call ..L2
  77. ..L2:
  78. popl %eax
  79. lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
  80. shrl $7, %esi
  81. movl %eax, 12(%esp)
  82. cmpl $16446, %ecx
  83. jge ..B1.26
  84. ..B1.8:
  85. cmpl $16318, %ecx
  86. jge ..B1.19
  87. ..B1.9:
  88. fldt 8(%ebp)
  89. movl %eax, %edx
  90. fstpt 16(%esp)
  91. fldt 16(%esp)
  92. fldt .L_2il0floatpacket.0@GOTOFF(%edx)
  93. fucompp
  94. fnstsw %ax
  95. sahf
  96. jp ..B1.10
  97. je ..B1.43
  98. ..B1.10:
  99. testl %ecx, %ecx
  100. jle ..B1.16
  101. ..B1.11:
  102. cmpl $6, %ecx
  103. jge ..B1.15
  104. ..B1.12:
  105. fldt 16(%esp)
  106. testl %edi, %edi
  107. movl %edx, %eax
  108. fabs
  109. fldt _TWO5600@GOTOFF(%eax)
  110. fmulp %st, %st(1)
  111. fld %st(0)
  112. fxch %st(1)
  113. fstpt 8(%ebp)
  114. fldt 8(%ebp)
  115. fldl _TWO_53H@GOTOFF(%eax)
  116. fmul %st(1), %st
  117. fadd %st, %st(2)
  118. fsubrp %st, %st(2)
  119. fld %st(1)
  120. fsubr %st(1), %st
  121. fldl 8+_sindl_mp_poly_coeff@GOTOFF(%eax)
  122. fmulp %st, %st(2)
  123. fldl _sindl_mp_poly_coeff@GOTOFF(%eax)
  124. fmul %st, %st(1)
  125. fxch %st(2)
  126. faddp %st, %st(1)
  127. fxch %st(1)
  128. fmulp %st, %st(2)
  129. flds ones@GOTOFF(%eax,%esi,4)
  130. fmul %st, %st(2)
  131. fld %st(2)
  132. fxch %st(2)
  133. fmulp %st, %st(1)
  134. fadd %st, %st(1)
  135. fld %st(1)
  136. fxch %st(2)
  137. fsubr %st, %st(3)
  138. fxch %st(1)
  139. faddp %st, %st(3)
  140. fldt fBreaker@GOTOFF(%eax)
  141. fmul %st(1), %st
  142. fsub %st, %st(2)
  143. fsubp %st, %st(2)
  144. fsub %st(1), %st
  145. faddp %st, %st(2)
  146. fldt 12+_TWO5600@GOTOFF(%eax)
  147. fmul %st, %st(1)
  148. fmulp %st, %st(2)
  149. faddp %st, %st(1)
  150. fstpt (%esp)
  151. fldt _Underflow@GOTOFF(%eax)
  152. fldt .L_2il0floatpacket.5@GOTOFF(%eax)
  153. fmulp %st, %st(1)
  154. fstpt 60(%esp)
  155. je ..B1.14
  156. ..B1.13:
  157. fldcw 30(%esp)
  158. ..B1.14:
  159. fldt (%esp)
  160. addl $84, %esp
  161. popl %ebx
  162. popl %edi
  163. popl %esi
  164. movl %ebp, %esp
  165. popl %ebp
  166. ret
  167. ..B1.15:
  168. je ..B1.40
  169. ..B1.16:
  170. fldt 16(%esp)
  171. testl %edi, %edi
  172. movl %edx, %eax
  173. fabs
  174. fldt _TWO5600@GOTOFF(%eax)
  175. fmulp %st, %st(1)
  176. fld %st(0)
  177. fxch %st(1)
  178. fstpt 8(%ebp)
  179. fldt 8(%ebp)
  180. fldl _TWO_53H@GOTOFF(%eax)
  181. fmul %st(1), %st
  182. fadd %st, %st(2)
  183. fsubrp %st, %st(2)
  184. fld %st(1)
  185. fsubr %st(1), %st
  186. fldl 8+_sindl_mp_poly_coeff@GOTOFF(%eax)
  187. fmulp %st, %st(2)
  188. fldl _sindl_mp_poly_coeff@GOTOFF(%eax)
  189. fmul %st, %st(1)
  190. fxch %st(2)
  191. faddp %st, %st(1)
  192. fxch %st(1)
  193. fmulp %st, %st(2)
  194. flds ones@GOTOFF(%eax,%esi,4)
  195. fmul %st, %st(2)
  196. fld %st(2)
  197. fxch %st(2)
  198. fmulp %st, %st(1)
  199. fadd %st, %st(1)
  200. fld %st(1)
  201. fxch %st(2)
  202. fsubr %st, %st(3)
  203. fxch %st(1)
  204. faddp %st, %st(3)
  205. fldt fBreaker@GOTOFF(%eax)
  206. fmul %st(1), %st
  207. fsub %st, %st(2)
  208. fsubp %st, %st(2)
  209. fsub %st(1), %st
  210. faddp %st, %st(2)
  211. faddp %st, %st(1)
  212. fldt 12+_TWO5600@GOTOFF(%eax)
  213. fmulp %st, %st(1)
  214. fstpt (%esp)
  215. je ..B1.18
  216. ..B1.17:
  217. fldcw 30(%esp)
  218. ..B1.18:
  219. fldt (%esp)
  220. addl $84, %esp
  221. popl %ebx
  222. popl %edi
  223. popl %esi
  224. movl %ebp, %esp
  225. popl %ebp
  226. ret
  227. ..B1.19:
  228. fldt 8(%ebp)
  229. movl %eax, %ebx
  230. fabs
  231. fstpt 8(%ebp)
  232. fldt 8(%ebp)
  233. fldt .L_2il0floatpacket.1@GOTOFF(%ebx)
  234. fldt _Rcp90@GOTOFF(%ebx)
  235. fmul %st(2), %st
  236. fadd %st(1), %st
  237. fstpt 60(%esp)
  238. fldt 60(%esp)
  239. movl 60(%esp), %edx
  240. movl %edx, %ecx
  241. andl $2, %ecx
  242. fsubp %st, %st(1)
  243. fldt .L_2il0floatpacket.2@GOTOFF(%ebx)
  244. fmulp %st, %st(1)
  245. shrl $1, %ecx
  246. fsubrp %st, %st(1)
  247. fldt .L_2il0floatpacket.0@GOTOFF(%ebx)
  248. xorl %ecx, %esi
  249. fucomp %st(1)
  250. fnstsw %ax
  251. sahf
  252. jp ..B1.20
  253. je ..B1.46
  254. ..B1.20:
  255. movl %ebx, %eax
  256. fld %st(0)
  257. fld %st(1)
  258. fld %st(2)
  259. fld %st(3)
  260. testb $1, %dl
  261. fldt .L_2il0floatpacket.3@GOTOFF(%eax)
  262. fmul %st(5), %st
  263. fsub %st, %st(4)
  264. fsubp %st, %st(4)
  265. fld %st(3)
  266. fmul %st(4), %st
  267. fld %st(0)
  268. fxch %st(4)
  269. fsub %st(5), %st
  270. fmul %st, %st(5)
  271. fmul %st(6), %st
  272. faddp %st, %st(5)
  273. fldl _TWO_53H@GOTOFF(%eax)
  274. fmul %st, %st(3)
  275. fld %st(0)
  276. fmul %st(2), %st
  277. fadd %st, %st(5)
  278. fsubrp %st, %st(5)
  279. fxch %st(1)
  280. fsub %st(4), %st
  281. faddp %st, %st(5)
  282. fld %st(5)
  283. fadd %st(3), %st
  284. fsubp %st, %st(3)
  285. fxch %st(1)
  286. fsub %st(2), %st
  287. fstpt 48(%esp)
  288. fld %st(4)
  289. fmul %st(5), %st
  290. fld %st(0)
  291. fmul %st(1), %st
  292. flds ones@GOTOFF(%eax,%esi,4)
  293. fstps 12(%esp)
  294. je ..B1.22
  295. ..B1.21:
  296. fstp %st(6)
  297. fstp %st(2)
  298. fld %st(2)
  299. fmul %st(3), %st
  300. fmul %st, %st(1)
  301. fld %st(2)
  302. fmul %st(5), %st
  303. fxch %st(4)
  304. fstpt (%esp)
  305. fldt (%esp)
  306. fld %st(3)
  307. fmul %st(7), %st
  308. fxch %st(1)
  309. fmul %st(6), %st
  310. faddp %st, %st(5)
  311. fld %st(1)
  312. fadd %st(3), %st
  313. fsubp %st, %st(3)
  314. fxch %st(2)
  315. fstpt 16(%esp)
  316. fldt 16(%esp)
  317. fsubrp %st, %st(1)
  318. faddp %st, %st(3)
  319. fldt 84+_cosdl_poly_coeff@GOTOFF(%eax)
  320. fmul %st(5), %st
  321. fldt 60+_cosdl_poly_coeff@GOTOFF(%eax)
  322. faddp %st, %st(1)
  323. fmul %st(5), %st
  324. fldt 36+_cosdl_poly_coeff@GOTOFF(%eax)
  325. faddp %st, %st(1)
  326. fmul %st(2), %st
  327. fldt 72+_cosdl_poly_coeff@GOTOFF(%eax)
  328. fmul %st(6), %st
  329. fldt 48+_cosdl_poly_coeff@GOTOFF(%eax)
  330. faddp %st, %st(1)
  331. fmul %st(6), %st
  332. fldt 24+_cosdl_poly_coeff@GOTOFF(%eax)
  333. faddp %st, %st(1)
  334. faddp %st, %st(1)
  335. fmulp %st, %st(1)
  336. fldl 24+_cosdl_mp_poly_coeff@GOTOFF(%eax)
  337. fmulp %st, %st(5)
  338. faddp %st, %st(4)
  339. fldl 8+_cosdl_mp_poly_coeff@GOTOFF(%eax)
  340. fmulp %st, %st(1)
  341. faddp %st, %st(3)
  342. fldl 16+_cosdl_mp_poly_coeff@GOTOFF(%eax)
  343. fmul %st, %st(1)
  344. fxch %st(1)
  345. faddp %st, %st(3)
  346. fldl _cosdl_mp_poly_coeff@GOTOFF(%eax)
  347. fmul %st, %st(2)
  348. fxch %st(2)
  349. faddp %st, %st(3)
  350. fldt (%esp)
  351. fmulp %st, %st(2)
  352. fld %st(1)
  353. fldt 16(%esp)
  354. fmulp %st, %st(2)
  355. fadd %st(1), %st
  356. fsubr %st, %st(2)
  357. fxch %st(2)
  358. faddp %st, %st(1)
  359. faddp %st, %st(2)
  360. flds 12(%esp)
  361. fld %st(0)
  362. fldt .L_2il0floatpacket.4@GOTOFF(%eax)
  363. fld %st(0)
  364. fadd %st(4), %st
  365. fmul %st, %st(2)
  366. fsubrp %st, %st(1)
  367. faddp %st, %st(3)
  368. fxch %st(3)
  369. faddp %st, %st(2)
  370. fmulp %st, %st(1)
  371. faddp %st, %st(1)
  372. fstpt 32(%esp)
  373. jmp ..B1.23
  374. ..B1.22:
  375. fld %st(6)
  376. fmul %st(2), %st
  377. fstpt 16(%esp)
  378. fld %st(4)
  379. fmul %st(4), %st
  380. fmul %st, %st(3)
  381. fxch %st(6)
  382. fmul %st(7), %st
  383. fxch %st(4)
  384. fstpt (%esp)
  385. fldt 48(%esp)
  386. fmul %st, %st(5)
  387. fxch %st(4)
  388. faddp %st, %st(5)
  389. fld %st(5)
  390. fadd %st(3), %st
  391. fsubp %st, %st(3)
  392. fxch %st(2)
  393. fsubr %st, %st(5)
  394. fxch %st(4)
  395. faddp %st, %st(5)
  396. fldt 96+_sindl_poly_coeff@GOTOFF(%eax)
  397. fmul %st(2), %st
  398. fldt 72+_sindl_poly_coeff@GOTOFF(%eax)
  399. faddp %st, %st(1)
  400. fmul %st(2), %st
  401. fldt 48+_sindl_poly_coeff@GOTOFF(%eax)
  402. faddp %st, %st(1)
  403. fmul %st(2), %st
  404. fldt 24+_sindl_poly_coeff@GOTOFF(%eax)
  405. faddp %st, %st(1)
  406. fmulp %st, %st(1)
  407. fldt 84+_sindl_poly_coeff@GOTOFF(%eax)
  408. fmul %st(2), %st
  409. fldt 60+_sindl_poly_coeff@GOTOFF(%eax)
  410. faddp %st, %st(1)
  411. fmul %st(2), %st
  412. fldt 36+_sindl_poly_coeff@GOTOFF(%eax)
  413. faddp %st, %st(1)
  414. fmulp %st, %st(2)
  415. faddp %st, %st(1)
  416. fldt 16(%esp)
  417. fmul %st, %st(1)
  418. fldl 24+_sindl_mp_poly_coeff@GOTOFF(%eax)
  419. fmulp %st, %st(1)
  420. faddp %st, %st(1)
  421. fldl 8+_sindl_mp_poly_coeff@GOTOFF(%eax)
  422. fmulp %st, %st(5)
  423. faddp %st, %st(4)
  424. fldl 16+_sindl_mp_poly_coeff@GOTOFF(%eax)
  425. fmul %st, %st(3)
  426. fxch %st(3)
  427. faddp %st, %st(4)
  428. fxch %st(1)
  429. fmulp %st, %st(2)
  430. fldl _sindl_mp_poly_coeff@GOTOFF(%eax)
  431. fmul %st, %st(1)
  432. fxch %st(1)
  433. faddp %st, %st(3)
  434. fldt (%esp)
  435. fmulp %st, %st(1)
  436. fld %st(0)
  437. fadd %st(2), %st
  438. fsubr %st, %st(1)
  439. fxch %st(1)
  440. faddp %st, %st(2)
  441. fxch %st(2)
  442. faddp %st, %st(1)
  443. flds 12(%esp)
  444. fmul %st, %st(2)
  445. fmulp %st, %st(1)
  446. faddp %st, %st(1)
  447. fstpt 32(%esp)
  448. ..B1.23:
  449. testl %edi, %edi
  450. je ..B1.25
  451. ..B1.24:
  452. fldcw 30(%esp)
  453. ..B1.25:
  454. fldt 32(%esp)
  455. addl $84, %esp
  456. popl %ebx
  457. popl %edi
  458. popl %esi
  459. movl %ebp, %esp
  460. popl %ebp
  461. ret
  462. ..B1.26:
  463. cmpl $32767, %ecx
  464. je ..B1.52
  465. ..B1.27:
  466. lea -16446(%ecx), %eax
  467. movl %eax, (%esp)
  468. cmpl $14, %eax
  469. jle ..B1.29
  470. ..B1.28:
  471. addl $-16449, %ecx
  472. movl $715827883, %eax
  473. imull %ecx
  474. movl %ecx, %ebx
  475. sarl $1, %edx
  476. sarl $31, %ebx
  477. subl %ebx, %edx
  478. lea (,%edx,8), %ebx
  479. lea (%ebx,%edx,4), %eax
  480. subl %eax, %ecx
  481. lea 3(%ecx), %ecx
  482. movl %ecx, (%esp)
  483. ..B1.29:
  484. movl 12(%ebp), %ecx
  485. movl %ecx, %ebx
  486. shll $8, %ebx
  487. movl $381774871, %eax
  488. movl %ebx, %edx
  489. andl $-16777216, %ecx
  490. shrl $3, %edx
  491. mull %edx
  492. shrl $2, %edx
  493. imull $-360, %edx, %eax
  494. movl %ecx, %edx
  495. shrl $19, %ecx
  496. addl %eax, %ebx
  497. movl $381774871, %eax
  498. shrl $16, %edx
  499. movl %edx, 4(%esp)
  500. mull %ecx
  501. shrl $2, %edx
  502. imull $-360, %edx, %ecx
  503. movl 4(%esp), %eax
  504. addl %ecx, %eax
  505. movl 8(%ebp), %ecx
  506. movl %ecx, %edx
  507. shrl $3, %edx
  508. addl %eax, %ebx
  509. movl $381774871, %eax
  510. mull %edx
  511. shrl $2, %edx
  512. imull $-360, %edx, %eax
  513. addl %eax, %ecx
  514. movl $-1240768329, %eax
  515. addl %ecx, %ebx
  516. movl (%esp), %ecx
  517. shll %cl, %ebx
  518. imull %ebx
  519. addl %ebx, %edx
  520. movl %ebx, %ecx
  521. sarl $8, %edx
  522. sarl $31, %ecx
  523. subl %ecx, %edx
  524. imull $-360, %edx, %eax
  525. addl %eax, %ebx
  526. cmpl $180, %ebx
  527. jl ..B1.31
  528. ..B1.30:
  529. addl $-180, %ebx
  530. movl $2, %eax
  531. jmp ..B1.32
  532. ..B1.31:
  533. xorl %eax, %eax
  534. ..B1.32:
  535. cmpl $90, %ebx
  536. jl ..B1.34
  537. ..B1.33:
  538. incl %eax
  539. addl $-90, %ebx
  540. ..B1.34:
  541. movl %eax, %edx
  542. movl %eax, %ecx
  543. andl $2, %edx
  544. shrl $1, %edx
  545. xorl %edx, %esi
  546. orl %ebx, %ecx
  547. je ..B1.36
  548. ..B1.35:
  549. andl $1, %eax
  550. shll $4, %eax
  551. shll $5, %ebx
  552. addl %ebx, %eax
  553. movl 12(%esp), %edx
  554. fldl __libm_sindl_cosdl_table@GOTOFF(%eax,%edx)
  555. faddl 8+__libm_sindl_cosdl_table@GOTOFF(%edx,%eax)
  556. fmuls ones@GOTOFF(%edx,%esi,4)
  557. fstpt (%esp)
  558. jmp ..B1.37
  559. ..B1.36:
  560. movl 12(%esp), %eax
  561. fldt .L_2il0floatpacket.0@GOTOFF(%eax)
  562. fstpt (%esp)
  563. ..B1.37:
  564. testl %edi, %edi
  565. je ..B1.39
  566. ..B1.38:
  567. fldcw 30(%esp)
  568. ..B1.39:
  569. fldt (%esp)
  570. addl $84, %esp
  571. popl %ebx
  572. popl %edi
  573. popl %esi
  574. movl %ebp, %esp
  575. popl %ebp
  576. ret
  577. ..B1.40:
  578. movl 12(%ebp), %eax
  579. cmpl $-449912621, %eax
  580. jb ..B1.12
  581. ..B1.41:
  582. jne ..B1.16
  583. ..B1.42:
  584. cmpl $504348098, 8(%ebp)
  585. jbe ..B1.12
  586. jmp ..B1.16
  587. ..B1.43:
  588. testl %edi, %edi
  589. je ..B1.45
  590. ..B1.44:
  591. fldcw 30(%esp)
  592. ..B1.45:
  593. fldt 16(%esp)
  594. addl $84, %esp
  595. popl %ebx
  596. popl %edi
  597. popl %esi
  598. movl %ebp, %esp
  599. popl %ebp
  600. ret
  601. ..B1.46:
  602. fstp %st(0)
  603. testb $1, %dl
  604. je ..B1.48
  605. ..B1.47:
  606. movl %ebx, %eax
  607. flds ones@GOTOFF(%eax,%esi,4)
  608. fstps (%esp)
  609. jmp ..B1.49
  610. ..B1.48:
  611. fldz
  612. fstps (%esp)
  613. ..B1.49:
  614. testl %edi, %edi
  615. je ..B1.51
  616. ..B1.50:
  617. fldcw 30(%esp)
  618. ..B1.51:
  619. flds (%esp)
  620. addl $84, %esp
  621. popl %ebx
  622. popl %edi
  623. popl %esi
  624. movl %ebp, %esp
  625. popl %ebp
  626. ret
  627. ..B1.52:
  628. fldt 8(%ebp)
  629. fldt .L_2il0floatpacket.0@GOTOFF(%eax)
  630. fmulp %st, %st(1)
  631. fstpt (%esp)
  632. jmp ..B1.37
  633. ..B1.53:
  634. xorl %edi, %edi
  635. jmp ..B1.7
  636. .align 16,0x90
  637. .type sindl,@function
  638. .size sindl,.-sindl
  639. .data
  640. # -- End sindl
  641. .section .rodata, "a"
  642. .align 16
  643. .align 16
  644. .L_2il0floatpacket.0:
  645. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  646. .type .L_2il0floatpacket.0,@object
  647. .size .L_2il0floatpacket.0,12
  648. .space 4, 0x00 # pad
  649. .align 16
  650. .L_2il0floatpacket.1:
  651. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x3e,0x40,0x00,0x00
  652. .type .L_2il0floatpacket.1,@object
  653. .size .L_2il0floatpacket.1,12
  654. .space 4, 0x00 # pad
  655. .align 16
  656. .L_2il0floatpacket.2:
  657. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0x05,0x40,0x00,0x00
  658. .type .L_2il0floatpacket.2,@object
  659. .size .L_2il0floatpacket.2,12
  660. .space 4, 0x00 # pad
  661. .align 16
  662. .L_2il0floatpacket.3:
  663. .byte 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x80,0x20,0x40,0x00,0x00
  664. .type .L_2il0floatpacket.3,@object
  665. .size .L_2il0floatpacket.3,12
  666. .space 4, 0x00 # pad
  667. .align 16
  668. .L_2il0floatpacket.4:
  669. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x3f,0x00,0x00
  670. .type .L_2il0floatpacket.4,@object
  671. .size .L_2il0floatpacket.4,12
  672. .space 4, 0x00 # pad
  673. .align 16
  674. .L_2il0floatpacket.5:
  675. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xfe,0x3f,0x00,0x00
  676. .type .L_2il0floatpacket.5,@object
  677. .size .L_2il0floatpacket.5,12
  678. .space 4, 0x00 # pad
  679. .align 16
  680. _sindl_mp_poly_coeff:
  681. .long 2723323193
  682. .long 1066524486
  683. .long 2863989530
  684. .long 1008058840
  685. .long 227815288
  686. .long 3199056770
  687. .long 3752327299
  688. .long 3142458725
  689. .type _sindl_mp_poly_coeff,@object
  690. .size _sindl_mp_poly_coeff,32
  691. .align 16
  692. _Underflow:
  693. .word 1
  694. .word 0
  695. .word 0
  696. .word 32768
  697. .word 1
  698. .word 0
  699. .type _Underflow,@object
  700. .size _Underflow,12
  701. .space 4, 0x00 # pad
  702. .align 16
  703. _cosdl_poly_coeff:
  704. .word 52350
  705. .word 41213
  706. .word 3800
  707. .word 40885
  708. .word 49138
  709. .word 0
  710. .word 28613
  711. .word 7908
  712. .word 35668
  713. .word 34008
  714. .word 16355
  715. .word 0
  716. .word 19927
  717. .word 58728
  718. .word 49885
  719. .word 45261
  720. .word 49106
  721. .word 0
  722. .word 32884
  723. .word 22035
  724. .word 23267
  725. .word 64541
  726. .word 16320
  727. .word 0
  728. .word 36401
  729. .word 51897
  730. .word 8309
  731. .word 57265
  732. .word 49070
  733. .word 0
  734. .word 34286
  735. .word 2728
  736. .word 41564
  737. .word 34642
  738. .word 16284
  739. .word 0
  740. .word 63248
  741. .word 18030
  742. .word 35596
  743. .word 60796
  744. .word 49032
  745. .word 0
  746. .word 52149
  747. .word 21294
  748. .word 63985
  749. .word 40123
  750. .word 16245
  751. .word 0
  752. .type _cosdl_poly_coeff,@object
  753. .size _cosdl_poly_coeff,96
  754. .align 16
  755. _cosdl_mp_poly_coeff:
  756. .long 3675529145
  757. .long 3206805153
  758. .long 2134983071
  759. .long 3151100167
  760. .long 1787026573
  761. .long 1043372817
  762. .long 205083639
  763. .long 988746860
  764. .type _cosdl_mp_poly_coeff,@object
  765. .size _cosdl_mp_poly_coeff,32
  766. .align 16
  767. _sindl_poly_coeff:
  768. .word 51374
  769. .word 38121
  770. .word 13586
  771. .word 36602
  772. .word 16377
  773. .word 0
  774. .word 50116
  775. .word 41339
  776. .word 4204
  777. .word 60892
  778. .word 49130
  779. .word 0
  780. .word 33704
  781. .word 2155
  782. .word 42839
  783. .word 60780
  784. .word 16346
  785. .word 0
  786. .word 21250
  787. .word 19076
  788. .word 27901
  789. .word 57780
  790. .word 49097
  791. .word 0
  792. .word 9076
  793. .word 49244
  794. .word 613
  795. .word 64083
  796. .word 16311
  797. .word 0
  798. .word 40572
  799. .word 30418
  800. .word 36251
  801. .word 46520
  802. .word 49061
  803. .word 0
  804. .word 3227
  805. .word 25505
  806. .word 5540
  807. .word 47626
  808. .word 16274
  809. .word 0
  810. .word 60933
  811. .word 3300
  812. .word 57416
  813. .word 36218
  814. .word 49023
  815. .word 0
  816. .word 45811
  817. .word 42646
  818. .word 37125
  819. .word 42185
  820. .word 16235
  821. .word 0
  822. .type _sindl_poly_coeff,@object
  823. .size _sindl_poly_coeff,108
  824. .align 4
  825. _TWO_53H:
  826. .long 0
  827. .long 1128792064
  828. .type _TWO_53H,@object
  829. .size _TWO_53H,8
  830. .align 4
  831. ones:
  832. .long 0x3f800000
  833. .long 0xbf800000
  834. .type ones,@object
  835. .size ones,8
  836. .align 4
  837. fBreaker:
  838. .byte 0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x13,0x40,0x00,0x00
  839. .type fBreaker,@object
  840. .size fBreaker,12
  841. .align 2
  842. _TWO5600:
  843. .word 0
  844. .word 0
  845. .word 0
  846. .word 32768
  847. .word 21983
  848. .word 0
  849. .word 0
  850. .word 0
  851. .word 0
  852. .word 32768
  853. .word 10783
  854. .word 0
  855. .type _TWO5600,@object
  856. .size _TWO5600,24
  857. .align 2
  858. _Rcp90:
  859. .word 46603
  860. .word 2912
  861. .word 24758
  862. .word 46603
  863. .word 16376
  864. .word 0
  865. .type _Rcp90,@object
  866. .size _Rcp90,12
  867. .data
  868. .hidden __libm_sindl_cosdl_table
  869. .section .note.GNU-stack, ""
  870. # End