sincosl.S 26 KB

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