cpow.S 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931
  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 "cpow.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin cpowf
  41. .text
  42. .align 16,0x90
  43. .globl cpowf
  44. cpowf:
  45. # parameter 1: %xmm0
  46. # parameter 2: %xmm1
  47. ..B1.1:
  48. .cfi_startproc
  49. ..___tag_value_cpowf.1:
  50. ..L2:
  51. pushq %rsi
  52. .cfi_def_cfa_offset 16
  53. movaps %xmm1, %xmm3
  54. cvtps2pd %xmm0, %xmm1
  55. cvtps2pd %xmm3, %xmm3
  56. movaps %xmm1, %xmm0
  57. movaps %xmm3, %xmm2
  58. unpckhpd %xmm1, %xmm1
  59. unpckhpd %xmm3, %xmm3
  60. ..___tag_value_cpowf.4:
  61. call cpow@PLT
  62. ..___tag_value_cpowf.5:
  63. ..B1.5:
  64. unpcklpd %xmm1, %xmm0
  65. ..B1.2:
  66. cvtpd2ps %xmm0, %xmm0
  67. popq %rcx
  68. .cfi_def_cfa_offset 8
  69. ret
  70. .align 16,0x90
  71. .cfi_endproc
  72. .type cpowf,@function
  73. .size cpowf,.-cpowf
  74. .data
  75. # -- End cpowf
  76. .text
  77. # -- Begin cpow
  78. .text
  79. .align 16,0x90
  80. .globl cpow
  81. cpow:
  82. # parameter 1: %xmm0
  83. # parameter 2: %xmm2
  84. ..B2.1:
  85. .cfi_startproc
  86. ..___tag_value_cpow.8:
  87. ..L9:
  88. pushq %r13
  89. .cfi_def_cfa_offset 16
  90. .cfi_offset 13, -16
  91. pushq %r14
  92. .cfi_def_cfa_offset 24
  93. .cfi_offset 14, -24
  94. xorb %r14b, %r14b
  95. subq $328, %rsp
  96. .cfi_def_cfa_offset 352
  97. movsd %xmm1, 312(%rsp)
  98. movsd %xmm0, 304(%rsp)
  99. movsd %xmm2, 288(%rsp)
  100. movsd %xmm3, 296(%rsp)
  101. ..B2.2:
  102. fnstcw 10(%rsp)
  103. ..B2.3:
  104. movzwl 10(%rsp), %edx
  105. movl %edx, %eax
  106. andl $768, %eax
  107. cmpl $768, %eax
  108. je ..B2.7
  109. ..B2.4:
  110. orl $-64768, %edx
  111. movw %dx, 8(%rsp)
  112. ..B2.5:
  113. fldcw 8(%rsp)
  114. ..B2.6:
  115. movb $1, %r14b
  116. ..B2.7:
  117. movsd 304(%rsp), %xmm0
  118. ..___tag_value_cpow.15:
  119. call __libm_internal_isnzfinite@PLT
  120. ..___tag_value_cpow.16:
  121. ..B2.8:
  122. testl %eax, %eax
  123. jne ..B2.29
  124. ..B2.9:
  125. lea ZEROA(%rip), %r13
  126. movsd 312(%rsp), %xmm3
  127. movsd (%r13), %xmm2
  128. ucomisd %xmm2, %xmm3
  129. jp ..B2.10
  130. je ..B2.25
  131. ..B2.10:
  132. movsd 288(%rsp), %xmm1
  133. ucomisd %xmm2, %xmm1
  134. jp ..B2.11
  135. je ..B2.23
  136. ..B2.11:
  137. ucomisd %xmm2, %xmm3
  138. jp ..B2.12
  139. je ..B2.18
  140. ..B2.12:
  141. movsd 296(%rsp), %xmm0
  142. ucomisd %xmm2, %xmm0
  143. jp ..B2.13
  144. je ..B2.17
  145. ..B2.13:
  146. fldl 304(%rsp)
  147. fstpt 48(%rsp)
  148. fldl 312(%rsp)
  149. fstpt 64(%rsp)
  150. fldt 48(%rsp)
  151. fldt 48(%rsp)
  152. fmulp %st, %st(1)
  153. fldt 64(%rsp)
  154. fldt 64(%rsp)
  155. fmulp %st, %st(1)
  156. faddp %st, %st(1)
  157. fstpt 144(%rsp)
  158. fldt 144(%rsp)
  159. addq $-16, %rsp
  160. .cfi_def_cfa_offset 368
  161. fstpt (%rsp)
  162. call logl@PLT
  163. ..B2.46:
  164. addq $16, %rsp
  165. .cfi_def_cfa_offset 352
  166. fstpt 160(%rsp)
  167. fldt 64(%rsp)
  168. fldt 48(%rsp)
  169. addq $-32, %rsp
  170. .cfi_def_cfa_offset 384
  171. fxch %st(1)
  172. fstpt (%rsp)
  173. fstpt 16(%rsp)
  174. call atan2dl@PLT
  175. ..B2.45:
  176. fldt .L_2il0floatpacket.2(%rip)
  177. addq $32, %rsp
  178. .cfi_def_cfa_offset 352
  179. fxch %st(1)
  180. fstpt 80(%rsp)
  181. fldt 160(%rsp)
  182. addq $-16, %rsp
  183. .cfi_def_cfa_offset 368
  184. fldl 304(%rsp)
  185. fmulp %st, %st(2)
  186. fmulp %st, %st(1)
  187. fstpt (%rsp)
  188. call expl@PLT
  189. ..B2.44:
  190. addq $16, %rsp
  191. .cfi_def_cfa_offset 352
  192. lea _LD_PI_DIV_180(%rip), %rax
  193. fstpt 208(%rsp)
  194. fldt 80(%rsp)
  195. addq $-16, %rsp
  196. .cfi_def_cfa_offset 368
  197. fldl 312(%rsp)
  198. fmulp %st, %st(1)
  199. fldt (%rax)
  200. fmulp %st, %st(1)
  201. fstpt (%rsp)
  202. call expl@PLT
  203. ..B2.43:
  204. fldt .L_2il0floatpacket.2(%rip)
  205. addq $16, %rsp
  206. .cfi_def_cfa_offset 352
  207. fxch %st(1)
  208. fstpt 224(%rsp)
  209. fldt 208(%rsp)
  210. fldt 224(%rsp)
  211. fdivrp %st, %st(1)
  212. fstpt 96(%rsp)
  213. fldt 160(%rsp)
  214. addq $-16, %rsp
  215. .cfi_def_cfa_offset 368
  216. fldl 312(%rsp)
  217. fmulp %st, %st(2)
  218. fmulp %st, %st(1)
  219. fstpt (%rsp)
  220. call cosl@PLT
  221. ..B2.42:
  222. addq $16, %rsp
  223. .cfi_def_cfa_offset 352
  224. fstpt 176(%rsp)
  225. fldt 80(%rsp)
  226. addq $-16, %rsp
  227. .cfi_def_cfa_offset 368
  228. fldl 304(%rsp)
  229. fmulp %st, %st(1)
  230. fstpt (%rsp)
  231. call cosdl@PLT
  232. ..B2.41:
  233. fldt .L_2il0floatpacket.2(%rip)
  234. addq $16, %rsp
  235. .cfi_def_cfa_offset 352
  236. fxch %st(1)
  237. fstpt 112(%rsp)
  238. fldt 160(%rsp)
  239. addq $-16, %rsp
  240. .cfi_def_cfa_offset 368
  241. fxch %st(1)
  242. fmull 312(%rsp)
  243. fmulp %st, %st(1)
  244. fstpt (%rsp)
  245. call sinl@PLT
  246. ..B2.40:
  247. addq $16, %rsp
  248. .cfi_def_cfa_offset 352
  249. fstpt 192(%rsp)
  250. fldt 80(%rsp)
  251. addq $-16, %rsp
  252. .cfi_def_cfa_offset 368
  253. fldl 304(%rsp)
  254. fmulp %st, %st(1)
  255. fstpt (%rsp)
  256. call sindl@PLT
  257. ..B2.39:
  258. addq $16, %rsp
  259. .cfi_def_cfa_offset 352
  260. fstpt 128(%rsp)
  261. fldt 176(%rsp)
  262. fldt 112(%rsp)
  263. fmulp %st, %st(1)
  264. fldt 192(%rsp)
  265. fldt 128(%rsp)
  266. fmulp %st, %st(1)
  267. fsubrp %st, %st(1)
  268. fstpt 240(%rsp)
  269. fldt 192(%rsp)
  270. fldt 112(%rsp)
  271. fmulp %st, %st(1)
  272. fldt 128(%rsp)
  273. fldt 176(%rsp)
  274. fmulp %st, %st(1)
  275. faddp %st, %st(1)
  276. fstpt 256(%rsp)
  277. fldt 240(%rsp)
  278. fldt 96(%rsp)
  279. fmulp %st, %st(1)
  280. fstpl 272(%rsp)
  281. fldt 256(%rsp)
  282. fldt 96(%rsp)
  283. fmulp %st, %st(1)
  284. fstpl 280(%rsp)
  285. ..B2.14:
  286. testb %r14b, %r14b
  287. je ..B2.16
  288. ..B2.15:
  289. fldcw 10(%rsp)
  290. ..B2.16:
  291. movsd 272(%rsp), %xmm0
  292. movsd 280(%rsp), %xmm1
  293. addq $328, %rsp
  294. .cfi_def_cfa_offset 24
  295. .cfi_restore 14
  296. popq %r14
  297. .cfi_def_cfa_offset 16
  298. .cfi_restore 13
  299. popq %r13
  300. .cfi_def_cfa_offset 8
  301. ret
  302. .cfi_def_cfa_offset 352
  303. .cfi_offset 13, -16
  304. .cfi_offset 14, -24
  305. ..B2.17:
  306. fldl 304(%rsp)
  307. fstpt 48(%rsp)
  308. fldl 312(%rsp)
  309. fstpt 64(%rsp)
  310. fldt 48(%rsp)
  311. fldt 48(%rsp)
  312. fmulp %st, %st(1)
  313. fldt 64(%rsp)
  314. fldt 64(%rsp)
  315. fmulp %st, %st(1)
  316. movsd .L_2il0floatpacket.1(%rip), %xmm0
  317. faddp %st, %st(1)
  318. fstpt 144(%rsp)
  319. fldt 144(%rsp)
  320. addq $-32, %rsp
  321. .cfi_def_cfa_offset 384
  322. mulsd 320(%rsp), %xmm0
  323. fstpt (%rsp)
  324. movsd %xmm0, 32(%rsp)
  325. fldl 32(%rsp)
  326. fstpt 16(%rsp)
  327. call powl@PLT
  328. ..B2.50:
  329. addq $32, %rsp
  330. .cfi_def_cfa_offset 352
  331. fstpt 96(%rsp)
  332. fldt 64(%rsp)
  333. fldt 48(%rsp)
  334. addq $-32, %rsp
  335. .cfi_def_cfa_offset 384
  336. fxch %st(1)
  337. fstpt (%rsp)
  338. fstpt 16(%rsp)
  339. call atan2dl@PLT
  340. ..B2.49:
  341. addq $32, %rsp
  342. .cfi_def_cfa_offset 352
  343. fstpt 80(%rsp)
  344. fldt 80(%rsp)
  345. addq $-16, %rsp
  346. .cfi_def_cfa_offset 368
  347. fldl 304(%rsp)
  348. fmulp %st, %st(1)
  349. fstpt (%rsp)
  350. call cosdl@PLT
  351. ..B2.48:
  352. addq $16, %rsp
  353. .cfi_def_cfa_offset 352
  354. fstpt 176(%rsp)
  355. fldt 80(%rsp)
  356. addq $-16, %rsp
  357. .cfi_def_cfa_offset 368
  358. fldl 304(%rsp)
  359. fmulp %st, %st(1)
  360. fstpt (%rsp)
  361. call sindl@PLT
  362. ..B2.47:
  363. addq $16, %rsp
  364. .cfi_def_cfa_offset 352
  365. fstpt 192(%rsp)
  366. fldt 96(%rsp)
  367. fldt 176(%rsp)
  368. fmulp %st, %st(1)
  369. fstpl 272(%rsp)
  370. fldt 96(%rsp)
  371. fldt 192(%rsp)
  372. fmulp %st, %st(1)
  373. fstpl 280(%rsp)
  374. jmp ..B2.14
  375. ..B2.18:
  376. movsd 304(%rsp), %xmm0
  377. comisd %xmm2, %xmm0
  378. jbe ..B2.20
  379. ..B2.19:
  380. addq $-32, %rsp
  381. .cfi_def_cfa_offset 384
  382. movsd %xmm0, 32(%rsp)
  383. fldl 32(%rsp)
  384. fstpt (%rsp)
  385. movsd %xmm1, 32(%rsp)
  386. fldl 32(%rsp)
  387. fstpt 16(%rsp)
  388. call powl@PLT
  389. ..B2.54:
  390. addq $32, %rsp
  391. .cfi_def_cfa_offset 352
  392. fstpt 96(%rsp)
  393. addq $-16, %rsp
  394. .cfi_def_cfa_offset 368
  395. fldl 320(%rsp)
  396. fstpt (%rsp)
  397. call logl@PLT
  398. ..B2.53:
  399. addq $16, %rsp
  400. .cfi_def_cfa_offset 352
  401. fstpt 32(%rsp)
  402. fldt 32(%rsp)
  403. addq $-16, %rsp
  404. .cfi_def_cfa_offset 368
  405. fldl 312(%rsp)
  406. fmulp %st, %st(1)
  407. fstpt (%rsp)
  408. call cosl@PLT
  409. ..B2.52:
  410. addq $16, %rsp
  411. .cfi_def_cfa_offset 352
  412. fstpt 176(%rsp)
  413. fldt 32(%rsp)
  414. addq $-16, %rsp
  415. .cfi_def_cfa_offset 368
  416. fldl 312(%rsp)
  417. fmulp %st, %st(1)
  418. fstpt (%rsp)
  419. call sinl@PLT
  420. ..B2.51:
  421. addq $16, %rsp
  422. .cfi_def_cfa_offset 352
  423. fstpt 192(%rsp)
  424. fldt 176(%rsp)
  425. fldt 96(%rsp)
  426. fmulp %st, %st(1)
  427. fstpl 272(%rsp)
  428. fldt 192(%rsp)
  429. fldt 96(%rsp)
  430. fmulp %st, %st(1)
  431. fstpl 280(%rsp)
  432. jmp ..B2.14
  433. ..B2.20:
  434. comisd %xmm0, %xmm2
  435. jbe ..B2.22
  436. ..B2.21:
  437. fldl 312(%rsp)
  438. movsd %xmm0, (%rsp)
  439. fldl (%rsp)
  440. fstpt 48(%rsp)
  441. fldt 48(%rsp)
  442. fchs
  443. fstpt 16(%rsp)
  444. fstpt 64(%rsp)
  445. fldt 16(%rsp)
  446. addq $-16, %rsp
  447. .cfi_def_cfa_offset 368
  448. fstpt (%rsp)
  449. call logl@PLT
  450. ..B2.62:
  451. addq $16, %rsp
  452. .cfi_def_cfa_offset 352
  453. fstpt 160(%rsp)
  454. fldt 64(%rsp)
  455. fldt 48(%rsp)
  456. addq $-32, %rsp
  457. .cfi_def_cfa_offset 384
  458. fxch %st(1)
  459. fstpt (%rsp)
  460. fstpt 16(%rsp)
  461. call atan2dl@PLT
  462. ..B2.61:
  463. addq $32, %rsp
  464. .cfi_def_cfa_offset 352
  465. fstpt 80(%rsp)
  466. fldt 160(%rsp)
  467. addq $-16, %rsp
  468. .cfi_def_cfa_offset 368
  469. fldl 304(%rsp)
  470. fmulp %st, %st(1)
  471. fstpt (%rsp)
  472. call expl@PLT
  473. ..B2.60:
  474. addq $16, %rsp
  475. .cfi_def_cfa_offset 352
  476. lea _LD_PI_DIV_180(%rip), %rax
  477. fstpt 208(%rsp)
  478. fldt 80(%rsp)
  479. addq $-16, %rsp
  480. .cfi_def_cfa_offset 368
  481. fldl 312(%rsp)
  482. fmulp %st, %st(1)
  483. fldt (%rax)
  484. fmulp %st, %st(1)
  485. fstpt (%rsp)
  486. call expl@PLT
  487. ..B2.59:
  488. addq $16, %rsp
  489. .cfi_def_cfa_offset 352
  490. fstpt 224(%rsp)
  491. fldt 208(%rsp)
  492. fldt 224(%rsp)
  493. fdivrp %st, %st(1)
  494. fstpt 96(%rsp)
  495. fldt 160(%rsp)
  496. addq $-16, %rsp
  497. .cfi_def_cfa_offset 368
  498. fldl 312(%rsp)
  499. fmulp %st, %st(1)
  500. fstpt (%rsp)
  501. call cosl@PLT
  502. ..B2.58:
  503. addq $16, %rsp
  504. .cfi_def_cfa_offset 352
  505. fstpt 176(%rsp)
  506. fldt 80(%rsp)
  507. addq $-16, %rsp
  508. .cfi_def_cfa_offset 368
  509. fldl 304(%rsp)
  510. fmulp %st, %st(1)
  511. fstpt (%rsp)
  512. call cosdl@PLT
  513. ..B2.57:
  514. addq $16, %rsp
  515. .cfi_def_cfa_offset 352
  516. fstpt 112(%rsp)
  517. fldt 160(%rsp)
  518. addq $-16, %rsp
  519. .cfi_def_cfa_offset 368
  520. fldl 312(%rsp)
  521. fmulp %st, %st(1)
  522. fstpt (%rsp)
  523. call sinl@PLT
  524. ..B2.56:
  525. addq $16, %rsp
  526. .cfi_def_cfa_offset 352
  527. fstpt 192(%rsp)
  528. fldt 80(%rsp)
  529. addq $-16, %rsp
  530. .cfi_def_cfa_offset 368
  531. fldl 304(%rsp)
  532. fmulp %st, %st(1)
  533. fstpt (%rsp)
  534. call sindl@PLT
  535. ..B2.55:
  536. addq $16, %rsp
  537. .cfi_def_cfa_offset 352
  538. fstpt 128(%rsp)
  539. fldt 176(%rsp)
  540. fldt 112(%rsp)
  541. fmulp %st, %st(1)
  542. fldt 192(%rsp)
  543. fldt 128(%rsp)
  544. fmulp %st, %st(1)
  545. fsubrp %st, %st(1)
  546. fstpt 240(%rsp)
  547. fldt 192(%rsp)
  548. fldt 112(%rsp)
  549. fmulp %st, %st(1)
  550. fldt 128(%rsp)
  551. fldt 176(%rsp)
  552. fmulp %st, %st(1)
  553. faddp %st, %st(1)
  554. fstpt 256(%rsp)
  555. fldt 240(%rsp)
  556. fldt 96(%rsp)
  557. fmulp %st, %st(1)
  558. fstpl 272(%rsp)
  559. fldt 256(%rsp)
  560. fldt 96(%rsp)
  561. fmulp %st, %st(1)
  562. fstpl 280(%rsp)
  563. jmp ..B2.14
  564. ..B2.22:
  565. movq 304(%rsp), %rax
  566. movq 312(%rsp), %rdx
  567. movq %rax, 272(%rsp)
  568. movq %rdx, 280(%rsp)
  569. jmp ..B2.14
  570. ..B2.23:
  571. movsd 296(%rsp), %xmm0
  572. ucomisd %xmm2, %xmm0
  573. jne ..B2.11
  574. jp ..B2.11
  575. ..B2.24:
  576. fldl 304(%rsp)
  577. fstpt 48(%rsp)
  578. fldl 312(%rsp)
  579. fstpt 64(%rsp)
  580. fldt 48(%rsp)
  581. fldt 48(%rsp)
  582. fmulp %st, %st(1)
  583. fldt 64(%rsp)
  584. fldt 64(%rsp)
  585. fmulp %st, %st(1)
  586. faddp %st, %st(1)
  587. fstpt 144(%rsp)
  588. fldt 144(%rsp)
  589. addq $-16, %rsp
  590. .cfi_def_cfa_offset 368
  591. fstpt (%rsp)
  592. call logl@PLT
  593. ..B2.65:
  594. addq $16, %rsp
  595. .cfi_def_cfa_offset 352
  596. fstpt 160(%rsp)
  597. fldt 64(%rsp)
  598. fldt 48(%rsp)
  599. addq $-32, %rsp
  600. .cfi_def_cfa_offset 384
  601. fxch %st(1)
  602. fstpt (%rsp)
  603. fstpt 16(%rsp)
  604. call atan2l@PLT
  605. ..B2.64:
  606. addq $32, %rsp
  607. .cfi_def_cfa_offset 352
  608. fstpt 80(%rsp)
  609. fldt 160(%rsp)
  610. fldt 80(%rsp)
  611. addq $-16, %rsp
  612. .cfi_def_cfa_offset 368
  613. faddp %st, %st(1)
  614. fstpt (%rsp)
  615. call sinl@PLT
  616. ..B2.63:
  617. addq $16, %rsp
  618. .cfi_def_cfa_offset 352
  619. movq $0x3ff0000000000000, %rax
  620. fstpl (%rsp)
  621. movsd (%rsp), %xmm1
  622. movsd (%r13), %xmm0
  623. movsd .L_2il0floatpacket.0(%rip), %xmm2
  624. andps %xmm2, %xmm1
  625. andnps %xmm0, %xmm2
  626. orps %xmm1, %xmm2
  627. movq %rax, 272(%rsp)
  628. movsd %xmm2, 280(%rsp)
  629. jmp ..B2.14
  630. ..B2.25:
  631. movsd 296(%rsp), %xmm0
  632. ucomisd %xmm2, %xmm0
  633. jne ..B2.10
  634. jp ..B2.10
  635. ..B2.26:
  636. movsd 304(%rsp), %xmm0
  637. comisd %xmm0, %xmm2
  638. jbe ..B2.28
  639. ..B2.27:
  640. fldl 312(%rsp)
  641. movsd %xmm0, (%rsp)
  642. fldl (%rsp)
  643. fstpt 48(%rsp)
  644. fldt 48(%rsp)
  645. fchs
  646. fstpt 16(%rsp)
  647. fstpt 64(%rsp)
  648. fldt 64(%rsp)
  649. fldt 48(%rsp)
  650. addq $-32, %rsp
  651. .cfi_def_cfa_offset 384
  652. fxch %st(1)
  653. fstpt (%rsp)
  654. fstpt 16(%rsp)
  655. call atan2dl@PLT
  656. ..B2.69:
  657. addq $32, %rsp
  658. .cfi_def_cfa_offset 352
  659. fstpt 80(%rsp)
  660. fldt 16(%rsp)
  661. addq $-32, %rsp
  662. .cfi_def_cfa_offset 384
  663. fstpt (%rsp)
  664. fldl 320(%rsp)
  665. fstpt 16(%rsp)
  666. call powl@PLT
  667. ..B2.68:
  668. addq $32, %rsp
  669. .cfi_def_cfa_offset 352
  670. fstpt 96(%rsp)
  671. fldt 80(%rsp)
  672. addq $-16, %rsp
  673. .cfi_def_cfa_offset 368
  674. fldl 304(%rsp)
  675. fmulp %st, %st(1)
  676. fstpt (%rsp)
  677. call cosdl@PLT
  678. ..B2.67:
  679. addq $16, %rsp
  680. .cfi_def_cfa_offset 352
  681. fstpt 112(%rsp)
  682. fldt 80(%rsp)
  683. addq $-16, %rsp
  684. .cfi_def_cfa_offset 368
  685. fldl 304(%rsp)
  686. fmulp %st, %st(1)
  687. fstpt (%rsp)
  688. call sindl@PLT
  689. ..B2.66:
  690. addq $16, %rsp
  691. .cfi_def_cfa_offset 352
  692. fstpt 128(%rsp)
  693. fldt 96(%rsp)
  694. fldt 112(%rsp)
  695. fmulp %st, %st(1)
  696. fstpl 272(%rsp)
  697. fldt 96(%rsp)
  698. fldt 128(%rsp)
  699. fmulp %st, %st(1)
  700. fstpl 280(%rsp)
  701. jmp ..B2.14
  702. ..B2.28:
  703. movsd 288(%rsp), %xmm1
  704. movsd %xmm3, (%rsp)
  705. call pow@PLT
  706. ..B2.70:
  707. movsd (%rsp), %xmm3
  708. movsd %xmm0, 272(%rsp)
  709. movsd %xmm3, 280(%rsp)
  710. jmp ..B2.14
  711. ..B2.29:
  712. movsd 312(%rsp), %xmm0
  713. ..___tag_value_cpow.87:
  714. call __libm_internal_isnzfinite@PLT
  715. ..___tag_value_cpow.88:
  716. ..B2.30:
  717. testl %eax, %eax
  718. je ..B2.9
  719. ..B2.31:
  720. movsd 288(%rsp), %xmm0
  721. ..___tag_value_cpow.89:
  722. call __libm_internal_isnzfinite@PLT
  723. ..___tag_value_cpow.90:
  724. ..B2.32:
  725. testl %eax, %eax
  726. je ..B2.9
  727. ..B2.33:
  728. movsd 296(%rsp), %xmm0
  729. ..___tag_value_cpow.91:
  730. call __libm_internal_isnzfinite@PLT
  731. ..___tag_value_cpow.92:
  732. ..B2.34:
  733. testl %eax, %eax
  734. je ..B2.9
  735. ..B2.35:
  736. fldl 304(%rsp)
  737. fstpt 48(%rsp)
  738. fldl 312(%rsp)
  739. fstpt 64(%rsp)
  740. fldt 48(%rsp)
  741. fldt 48(%rsp)
  742. fmulp %st, %st(1)
  743. fldt 64(%rsp)
  744. fldt 64(%rsp)
  745. fmulp %st, %st(1)
  746. faddp %st, %st(1)
  747. fstpt 144(%rsp)
  748. fldt 144(%rsp)
  749. addq $-16, %rsp
  750. .cfi_def_cfa_offset 368
  751. fstpt (%rsp)
  752. call logl@PLT
  753. ..B2.81:
  754. addq $16, %rsp
  755. .cfi_def_cfa_offset 352
  756. fstpt 160(%rsp)
  757. fldt 64(%rsp)
  758. fldt 48(%rsp)
  759. addq $-32, %rsp
  760. .cfi_def_cfa_offset 384
  761. fxch %st(1)
  762. fstpt (%rsp)
  763. fstpt 16(%rsp)
  764. call atan2dl@PLT
  765. ..B2.80:
  766. fldt .L_2il0floatpacket.2(%rip)
  767. addq $32, %rsp
  768. .cfi_def_cfa_offset 352
  769. fxch %st(1)
  770. fstpt 80(%rsp)
  771. fldt 160(%rsp)
  772. addq $-16, %rsp
  773. .cfi_def_cfa_offset 368
  774. fldl 304(%rsp)
  775. fmulp %st, %st(2)
  776. fmulp %st, %st(1)
  777. fstpt (%rsp)
  778. call expl@PLT
  779. ..B2.79:
  780. addq $16, %rsp
  781. .cfi_def_cfa_offset 352
  782. lea _LD_PI_DIV_180(%rip), %rax
  783. fstpt 208(%rsp)
  784. fldt 80(%rsp)
  785. addq $-16, %rsp
  786. .cfi_def_cfa_offset 368
  787. fldl 312(%rsp)
  788. fmulp %st, %st(1)
  789. fldt (%rax)
  790. fmulp %st, %st(1)
  791. fstpt (%rsp)
  792. call expl@PLT
  793. ..B2.78:
  794. fldt .L_2il0floatpacket.2(%rip)
  795. addq $16, %rsp
  796. .cfi_def_cfa_offset 352
  797. fxch %st(1)
  798. fstpt 224(%rsp)
  799. fldt 208(%rsp)
  800. fldt 224(%rsp)
  801. fdivrp %st, %st(1)
  802. fstpt 96(%rsp)
  803. fldt 160(%rsp)
  804. addq $-16, %rsp
  805. .cfi_def_cfa_offset 368
  806. fldl 312(%rsp)
  807. fmulp %st, %st(2)
  808. fmulp %st, %st(1)
  809. fstpt (%rsp)
  810. call cosl@PLT
  811. ..B2.77:
  812. addq $16, %rsp
  813. .cfi_def_cfa_offset 352
  814. fstpt 176(%rsp)
  815. fldt 80(%rsp)
  816. addq $-16, %rsp
  817. .cfi_def_cfa_offset 368
  818. fldl 304(%rsp)
  819. fmulp %st, %st(1)
  820. fstpt (%rsp)
  821. call cosdl@PLT
  822. ..B2.76:
  823. fldt .L_2il0floatpacket.2(%rip)
  824. addq $16, %rsp
  825. .cfi_def_cfa_offset 352
  826. fxch %st(1)
  827. fstpt 112(%rsp)
  828. fldt 160(%rsp)
  829. addq $-16, %rsp
  830. .cfi_def_cfa_offset 368
  831. fxch %st(1)
  832. fmull 312(%rsp)
  833. fmulp %st, %st(1)
  834. fstpt (%rsp)
  835. call sinl@PLT
  836. ..B2.75:
  837. addq $16, %rsp
  838. .cfi_def_cfa_offset 352
  839. fstpt 192(%rsp)
  840. fldt 80(%rsp)
  841. addq $-16, %rsp
  842. .cfi_def_cfa_offset 368
  843. fldl 304(%rsp)
  844. fmulp %st, %st(1)
  845. fstpt (%rsp)
  846. call sindl@PLT
  847. ..B2.74:
  848. addq $16, %rsp
  849. .cfi_def_cfa_offset 352
  850. fstpt 128(%rsp)
  851. fldt 176(%rsp)
  852. fldt 112(%rsp)
  853. fmulp %st, %st(1)
  854. fldt 192(%rsp)
  855. fldt 128(%rsp)
  856. fmulp %st, %st(1)
  857. fsubrp %st, %st(1)
  858. fstpt 240(%rsp)
  859. fldt 192(%rsp)
  860. fldt 112(%rsp)
  861. fmulp %st, %st(1)
  862. fldt 128(%rsp)
  863. fldt 176(%rsp)
  864. fmulp %st, %st(1)
  865. faddp %st, %st(1)
  866. fstpt 256(%rsp)
  867. fldt 240(%rsp)
  868. fldt 96(%rsp)
  869. fmulp %st, %st(1)
  870. fstpl 272(%rsp)
  871. fldt 256(%rsp)
  872. fldt 96(%rsp)
  873. fmulp %st, %st(1)
  874. fstpl 280(%rsp)
  875. jmp ..B2.14
  876. .align 16,0x90
  877. .cfi_endproc
  878. .type cpow,@function
  879. .size cpow,.-cpow
  880. .data
  881. # -- End cpow
  882. .section .rodata, "a"
  883. .align 16
  884. .align 16
  885. .L_2il0floatpacket.2:
  886. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xfe,0x3f,0x00,0x00,0x00,0x00,0x00,0x00
  887. .type .L_2il0floatpacket.2,@object
  888. .size .L_2il0floatpacket.2,16
  889. .align 16
  890. ZEROA:
  891. .long 0
  892. .long 0
  893. .type ZEROA,@object
  894. .size ZEROA,8
  895. .space 8, 0x00 # pad
  896. .align 16
  897. _LD_PI_DIV_180:
  898. .word 51374
  899. .word 38121
  900. .word 13586
  901. .word 36602
  902. .word 16377
  903. .word 0
  904. .word 0
  905. .word 0
  906. .type _LD_PI_DIV_180,@object
  907. .size _LD_PI_DIV_180,16
  908. .align 8
  909. .L_2il0floatpacket.0:
  910. .long 0x00000000,0x80000000
  911. .type .L_2il0floatpacket.0,@object
  912. .size .L_2il0floatpacket.0,8
  913. .align 8
  914. .L_2il0floatpacket.1:
  915. .long 0x00000000,0x3fe00000
  916. .type .L_2il0floatpacket.1,@object
  917. .size .L_2il0floatpacket.1,8
  918. .align 8
  919. .L_2il0floatpacket.3:
  920. .long 0x00000000,0x3ff00000
  921. .type .L_2il0floatpacket.3,@object
  922. .size .L_2il0floatpacket.3,8
  923. .data
  924. .section .note.GNU-stack, ""
  925. // -- Begin DWARF2 SEGMENT .eh_frame
  926. .section .eh_frame,"a",@progbits
  927. .eh_frame_seg:
  928. .align 1
  929. # End