dpml_ux_log.S 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  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_log.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin __dpml_ux_log_poly__
  41. .text
  42. .align 16,0x90
  43. .globl __dpml_ux_log_poly__
  44. __dpml_ux_log_poly__:
  45. # parameter 1: %rdi
  46. # parameter 2: %rsi
  47. ..B1.1:
  48. .cfi_startproc
  49. ..___tag_value___dpml_ux_log_poly__.1:
  50. ..L2:
  51. pushq %r13
  52. .cfi_def_cfa_offset 16
  53. .cfi_offset 13, -16
  54. movq %rsi, %r13
  55. lea 128+__log_x_table(%rip), %rsi
  56. movl $17, %edx
  57. movl $6, %ecx
  58. movq %r13, %r8
  59. ..___tag_value___dpml_ux_log_poly__.5:
  60. call __dpml_evaluate_rational__@PLT
  61. ..___tag_value___dpml_ux_log_poly__.6:
  62. ..B1.2:
  63. movq %r13, %rdi
  64. lea 472+__log_x_table(%rip), %rsi
  65. movq %r13, %rdx
  66. .cfi_restore 13
  67. popq %r13
  68. .cfi_def_cfa_offset 8
  69. jmp __dpml_multiply__@PLT
  70. .align 16,0x90
  71. .cfi_endproc
  72. .type __dpml_ux_log_poly__,@function
  73. .size __dpml_ux_log_poly__,.-__dpml_ux_log_poly__
  74. .data
  75. # -- End __dpml_ux_log_poly__
  76. .text
  77. # -- Begin __dpml_ux_log__
  78. .text
  79. .align 16,0x90
  80. .globl __dpml_ux_log__
  81. __dpml_ux_log__:
  82. # parameter 1: %rdi
  83. # parameter 2: %rsi
  84. # parameter 3: %rdx
  85. ..B2.1:
  86. .cfi_startproc
  87. ..___tag_value___dpml_ux_log__.10:
  88. ..L11:
  89. pushq %r13
  90. .cfi_def_cfa_offset 16
  91. .cfi_offset 13, -16
  92. pushq %r14
  93. .cfi_def_cfa_offset 24
  94. .cfi_offset 14, -24
  95. pushq %r15
  96. .cfi_def_cfa_offset 32
  97. .cfi_offset 15, -32
  98. pushq %rbx
  99. .cfi_def_cfa_offset 40
  100. .cfi_offset 3, -40
  101. subq $56, %rsp
  102. .cfi_def_cfa_offset 96
  103. movq %rdi, %r13
  104. lea 112+__log_x_table(%rip), %r8
  105. movq %rdx, %r15
  106. movq %rsi, %r14
  107. lea 424+__log_x_table(%rip), %rsi
  108. movl $6, %edx
  109. lea (%rsp), %rcx
  110. movl 4(%r13), %r10d
  111. movq (%r8), %r9
  112. cmpq 8(%r13), %r9
  113. movq %fs:40, %rax
  114. lea -1(%r10), %ebx
  115. adcl $0, %ebx
  116. xorq %rsp, %rax
  117. movq %rax, 48(%rcx)
  118. subl %ebx, %r10d
  119. movl %r10d, 4(%r13)
  120. ..___tag_value___dpml_ux_log__.21:
  121. call __dpml_addsub__@PLT
  122. ..___tag_value___dpml_ux_log__.22:
  123. ..B2.2:
  124. movl $2, %edx
  125. lea 24(%rsp), %rdi
  126. movq %r15, %rcx
  127. lea (%rsp), %rsi
  128. addl %ebx, 4(%r13)
  129. ..___tag_value___dpml_ux_log__.23:
  130. call __dpml_divide__@PLT
  131. ..___tag_value___dpml_ux_log__.24:
  132. ..B2.3:
  133. movq %r15, %rdi
  134. lea 128+__log_x_table(%rip), %rsi
  135. movl $17, %edx
  136. movl $6, %ecx
  137. lea (%rsp), %r8
  138. ..___tag_value___dpml_ux_log__.25:
  139. call __dpml_evaluate_rational__@PLT
  140. ..___tag_value___dpml_ux_log__.26:
  141. ..B2.4:
  142. movq %r15, %rdi
  143. movl $1, %esi
  144. movslq %ebx, %rbx
  145. movq %rbx, 8(%r15)
  146. ..___tag_value___dpml_ux_log__.27:
  147. call __dpml_ffs_and_shift__@PLT
  148. ..___tag_value___dpml_ux_log__.28:
  149. ..B2.5:
  150. movq %r15, %rdi
  151. lea (%rsp), %rsi
  152. movl $8, %edx
  153. movq %r15, %rcx
  154. ..___tag_value___dpml_ux_log__.29:
  155. call __dpml_addsub__@PLT
  156. ..___tag_value___dpml_ux_log__.30:
  157. ..B2.6:
  158. testq %r14, %r14
  159. je ..B2.8
  160. ..B2.7:
  161. movq %r15, %rdi
  162. movq %r14, %rsi
  163. movq %r15, %rdx
  164. ..___tag_value___dpml_ux_log__.31:
  165. call __dpml_multiply__@PLT
  166. ..___tag_value___dpml_ux_log__.32:
  167. ..B2.8:
  168. xorl %edx, %edx
  169. movl $1, %eax
  170. xorl %ecx, %ecx
  171. cmpl $-262144, 28(%rsp)
  172. movq 48(%rsp), %rbx
  173. cmovne %eax, %ecx
  174. testq %r14, %r14
  175. cmovne %eax, %edx
  176. xorq %rsp, %rbx
  177. orl %edx, %ecx
  178. cmpq %fs:40, %rbx
  179. jne ..B2.10
  180. ..B2.9:
  181. movq %rcx, %rax
  182. addq $56, %rsp
  183. .cfi_def_cfa_offset 40
  184. .cfi_restore 3
  185. popq %rbx
  186. .cfi_def_cfa_offset 32
  187. .cfi_restore 15
  188. popq %r15
  189. .cfi_def_cfa_offset 24
  190. .cfi_restore 14
  191. popq %r14
  192. .cfi_def_cfa_offset 16
  193. .cfi_restore 13
  194. popq %r13
  195. .cfi_def_cfa_offset 8
  196. ret
  197. .cfi_def_cfa_offset 96
  198. .cfi_offset 3, -40
  199. .cfi_offset 13, -16
  200. .cfi_offset 14, -24
  201. .cfi_offset 15, -32
  202. ..B2.10:
  203. call __stack_chk_fail@PLT
  204. .align 16,0x90
  205. .cfi_endproc
  206. .type __dpml_ux_log__,@function
  207. .size __dpml_ux_log__,.-__dpml_ux_log__
  208. .data
  209. # -- End __dpml_ux_log__
  210. .section .rodata, "a"
  211. .align 16
  212. .align 16
  213. __log_x_table:
  214. .long 1088750600
  215. .long 519758862
  216. .long 58
  217. .long 0
  218. .long 59
  219. .long 0
  220. .long 60
  221. .long 0
  222. .long 1088750600
  223. .long 519758862
  224. .long 61
  225. .long 0
  226. .long 62
  227. .long 0
  228. .long 63
  229. .long 0
  230. .long 1088750600
  231. .long 519758862
  232. .long 64
  233. .long 0
  234. .long 65
  235. .long 0
  236. .long 66
  237. .long 0
  238. .long 15008776
  239. .long 336609536
  240. .long 58
  241. .long 0
  242. .long 4192101508
  243. .long 3037000499
  244. .long 4243534402
  245. .long 1518500249
  246. .long 1261892956
  247. .long 1305769775
  248. .long 706307789
  249. .long 114052365
  250. .long 2125978754
  251. .long 1401519948
  252. .long 2628436525
  253. .long 90640697
  254. .long 1075745124
  255. .long 4046945230
  256. .long 850547722
  257. .long 100185346
  258. .long 3858047057
  259. .long 2069326047
  260. .long 3415016796
  261. .long 106820841
  262. .long 196219186
  263. .long 3461778520
  264. .long 1283971156
  265. .long 114747264
  266. .long 133398994
  267. .long 3894487089
  268. .long 1548005786
  269. .long 123926548
  270. .long 4002430868
  271. .long 3905024888
  272. .long 1104860464
  273. .long 134702783
  274. .long 1396868873
  275. .long 2152947579
  276. .long 2102985887
  277. .long 147531619
  278. .long 361329122
  279. .long 2531697111
  280. .long 2794113080
  281. .long 163061263
  282. .long 2117398987
  283. .long 2352680084
  284. .long 3122626672
  285. .long 182244941
  286. .long 299366278
  287. .long 2801833386
  288. .long 1248329477
  289. .long 206544267
  290. .long 99864504
  291. .long 1693623838
  292. .long 1770762254
  293. .long 238320308
  294. .long 959885721
  295. .long 1462617677
  296. .long 2483170600
  297. .long 281651273
  298. .long 2353710846
  299. .long 1786830293
  300. .long 2080549112
  301. .long 344240445
  302. .long 2781107612
  303. .long 1683788319
  304. .long 2061424959
  305. .long 442594858
  306. .long 2924123738
  307. .long 1498310185
  308. .long 3744988402
  309. .long 619632801
  310. .long 2019498699
  311. .long 1065527877
  312. .long 1946680041
  313. .long 1032721336
  314. .long 1763524233
  315. .long 3196583632
  316. .long 1545072827
  317. .long 3098164009
  318. .long 2
  319. .long 0
  320. .long 0
  321. .long 1
  322. .long 0
  323. .long 2147483648
  324. .long 0
  325. .long 0
  326. .long 0
  327. .long 2
  328. .long 0
  329. .long 2147483648
  330. .long 0
  331. .long 0
  332. .long 0
  333. .long 0
  334. .long 3520035243
  335. .long 2977044471
  336. .long 66254511
  337. .long 3387143064
  338. .long 0
  339. .long 4294967295
  340. .long 4224710552
  341. .long 2585827972
  342. .long 192713080
  343. .long 2408143276
  344. .long 0
  345. .long 0
  346. .type __log_x_table,@object
  347. .size __log_x_table,528
  348. .data
  349. .section .note.GNU-stack, ""
  350. // -- Begin DWARF2 SEGMENT .eh_frame
  351. .section .eh_frame,"a",@progbits
  352. .eh_frame_seg:
  353. .align 1
  354. # End