jnf.S 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156
  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 "jnf.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin jnf
  41. .text
  42. .align 16,0x90
  43. .globl jnf
  44. jnf:
  45. # parameter 1: %edi
  46. # parameter 2: %xmm0
  47. ..B1.1:
  48. .cfi_startproc
  49. ..___tag_value_jnf.1:
  50. ..L2:
  51. pushq %r14
  52. .cfi_def_cfa_offset 16
  53. .cfi_offset 14, -16
  54. pushq %r15
  55. .cfi_def_cfa_offset 24
  56. .cfi_offset 15, -24
  57. subq $72, %rsp
  58. .cfi_def_cfa_offset 96
  59. movl %edi, %r14d
  60. movd %xmm0, %r15d
  61. movss %xmm0, (%rsp)
  62. movl %r15d, %ecx
  63. andl $2147483647, %ecx
  64. cmpl $2139095040, %ecx
  65. jae ..B1.41
  66. ..B1.2:
  67. testl %r14d, %r14d
  68. je ..B1.40
  69. ..B1.3:
  70. xorl %r14d, %r15d
  71. shrl $31, %r15d
  72. andl %r14d, %r15d
  73. testl %ecx, %ecx
  74. je ..B1.39
  75. ..B1.4:
  76. movl %r14d, %eax
  77. cltd
  78. xorl %edx, %r14d
  79. subl %edx, %r14d
  80. andps .L_2il0floatpacket.1(%rip), %xmm0
  81. cmpl $1, %r14d
  82. movss %xmm0, (%rsp)
  83. je ..B1.58
  84. ..B1.5:
  85. movl %r14d, %esi
  86. sarl $3, %esi
  87. cmpl $320, %esi
  88. jg ..B1.7
  89. ..B1.6:
  90. movslq %esi, %rsi
  91. lea function_zeros(%rip), %rcx
  92. movss (%rcx,%rsi,4), %xmm2
  93. jmp ..B1.8
  94. ..B1.7:
  95. pxor %xmm2, %xmm2
  96. lea -320(%rsi), %ecx
  97. lea -2560(,%rsi,8), %esi
  98. subl %ecx, %esi
  99. cvtsi2ss %esi, %xmm2
  100. addss .L_2il0floatpacket.0(%rip), %xmm2
  101. ..B1.8:
  102. comiss %xmm0, %xmm2
  103. ja ..B1.38
  104. ..B1.9:
  105. pxor %xmm1, %xmm1
  106. pxor %xmm3, %xmm3
  107. cvtss2sd %xmm0, %xmm1
  108. cvtsi2sd %r14d, %xmm3
  109. cmpl $170, %r14d
  110. jg ..B1.22
  111. ..B1.10:
  112. lea _val_0_6(%rip), %rcx
  113. movsd (%rcx), %xmm2
  114. mulsd %xmm3, %xmm2
  115. comisd %xmm1, %xmm2
  116. jb ..B1.22
  117. ..B1.11:
  118. lea _val_2_0(%rip), %rcx
  119. testl %r14d, %r14d
  120. movsd .L_2il0floatpacket.2(%rip), %xmm4
  121. movaps %xmm4, %xmm3
  122. movaps %xmm4, %xmm0
  123. movaps %xmm4, %xmm2
  124. divsd (%rcx), %xmm1
  125. movl $0, %ecx
  126. jle ..B1.15
  127. ..B1.13:
  128. incl %ecx
  129. mulsd %xmm1, %xmm0
  130. cmpl %r14d, %ecx
  131. jb ..B1.13
  132. ..B1.14:
  133. testl %r14d, %r14d
  134. ..B1.15:
  135. movl $0, %ecx
  136. jle ..B1.19
  137. ..B1.17:
  138. incl %ecx
  139. mulsd %xmm2, %xmm3
  140. addsd %xmm4, %xmm2
  141. cmpl %r14d, %ecx
  142. jb ..B1.17
  143. ..B1.19:
  144. mulsd %xmm1, %xmm1
  145. lea _TWO_19H(%rip), %rsi
  146. movsd %xmm4, 16(%rsp)
  147. xorl %ecx, %ecx
  148. movsd %xmm4, 56(%rsp)
  149. xorps .L_2il0floatpacket.4(%rip), %xmm1
  150. movsd (%rsi), %xmm2
  151. .align 16,0x90
  152. ..B1.20:
  153. incl %ecx
  154. incl %r14d
  155. movl %ecx, %esi
  156. movaps %xmm4, %xmm8
  157. imull %r14d, %esi
  158. pxor %xmm4, %xmm4
  159. movsd 16(%rsp), %xmm5
  160. movaps %xmm2, %xmm7
  161. movsd 56(%rsp), %xmm6
  162. mulsd %xmm1, %xmm5
  163. cvtsi2sd %esi, %xmm4
  164. divsd %xmm4, %xmm5
  165. movsd %xmm5, 16(%rsp)
  166. addsd %xmm5, %xmm6
  167. mulsd %xmm6, %xmm7
  168. movsd %xmm6, 56(%rsp)
  169. addsd %xmm7, %xmm6
  170. movsd %xmm6, 64(%rsp)
  171. movsd 64(%rsp), %xmm4
  172. subsd %xmm7, %xmm4
  173. ucomisd %xmm4, %xmm8
  174. jne ..B1.20
  175. jp ..B1.20
  176. ..B1.21:
  177. mulsd 56(%rsp), %xmm0
  178. divsd %xmm3, %xmm0
  179. jmp ..B1.34
  180. ..B1.22:
  181. comisd %xmm1, %xmm3
  182. ja ..B1.35
  183. ..B1.23:
  184. pxor %xmm2, %xmm2
  185. lea (%r14,%r14,4), %ecx
  186. lea 1000(,%rcx,4), %esi
  187. cvtsi2sd %esi, %xmm2
  188. comisd %xmm1, %xmm2
  189. ja ..B1.47
  190. ..B1.24:
  191. lea _val_4_0(%rip), %rcx
  192. movaps %xmm3, %xmm10
  193. lea _val_8_0(%rip), %rdi
  194. lea _val_2_0(%rip), %r8
  195. movsd .L_2il0floatpacket.2(%rip), %xmm12
  196. lea _val_3_0(%rip), %r9
  197. lea _val_5_0(%rip), %r10
  198. movl $-1, %esi
  199. movsd (%rcx), %xmm11
  200. movaps %xmm12, %xmm2
  201. movsd (%rdi), %xmm8
  202. movaps %xmm12, %xmm9
  203. movsd (%r8), %xmm7
  204. xorb %cl, %cl
  205. mulsd %xmm11, %xmm10
  206. movaps %xmm7, %xmm6
  207. mulsd %xmm1, %xmm8
  208. mulsd %xmm3, %xmm10
  209. movaps %xmm10, %xmm13
  210. movsd (%r9), %xmm5
  211. subsd %xmm12, %xmm13
  212. divsd %xmm8, %xmm13
  213. movsd %xmm13, 16(%rsp)
  214. movaps %xmm5, %xmm4
  215. movsd (%r10), %xmm3
  216. ..B1.25:
  217. movaps %xmm4, %xmm14
  218. movaps %xmm6, %xmm15
  219. mulsd %xmm4, %xmm14
  220. testl %esi, %esi
  221. mulsd %xmm8, %xmm15
  222. movsd %xmm2, 56(%rsp)
  223. movaps %xmm10, %xmm2
  224. subsd %xmm14, %xmm2
  225. movaps %xmm3, %xmm14
  226. mulsd %xmm3, %xmm14
  227. divsd %xmm15, %xmm2
  228. movaps %xmm10, %xmm15
  229. mulsd 16(%rsp), %xmm2
  230. subsd %xmm14, %xmm15
  231. movaps %xmm8, %xmm14
  232. mulsd %xmm5, %xmm14
  233. divsd %xmm14, %xmm15
  234. mulsd %xmm2, %xmm15
  235. jle ..B1.46
  236. ..B1.26:
  237. addsd %xmm2, %xmm12
  238. addsd %xmm15, %xmm13
  239. ..B1.27:
  240. movsd %xmm15, 16(%rsp)
  241. addsd %xmm7, %xmm6
  242. divsd %xmm12, %xmm15
  243. andps .L_2il0floatpacket.3(%rip), %xmm15
  244. addsd %xmm7, %xmm5
  245. addsd %xmm11, %xmm4
  246. addsd %xmm11, %xmm3
  247. comisd %xmm15, %xmm9
  248. jbe ..B1.29
  249. ..B1.28:
  250. movaps %xmm15, %xmm9
  251. movb $1, %cl
  252. jmp ..B1.30
  253. ..B1.29:
  254. testb %cl, %cl
  255. jne ..B1.32
  256. ..B1.30:
  257. lea _TWO_19H(%rip), %rdi
  258. movaps %xmm12, %xmm2
  259. negl %esi
  260. movsd (%rdi), %xmm14
  261. mulsd %xmm12, %xmm14
  262. addsd %xmm14, %xmm2
  263. movsd %xmm2, 64(%rsp)
  264. movsd 64(%rsp), %xmm2
  265. subsd %xmm14, %xmm2
  266. ucomisd 56(%rsp), %xmm2
  267. jne ..B1.25
  268. jp ..B1.25
  269. ..B1.32:
  270. addl %r14d, %r14d
  271. lea 56(%rsp), %rdi
  272. negl %r14d
  273. lea 16(%rsp), %rsi
  274. decl %r14d
  275. movaps %xmm1, %xmm0
  276. movl %r14d, %edx
  277. movsd %xmm13, (%rsp)
  278. movsd %xmm12, -8(%rsi)
  279. movsd %xmm1, 32(%rsi)
  280. ..___tag_value_jnf.8:
  281. call __libm_sincos_k32@PLT
  282. ..___tag_value_jnf.9:
  283. ..B1.33:
  284. lea _tonpi(%rip), %rax
  285. movsd 48(%rsp), %xmm1
  286. movsd 8(%rsp), %xmm12
  287. movsd (%rsp), %xmm13
  288. movsd (%rax), %xmm0
  289. divsd %xmm1, %xmm0
  290. sqrtsd %xmm0, %xmm0
  291. mulsd 16(%rsp), %xmm12
  292. mulsd 56(%rsp), %xmm13
  293. subsd %xmm13, %xmm12
  294. mulsd %xmm12, %xmm0
  295. ..B1.34:
  296. movaps %xmm0, %xmm1
  297. testl %r15d, %r15d
  298. xorps .L_2il0floatpacket.4(%rip), %xmm1
  299. jne ..L10
  300. movaps %xmm0, %xmm1
  301. ..L10:
  302. cvtsd2ss %xmm1, %xmm1
  303. movaps %xmm1, %xmm0
  304. addq $72, %rsp
  305. .cfi_def_cfa_offset 24
  306. .cfi_restore 15
  307. popq %r15
  308. .cfi_def_cfa_offset 16
  309. .cfi_restore 14
  310. popq %r14
  311. .cfi_def_cfa_offset 8
  312. ret
  313. .cfi_def_cfa_offset 96
  314. .cfi_offset 14, -16
  315. .cfi_offset 15, -24
  316. ..B1.35:
  317. pxor %xmm8, %xmm8
  318. lea (%r14,%r14), %esi
  319. cvtsi2sd %esi, %xmm8
  320. movaps %xmm1, %xmm7
  321. xorl %ecx, %ecx
  322. mulsd %xmm1, %xmm7
  323. lea _val_2_0(%rip), %rdi
  324. lea _TWO_19H(%rip), %r8
  325. pxor %xmm11, %xmm11
  326. movsd .L_2il0floatpacket.2(%rip), %xmm3
  327. movaps %xmm1, %xmm9
  328. movq %rcx, 56(%rsp)
  329. movaps %xmm3, %xmm10
  330. xorps .L_2il0floatpacket.4(%rip), %xmm7
  331. movaps %xmm8, %xmm6
  332. movsd %xmm3, 16(%rsp)
  333. movsd (%rdi), %xmm4
  334. movsd (%r8), %xmm5
  335. jmp ..B1.36
  336. ..B1.37:
  337. movsd %xmm12, 56(%rsp)
  338. movsd %xmm12, 16(%rsp)
  339. ..B1.36:
  340. movaps %xmm9, %xmm2
  341. movaps %xmm8, %xmm12
  342. mulsd %xmm7, %xmm11
  343. addsd %xmm4, %xmm6
  344. mulsd %xmm7, %xmm10
  345. mulsd %xmm6, %xmm2
  346. mulsd %xmm6, %xmm12
  347. addsd %xmm11, %xmm2
  348. addsd %xmm10, %xmm12
  349. movaps %xmm9, %xmm11
  350. movaps %xmm2, %xmm9
  351. divsd %xmm12, %xmm2
  352. movaps %xmm5, %xmm14
  353. movaps %xmm8, %xmm10
  354. mulsd %xmm2, %xmm14
  355. movaps %xmm12, %xmm8
  356. movaps %xmm14, %xmm13
  357. movsd 16(%rsp), %xmm15
  358. addsd %xmm2, %xmm13
  359. movsd %xmm13, 64(%rsp)
  360. movsd 64(%rsp), %xmm12
  361. subsd %xmm14, %xmm12
  362. ucomisd %xmm12, %xmm15
  363. jne ..B1.37
  364. jp ..B1.37
  365. jmp ..B1.55
  366. ..B1.38:
  367. pxor %xmm0, %xmm0
  368. addq $72, %rsp
  369. .cfi_def_cfa_offset 24
  370. .cfi_restore 15
  371. popq %r15
  372. .cfi_def_cfa_offset 16
  373. .cfi_restore 14
  374. popq %r14
  375. .cfi_def_cfa_offset 8
  376. ret
  377. .cfi_def_cfa_offset 96
  378. .cfi_offset 14, -16
  379. .cfi_offset 15, -24
  380. ..B1.39:
  381. lea _zeros(%rip), %rax
  382. movss (%rax,%r15,4), %xmm0
  383. addq $72, %rsp
  384. .cfi_def_cfa_offset 24
  385. .cfi_restore 15
  386. popq %r15
  387. .cfi_def_cfa_offset 16
  388. .cfi_restore 14
  389. popq %r14
  390. .cfi_def_cfa_offset 8
  391. ret
  392. .cfi_def_cfa_offset 96
  393. .cfi_offset 14, -16
  394. .cfi_offset 15, -24
  395. ..B1.40:
  396. movss (%rsp), %xmm0
  397. call j0f@PLT
  398. ..B1.61:
  399. addq $72, %rsp
  400. .cfi_def_cfa_offset 24
  401. .cfi_restore 15
  402. popq %r15
  403. .cfi_def_cfa_offset 16
  404. .cfi_restore 14
  405. popq %r14
  406. .cfi_def_cfa_offset 8
  407. ret
  408. .cfi_def_cfa_offset 96
  409. .cfi_offset 14, -16
  410. .cfi_offset 15, -24
  411. ..B1.41:
  412. ja ..B1.43
  413. ..B1.42:
  414. lea _zeros(%rip), %rax
  415. xorl %r14d, %r15d
  416. shrl $31, %r15d
  417. andl %r14d, %r15d
  418. movss (%rax,%r15,4), %xmm0
  419. addq $72, %rsp
  420. .cfi_def_cfa_offset 24
  421. .cfi_restore 15
  422. popq %r15
  423. .cfi_def_cfa_offset 16
  424. .cfi_restore 14
  425. popq %r14
  426. .cfi_def_cfa_offset 8
  427. ret
  428. .cfi_def_cfa_offset 96
  429. .cfi_offset 14, -16
  430. .cfi_offset 15, -24
  431. ..B1.43:
  432. movss (%rsp), %xmm0
  433. ..B1.44:
  434. addq $72, %rsp
  435. .cfi_def_cfa_offset 24
  436. .cfi_restore 15
  437. popq %r15
  438. .cfi_def_cfa_offset 16
  439. .cfi_restore 14
  440. popq %r14
  441. .cfi_def_cfa_offset 8
  442. ret
  443. .cfi_def_cfa_offset 96
  444. .cfi_offset 14, -16
  445. .cfi_offset 15, -24
  446. ..B1.46:
  447. subsd %xmm2, %xmm12
  448. subsd %xmm15, %xmm13
  449. jmp ..B1.27
  450. ..B1.47:
  451. lea _val_17_0(%rip), %rcx
  452. movsd (%rcx), %xmm2
  453. comisd %xmm1, %xmm2
  454. jbe ..B1.49
  455. ..B1.48:
  456. movaps %xmm1, %xmm0
  457. movsd %xmm1, 48(%rsp)
  458. call j0@PLT
  459. ..B1.63:
  460. movsd 48(%rsp), %xmm1
  461. movaps %xmm0, %xmm2
  462. movaps %xmm1, %xmm0
  463. movsd %xmm2, (%rsp)
  464. call j1@PLT
  465. ..B1.62:
  466. movsd 48(%rsp), %xmm1
  467. movsd (%rsp), %xmm2
  468. jmp ..B1.51
  469. ..B1.49:
  470. movsd .L_2il0floatpacket.2(%rip), %xmm2
  471. lea _val_16_0(%rip), %rcx
  472. divsd %xmm1, %xmm2
  473. movsd (%rcx), %xmm8
  474. movaps %xmm1, %xmm0
  475. mulsd %xmm2, %xmm8
  476. lea (%rsp), %rdi
  477. movaps %xmm8, %xmm6
  478. lea 8(%rsp), %rsi
  479. mulsd %xmm8, %xmm6
  480. movl $-1, %edx
  481. movaps %xmm6, %xmm7
  482. mulsd %xmm6, %xmm7
  483. movq $0, 48(%rsi)
  484. movsd %xmm2, 8(%rsi)
  485. movsd %xmm6, 16(%rsi)
  486. movsd %xmm7, 24(%rsi)
  487. movsd %xmm8, 32(%rsi)
  488. movsd %xmm1, 40(%rsi)
  489. ..___tag_value_jnf.59:
  490. call __libm_sincos_k32@PLT
  491. ..___tag_value_jnf.60:
  492. ..B1.50:
  493. lea 40+_PP1(%rip), %r11
  494. lea 40+_PP0(%rip), %rcx
  495. movsd 32(%rsp), %xmm7
  496. lea 24+_PP0(%rip), %rsi
  497. lea 8+_PP0(%rip), %rdi
  498. lea 32+_PP0(%rip), %r8
  499. movsd 24(%rsp), %xmm6
  500. lea 16+_PP0(%rip), %r9
  501. movsd (%r11), %xmm10
  502. lea _PP0(%rip), %r10
  503. movsd (%rcx), %xmm2
  504. lea 24+_PP1(%rip), %rcx
  505. movsd (%r8), %xmm3
  506. movsd 40(%rsp), %xmm8
  507. mulsd %xmm7, %xmm10
  508. mulsd %xmm7, %xmm2
  509. mulsd %xmm7, %xmm3
  510. addsd (%rcx), %xmm10
  511. addsd (%rsi), %xmm2
  512. addsd (%r9), %xmm3
  513. mulsd %xmm7, %xmm10
  514. mulsd %xmm7, %xmm2
  515. mulsd %xmm7, %xmm3
  516. addsd (%rdi), %xmm2
  517. addsd (%r10), %xmm3
  518. mulsd %xmm6, %xmm2
  519. lea 8+_PP1(%rip), %rcx
  520. addsd %xmm3, %xmm2
  521. addsd (%rcx), %xmm10
  522. lea 32+_PP1(%rip), %rcx
  523. mulsd %xmm6, %xmm10
  524. movsd (%rcx), %xmm4
  525. lea 16+_PP1(%rip), %rcx
  526. mulsd %xmm7, %xmm4
  527. movsd 48(%rsp), %xmm1
  528. addsd (%rcx), %xmm4
  529. lea _PP1(%rip), %rcx
  530. mulsd %xmm7, %xmm4
  531. addsd (%rcx), %xmm4
  532. lea 40+_QP0(%rip), %rcx
  533. movsd (%rcx), %xmm9
  534. lea 24+_QP0(%rip), %rcx
  535. mulsd %xmm7, %xmm9
  536. addsd %xmm4, %xmm10
  537. addsd (%rcx), %xmm9
  538. lea 8+_QP0(%rip), %rcx
  539. mulsd %xmm7, %xmm9
  540. addsd (%rcx), %xmm9
  541. lea 32+_QP0(%rip), %rcx
  542. movsd (%rcx), %xmm5
  543. lea 16+_QP0(%rip), %rcx
  544. mulsd %xmm7, %xmm5
  545. mulsd %xmm6, %xmm9
  546. addsd (%rcx), %xmm5
  547. mulsd %xmm8, %xmm9
  548. mulsd %xmm7, %xmm5
  549. lea _QP0(%rip), %rcx
  550. addsd (%rcx), %xmm5
  551. lea 40+_QP1(%rip), %rcx
  552. movsd (%rcx), %xmm11
  553. lea 24+_QP1(%rip), %rcx
  554. mulsd %xmm7, %xmm11
  555. mulsd %xmm8, %xmm5
  556. addsd (%rcx), %xmm11
  557. addsd %xmm5, %xmm9
  558. mulsd %xmm7, %xmm11
  559. lea 8+_QP1(%rip), %rcx
  560. addsd (%rcx), %xmm11
  561. lea 32+_QP1(%rip), %rcx
  562. mulsd %xmm6, %xmm11
  563. movsd (%rcx), %xmm6
  564. lea 16+_QP1(%rip), %rcx
  565. mulsd %xmm7, %xmm6
  566. mulsd %xmm8, %xmm11
  567. addsd (%rcx), %xmm6
  568. mulsd %xmm7, %xmm6
  569. lea _QP1(%rip), %rcx
  570. movsd 8(%rsp), %xmm7
  571. mulsd %xmm7, %xmm2
  572. addsd (%rcx), %xmm6
  573. lea _tonpi(%rip), %rcx
  574. mulsd %xmm8, %xmm6
  575. movsd (%rcx), %xmm0
  576. addsd %xmm6, %xmm11
  577. mulsd 16(%rsp), %xmm0
  578. mulsd %xmm11, %xmm7
  579. sqrtsd %xmm0, %xmm0
  580. movsd (%rsp), %xmm8
  581. mulsd %xmm8, %xmm9
  582. mulsd %xmm10, %xmm8
  583. subsd %xmm9, %xmm2
  584. addsd %xmm7, %xmm8
  585. mulsd %xmm0, %xmm2
  586. mulsd %xmm8, %xmm0
  587. ..B1.51:
  588. lea _val_2_0(%rip), %rcx
  589. cmpl $1, %r14d
  590. movsd (%rcx), %xmm3
  591. movl $0, %ecx
  592. divsd %xmm1, %xmm3
  593. jle ..B1.34
  594. ..B1.52:
  595. decl %r14d
  596. ..B1.53:
  597. incl %ecx
  598. pxor %xmm1, %xmm1
  599. cvtsi2sd %ecx, %xmm1
  600. mulsd %xmm3, %xmm1
  601. movaps %xmm0, %xmm4
  602. mulsd %xmm0, %xmm1
  603. cmpl %r14d, %ecx
  604. movaps %xmm1, %xmm0
  605. subsd %xmm2, %xmm0
  606. movaps %xmm4, %xmm2
  607. jb ..B1.53
  608. jmp ..B1.34
  609. ..B1.55:
  610. movaps %xmm3, %xmm6
  611. lea -2(%r14,%r14), %ecx
  612. divsd %xmm2, %xmm6
  613. pxor %xmm5, %xmm5
  614. movaps %xmm3, %xmm2
  615. cvtsi2sd %ecx, %xmm5
  616. divsd %xmm1, %xmm2
  617. xorl %ecx, %ecx
  618. decl %r14d
  619. ..B1.56:
  620. movaps %xmm6, %xmm7
  621. incl %ecx
  622. mulsd %xmm5, %xmm7
  623. subsd %xmm4, %xmm5
  624. mulsd %xmm1, %xmm3
  625. cmpl %r14d, %ecx
  626. subsd %xmm3, %xmm7
  627. mulsd %xmm2, %xmm7
  628. movaps %xmm6, %xmm3
  629. movaps %xmm7, %xmm6
  630. jl ..B1.56
  631. ..B1.57:
  632. movaps %xmm1, %xmm0
  633. movsd %xmm7, (%rsp)
  634. call j0@PLT
  635. ..B1.64:
  636. divsd (%rsp), %xmm0
  637. jmp ..B1.34
  638. ..B1.58:
  639. call j1f@PLT
  640. ..B1.65:
  641. movaps %xmm0, %xmm1
  642. testl %r15d, %r15d
  643. xorps .L_2il0floatpacket.5(%rip), %xmm1
  644. je ..L61
  645. movaps %xmm1, %xmm0
  646. ..L61:
  647. addq $72, %rsp
  648. .cfi_def_cfa_offset 24
  649. .cfi_restore 15
  650. popq %r15
  651. .cfi_def_cfa_offset 16
  652. .cfi_restore 14
  653. popq %r14
  654. .cfi_def_cfa_offset 8
  655. ret
  656. .align 16,0x90
  657. .cfi_endproc
  658. .type jnf,@function
  659. .size jnf,.-jnf
  660. .data
  661. # -- End jnf
  662. .section .rodata, "a"
  663. .align 16
  664. .align 16
  665. .L_2il0floatpacket.1:
  666. .long 0x7fffffff,0x00000000,0x00000000,0x00000000
  667. .type .L_2il0floatpacket.1,@object
  668. .size .L_2il0floatpacket.1,16
  669. .align 16
  670. .L_2il0floatpacket.3:
  671. .long 0xffffffff,0x7fffffff,0x00000000,0x00000000
  672. .type .L_2il0floatpacket.3,@object
  673. .size .L_2il0floatpacket.3,16
  674. .align 16
  675. .L_2il0floatpacket.4:
  676. .long 0x00000000,0x80000000,0x00000000,0x00000000
  677. .type .L_2il0floatpacket.4,@object
  678. .size .L_2il0floatpacket.4,16
  679. .align 16
  680. .L_2il0floatpacket.5:
  681. .long 0x80000000,0x00000000,0x00000000,0x00000000
  682. .type .L_2il0floatpacket.5,@object
  683. .size .L_2il0floatpacket.5,16
  684. .align 8
  685. .L_2il0floatpacket.2:
  686. .long 0x00000000,0x3ff00000
  687. .type .L_2il0floatpacket.2,@object
  688. .size .L_2il0floatpacket.2,8
  689. .align 4
  690. .L_2il0floatpacket.0:
  691. .long 0x450ea000
  692. .type .L_2il0floatpacket.0,@object
  693. .size .L_2il0floatpacket.0,4
  694. .align 4
  695. function_zeros:
  696. .long 0x00000000
  697. .long 0x00000000
  698. .long 0x00000000
  699. .long 0x00000000
  700. .long 0x00000000
  701. .long 0x3f000000
  702. .long 0x3fcccccd
  703. .long 0x40600000
  704. .long 0x40c33333
  705. .long 0x4111999a
  706. .long 0x414b3333
  707. .long 0x4184cccd
  708. .long 0x41a66666
  709. .long 0x41ca6666
  710. .long 0x41f0cccd
  711. .long 0x420c0000
  712. .long 0x42206666
  713. .long 0x4235999a
  714. .long 0x424b3333
  715. .long 0x42613333
  716. .long 0x42780000
  717. .long 0x42876666
  718. .long 0x42930000
  719. .long 0x429ecccd
  720. .long 0x42aacccd
  721. .long 0x42b6cccd
  722. .long 0x42c30000
  723. .long 0x42cf6666
  724. .long 0x42dbcccd
  725. .long 0x42e86666
  726. .long 0x42f50000
  727. .long 0x4300e666
  728. .long 0x43074ccd
  729. .long 0x430db333
  730. .long 0x43143333
  731. .long 0x431ab333
  732. .long 0x43214ccd
  733. .long 0x4327e666
  734. .long 0x432e8000
  735. .long 0x4335199a
  736. .long 0x433bcccd
  737. .long 0x43428000
  738. .long 0x43493333
  739. .long 0x43500000
  740. .long 0x43560000
  741. .long 0x435d0000
  742. .long 0x43640000
  743. .long 0x436b0000
  744. .long 0x43720000
  745. .long 0x43780000
  746. .long 0x437f0000
  747. .long 0x43830000
  748. .long 0x43868000
  749. .long 0x438a0000
  750. .long 0x438d8000
  751. .long 0x43910000
  752. .long 0x43948000
  753. .long 0x43980000
  754. .long 0x439b8000
  755. .long 0x439f0000
  756. .long 0x43a28000
  757. .long 0x43a60000
  758. .long 0x43a98000
  759. .long 0x43ad0000
  760. .long 0x43b08000
  761. .long 0x43b40000
  762. .long 0x43b78000
  763. .long 0x43bb0000
  764. .long 0x43bf0000
  765. .long 0x43c28000
  766. .long 0x43c60000
  767. .long 0x43c98000
  768. .long 0x43cd0000
  769. .long 0x43d08000
  770. .long 0x43d40000
  771. .long 0x43d80000
  772. .long 0x43db8000
  773. .long 0x43df0000
  774. .long 0x43e28000
  775. .long 0x43e60000
  776. .long 0x43ea0000
  777. .long 0x43ed8000
  778. .long 0x43f10000
  779. .long 0x43f48000
  780. .long 0x43f88000
  781. .long 0x43fc0000
  782. .long 0x43ff8000
  783. .long 0x44018000
  784. .long 0x44038000
  785. .long 0x44054000
  786. .long 0x44070000
  787. .long 0x44090000
  788. .long 0x440ac000
  789. .long 0x440c8000
  790. .long 0x440e4000
  791. .long 0x44104000
  792. .long 0x44120000
  793. .long 0x4413c000
  794. .long 0x4415c000
  795. .long 0x44178000
  796. .long 0x44194000
  797. .long 0x441b4000
  798. .long 0x441d0000
  799. .long 0x441ec000
  800. .long 0x4420c000
  801. .long 0x44228000
  802. .long 0x44244000
  803. .long 0x44264000
  804. .long 0x44280000
  805. .long 0x442a0000
  806. .long 0x442bc000
  807. .long 0x442d8000
  808. .long 0x442f8000
  809. .long 0x44314000
  810. .long 0x44334000
  811. .long 0x44350000
  812. .long 0x4436c000
  813. .long 0x4438c000
  814. .long 0x443a8000
  815. .long 0x443c8000
  816. .long 0x443e4000
  817. .long 0x44400000
  818. .long 0x44420000
  819. .long 0x4443c000
  820. .long 0x4445c000
  821. .long 0x44478000
  822. .long 0x44498000
  823. .long 0x444b4000
  824. .long 0x444d0000
  825. .long 0x444f0000
  826. .long 0x4450c000
  827. .long 0x4452c000
  828. .long 0x44548000
  829. .long 0x44568000
  830. .long 0x44584000
  831. .long 0x445a4000
  832. .long 0x445c0000
  833. .long 0x445e0000
  834. .long 0x445fc000
  835. .long 0x4461c000
  836. .long 0x44638000
  837. .long 0x44658000
  838. .long 0x44674000
  839. .long 0x44694000
  840. .long 0x446b0000
  841. .long 0x446cc000
  842. .long 0x446ec000
  843. .long 0x44708000
  844. .long 0x44728000
  845. .long 0x44744000
  846. .long 0x44764000
  847. .long 0x44784000
  848. .long 0x447a0000
  849. .long 0x447c0000
  850. .long 0x447dc000
  851. .long 0x447fc000
  852. .long 0x4480c000
  853. .long 0x4481c000
  854. .long 0x4482a000
  855. .long 0x4483a000
  856. .long 0x44848000
  857. .long 0x44858000
  858. .long 0x44866000
  859. .long 0x44876000
  860. .long 0x44884000
  861. .long 0x44894000
  862. .long 0x448a2000
  863. .long 0x448b2000
  864. .long 0x448c0000
  865. .long 0x448d0000
  866. .long 0x448e0000
  867. .long 0x448ee000
  868. .long 0x448fe000
  869. .long 0x4490c000
  870. .long 0x4491c000
  871. .long 0x4492a000
  872. .long 0x4493a000
  873. .long 0x44948000
  874. .long 0x44958000
  875. .long 0x44968000
  876. .long 0x44976000
  877. .long 0x44986000
  878. .long 0x44994000
  879. .long 0x449a4000
  880. .long 0x449b2000
  881. .long 0x449c2000
  882. .long 0x449d2000
  883. .long 0x449e0000
  884. .long 0x449f0000
  885. .long 0x449fe000
  886. .long 0x44a0e000
  887. .long 0x44a1c000
  888. .long 0x44a2c000
  889. .long 0x44a3c000
  890. .long 0x44a4a000
  891. .long 0x44a5a000
  892. .long 0x44a68000
  893. .long 0x44a78000
  894. .long 0x44a88000
  895. .long 0x44a96000
  896. .long 0x44aa6000
  897. .long 0x44ab4000
  898. .long 0x44ac4000
  899. .long 0x44ad4000
  900. .long 0x44ae2000
  901. .long 0x44af2000
  902. .long 0x44b00000
  903. .long 0x44b10000
  904. .long 0x44b20000
  905. .long 0x44b2e000
  906. .long 0x44b3e000
  907. .long 0x44b4c000
  908. .long 0x44b5c000
  909. .long 0x44b6c000
  910. .long 0x44b7a000
  911. .long 0x44b8a000
  912. .long 0x44b9a000
  913. .long 0x44ba8000
  914. .long 0x44bb8000
  915. .long 0x44bc6000
  916. .long 0x44bd6000
  917. .long 0x44be6000
  918. .long 0x44bf4000
  919. .long 0x44c04000
  920. .long 0x44c14000
  921. .long 0x44c22000
  922. .long 0x44c32000
  923. .long 0x44c40000
  924. .long 0x44c50000
  925. .long 0x44c60000
  926. .long 0x44c6e000
  927. .long 0x44c7e000
  928. .long 0x44c8e000
  929. .long 0x44c9c000
  930. .long 0x44cac000
  931. .long 0x44cba000
  932. .long 0x44cca000
  933. .long 0x44cda000
  934. .long 0x44ce8000
  935. .long 0x44cf8000
  936. .long 0x44d08000
  937. .long 0x44d16000
  938. .long 0x44d26000
  939. .long 0x44d36000
  940. .long 0x44d44000
  941. .long 0x44d54000
  942. .long 0x44d64000
  943. .long 0x44d72000
  944. .long 0x44d82000
  945. .long 0x44d92000
  946. .long 0x44da0000
  947. .long 0x44db0000
  948. .long 0x44dc0000
  949. .long 0x44dce000
  950. .long 0x44dde000
  951. .long 0x44dec000
  952. .long 0x44dfc000
  953. .long 0x44e0c000
  954. .long 0x44e1a000
  955. .long 0x44e2a000
  956. .long 0x44e3a000
  957. .long 0x44e48000
  958. .long 0x44e58000
  959. .long 0x44e68000
  960. .long 0x44e76000
  961. .long 0x44e86000
  962. .long 0x44e96000
  963. .long 0x44ea4000
  964. .long 0x44eb4000
  965. .long 0x44ec4000
  966. .long 0x44ed4000
  967. .long 0x44ee2000
  968. .long 0x44ef2000
  969. .long 0x44f02000
  970. .long 0x44f10000
  971. .long 0x44f20000
  972. .long 0x44f30000
  973. .long 0x44f3e000
  974. .long 0x44f4e000
  975. .long 0x44f5e000
  976. .long 0x44f6c000
  977. .long 0x44f7c000
  978. .long 0x44f8c000
  979. .long 0x44f9a000
  980. .long 0x44faa000
  981. .long 0x44fba000
  982. .long 0x44fc8000
  983. .long 0x44fd8000
  984. .long 0x44fe8000
  985. .long 0x44ff6000
  986. .long 0x45003000
  987. .long 0x4500b000
  988. .long 0x45013000
  989. .long 0x4501a000
  990. .long 0x45022000
  991. .long 0x4502a000
  992. .long 0x45031000
  993. .long 0x45039000
  994. .long 0x45041000
  995. .long 0x45048000
  996. .long 0x45050000
  997. .long 0x45058000
  998. .long 0x4505f000
  999. .long 0x45067000
  1000. .long 0x4506f000
  1001. .long 0x45077000
  1002. .long 0x4507e000
  1003. .long 0x45086000
  1004. .long 0x4508e000
  1005. .long 0x45095000
  1006. .long 0x4509d000
  1007. .long 0x450a5000
  1008. .long 0x450ac000
  1009. .long 0x450b4000
  1010. .long 0x450bc000
  1011. .long 0x450c4000
  1012. .long 0x450cb000
  1013. .long 0x450d3000
  1014. .long 0x450db000
  1015. .long 0x450e2000
  1016. .long 0x450ea000
  1017. .type function_zeros,@object
  1018. .size function_zeros,1284
  1019. .align 4
  1020. _val_0_6:
  1021. .long 858993459
  1022. .long 1071854387
  1023. .type _val_0_6,@object
  1024. .size _val_0_6,8
  1025. .align 4
  1026. _val_2_0:
  1027. .long 0
  1028. .long 1073741824
  1029. .type _val_2_0,@object
  1030. .size _val_2_0,8
  1031. .align 4
  1032. _TWO_19H:
  1033. .long 0
  1034. .long 1093140480
  1035. .type _TWO_19H,@object
  1036. .size _TWO_19H,8
  1037. .align 4
  1038. _val_4_0:
  1039. .long 0
  1040. .long 1074790400
  1041. .type _val_4_0,@object
  1042. .size _val_4_0,8
  1043. .align 4
  1044. _val_8_0:
  1045. .long 0
  1046. .long 1075838976
  1047. .type _val_8_0,@object
  1048. .size _val_8_0,8
  1049. .align 4
  1050. _val_3_0:
  1051. .long 0
  1052. .long 1074266112
  1053. .type _val_3_0,@object
  1054. .size _val_3_0,8
  1055. .align 4
  1056. _val_5_0:
  1057. .long 0
  1058. .long 1075052544
  1059. .type _val_5_0,@object
  1060. .size _val_5_0,8
  1061. .align 4
  1062. _tonpi:
  1063. .long 1841940611
  1064. .long 1071931184
  1065. .type _tonpi,@object
  1066. .size _tonpi,8
  1067. .align 4
  1068. _zeros:
  1069. .long 0
  1070. .long 2147483648
  1071. .type _zeros,@object
  1072. .size _zeros,8
  1073. .align 4
  1074. _val_17_0:
  1075. .long 0
  1076. .long 1076953088
  1077. .type _val_17_0,@object
  1078. .size _val_17_0,8
  1079. .align 4
  1080. _val_16_0:
  1081. .long 0
  1082. .long 1076887552
  1083. .type _val_16_0,@object
  1084. .size _val_16_0,8
  1085. .align 4
  1086. _PP1:
  1087. .long 551
  1088. .long 1072693248
  1089. .long 4267608614
  1090. .long 1061027839
  1091. .long 3690881252
  1092. .long 3200414971
  1093. .long 3933039373
  1094. .long 1046848465
  1095. .long 3246008603
  1096. .long 3189439465
  1097. .long 1689113401
  1098. .long 1037483563
  1099. .type _PP1,@object
  1100. .size _PP1,48
  1101. .align 4
  1102. _PP0:
  1103. .long 4294966288
  1104. .long 1072693247
  1105. .long 4269912424
  1106. .long 3207725055
  1107. .long 1780799603
  1108. .long 1052554744
  1109. .long 2285933488
  1110. .long 3194113879
  1111. .long 3892950982
  1112. .long 1041746526
  1113. .long 150212775
  1114. .long 3184818833
  1115. .type _PP0,@object
  1116. .size _PP0,48
  1117. .align 4
  1118. _QP0:
  1119. .long 4294921804
  1120. .long 3212836863
  1121. .long 4153409851
  1122. .long 1056096255
  1123. .long 2226361937
  1124. .long 3196916170
  1125. .long 3849695089
  1126. .long 1044094312
  1127. .long 663042994
  1128. .long 3187124278
  1129. .long 3336948587
  1130. .long 1035486718
  1131. .type _QP0,@object
  1132. .size _QP0,48
  1133. .align 4
  1134. _QP1:
  1135. .long 4294954956
  1136. .long 1066926079
  1137. .long 4141388976
  1138. .long 3204071423
  1139. .long 1500123100
  1140. .long 1049740228
  1141. .long 3264213437
  1142. .long 3191856517
  1143. .long 1489731078
  1144. .long 1039824630
  1145. .long 1807021260
  1146. .long 3183130166
  1147. .type _QP1,@object
  1148. .size _QP1,48
  1149. .data
  1150. .section .note.GNU-stack, ""
  1151. // -- Begin DWARF2 SEGMENT .eh_frame
  1152. .section .eh_frame,"a",@progbits
  1153. .eh_frame_seg:
  1154. .align 1
  1155. # End