clog10.S 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789
  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 "clog10.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin clog10f
  41. .text
  42. .align 16,0x90
  43. .globl clog10f
  44. clog10f:
  45. # parameter 1: %xmm0
  46. ..B1.1:
  47. .cfi_startproc
  48. ..___tag_value_clog10f.1:
  49. ..L2:
  50. pushq %rsi
  51. .cfi_def_cfa_offset 16
  52. cvtps2pd %xmm0, %xmm1
  53. movaps %xmm1, %xmm0
  54. unpckhpd %xmm1, %xmm1
  55. ..___tag_value_clog10f.4:
  56. call clog10@PLT
  57. ..___tag_value_clog10f.5:
  58. ..B1.5:
  59. unpcklpd %xmm1, %xmm0
  60. ..B1.2:
  61. cvtpd2ps %xmm0, %xmm0
  62. popq %rcx
  63. .cfi_def_cfa_offset 8
  64. ret
  65. .align 16,0x90
  66. .cfi_endproc
  67. .type clog10f,@function
  68. .size clog10f,.-clog10f
  69. .data
  70. # -- End clog10f
  71. .text
  72. # -- Begin clog10
  73. .text
  74. .align 16,0x90
  75. .globl clog10
  76. clog10:
  77. # parameter 1: %xmm0
  78. ..B2.1:
  79. .cfi_startproc
  80. ..___tag_value_clog10.8:
  81. ..L9:
  82. pushq %r14
  83. .cfi_def_cfa_offset 16
  84. .cfi_offset 14, -16
  85. pushq %r15
  86. .cfi_def_cfa_offset 24
  87. .cfi_offset 15, -24
  88. pushq %rbx
  89. .cfi_def_cfa_offset 32
  90. .cfi_offset 3, -32
  91. movq %fs:40, %rax
  92. subq $128, %rsp
  93. .cfi_def_cfa_offset 160
  94. movsd %xmm0, 16(%rsp)
  95. xorq %rsp, %rax
  96. movsd %xmm1, 24(%rsp)
  97. movzwl 22(%rsp), %edx
  98. andl $32752, %edx
  99. movq %rax, 112(%rsp)
  100. movzwl 30(%rsp), %eax
  101. andl $32752, %eax
  102. shrl $4, %edx
  103. shrl $4, %eax
  104. cmpl $2047, %edx
  105. jge ..B2.26
  106. ..B2.2:
  107. cmpl $2047, %eax
  108. jge ..B2.62
  109. ..B2.3:
  110. testl %edx, %edx
  111. jne ..B2.9
  112. ..B2.4:
  113. testl $1048575, 20(%rsp)
  114. jne ..B2.9
  115. ..B2.5:
  116. cmpl $0, 16(%rsp)
  117. jne ..B2.9
  118. ..B2.6:
  119. testl %eax, %eax
  120. jne ..B2.9
  121. ..B2.7:
  122. testl $1048575, 28(%rsp)
  123. jne ..B2.9
  124. ..B2.8:
  125. cmpl $0, 24(%rsp)
  126. je ..B2.25
  127. ..B2.9:
  128. movsd 16(%rsp), %xmm0
  129. lea 24(%rsp), %r15
  130. movsd (%r15), %xmm1
  131. movaps %xmm0, %xmm12
  132. movaps %xmm1, %xmm11
  133. andps .L_2il0floatpacket.10(%rip), %xmm11
  134. andps .L_2il0floatpacket.10(%rip), %xmm12
  135. movaps %xmm11, %xmm6
  136. movaps %xmm12, %xmm7
  137. movaps %xmm6, %xmm2
  138. comisd %xmm12, %xmm11
  139. jbe ..B2.11
  140. ..B2.10:
  141. movaps %xmm7, %xmm6
  142. movaps %xmm2, %xmm12
  143. movaps %xmm11, %xmm7
  144. movaps %xmm6, %xmm11
  145. ..B2.11:
  146. lea 8+_CONSTANTS(%rip), %rax
  147. comisd (%rax), %xmm12
  148. jb ..B2.22
  149. ..B2.12:
  150. lea 16+_CONSTANTS(%rip), %rax
  151. movsd (%rax), %xmm2
  152. comisd %xmm12, %xmm2
  153. jb ..B2.22
  154. ..B2.13:
  155. lea 24+_CONSTANTS(%rip), %rdx
  156. lea _CONSTANTS(%rip), %rax
  157. movaps %xmm12, %xmm5
  158. mulsd %xmm12, %xmm5
  159. comisd (%rdx), %xmm11
  160. movsd .L_2il0floatpacket.11(%rip), %xmm2
  161. movsd (%rax), %xmm4
  162. jbe ..B2.16
  163. ..B2.14:
  164. movaps %xmm11, %xmm3
  165. mulsd %xmm11, %xmm3
  166. addsd %xmm3, %xmm5
  167. subsd %xmm2, %xmm5
  168. andps .L_2il0floatpacket.10(%rip), %xmm5
  169. comisd %xmm5, %xmm4
  170. ja ..B2.17
  171. jmp ..B2.22
  172. ..B2.16:
  173. subsd %xmm2, %xmm5
  174. andps .L_2il0floatpacket.10(%rip), %xmm5
  175. comisd %xmm5, %xmm4
  176. jbe ..B2.22
  177. ..B2.17:
  178. movsd %xmm6, 8(%rsp)
  179. ..B2.18:
  180. movzwl 14(%rsp), %edx
  181. andl $32752, %edx
  182. shrl $4, %edx
  183. cmpl $913, %edx
  184. jl ..B2.20
  185. ..B2.19:
  186. movsd .L_2il0floatpacket.7(%rip), %xmm9
  187. movaps %xmm12, %xmm10
  188. mulsd %xmm9, %xmm10
  189. movaps %xmm11, %xmm8
  190. mulsd %xmm9, %xmm8
  191. movaps %xmm10, %xmm13
  192. movaps %xmm8, %xmm14
  193. movsd .L_2il0floatpacket.9(%rip), %xmm15
  194. lea 32+_Q1(%rip), %rbx
  195. lea 56+_Q1(%rip), %rax
  196. subsd %xmm12, %xmm13
  197. subsd %xmm11, %xmm14
  198. subsd %xmm13, %xmm10
  199. subsd %xmm14, %xmm8
  200. subsd %xmm10, %xmm12
  201. subsd %xmm8, %xmm11
  202. movaps %xmm10, %xmm4
  203. movaps %xmm8, %xmm7
  204. mulsd %xmm10, %xmm4
  205. lea 48+_Q1(%rip), %rdx
  206. mulsd %xmm8, %xmm7
  207. mulsd %xmm15, %xmm10
  208. mulsd %xmm15, %xmm8
  209. mulsd %xmm12, %xmm10
  210. mulsd %xmm11, %xmm8
  211. mulsd %xmm12, %xmm12
  212. mulsd %xmm11, %xmm11
  213. movaps %xmm4, %xmm1
  214. lea 88(%rsp), %r14
  215. lea 40+_Q1(%rip), %rcx
  216. addsd %xmm7, %xmm1
  217. movaps %xmm1, %xmm5
  218. subsd %xmm2, %xmm1
  219. subsd %xmm4, %xmm5
  220. movaps %xmm1, %xmm6
  221. subsd %xmm5, %xmm7
  222. movsd (%rax), %xmm5
  223. addsd %xmm7, %xmm6
  224. movaps %xmm6, %xmm3
  225. movaps %xmm6, %xmm2
  226. lea 24+_Q1(%rip), %rsi
  227. subsd %xmm1, %xmm3
  228. lea 16+_Q1(%rip), %rdi
  229. subsd %xmm3, %xmm2
  230. subsd %xmm3, %xmm7
  231. subsd %xmm2, %xmm1
  232. lea 8+_Q1(%rip), %r8
  233. addsd %xmm1, %xmm7
  234. movaps %xmm6, %xmm1
  235. lea _Q1(%rip), %r9
  236. lea 48+_CONSTANTS(%rip), %r10
  237. addsd %xmm10, %xmm1
  238. movaps %xmm1, %xmm2
  239. movaps %xmm1, %xmm14
  240. lea 56+_CONSTANTS(%rip), %r11
  241. addsd %xmm8, %xmm2
  242. subsd %xmm6, %xmm14
  243. movaps %xmm2, %xmm3
  244. subsd %xmm14, %xmm10
  245. addsd %xmm12, %xmm3
  246. movaps %xmm3, %xmm4
  247. addsd %xmm11, %xmm4
  248. mulsd %xmm4, %xmm5
  249. movaps %xmm4, %xmm13
  250. mulsd %xmm4, %xmm13
  251. mulsd %xmm4, %xmm9
  252. addsd (%rdx), %xmm5
  253. mulsd %xmm4, %xmm5
  254. addsd (%rcx), %xmm5
  255. mulsd %xmm4, %xmm5
  256. addsd (%rbx), %xmm5
  257. mulsd %xmm4, %xmm5
  258. lea 104(%rsp), %rbx
  259. addsd (%rsi), %xmm5
  260. mulsd %xmm4, %xmm5
  261. addsd (%rdi), %xmm5
  262. mulsd %xmm4, %xmm5
  263. addsd (%r8), %xmm5
  264. mulsd %xmm4, %xmm5
  265. addsd (%r9), %xmm5
  266. mulsd %xmm13, %xmm5
  267. movaps %xmm1, %xmm13
  268. subsd %xmm14, %xmm13
  269. subsd %xmm13, %xmm6
  270. addsd %xmm6, %xmm10
  271. movaps %xmm2, %xmm6
  272. subsd %xmm1, %xmm6
  273. addsd %xmm10, %xmm7
  274. subsd %xmm6, %xmm8
  275. movaps %xmm2, %xmm10
  276. subsd %xmm6, %xmm10
  277. subsd %xmm10, %xmm1
  278. addsd %xmm1, %xmm8
  279. movaps %xmm3, %xmm1
  280. addsd %xmm8, %xmm7
  281. movaps %xmm3, %xmm8
  282. subsd %xmm2, %xmm8
  283. subsd %xmm8, %xmm1
  284. subsd %xmm8, %xmm12
  285. subsd %xmm1, %xmm2
  286. movaps %xmm4, %xmm1
  287. addsd %xmm2, %xmm12
  288. addsd %xmm12, %xmm7
  289. movaps %xmm4, %xmm12
  290. subsd %xmm3, %xmm12
  291. subsd %xmm12, %xmm1
  292. subsd %xmm12, %xmm11
  293. subsd %xmm1, %xmm3
  294. movsd (%r10), %xmm1
  295. addsd %xmm3, %xmm11
  296. movaps %xmm1, %xmm3
  297. addsd %xmm11, %xmm7
  298. movaps %xmm9, %xmm11
  299. addsd %xmm7, %xmm5
  300. subsd %xmm4, %xmm11
  301. subsd %xmm11, %xmm9
  302. mulsd %xmm9, %xmm3
  303. subsd %xmm9, %xmm4
  304. addsd %xmm5, %xmm4
  305. movsd (%r11), %xmm5
  306. mulsd %xmm5, %xmm9
  307. movaps %xmm5, %xmm2
  308. mulsd %xmm4, %xmm2
  309. mulsd %xmm1, %xmm4
  310. addsd %xmm9, %xmm2
  311. pxor %xmm1, %xmm1
  312. addsd %xmm4, %xmm2
  313. addsd %xmm2, %xmm3
  314. mulsd .L_2il0floatpacket.6(%rip), %xmm3
  315. movsd %xmm3, -72(%rbx)
  316. jmp ..B2.29
  317. ..B2.20:
  318. movsd %xmm7, (%rsp)
  319. movzwl 6(%rsp), %eax
  320. andl $32752, %eax
  321. cmpl $16368, %eax
  322. je ..B2.35
  323. ..B2.21:
  324. movsd .L_2il0floatpacket.7(%rip), %xmm8
  325. movaps %xmm12, %xmm3
  326. mulsd %xmm8, %xmm3
  327. lea 56+_Q1(%rip), %rax
  328. movaps %xmm3, %xmm1
  329. lea 32+_Q1(%rip), %rbx
  330. movsd (%rax), %xmm7
  331. lea 88(%rsp), %r14
  332. lea 48+_Q1(%rip), %rdx
  333. subsd %xmm12, %xmm1
  334. lea 40+_Q1(%rip), %rcx
  335. subsd %xmm1, %xmm3
  336. movaps %xmm3, %xmm5
  337. subsd %xmm3, %xmm12
  338. mulsd %xmm3, %xmm5
  339. lea 24+_Q1(%rip), %rsi
  340. subsd %xmm2, %xmm5
  341. movsd .L_2il0floatpacket.9(%rip), %xmm2
  342. movaps %xmm5, %xmm14
  343. mulsd %xmm3, %xmm2
  344. lea 16+_Q1(%rip), %rdi
  345. mulsd %xmm12, %xmm2
  346. lea 8+_Q1(%rip), %r8
  347. mulsd %xmm12, %xmm12
  348. movaps %xmm2, %xmm10
  349. lea _Q1(%rip), %r9
  350. lea 48+_CONSTANTS(%rip), %r10
  351. addsd %xmm12, %xmm10
  352. movaps %xmm10, %xmm4
  353. addsd %xmm10, %xmm14
  354. subsd %xmm2, %xmm4
  355. mulsd %xmm14, %xmm7
  356. subsd %xmm4, %xmm12
  357. mulsd %xmm14, %xmm8
  358. addsd (%rdx), %xmm7
  359. mulsd %xmm14, %xmm7
  360. movaps %xmm14, %xmm6
  361. subsd %xmm5, %xmm6
  362. addsd (%rcx), %xmm7
  363. subsd %xmm6, %xmm10
  364. mulsd %xmm14, %xmm7
  365. addsd %xmm12, %xmm10
  366. addsd (%rbx), %xmm7
  367. mulsd %xmm14, %xmm7
  368. movaps %xmm14, %xmm12
  369. mulsd %xmm14, %xmm12
  370. addsd (%rsi), %xmm7
  371. mulsd %xmm14, %xmm7
  372. movaps %xmm8, %xmm9
  373. subsd %xmm14, %xmm9
  374. addsd (%rdi), %xmm7
  375. subsd %xmm9, %xmm8
  376. mulsd %xmm14, %xmm7
  377. lea 56+_CONSTANTS(%rip), %r11
  378. addsd (%r8), %xmm7
  379. mulsd %xmm14, %xmm7
  380. subsd %xmm8, %xmm14
  381. movsd (%r10), %xmm13
  382. lea 104(%rsp), %rbx
  383. movsd (%r11), %xmm11
  384. movaps %xmm13, %xmm1
  385. movaps %xmm11, %xmm15
  386. addsd (%r9), %xmm7
  387. mulsd %xmm8, %xmm1
  388. mulsd %xmm11, %xmm8
  389. mulsd %xmm12, %xmm7
  390. addsd %xmm7, %xmm10
  391. addsd %xmm10, %xmm14
  392. mulsd %xmm14, %xmm15
  393. mulsd %xmm13, %xmm14
  394. addsd %xmm8, %xmm15
  395. addsd %xmm14, %xmm15
  396. addsd %xmm15, %xmm1
  397. mulsd .L_2il0floatpacket.6(%rip), %xmm1
  398. movsd %xmm1, -72(%rbx)
  399. pxor %xmm1, %xmm1
  400. jmp ..B2.29
  401. ..B2.22:
  402. lea 48(%rsp), %rdi
  403. ..___tag_value_clog10.17:
  404. call __libm_hypot2_k64@PLT
  405. ..___tag_value_clog10.18:
  406. ..B2.23:
  407. lea 72+_CONSTANTS(%rip), %rax
  408. lea 80+_CONSTANTS(%rip), %rdx
  409. mulsd .L_2il0floatpacket.6(%rip), %xmm0
  410. lea 64(%rsp), %rdi
  411. movsd (%rax), %xmm1
  412. mulsd %xmm0, %xmm1
  413. movsd (%rdx), %xmm2
  414. mulsd %xmm0, %xmm2
  415. movsd %xmm1, -56(%rdi)
  416. movsd -16(%rdi), %xmm0
  417. movsd -8(%rdi), %xmm1
  418. movsd %xmm2, (%rsp)
  419. ..___tag_value_clog10.19:
  420. call __libm_log_k64@PLT
  421. ..___tag_value_clog10.20:
  422. ..B2.24:
  423. movsd 64(%rsp), %xmm6
  424. lea 88(%rsp), %r14
  425. movsd .L_2il0floatpacket.6(%rip), %xmm0
  426. lea 104(%rsp), %rbx
  427. mulsd %xmm0, %xmm6
  428. lea 48+_CONSTANTS(%rip), %rax
  429. movsd .L_2il0floatpacket.7(%rip), %xmm4
  430. lea 56+_CONSTANTS(%rip), %rdx
  431. movsd -32(%rbx), %xmm2
  432. movsd (%rax), %xmm5
  433. movsd -96(%rbx), %xmm9
  434. mulsd %xmm6, %xmm4
  435. movaps %xmm9, %xmm10
  436. mulsd %xmm0, %xmm2
  437. movaps %xmm4, %xmm1
  438. movsd (%rdx), %xmm3
  439. subsd %xmm6, %xmm1
  440. movaps %xmm3, %xmm8
  441. subsd %xmm1, %xmm4
  442. movaps %xmm4, %xmm7
  443. pxor %xmm1, %xmm1
  444. mulsd %xmm5, %xmm7
  445. subsd %xmm4, %xmm6
  446. mulsd %xmm3, %xmm4
  447. addsd %xmm2, %xmm6
  448. addsd %xmm7, %xmm10
  449. mulsd %xmm6, %xmm8
  450. subsd %xmm10, %xmm9
  451. mulsd %xmm5, %xmm6
  452. addsd %xmm4, %xmm8
  453. addsd %xmm7, %xmm9
  454. addsd %xmm6, %xmm8
  455. movsd -88(%rbx), %xmm0
  456. addsd %xmm8, %xmm9
  457. addsd (%rsp), %xmm9
  458. addsd %xmm9, %xmm10
  459. movsd %xmm10, -72(%rbx)
  460. jmp ..B2.29
  461. ..B2.25:
  462. movsd .L_2il0floatpacket.8(%rip), %xmm0
  463. lea 24(%rsp), %r15
  464. pxor %xmm1, %xmm1
  465. lea 88(%rsp), %r14
  466. divsd %xmm1, %xmm0
  467. movsd %xmm0, -56(%r14)
  468. lea 104(%rsp), %rbx
  469. movsd -88(%rbx), %xmm0
  470. jmp ..B2.29
  471. ..B2.26:
  472. je ..B2.51
  473. ..B2.27:
  474. cmpl $2047, %eax
  475. je ..B2.44
  476. ..B2.28:
  477. lea 32+_CONSTANTS(%rip), %rax
  478. lea 24(%rsp), %r15
  479. pxor %xmm1, %xmm1
  480. lea 88(%rsp), %r14
  481. lea 104(%rsp), %rbx
  482. movsd (%rax), %xmm0
  483. mulsd %xmm0, %xmm0
  484. movsd %xmm0, -72(%rbx)
  485. movsd -88(%rbx), %xmm0
  486. ..B2.29:
  487. movq (%r15), %rax
  488. lea (%rsp), %rdi
  489. movq %rax, 80(%rdi)
  490. lea 80(%rsp), %rsi
  491. movsd %xmm1, (%r14)
  492. lea 96(%rsp), %rdx
  493. movsd %xmm0, (%rdx)
  494. movsd %xmm1, (%rbx)
  495. ..___tag_value_clog10.21:
  496. call __libm_atan2_k64@PLT
  497. ..___tag_value_clog10.22:
  498. ..B2.61:
  499. movl %eax, %edi
  500. ..B2.30:
  501. movzwl 6(%rsp), %eax
  502. andl $32752, %eax
  503. cmpl $32752, %eax
  504. jl ..B2.32
  505. ..B2.31:
  506. movq (%rsp), %rax
  507. movq %rax, 40(%rsp)
  508. jmp ..B2.33
  509. ..B2.32:
  510. movsd (%rsp), %xmm2
  511. lea 48+_CONSTANTS(%rip), %rax
  512. movsd .L_2il0floatpacket.7(%rip), %xmm1
  513. lea 56+_CONSTANTS(%rip), %rcx
  514. mulsd %xmm2, %xmm1
  515. movaps %xmm1, %xmm0
  516. movq (%rax), %rdx
  517. subsd %xmm2, %xmm0
  518. movq (%rcx), %rsi
  519. lea 40(%rsp), %rcx
  520. movq %rdx, 56(%rcx)
  521. lea 96(%rsp), %rdx
  522. movq %rsi, (%rbx)
  523. lea 80(%rsp), %rsi
  524. subsd %xmm0, %xmm1
  525. movsd %xmm1, -16(%rdx)
  526. subsd %xmm1, %xmm2
  527. addsd -88(%rdx), %xmm2
  528. movsd %xmm2, (%r14)
  529. ..___tag_value_clog10.23:
  530. call __libm_mul_k64@PLT
  531. ..___tag_value_clog10.24:
  532. ..B2.33:
  533. movq 112(%rsp), %rax
  534. xorq %rsp, %rax
  535. movsd 32(%rsp), %xmm0
  536. movsd 40(%rsp), %xmm1
  537. cmpq %fs:40, %rax
  538. jne ..B2.43
  539. ..B2.34:
  540. addq $128, %rsp
  541. .cfi_def_cfa_offset 32
  542. .cfi_restore 3
  543. popq %rbx
  544. .cfi_def_cfa_offset 24
  545. .cfi_restore 15
  546. popq %r15
  547. .cfi_def_cfa_offset 16
  548. .cfi_restore 14
  549. popq %r14
  550. .cfi_def_cfa_offset 8
  551. ret
  552. .cfi_def_cfa_offset 160
  553. .cfi_offset 3, -32
  554. .cfi_offset 14, -16
  555. .cfi_offset 15, -24
  556. ..B2.35:
  557. testl $1048575, 4(%rsp)
  558. jne ..B2.21
  559. ..B2.36:
  560. cmpl $0, (%rsp)
  561. jne ..B2.21
  562. ..B2.37:
  563. testl %edx, %edx
  564. jne ..B2.41
  565. ..B2.38:
  566. testl $1048575, 12(%rsp)
  567. jne ..B2.41
  568. ..B2.39:
  569. cmpl $0, 8(%rsp)
  570. jne ..B2.41
  571. ..B2.40:
  572. lea 88(%rsp), %r14
  573. pxor %xmm1, %xmm1
  574. lea 104(%rsp), %rbx
  575. movsd %xmm1, -72(%rbx)
  576. jmp ..B2.29
  577. ..B2.41:
  578. lea 64+_CONSTANTS(%rip), %r14
  579. lea 48+_CONSTANTS(%rip), %r8
  580. movsd .L_2il0floatpacket.7(%rip), %xmm5
  581. lea 56+_CONSTANTS(%rip), %r10
  582. movaps %xmm5, %xmm2
  583. lea 80(%rsp), %rsi
  584. lea 96(%rsp), %rdx
  585. mulsd (%r14), %xmm11
  586. lea 88(%rsp), %r14
  587. movsd %xmm11, -88(%rdx)
  588. lea 32(%rsp), %rcx
  589. movzwl -82(%rdx), %eax
  590. movl %eax, %ebx
  591. andl $-32753, %eax
  592. andl $32752, %ebx
  593. orl $-49168, %eax
  594. movw %ax, -82(%rdx)
  595. movsd -88(%rdx), %xmm1
  596. mulsd %xmm1, %xmm2
  597. movaps %xmm2, %xmm0
  598. shrl $4, %ebx
  599. subsd %xmm1, %xmm0
  600. movq (%r8), %r9
  601. lea -2447(%rbx,%rbx), %edi
  602. movq (%r10), %r11
  603. lea 104(%rsp), %rbx
  604. movq %r9, (%rdx)
  605. subsd %xmm0, %xmm2
  606. movaps %xmm2, %xmm6
  607. subsd %xmm2, %xmm1
  608. mulsd %xmm2, %xmm6
  609. mulsd %xmm1, %xmm2
  610. mulsd %xmm6, %xmm5
  611. mulsd .L_2il0floatpacket.9(%rip), %xmm2
  612. movaps %xmm5, %xmm3
  613. movaps %xmm1, %xmm4
  614. mulsd %xmm1, %xmm4
  615. subsd %xmm6, %xmm3
  616. movq %r11, (%rbx)
  617. subsd %xmm3, %xmm5
  618. addsd %xmm2, %xmm4
  619. subsd %xmm5, %xmm6
  620. movsd %xmm5, -16(%rdx)
  621. addsd %xmm4, %xmm6
  622. movsd %xmm6, (%r14)
  623. ..___tag_value_clog10.36:
  624. call __libm_mul_k64@PLT
  625. ..___tag_value_clog10.37:
  626. ..B2.42:
  627. movsd 16(%rsp), %xmm0
  628. pxor %xmm1, %xmm1
  629. jmp ..B2.29
  630. ..B2.43:
  631. call __stack_chk_fail@PLT
  632. ..B2.44:
  633. testl $1048575, 28(%rsp)
  634. jne ..B2.46
  635. ..B2.45:
  636. cmpl $0, 24(%rsp)
  637. je ..B2.28
  638. ..B2.46:
  639. cmpl $2047, %edx
  640. jne ..B2.57
  641. ..B2.48:
  642. testl $1048575, 20(%rsp)
  643. jne ..B2.57
  644. ..B2.49:
  645. cmpl $0, 16(%rsp)
  646. jne ..B2.57
  647. ..B2.50:
  648. movsd 16(%rsp), %xmm0
  649. lea 24(%rsp), %r15
  650. movaps %xmm0, %xmm1
  651. lea 88(%rsp), %r14
  652. mulsd %xmm0, %xmm1
  653. lea 104(%rsp), %rbx
  654. movsd %xmm1, -72(%rbx)
  655. pxor %xmm1, %xmm1
  656. jmp ..B2.29
  657. ..B2.51:
  658. testl $1048575, 20(%rsp)
  659. jne ..B2.53
  660. ..B2.52:
  661. cmpl $0, 16(%rsp)
  662. je ..B2.27
  663. ..B2.53:
  664. cmpl $2047, %eax
  665. je ..B2.55
  666. ..B2.54:
  667. movsd 16(%rsp), %xmm0
  668. lea 24(%rsp), %r15
  669. movsd (%r15), %xmm1
  670. lea 88(%rsp), %r14
  671. mulsd %xmm0, %xmm1
  672. lea 104(%rsp), %rbx
  673. movsd %xmm1, -72(%rbx)
  674. pxor %xmm1, %xmm1
  675. jmp ..B2.29
  676. ..B2.55:
  677. testl $1048575, 28(%rsp)
  678. jne ..B2.54
  679. ..B2.56:
  680. cmpl $0, 24(%rsp)
  681. jne ..B2.54
  682. ..B2.57:
  683. lea 24(%rsp), %r15
  684. movsd (%r15), %xmm0
  685. lea 88(%rsp), %r14
  686. mulsd %xmm0, %xmm0
  687. pxor %xmm1, %xmm1
  688. movsd %xmm0, -56(%r14)
  689. lea 104(%rsp), %rbx
  690. movsd -88(%rbx), %xmm0
  691. jmp ..B2.29
  692. ..B2.62:
  693. cmpl $2047, %edx
  694. je ..B2.51
  695. jmp ..B2.27
  696. .align 16,0x90
  697. .cfi_endproc
  698. .type clog10,@function
  699. .size clog10,.-clog10
  700. .data
  701. # -- End clog10
  702. .section .rodata, "a"
  703. .align 16
  704. .align 16
  705. .L_2il0floatpacket.10:
  706. .long 0xffffffff,0x7fffffff,0x00000000,0x00000000
  707. .type .L_2il0floatpacket.10,@object
  708. .size .L_2il0floatpacket.10,16
  709. .align 16
  710. _CONSTANTS:
  711. .long 0
  712. .long 1065353216
  713. .long 1818952144
  714. .long 1072073202
  715. .long 133565931
  716. .long 1072697336
  717. .long 0
  718. .long 592445440
  719. .long 0
  720. .long 2146435072
  721. .long 0
  722. .long 1048576
  723. .long 402653184
  724. .long 1071369083
  725. .long 2389363364
  726. .long 3190212823
  727. .long 0
  728. .long 1282408448
  729. .long 1342177280
  730. .long 1070810131
  731. .long 3730980389
  732. .long 1040445247
  733. .type _CONSTANTS,@object
  734. .size _CONSTANTS,88
  735. .space 8, 0x00 # pad
  736. .align 16
  737. _Q1:
  738. .long 0
  739. .long 3219128320
  740. .long 1431655765
  741. .long 1070945621
  742. .long 193
  743. .long 3218079744
  744. .long 2576980913
  745. .long 1070176665
  746. .long 1408920289
  747. .long 3217380693
  748. .long 2428535925
  749. .long 1069697316
  750. .long 1830244366
  751. .long 3217031283
  752. .long 3038314627
  753. .long 1069314732
  754. .type _Q1,@object
  755. .size _Q1,64
  756. .align 8
  757. .L_2il0floatpacket.6:
  758. .long 0x00000000,0x3fe00000
  759. .type .L_2il0floatpacket.6,@object
  760. .size .L_2il0floatpacket.6,8
  761. .align 8
  762. .L_2il0floatpacket.7:
  763. .long 0x02000000,0x41a00000
  764. .type .L_2il0floatpacket.7,@object
  765. .size .L_2il0floatpacket.7,8
  766. .align 8
  767. .L_2il0floatpacket.8:
  768. .long 0x00000000,0xbff00000
  769. .type .L_2il0floatpacket.8,@object
  770. .size .L_2il0floatpacket.8,8
  771. .align 8
  772. .L_2il0floatpacket.9:
  773. .long 0x00000000,0x40000000
  774. .type .L_2il0floatpacket.9,@object
  775. .size .L_2il0floatpacket.9,8
  776. .align 8
  777. .L_2il0floatpacket.11:
  778. .long 0x00000000,0x3ff00000
  779. .type .L_2il0floatpacket.11,@object
  780. .size .L_2il0floatpacket.11,8
  781. .data
  782. .section .note.GNU-stack, ""
  783. // -- Begin DWARF2 SEGMENT .eh_frame
  784. .section .eh_frame,"a",@progbits
  785. .eh_frame_seg:
  786. .align 1
  787. # End