atan2l.S 30 KB

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