dpml_ux_sqrt.S 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  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 "dpml_ux_sqrt.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin __dpml_ux_sqrt_evaluation__
  41. .text
  42. .align 16,0x90
  43. .globl __dpml_ux_sqrt_evaluation__
  44. __dpml_ux_sqrt_evaluation__:
  45. # parameter 1: %rdi
  46. # parameter 2: %rsi
  47. # parameter 3: %rdx
  48. ..B1.1:
  49. .cfi_startproc
  50. ..___tag_value___dpml_ux_sqrt_evaluation__.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 %r15
  62. .cfi_def_cfa_offset 40
  63. .cfi_offset 15, -40
  64. pushq %rbx
  65. .cfi_def_cfa_offset 48
  66. .cfi_offset 3, -48
  67. pushq %rbp
  68. .cfi_def_cfa_offset 56
  69. .cfi_offset 6, -56
  70. subq $104, %rsp
  71. .cfi_def_cfa_offset 160
  72. movq %rdi, %rbx
  73. movq %fs:40, %rax
  74. lea (%rsp), %rdi
  75. xorq %rsp, %rax
  76. movq %rdx, %r12
  77. movq %rax, 88(%rdi)
  78. movq %rsi, %rbp
  79. ..___tag_value___dpml_ux_sqrt_evaluation__.16:
  80. call fegetenv@PLT
  81. ..___tag_value___dpml_ux_sqrt_evaluation__.17:
  82. ..B1.2:
  83. movq 8(%rbx), %r8
  84. movq %r8, %r10
  85. shrq $11, %r10
  86. movq $0x3fd0000000000000, %r9
  87. movl 4(%rbx), %eax
  88. addq %r9, %r10
  89. movl %eax, %r9d
  90. movq %r8, %r13
  91. andl $1, %r9d
  92. movq %r8, %r15
  93. addl %r9d, %eax
  94. pxor %xmm2, %xmm2
  95. shrq $56, %r8
  96. pxor %xmm4, %xmm4
  97. movq %r10, 80(%rsp)
  98. pxor %xmm7, %xmm7
  99. movq __sqrt_t_table@GOTPCREL(%rip), %r10
  100. lea 40(%r9), %r14d
  101. shll $7, %r9d
  102. movl %r14d, %ecx
  103. xorq %r9, %r8
  104. negl %ecx
  105. shlq $4, %r8
  106. pxor %xmm6, %xmm6
  107. shlq %cl, %r13
  108. movl %r14d, %ecx
  109. movsd 80(%rsp), %xmm1
  110. lea 56(%rsp), %rdx
  111. movq 16(%rbx), %r11
  112. movaps %xmm1, %xmm0
  113. cvtss2sd 4(%r10,%r8), %xmm2
  114. cvtss2sd (%r10,%r8), %xmm4
  115. mulsd %xmm1, %xmm0
  116. mulsd %xmm1, %xmm2
  117. mulsd %xmm0, %xmm4
  118. addsd 8(%r10,%r8), %xmm2
  119. shrq %cl, %r11
  120. movl %r14d, %ecx
  121. shrq %cl, %r15
  122. orq %r11, %r13
  123. shrq $11, %r13
  124. lea 128+__sqrt_x_table(%rip), %r11
  125. cvtsi2sdq %r15, %xmm7
  126. cvtsi2sdq %r13, %xmm6
  127. addsd %xmm2, %xmm4
  128. mulsd (%r11), %xmm7
  129. lea 136+__sqrt_x_table(%rip), %r13
  130. lea 96+__sqrt_x_table(%rip), %r8
  131. movaps %xmm7, %xmm8
  132. lea 152+__sqrt_x_table(%rip), %r15
  133. lea 104+__sqrt_x_table(%rip), %r14
  134. lea 32(%rsp), %rdi
  135. movsd .L_2il0floatpacket.21(%rip), %xmm12
  136. movq %rbx, %rsi
  137. mulsd (%r13), %xmm6
  138. mulsd (%r8), %xmm4
  139. addsd %xmm6, %xmm8
  140. movaps %xmm8, %xmm3
  141. lea 144+__sqrt_x_table(%rip), %r8
  142. mulsd %xmm4, %xmm3
  143. cvtsd2ss %xmm4, %xmm4
  144. cvtsd2ss %xmm3, %xmm3
  145. cvtss2sd %xmm4, %xmm4
  146. cvtss2sd %xmm3, %xmm3
  147. mulsd %xmm4, %xmm7
  148. mulsd %xmm4, %xmm6
  149. subsd %xmm3, %xmm7
  150. movsd (%r15), %xmm10
  151. movaps %xmm4, %xmm9
  152. mulsd %xmm8, %xmm10
  153. movaps %xmm3, %xmm5
  154. addsd %xmm6, %xmm7
  155. mulsd %xmm4, %xmm9
  156. mulsd %xmm4, %xmm5
  157. mulsd %xmm4, %xmm7
  158. mulsd %xmm9, %xmm10
  159. movsd (%r14), %xmm11
  160. movsd (%r8), %xmm15
  161. lea 112+__sqrt_x_table(%rip), %r8
  162. sarl $1, %eax
  163. subsd %xmm5, %xmm11
  164. subsd %xmm10, %xmm15
  165. subsd %xmm7, %xmm11
  166. mulsd %xmm4, %xmm15
  167. movsd (%r8), %xmm13
  168. lea 120+__sqrt_x_table(%rip), %r8
  169. mulsd %xmm4, %xmm13
  170. negl %eax
  171. mulsd %xmm11, %xmm15
  172. comisd %xmm12, %xmm13
  173. mulsd (%r8), %xmm15
  174. movaps %xmm13, %xmm14
  175. cvttsd2si %xmm15, %r9
  176. subsd %xmm12, %xmm14
  177. jae ..L18
  178. movaps %xmm13, %xmm14
  179. ..L18:
  180. cvttsd2si %xmm14, %r10
  181. movq %r9, %r8
  182. incl %eax
  183. shlq $39, %r10
  184. sarq $12, %r8
  185. sarq $11, %r9
  186. addq %r8, %r10
  187. andq $1, %r9
  188. movq $0x4000000000000000, %r8
  189. addq %r9, %r10
  190. andq %r10, %r8
  191. testq %r10, %r10
  192. movl $0, -24(%rdx)
  193. movl %eax, -20(%rdx)
  194. movq $0, -8(%rdx)
  195. lea -1(,%r8,2), %r8
  196. cmovns %r8, %r10
  197. movq %r10, -16(%rdx)
  198. ..___tag_value___dpml_ux_sqrt_evaluation__.19:
  199. call __dpml_multiply__@PLT
  200. ..___tag_value___dpml_ux_sqrt_evaluation__.20:
  201. ..B1.3:
  202. movq %r12, %rdx
  203. lea 32(%rsp), %rdi
  204. lea 56(%rsp), %rsi
  205. ..___tag_value___dpml_ux_sqrt_evaluation__.21:
  206. call __dpml_multiply__@PLT
  207. ..___tag_value___dpml_ux_sqrt_evaluation__.22:
  208. ..B1.4:
  209. lea 160+__sqrt_x_table(%rip), %rdi
  210. movq %r12, %rsi
  211. movl $9, %edx
  212. movq %r12, %rcx
  213. ..___tag_value___dpml_ux_sqrt_evaluation__.23:
  214. call __dpml_addsub__@PLT
  215. ..___tag_value___dpml_ux_sqrt_evaluation__.24:
  216. ..B1.5:
  217. testq $1, %rbp
  218. lea 32(%rsp), %rsi
  219. movq %r12, %rdi
  220. lea 56(%rsp), %rax
  221. cmovne %rax, %rsi
  222. movq %r12, %rdx
  223. ..___tag_value___dpml_ux_sqrt_evaluation__.25:
  224. call __dpml_multiply__@PLT
  225. ..___tag_value___dpml_ux_sqrt_evaluation__.26:
  226. ..B1.6:
  227. decl 4(%r12)
  228. lea (%rsp), %rdi
  229. ..___tag_value___dpml_ux_sqrt_evaluation__.27:
  230. call fesetenv@PLT
  231. ..___tag_value___dpml_ux_sqrt_evaluation__.28:
  232. ..B1.7:
  233. xorl %r15d, %r15d
  234. testq $2, %rbp
  235. jne ..B1.11
  236. ..B1.8:
  237. movq 88(%rsp), %rdx
  238. xorq %rsp, %rdx
  239. cmpq %fs:40, %rdx
  240. jne ..B1.10
  241. ..B1.9:
  242. movq %r15, %rax
  243. addq $104, %rsp
  244. .cfi_def_cfa_offset 56
  245. .cfi_restore 6
  246. popq %rbp
  247. .cfi_def_cfa_offset 48
  248. .cfi_restore 3
  249. popq %rbx
  250. .cfi_def_cfa_offset 40
  251. .cfi_restore 15
  252. popq %r15
  253. .cfi_def_cfa_offset 32
  254. .cfi_restore 14
  255. popq %r14
  256. .cfi_def_cfa_offset 24
  257. .cfi_restore 13
  258. popq %r13
  259. .cfi_def_cfa_offset 16
  260. .cfi_restore 12
  261. popq %r12
  262. .cfi_def_cfa_offset 8
  263. ret
  264. .cfi_def_cfa_offset 160
  265. .cfi_offset 3, -48
  266. .cfi_offset 6, -56
  267. .cfi_offset 12, -16
  268. .cfi_offset 13, -24
  269. .cfi_offset 14, -32
  270. .cfi_offset 15, -40
  271. ..B1.10:
  272. call __stack_chk_fail@PLT
  273. ..B1.11:
  274. movq %r12, %rdi
  275. xorl %esi, %esi
  276. ..___tag_value___dpml_ux_sqrt_evaluation__.49:
  277. call __dpml_ffs_and_shift__@PLT
  278. ..___tag_value___dpml_ux_sqrt_evaluation__.50:
  279. ..B1.12:
  280. movq 16(%r12), %r14
  281. lea 8(%r14), %r8
  282. testq $16368, %r8
  283. jne ..B1.8
  284. ..B1.13:
  285. andq $-32768, %r14
  286. movq %r12, %rdi
  287. movq %r12, %rsi
  288. lea 56(%rsp), %rdx
  289. lea 32(%rsp), %rcx
  290. lea 16384(%r14), %r13
  291. movq %r13, 16(%r12)
  292. ..___tag_value___dpml_ux_sqrt_evaluation__.51:
  293. call __dpml_extended_multiply__@PLT
  294. ..___tag_value___dpml_ux_sqrt_evaluation__.52:
  295. ..B1.14:
  296. movq %rbx, %rdi
  297. lea 56(%rsp), %rsi
  298. movl $1, %edx
  299. movq %rsi, %rcx
  300. ..___tag_value___dpml_ux_sqrt_evaluation__.53:
  301. call __dpml_addsub__@PLT
  302. ..___tag_value___dpml_ux_sqrt_evaluation__.54:
  303. ..B1.15:
  304. movl $1, %edx
  305. lea 56(%rsp), %rdi
  306. movq %rdi, %rcx
  307. lea 32(%rsp), %rsi
  308. ..___tag_value___dpml_ux_sqrt_evaluation__.55:
  309. call __dpml_addsub__@PLT
  310. ..___tag_value___dpml_ux_sqrt_evaluation__.56:
  311. ..B1.16:
  312. movl 56(%rsp), %r8d
  313. testl %r8d, %r8d
  314. cmove %r13, %r14
  315. testq $4, %rbp
  316. movq %r14, 16(%r12)
  317. je ..B1.8
  318. ..B1.17:
  319. movl 4(%r12), %ebx
  320. xorl %edx, %edx
  321. addl $-113, %ebx
  322. lea 56(%rsp), %rdi
  323. subl %ebx, 4(%rdi)
  324. movl $1, %ebx
  325. testl %r8d, %r8d
  326. movq %r12, %rsi
  327. cmove %ebx, %edx
  328. movq %rdi, %rcx
  329. orl $8, %edx
  330. ..___tag_value___dpml_ux_sqrt_evaluation__.57:
  331. call __dpml_addsub__@PLT
  332. ..___tag_value___dpml_ux_sqrt_evaluation__.58:
  333. ..B1.18:
  334. xorl %r15d, %r15d
  335. cmpq $8192, 72(%rsp)
  336. cmove %ebx, %r15d
  337. jmp ..B1.8
  338. .align 16,0x90
  339. .cfi_endproc
  340. .type __dpml_ux_sqrt_evaluation__,@function
  341. .size __dpml_ux_sqrt_evaluation__,.-__dpml_ux_sqrt_evaluation__
  342. .data
  343. # -- End __dpml_ux_sqrt_evaluation__
  344. .text
  345. # -- Begin __sqrtq
  346. .text
  347. .align 16,0x90
  348. .globl __sqrtq
  349. __sqrtq:
  350. # parameter 1: %xmm0
  351. ..B2.1:
  352. .cfi_startproc
  353. ..___tag_value___sqrtq.60:
  354. ..L61:
  355. subq $136, %rsp
  356. .cfi_def_cfa_offset 144
  357. xorl %esi, %esi
  358. lea __sqrt_x_table(%rip), %rcx
  359. lea 48(%rsp), %rdi
  360. movq %fs:40, %rax
  361. lea 88(%rsp), %rdx
  362. xorq %rsp, %rax
  363. lea 112(%rsp), %r8
  364. movaps %xmm0, -40(%rdx)
  365. lea (%rsp), %r9
  366. movq %rax, 40(%rdx)
  367. movq $1, -80(%rdx)
  368. movq $0, (%r9)
  369. ..___tag_value___sqrtq.63:
  370. call __dpml_unpack_x_or_y__@PLT
  371. ..___tag_value___sqrtq.64:
  372. ..B2.2:
  373. testq %rax, %rax
  374. jl ..B2.5
  375. ..B2.3:
  376. movl $7, %esi
  377. lea 88(%rsp), %rdi
  378. lea 64(%rsp), %rdx
  379. ..___tag_value___sqrtq.65:
  380. call __dpml_ux_sqrt_evaluation__@PLT
  381. ..___tag_value___sqrtq.66:
  382. ..B2.4:
  383. movl $1, %edx
  384. xorl %ecx, %ecx
  385. testq %rax, %rax
  386. lea 64(%rsp), %rdi
  387. cmove %edx, %ecx
  388. xorl %edx, %edx
  389. lea 112(%rsp), %rsi
  390. movq %rcx, -104(%rsi)
  391. xorl %ecx, %ecx
  392. lea (%rsp), %r8
  393. ..___tag_value___sqrtq.67:
  394. call __dpml_pack__@PLT
  395. ..___tag_value___sqrtq.68:
  396. ..B2.5:
  397. movq 128(%rsp), %rax
  398. xorq %rsp, %rax
  399. movaps 112(%rsp), %xmm0
  400. cmpq %fs:40, %rax
  401. jne ..B2.7
  402. ..B2.6:
  403. addq $136, %rsp
  404. .cfi_def_cfa_offset 8
  405. ret
  406. .cfi_def_cfa_offset 144
  407. ..B2.7:
  408. call __stack_chk_fail@PLT
  409. .align 16,0x90
  410. .cfi_endproc
  411. .type __sqrtq,@function
  412. .size __sqrtq,.-__sqrtq
  413. .data
  414. # -- End __sqrtq
  415. .text
  416. # -- Begin __rsqrtq
  417. .text
  418. .align 16,0x90
  419. .globl __rsqrtq
  420. __rsqrtq:
  421. # parameter 1: %xmm0
  422. ..B3.1:
  423. .cfi_startproc
  424. ..___tag_value___rsqrtq.72:
  425. ..L73:
  426. subq $136, %rsp
  427. .cfi_def_cfa_offset 144
  428. xorl %esi, %esi
  429. lea 8+__sqrt_x_table(%rip), %rcx
  430. lea 48(%rsp), %rdi
  431. movq %fs:40, %rax
  432. lea 88(%rsp), %rdx
  433. xorq %rsp, %rax
  434. lea 112(%rsp), %r8
  435. movaps %xmm0, -40(%rdx)
  436. lea (%rsp), %r9
  437. movq %rax, 40(%rdx)
  438. movq $1, -80(%rdx)
  439. movq $0, (%r9)
  440. ..___tag_value___rsqrtq.75:
  441. call __dpml_unpack_x_or_y__@PLT
  442. ..___tag_value___rsqrtq.76:
  443. ..B3.2:
  444. testq %rax, %rax
  445. jl ..B3.5
  446. ..B3.3:
  447. xorl %esi, %esi
  448. lea 88(%rsp), %rdi
  449. lea 64(%rsp), %rdx
  450. ..___tag_value___rsqrtq.77:
  451. call __dpml_ux_sqrt_evaluation__@PLT
  452. ..___tag_value___rsqrtq.78:
  453. ..B3.4:
  454. movl $1, %edx
  455. xorl %ecx, %ecx
  456. testq %rax, %rax
  457. lea 64(%rsp), %rdi
  458. cmove %edx, %ecx
  459. xorl %edx, %edx
  460. lea 112(%rsp), %rsi
  461. movq %rcx, -104(%rsi)
  462. xorl %ecx, %ecx
  463. lea (%rsp), %r8
  464. ..___tag_value___rsqrtq.79:
  465. call __dpml_pack__@PLT
  466. ..___tag_value___rsqrtq.80:
  467. ..B3.5:
  468. movq 128(%rsp), %rax
  469. xorq %rsp, %rax
  470. movaps 112(%rsp), %xmm0
  471. cmpq %fs:40, %rax
  472. jne ..B3.7
  473. ..B3.6:
  474. addq $136, %rsp
  475. .cfi_def_cfa_offset 8
  476. ret
  477. .cfi_def_cfa_offset 144
  478. ..B3.7:
  479. call __stack_chk_fail@PLT
  480. .align 16,0x90
  481. .cfi_endproc
  482. .type __rsqrtq,@function
  483. .size __rsqrtq,.-__rsqrtq
  484. .data
  485. # -- End __rsqrtq
  486. .text
  487. # -- Begin __dpml_ux_hypot__
  488. .text
  489. .align 16,0x90
  490. .globl __dpml_ux_hypot__
  491. __dpml_ux_hypot__:
  492. # parameter 1: %rdi
  493. # parameter 2: %rsi
  494. # parameter 3: %rdx
  495. ..B4.1:
  496. .cfi_startproc
  497. ..___tag_value___dpml_ux_hypot__.84:
  498. ..L85:
  499. pushq %r12
  500. .cfi_def_cfa_offset 16
  501. .cfi_offset 12, -16
  502. pushq %rbp
  503. .cfi_def_cfa_offset 24
  504. .cfi_offset 6, -24
  505. subq $88, %rsp
  506. .cfi_def_cfa_offset 112
  507. movq %rdx, %r12
  508. movq %rsi, %rbp
  509. movq %rdi, %rsi
  510. movq %fs:40, %rax
  511. lea (%rsp), %rdx
  512. xorq %rsp, %rax
  513. movq %rax, 72(%rdx)
  514. ..___tag_value___dpml_ux_hypot__.91:
  515. call __dpml_multiply__@PLT
  516. ..___tag_value___dpml_ux_hypot__.92:
  517. ..B4.2:
  518. movq %rbp, %rdi
  519. movq %rbp, %rsi
  520. lea 24(%rsp), %rdx
  521. ..___tag_value___dpml_ux_hypot__.93:
  522. call __dpml_multiply__@PLT
  523. ..___tag_value___dpml_ux_hypot__.94:
  524. ..B4.3:
  525. xorl %edx, %edx
  526. lea (%rsp), %rdi
  527. lea 24(%rsp), %rsi
  528. lea 48(%rsp), %rcx
  529. ..___tag_value___dpml_ux_hypot__.95:
  530. call __dpml_addsub__@PLT
  531. ..___tag_value___dpml_ux_hypot__.96:
  532. ..B4.4:
  533. xorl %esi, %esi
  534. lea 48(%rsp), %rdi
  535. ..___tag_value___dpml_ux_hypot__.97:
  536. call __dpml_ffs_and_shift__@PLT
  537. ..___tag_value___dpml_ux_hypot__.98:
  538. ..B4.5:
  539. movl $7, %esi
  540. lea 48(%rsp), %rdi
  541. movq %r12, %rdx
  542. ..___tag_value___dpml_ux_hypot__.99:
  543. call __dpml_ux_sqrt_evaluation__@PLT
  544. ..___tag_value___dpml_ux_hypot__.100:
  545. ..B4.6:
  546. testq %rax, %rax
  547. je ..B4.18
  548. ..B4.7:
  549. movl 4(%rsp), %ecx
  550. lea (%rsp), %rbp
  551. subl 28(%rbp), %ecx
  552. movslq %ecx, %rcx
  553. testq %rcx, %rcx
  554. jns ..B4.9
  555. ..B4.8:
  556. negq %rcx
  557. lea 24(%rsp), %rbp
  558. ..B4.9:
  559. cmpq $128, %rcx
  560. jle ..B4.11
  561. ..B4.10:
  562. xorl %eax, %eax
  563. jmp ..B4.18
  564. ..B4.11:
  565. movl $1, %edx
  566. ..B4.12:
  567. movq 8(%rbp,%rdx,8), %rax
  568. testq %rax, %rax
  569. jne ..B4.10
  570. ..B4.13:
  571. cmpq $64, %rcx
  572. jl ..B4.16
  573. ..B4.14:
  574. addq $-64, %rcx
  575. decq %rdx
  576. jns ..B4.12
  577. ..B4.16:
  578. movq %rax, %rdx
  579. movl $1, %ebp
  580. shrq %cl, %rdx
  581. xorl %esi, %esi
  582. shlq %cl, %rdx
  583. cmpq %rdx, %rax
  584. cmove %ebp, %esi
  585. movl %esi, %eax
  586. ..B4.18:
  587. movq 72(%rsp), %rdx
  588. xorq %rsp, %rdx
  589. cmpq %fs:40, %rdx
  590. jne ..B4.20
  591. ..B4.19:
  592. addq $88, %rsp
  593. .cfi_def_cfa_offset 24
  594. .cfi_restore 6
  595. popq %rbp
  596. .cfi_def_cfa_offset 16
  597. .cfi_restore 12
  598. popq %r12
  599. .cfi_def_cfa_offset 8
  600. ret
  601. .cfi_def_cfa_offset 112
  602. .cfi_offset 6, -24
  603. .cfi_offset 12, -16
  604. ..B4.20:
  605. call __stack_chk_fail@PLT
  606. .align 16,0x90
  607. .cfi_endproc
  608. .type __dpml_ux_hypot__,@function
  609. .size __dpml_ux_hypot__,.-__dpml_ux_hypot__
  610. .data
  611. # -- End __dpml_ux_hypot__
  612. .section .rodata, "a"
  613. .align 16
  614. .align 16
  615. __sqrt_x_table:
  616. .long 1088750600
  617. .long 605086734
  618. .long 1088766984
  619. .long 519758862
  620. .long 112
  621. .long 0
  622. .long 113
  623. .long 0
  624. .long 114
  625. .long 0
  626. .long 0
  627. .long 0
  628. .long 0
  629. .long 268435456
  630. .long 858997845
  631. .long 34
  632. .long 1636176969
  633. .long 409044504
  634. .long 1099306057
  635. .long 404751376
  636. .long 545392672
  637. .long 404783624
  638. .long 142938632
  639. .long 302522498
  640. .long 1719614413
  641. .long 1073127582
  642. .long 0
  643. .long 1072693248
  644. .long 0
  645. .long 1097859072
  646. .long 0
  647. .long 1151336448
  648. .long 0
  649. .long 1047527424
  650. .long 0
  651. .long 991952896
  652. .long 0
  653. .long 1072431104
  654. .long 0
  655. .long 1071120384
  656. .long 0
  657. .long 2
  658. .long 0
  659. .long 3221225472
  660. .long 0
  661. .long 0
  662. .long 0
  663. .long 0
  664. .type __sqrt_x_table,@object
  665. .size __sqrt_x_table,192
  666. .align 8
  667. .L_2il0floatpacket.21:
  668. .long 0x00000000,0x43e00000
  669. .type .L_2il0floatpacket.21,@object
  670. .size .L_2il0floatpacket.21,8
  671. .align 4
  672. .L_2il0floatpacket.20:
  673. .long 0x5f000000
  674. .type .L_2il0floatpacket.20,@object
  675. .size .L_2il0floatpacket.20,4
  676. .data
  677. .section .note.GNU-stack, ""
  678. // -- Begin DWARF2 SEGMENT .eh_frame
  679. .section .eh_frame,"a",@progbits
  680. .eh_frame_seg:
  681. .align 1
  682. # End