atan2l.S 29 KB

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