cacos.S 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743
  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 "cacos.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin cacosf
  41. .text
  42. .align 16,0x90
  43. .globl cacosf
  44. cacosf:
  45. # parameter 1: %xmm0
  46. ..B1.1:
  47. .cfi_startproc
  48. ..___tag_value_cacosf.1:
  49. ..L2:
  50. subq $24, %rsp
  51. .cfi_def_cfa_offset 32
  52. cvtps2pd %xmm0, %xmm1
  53. movaps %xmm1, %xmm0
  54. unpckhpd %xmm1, %xmm1
  55. ..___tag_value_cacosf.4:
  56. call cacos@PLT
  57. ..___tag_value_cacosf.5:
  58. ..B1.10:
  59. unpcklpd %xmm1, %xmm0
  60. ..B1.2:
  61. cvtpd2ps %xmm0, %xmm0
  62. movsd %xmm0, 4(%rsp)
  63. movzwl 6(%rsp), %eax
  64. testl $32640, %eax
  65. jne ..B1.4
  66. ..B1.3:
  67. testl $8388607, 4(%rsp)
  68. jne ..B1.6
  69. ..B1.4:
  70. movzwl 10(%rsp), %eax
  71. testl $32640, %eax
  72. jne ..B1.7
  73. ..B1.5:
  74. testl $8388607, 8(%rsp)
  75. je ..B1.7
  76. ..B1.6:
  77. movss .L_2il0floatpacket.12(%rip), %xmm0
  78. mulss %xmm0, %xmm0
  79. movss %xmm0, (%rsp)
  80. movsd 4(%rsp), %xmm0
  81. ..B1.7:
  82. addq $24, %rsp
  83. .cfi_def_cfa_offset 8
  84. ret
  85. .align 16,0x90
  86. .cfi_endproc
  87. .type cacosf,@function
  88. .size cacosf,.-cacosf
  89. .data
  90. # -- End cacosf
  91. .text
  92. # -- Begin cacos
  93. .text
  94. .align 16,0x90
  95. .globl cacos
  96. cacos:
  97. # parameter 1: %xmm0
  98. ..B2.1:
  99. .cfi_startproc
  100. ..___tag_value_cacos.8:
  101. ..L9:
  102. pushq %r12
  103. .cfi_def_cfa_offset 16
  104. .cfi_offset 12, -16
  105. pushq %r13
  106. .cfi_def_cfa_offset 24
  107. .cfi_offset 13, -24
  108. xorb %r12b, %r12b
  109. subq $152, %rsp
  110. .cfi_def_cfa_offset 176
  111. movsd %xmm0, 32(%rsp)
  112. movsd %xmm1, 40(%rsp)
  113. ..B2.2:
  114. fnstcw 138(%rsp)
  115. ..B2.3:
  116. movzwl 38(%rsp), %edx
  117. andl $32752, %edx
  118. shrl $4, %edx
  119. cmpl $2047, %edx
  120. jge ..B2.36
  121. ..B2.4:
  122. testl %edx, %edx
  123. jle ..B2.57
  124. ..B2.5:
  125. movzwl 46(%rsp), %eax
  126. andl $32752, %eax
  127. shrl $4, %eax
  128. cmpl $2047, %eax
  129. jge ..B2.36
  130. ..B2.6:
  131. testl %eax, %eax
  132. jle ..B2.55
  133. ..B2.7:
  134. movzwl 138(%rsp), %edx
  135. movl %edx, %eax
  136. andl $768, %eax
  137. cmpl $768, %eax
  138. je ..B2.11
  139. ..B2.8:
  140. orl $-64768, %edx
  141. movw %dx, 136(%rsp)
  142. ..B2.9:
  143. fldcw 136(%rsp)
  144. ..B2.10:
  145. movb $1, %r12b
  146. ..B2.11:
  147. fldt .L_2il0floatpacket.14(%rip)
  148. lea BcrossA(%rip), %rax
  149. movsd 32(%rsp), %xmm0
  150. fld %st(0)
  151. fldt .L_2il0floatpacket.15(%rip)
  152. movsd %xmm0, 120(%rsp)
  153. fldt (%rax)
  154. andps .L_2il0floatpacket.18(%rip), %xmm0
  155. movsd %xmm0, (%rsp)
  156. fldl (%rsp)
  157. movsd 40(%rsp), %xmm1
  158. fadd %st, %st(3)
  159. movsd %xmm1, 128(%rsp)
  160. andps .L_2il0floatpacket.18(%rip), %xmm1
  161. movsd %xmm1, (%rsp)
  162. fxch %st(3)
  163. fstpt 104(%rsp)
  164. fldt 104(%rsp)
  165. fxch %st(3)
  166. fsubr %st, %st(4)
  167. fxch %st(4)
  168. fstpt 88(%rsp)
  169. fldt 88(%rsp)
  170. fxch %st(3)
  171. fmul %st(0), %st
  172. fxch %st(3)
  173. fmul %st(0), %st
  174. fldl (%rsp)
  175. fld %st(0)
  176. fmul %st(1), %st
  177. fadd %st, %st(5)
  178. fxch %st(5)
  179. fsqrt
  180. fld %st(0)
  181. fxch %st(3)
  182. fadd %st(6), %st
  183. fsqrt
  184. fstpt 72(%rsp)
  185. fldt 72(%rsp)
  186. faddp %st, %st(3)
  187. fxch %st(4)
  188. fmulp %st, %st(2)
  189. fld %st(5)
  190. fdiv %st(2), %st
  191. fxch %st(3)
  192. fcomip %st(3), %st
  193. jbe ..B2.13
  194. ..B2.12:
  195. fstp %st(0)
  196. addq $-16, %rsp
  197. .cfi_def_cfa_offset 192
  198. fxch %st(1)
  199. fstpt (%rsp)
  200. fxch %st(3)
  201. fstpl 80(%rsp)
  202. fstpt 16(%rsp)
  203. fstpt 32(%rsp)
  204. fstpt 48(%rsp)
  205. call acosl@PLT
  206. ..B2.78:
  207. fldt 48(%rsp)
  208. fldt 32(%rsp)
  209. fldt 16(%rsp)
  210. fldl 80(%rsp)
  211. addq $16, %rsp
  212. .cfi_def_cfa_offset 176
  213. jmp ..B2.16
  214. ..B2.13:
  215. fstp %st(2)
  216. fldt .L_2il0floatpacket.14(%rip)
  217. fcomip %st(5), %st
  218. jb ..B2.15
  219. ..B2.14:
  220. fstp %st(1)
  221. fldt .L_2il0floatpacket.15(%rip)
  222. addq $-32, %rsp
  223. .cfi_def_cfa_offset 208
  224. fld %st(2)
  225. fld %st(2)
  226. fadd %st(6), %st
  227. fmulp %st, %st(2)
  228. fldt 136(%rsp)
  229. faddp %st, %st(1)
  230. fdivr %st(4), %st
  231. fldt 104(%rsp)
  232. fldt 120(%rsp)
  233. faddp %st, %st(1)
  234. faddp %st, %st(1)
  235. fmulp %st, %st(1)
  236. fsqrt
  237. fstpt (%rsp)
  238. fxch %st(3)
  239. fstpt 16(%rsp)
  240. fldt 16(%rsp)
  241. fstpl 96(%rsp)
  242. fstpt 32(%rsp)
  243. fstpt 48(%rsp)
  244. fstpt 64(%rsp)
  245. call atan2l@PLT
  246. jmp ..B2.80
  247. .cfi_def_cfa_offset 176
  248. ..B2.15:
  249. fxch %st(2)
  250. fstpt (%rsp)
  251. fldt (%rsp)
  252. addq $-32, %rsp
  253. .cfi_def_cfa_offset 208
  254. fld %st(2)
  255. fadd %st(5), %st
  256. fldt 136(%rsp)
  257. faddp %st, %st(2)
  258. fdiv %st, %st(1)
  259. fldt 104(%rsp)
  260. fldt 120(%rsp)
  261. fsubrp %st, %st(1)
  262. fdivrp %st, %st(1)
  263. faddp %st, %st(1)
  264. fldt .L_2il0floatpacket.15(%rip)
  265. fmulp %st, %st(1)
  266. fsqrt
  267. fmulp %st, %st(1)
  268. fstpt (%rsp)
  269. fxch %st(2)
  270. fstpt 16(%rsp)
  271. fldt 16(%rsp)
  272. fstpl 96(%rsp)
  273. fstpt 48(%rsp)
  274. fstpt 64(%rsp)
  275. fldt 32(%rsp)
  276. fstpt 32(%rsp)
  277. call atan2l@PLT
  278. ..B2.80:
  279. fldt 64(%rsp)
  280. fldt 48(%rsp)
  281. fldt 32(%rsp)
  282. fldl 96(%rsp)
  283. addq $32, %rsp
  284. .cfi_def_cfa_offset 176
  285. ..B2.16:
  286. lea AcrossA(%rip), %rax
  287. fldt (%rax)
  288. fcomip %st(4), %st
  289. jb ..B2.21
  290. ..B2.17:
  291. fldt 104(%rsp)
  292. faddp %st, %st(2)
  293. fldt .L_2il0floatpacket.14(%rip)
  294. fcomip %st(1), %st
  295. fstp %st(0)
  296. jbe ..B2.19
  297. ..B2.18:
  298. fldt 72(%rsp)
  299. fxch %st(1)
  300. fdivr %st(2), %st
  301. fldt 88(%rsp)
  302. faddp %st, %st(2)
  303. fxch %st(1)
  304. fdivrp %st, %st(2)
  305. faddp %st, %st(1)
  306. fldt .L_2il0floatpacket.15(%rip)
  307. fmulp %st, %st(1)
  308. jmp ..B2.20
  309. ..B2.19:
  310. fldt 88(%rsp)
  311. fxch %st(1)
  312. fdivrp %st, %st(2)
  313. fldt 72(%rsp)
  314. fsubp %st, %st(1)
  315. faddp %st, %st(1)
  316. fldt .L_2il0floatpacket.15(%rip)
  317. fmulp %st, %st(1)
  318. ..B2.20:
  319. fldt .L_2il0floatpacket.14(%rip)
  320. addq $-16, %rsp
  321. .cfi_def_cfa_offset 192
  322. faddp %st, %st(2)
  323. fmul %st, %st(1)
  324. fxch %st(1)
  325. fsqrt
  326. faddp %st, %st(1)
  327. fstpt (%rsp)
  328. fstpt 16(%rsp)
  329. call log1pl@PLT
  330. jmp ..B2.82
  331. .cfi_def_cfa_offset 176
  332. ..B2.21:
  333. fstp %st(1)
  334. fstp %st(1)
  335. fstp %st(0)
  336. fldt .L_2il0floatpacket.14(%rip)
  337. fld %st(1)
  338. fmul %st(2), %st
  339. addq $-16, %rsp
  340. .cfi_def_cfa_offset 192
  341. fsubp %st, %st(1)
  342. fsqrt
  343. faddp %st, %st(1)
  344. fstpt (%rsp)
  345. fstpt 16(%rsp)
  346. call logl@PLT
  347. ..B2.82:
  348. fldt 16(%rsp)
  349. addq $16, %rsp
  350. .cfi_def_cfa_offset 176
  351. ..B2.22:
  352. lea ZEROA(%rip), %rax
  353. movsd (%rax), %xmm1
  354. comisd 120(%rsp), %xmm1
  355. jbe ..B2.24
  356. ..B2.23:
  357. fldt .L_2il0floatpacket.16(%rip)
  358. lea PIBY2HIA(%rip), %rax
  359. lea PIBY2LOA(%rip), %rdx
  360. fldl (%rax)
  361. faddl (%rdx)
  362. fmulp %st, %st(1)
  363. fsubp %st, %st(1)
  364. ..B2.24:
  365. movsd 128(%rsp), %xmm0
  366. comisd %xmm1, %xmm0
  367. jbe ..B2.26
  368. ..B2.25:
  369. fldt .L_2il0floatpacket.17(%rip)
  370. fmulp %st, %st(2)
  371. ..B2.26:
  372. fstpl 16(%rsp)
  373. movzwl 22(%rsp), %eax
  374. testl $32752, %eax
  375. fstpl 24(%rsp)
  376. jne ..B2.29
  377. ..B2.27:
  378. testl $1048575, 20(%rsp)
  379. jne ..B2.32
  380. ..B2.28:
  381. cmpl $0, 16(%rsp)
  382. jne ..B2.32
  383. ..B2.29:
  384. movzwl 30(%rsp), %eax
  385. testl $32752, %eax
  386. jne ..B2.33
  387. ..B2.30:
  388. testl $1048575, 28(%rsp)
  389. jne ..B2.32
  390. ..B2.31:
  391. cmpl $0, 24(%rsp)
  392. je ..B2.33
  393. ..B2.32:
  394. lea _LDB_MIN_NORMAL(%rip), %rax
  395. fldt (%rax)
  396. fmul %st(0), %st
  397. fstpt 48(%rsp)
  398. ..B2.33:
  399. testb %r12b, %r12b
  400. je ..B2.35
  401. ..B2.34:
  402. fldcw 138(%rsp)
  403. ..B2.35:
  404. movsd 16(%rsp), %xmm0
  405. movsd 24(%rsp), %xmm1
  406. addq $152, %rsp
  407. .cfi_def_cfa_offset 24
  408. .cfi_restore 13
  409. popq %r13
  410. .cfi_def_cfa_offset 16
  411. .cfi_restore 12
  412. popq %r12
  413. .cfi_def_cfa_offset 8
  414. ret
  415. .cfi_def_cfa_offset 176
  416. .cfi_offset 12, -16
  417. .cfi_offset 13, -24
  418. ..B2.36:
  419. testl %edx, %edx
  420. jne ..B2.40
  421. ..B2.37:
  422. testl $1048575, 36(%rsp)
  423. jne ..B2.40
  424. ..B2.38:
  425. cmpl $0, 32(%rsp)
  426. jne ..B2.40
  427. ..B2.39:
  428. movsd 40(%rsp), %xmm0
  429. movq $0x3ff921fb54442d18, %rax
  430. movq %rax, 16(%rsp)
  431. call asinh@PLT
  432. ..B2.83:
  433. xorps .L_2il0floatpacket.19(%rip), %xmm0
  434. movsd %xmm0, 24(%rsp)
  435. movsd 16(%rsp), %xmm0
  436. movhpd 24(%rsp), %xmm0
  437. jmp ..B2.54
  438. ..B2.40:
  439. movzwl 46(%rsp), %eax
  440. andl $32752, %eax
  441. shrl $4, %eax
  442. cmpl $2047, %eax
  443. je ..B2.72
  444. ..B2.89:
  445. cmpl $2047, %edx
  446. ..B2.41:
  447. je ..B2.62
  448. ..B2.42:
  449. cmpl $2047, %eax
  450. je ..B2.59
  451. ..B2.43:
  452. testl %eax, %eax
  453. jne ..B2.50
  454. ..B2.44:
  455. testl $1048575, 44(%rsp)
  456. jne ..B2.50
  457. ..B2.45:
  458. cmpl $0, 40(%rsp)
  459. jne ..B2.50
  460. ..B2.46:
  461. movsd 32(%rsp), %xmm0
  462. cmpl $1023, %edx
  463. jl ..B2.48
  464. ..B2.47:
  465. movb 39(%rsp), %r12b
  466. andb $-128, %r12b
  467. shrb $7, %r12b
  468. movzbl %r12b, %eax
  469. lea ones(%rip), %r12
  470. movsd (%r12,%rax,8), %xmm1
  471. mulsd %xmm1, %xmm0
  472. movsd %xmm1, (%rsp)
  473. call acosh@PLT
  474. ..B2.85:
  475. movsd %xmm0, 8(%rsp)
  476. movsd (%rsp), %xmm0
  477. call acos@PLT
  478. ..B2.84:
  479. movsd %xmm0, 16(%rsp)
  480. jmp ..B2.49
  481. ..B2.48:
  482. pxor %xmm1, %xmm1
  483. movsd %xmm1, 8(%rsp)
  484. call acos@PLT
  485. ..B2.86:
  486. movsd %xmm0, 16(%rsp)
  487. lea ones(%rip), %r12
  488. ..B2.49:
  489. movb 47(%rsp), %al
  490. andb $-128, %al
  491. shrb $7, %al
  492. movsd 8(%rsp), %xmm0
  493. xorb $1, %al
  494. movzbl %al, %edx
  495. mulsd (%r12,%rdx,8), %xmm0
  496. movsd %xmm0, 24(%rsp)
  497. movsd 16(%rsp), %xmm0
  498. movhpd 24(%rsp), %xmm0
  499. jmp ..B2.54
  500. ..B2.50:
  501. movsd 40(%rsp), %xmm0
  502. cmpl $2047, %eax
  503. movsd 32(%rsp), %xmm1
  504. je ..B2.52
  505. ..B2.51:
  506. movaps %xmm1, %xmm2
  507. mulsd %xmm1, %xmm2
  508. jmp ..B2.53
  509. ..B2.52:
  510. movaps %xmm0, %xmm2
  511. mulsd %xmm0, %xmm2
  512. ..B2.53:
  513. movb 47(%rsp), %r13b
  514. andb $-128, %r13b
  515. shrb $7, %r13b
  516. movb %r13b, %r12b
  517. xorb $1, %r12b
  518. movzbl %r12b, %eax
  519. lea ones(%rip), %r12
  520. mulsd (%r12,%rax,8), %xmm2
  521. movsd %xmm2, 24(%rsp)
  522. call atan2@PLT
  523. ..B2.87:
  524. movzbl %r13b, %eax
  525. mulsd (%r12,%rax,8), %xmm0
  526. movsd %xmm0, 16(%rsp)
  527. movhpd 24(%rsp), %xmm0
  528. ..B2.54:
  529. movaps %xmm0, %xmm1
  530. unpckhpd %xmm0, %xmm1
  531. addq $152, %rsp
  532. .cfi_def_cfa_offset 24
  533. .cfi_restore 13
  534. popq %r13
  535. .cfi_def_cfa_offset 16
  536. .cfi_restore 12
  537. popq %r12
  538. .cfi_def_cfa_offset 8
  539. ret
  540. .cfi_def_cfa_offset 176
  541. .cfi_offset 12, -16
  542. .cfi_offset 13, -24
  543. ..B2.55:
  544. testl $1048575, 44(%rsp)
  545. jne ..B2.7
  546. ..B2.56:
  547. cmpl $0, 40(%rsp)
  548. jne ..B2.7
  549. jmp ..B2.36
  550. ..B2.57:
  551. testl $1048575, 36(%rsp)
  552. jne ..B2.5
  553. ..B2.58:
  554. cmpl $0, 32(%rsp)
  555. jne ..B2.5
  556. jmp ..B2.36
  557. ..B2.59:
  558. testl $1048575, 44(%rsp)
  559. jne ..B2.61
  560. ..B2.60:
  561. cmpl $0, 40(%rsp)
  562. je ..B2.50
  563. ..B2.61:
  564. movsd 32(%rsp), %xmm1
  565. movsd 40(%rsp), %xmm0
  566. mulsd %xmm0, %xmm0
  567. mulsd %xmm1, %xmm1
  568. unpcklpd %xmm1, %xmm0
  569. movsd %xmm0, 16(%rsp)
  570. movhpd %xmm0, 24(%rsp)
  571. jmp ..B2.54
  572. ..B2.62:
  573. testl $1048575, 36(%rsp)
  574. jne ..B2.64
  575. ..B2.63:
  576. cmpl $0, 32(%rsp)
  577. je ..B2.66
  578. ..B2.64:
  579. cmpl $2047, %eax
  580. jge ..B2.66
  581. ..B2.65:
  582. movsd 32(%rsp), %xmm0
  583. mulsd %xmm0, %xmm0
  584. unpcklpd %xmm0, %xmm0
  585. movsd %xmm0, 16(%rsp)
  586. movhpd %xmm0, 24(%rsp)
  587. jmp ..B2.54
  588. ..B2.66:
  589. testl $1048575, 36(%rsp)
  590. jne ..B2.68
  591. ..B2.67:
  592. cmpl $0, 32(%rsp)
  593. je ..B2.42
  594. ..B2.68:
  595. cmpl $2047, %eax
  596. jne ..B2.43
  597. ..B2.69:
  598. testl $1048575, 44(%rsp)
  599. jne ..B2.71
  600. ..B2.70:
  601. cmpl $0, 40(%rsp)
  602. je ..B2.59
  603. ..B2.71:
  604. movsd 32(%rsp), %xmm0
  605. movsd 40(%rsp), %xmm1
  606. mulsd %xmm0, %xmm0
  607. mulsd %xmm1, %xmm1
  608. unpcklpd %xmm1, %xmm0
  609. movsd %xmm0, 16(%rsp)
  610. movhpd %xmm0, 24(%rsp)
  611. jmp ..B2.54
  612. ..B2.72:
  613. testl $1048575, 44(%rsp)
  614. jne ..B2.74
  615. ..B2.73:
  616. cmpl $0, 40(%rsp)
  617. je ..B2.88
  618. ..B2.74:
  619. cmpl $2047, %edx
  620. jge ..B2.41
  621. ..B2.75:
  622. movsd 40(%rsp), %xmm0
  623. mulsd %xmm0, %xmm0
  624. unpcklpd %xmm0, %xmm0
  625. movsd %xmm0, 16(%rsp)
  626. movhpd %xmm0, 24(%rsp)
  627. jmp ..B2.54
  628. ..B2.88:
  629. cmpl $2047, %edx
  630. je ..B2.62
  631. jmp ..B2.42
  632. .align 16,0x90
  633. .cfi_endproc
  634. .type cacos,@function
  635. .size cacos,.-cacos
  636. .data
  637. # -- End cacos
  638. .section .rodata, "a"
  639. .align 16
  640. .align 16
  641. .L_2il0floatpacket.14:
  642. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00
  643. .type .L_2il0floatpacket.14,@object
  644. .size .L_2il0floatpacket.14,16
  645. .align 16
  646. .L_2il0floatpacket.15:
  647. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xfe,0x3f,0x00,0x00,0x00,0x00,0x00,0x00
  648. .type .L_2il0floatpacket.15,@object
  649. .size .L_2il0floatpacket.15,16
  650. .align 16
  651. .L_2il0floatpacket.16:
  652. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00
  653. .type .L_2il0floatpacket.16,@object
  654. .size .L_2il0floatpacket.16,16
  655. .align 16
  656. .L_2il0floatpacket.17:
  657. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xbf,0x00,0x00,0x00,0x00,0x00,0x00
  658. .type .L_2il0floatpacket.17,@object
  659. .size .L_2il0floatpacket.17,16
  660. .align 16
  661. .L_2il0floatpacket.18:
  662. .long 0xffffffff,0x7fffffff,0x00000000,0x00000000
  663. .type .L_2il0floatpacket.18,@object
  664. .size .L_2il0floatpacket.18,16
  665. .align 16
  666. .L_2il0floatpacket.19:
  667. .long 0x00000000,0x80000000,0x00000000,0x00000000
  668. .type .L_2il0floatpacket.19,@object
  669. .size .L_2il0floatpacket.19,16
  670. .align 16
  671. BcrossA:
  672. .long 3621516424
  673. .long 2756080513
  674. .long 16382
  675. .long 0
  676. .type BcrossA,@object
  677. .size BcrossA,16
  678. .align 16
  679. AcrossA:
  680. .long 0
  681. .long 3221225472
  682. .long 16383
  683. .long 0
  684. .type AcrossA,@object
  685. .size AcrossA,16
  686. .align 16
  687. ZEROA:
  688. .long 0
  689. .long 0
  690. .type ZEROA,@object
  691. .size ZEROA,8
  692. .space 8, 0x00 # pad
  693. .align 16
  694. PIBY2HIA:
  695. .long 1413754136
  696. .long 1073291771
  697. .type PIBY2HIA,@object
  698. .size PIBY2HIA,8
  699. .space 8, 0x00 # pad
  700. .align 16
  701. PIBY2LOA:
  702. .long 856972295
  703. .long 1016178214
  704. .type PIBY2LOA,@object
  705. .size PIBY2LOA,8
  706. .space 8, 0x00 # pad
  707. .align 16
  708. _LDB_MIN_NORMAL:
  709. .word 0
  710. .word 0
  711. .word 0
  712. .word 32768
  713. .word 1
  714. .word 0
  715. .word 0
  716. .word 0
  717. .type _LDB_MIN_NORMAL,@object
  718. .size _LDB_MIN_NORMAL,16
  719. .align 8
  720. .L_2il0floatpacket.13:
  721. .long 0x54442d18,0x3ff921fb
  722. .type .L_2il0floatpacket.13,@object
  723. .size .L_2il0floatpacket.13,8
  724. .align 8
  725. ones:
  726. .long 0x00000000,0x3ff00000
  727. .long 0x00000000,0xbff00000
  728. .type ones,@object
  729. .size ones,16
  730. .align 4
  731. .L_2il0floatpacket.12:
  732. .long 0x00800000
  733. .type .L_2il0floatpacket.12,@object
  734. .size .L_2il0floatpacket.12,4
  735. .data
  736. .section .note.GNU-stack, ""
  737. // -- Begin DWARF2 SEGMENT .eh_frame
  738. .section .eh_frame,"a",@progbits
  739. .eh_frame_seg:
  740. .align 1
  741. # End