coshf_wmt.S 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  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 "coshf_wmt.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin static_func
  41. .text
  42. .align 16,0x90
  43. static_func:
  44. ..B1.1:
  45. ..L1:
  46. call ..L2
  47. ..L2:
  48. popl %eax
  49. lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
  50. lea static_const_table@GOTOFF(%eax), %eax
  51. ret
  52. .align 16,0x90
  53. .type static_func,@function
  54. .size static_func,.-static_func
  55. .data
  56. # -- End static_func
  57. .text
  58. # -- Begin coshf
  59. .text
  60. .align 16,0x90
  61. .globl coshf
  62. coshf:
  63. # parameter 1: 8 + %ebp
  64. ..B2.1:
  65. ..L3:
  66. ..B2.2:
  67. pushl %ebp
  68. movl %esp, %ebp
  69. subl $104, %esp
  70. movl %ebx, 48(%esp)
  71. call static_func
  72. movl %eax, %ebx
  73. movss 112(%esp), %xmm0
  74. movsd 608(%ebx), %xmm3
  75. movsd 512(%ebx), %xmm6
  76. movss %xmm0, 8(%esp)
  77. movd %xmm0, %ecx
  78. psllq $33, %xmm0
  79. psrlq $4, %xmm0
  80. movapd 528(%ebx), %xmm4
  81. andl $2147418112, %ecx
  82. subl $1040187392, %ecx
  83. cmpl $79691776, %ecx
  84. jae .L_2TAG_PACKET_0.0.3
  85. mulsd %xmm0, %xmm3
  86. movapd %xmm3, %xmm2
  87. addsd %xmm6, %xmm3
  88. xorpd %xmm0, %xmm0
  89. movd %xmm3, %eax
  90. subsd %xmm6, %xmm3
  91. movapd 544(%ebx), %xmm1
  92. xorpd %xmm5, %xmm5
  93. subsd %xmm3, %xmm2
  94. movl $31, %edx
  95. andl %eax, %edx
  96. shrl $1, %eax
  97. addl %edx, %edx
  98. andl $65520, %eax
  99. addl $16352, %eax
  100. cmpl $71303168, %ecx
  101. jae .L_2TAG_PACKET_1.0.3
  102. pinsrw $3, %eax, %xmm0
  103. movl $32704, %ecx
  104. subl %eax, %ecx
  105. movapd 560(%ebx), %xmm3
  106. movapd (%ebx,%edx,8), %xmm7
  107. pinsrw $3, %ecx, %xmm5
  108. pshufd $68, %xmm2, %xmm2
  109. shufpd $0, %xmm5, %xmm0
  110. movapd 576(%ebx), %xmm6
  111. mulpd %xmm2, %xmm4
  112. mulpd %xmm2, %xmm1
  113. mulpd %xmm2, %xmm3
  114. mulpd %xmm7, %xmm0
  115. mulpd %xmm2, %xmm4
  116. addpd %xmm1, %xmm6
  117. mulpd %xmm0, %xmm3
  118. addpd %xmm6, %xmm4
  119. mulpd %xmm3, %xmm4
  120. addpd %xmm4, %xmm0
  121. pshufd $78, %xmm0, %xmm4
  122. addpd %xmm4, %xmm0
  123. movsd %xmm0, (%esp)
  124. fldl (%esp)
  125. jmp .L_2TAG_PACKET_2.0.3
  126. .L_2TAG_PACKET_0.0.3:
  127. addl $1040187392, %ecx
  128. cmpl $1040187392, %ecx
  129. ja .L_2TAG_PACKET_3.0.3
  130. cmpl $956301312, %ecx
  131. jae .L_2TAG_PACKET_4.0.3
  132. movss 592(%ebx), %xmm3
  133. mulss %xmm3, %xmm3
  134. fld1
  135. jmp .L_2TAG_PACKET_2.0.3
  136. .L_2TAG_PACKET_1.0.3:
  137. pinsrw $3, %eax, %xmm0
  138. movsd 560(%ebx), %xmm3
  139. pshufd $68, %xmm2, %xmm2
  140. mulsd (%ebx,%edx,8), %xmm0
  141. mulsd %xmm2, %xmm4
  142. mulsd %xmm2, %xmm3
  143. addsd %xmm1, %xmm4
  144. mulsd %xmm2, %xmm4
  145. mulsd %xmm3, %xmm4
  146. addsd %xmm3, %xmm4
  147. mulsd %xmm0, %xmm4
  148. addsd %xmm4, %xmm0
  149. cvtsd2ss %xmm0, %xmm0
  150. pextrw $1, %xmm0, %eax
  151. andl $32640, %eax
  152. movl $65, %edx
  153. cmpl $32640, %eax
  154. je .L_2TAG_PACKET_5.0.3
  155. movss %xmm0, (%esp)
  156. flds (%esp)
  157. jmp .L_2TAG_PACKET_2.0.3
  158. .L_2TAG_PACKET_4.0.3:
  159. movss 592(%ebx), %xmm7
  160. movss 8(%esp), %xmm1
  161. mulss %xmm1, %xmm1
  162. movss 596(%ebx), %xmm2
  163. movl $1056964608, %eax
  164. movd %eax, %xmm3
  165. movss %xmm1, %xmm0
  166. mulss %xmm1, %xmm7
  167. movl $1065353216, %edx
  168. movd %edx, %xmm6
  169. mulss %xmm1, %xmm1
  170. addss %xmm2, %xmm7
  171. mulps %xmm1, %xmm7
  172. mulss %xmm3, %xmm0
  173. addss %xmm7, %xmm0
  174. addss %xmm6, %xmm0
  175. movss %xmm0, (%esp)
  176. flds (%esp)
  177. jmp .L_2TAG_PACKET_2.0.3
  178. .L_2TAG_PACKET_3.0.3:
  179. cmpl $2139095040, %ecx
  180. jae .L_2TAG_PACKET_6.0.3
  181. xorps %xmm0, %xmm0
  182. movl $32512, %eax
  183. pinsrw $1, %eax, %xmm0
  184. mulss %xmm0, %xmm0
  185. .L_2TAG_PACKET_5.0.3:
  186. movss %xmm0, (%esp)
  187. subl $32, %esp
  188. lea 112(%esp), %eax
  189. movl %eax, (%esp)
  190. lea 112(%esp), %eax
  191. movl %eax, 4(%esp)
  192. lea 32(%esp), %eax
  193. movl %eax, 8(%esp)
  194. movl $65, %eax
  195. movl %eax, 12(%esp)
  196. call __libm_error_support
  197. addl $32, %esp
  198. flds (%esp)
  199. jmp .L_2TAG_PACKET_2.0.3
  200. .L_2TAG_PACKET_6.0.3:
  201. movss 8(%esp), %xmm0
  202. mulss %xmm0, %xmm0
  203. .L_2TAG_PACKET_7.0.3:
  204. movss %xmm0, (%esp)
  205. flds (%esp)
  206. .L_2TAG_PACKET_2.0.3:
  207. movl 48(%esp), %ebx
  208. movl %ebp, %esp
  209. popl %ebp
  210. ret
  211. ..B2.3:
  212. .align 16,0x90
  213. .type coshf,@function
  214. .size coshf,.-coshf
  215. .data
  216. # -- End coshf
  217. .text
  218. # -- Begin __libm_error_support
  219. .text
  220. .align 16,0x90
  221. __libm_error_support:
  222. # parameter 1: 4 + %esp
  223. # parameter 2: 8 + %esp
  224. # parameter 3: 12 + %esp
  225. # parameter 4: 16 + %esp
  226. ..B3.1:
  227. ..L4:
  228. ret
  229. .align 16,0x90
  230. .type __libm_error_support,@function
  231. .size __libm_error_support,.-__libm_error_support
  232. .data
  233. # -- End __libm_error_support
  234. .section .rodata, "a"
  235. .align 16
  236. .align 16
  237. static_const_table:
  238. .long 0
  239. .long 1072693248
  240. .long 0
  241. .long 1072693248
  242. .long 3541402996
  243. .long 1072716208
  244. .long 1533953344
  245. .long 1072648310
  246. .long 1828292879
  247. .long 1072739672
  248. .long 2728693978
  249. .long 1072604335
  250. .long 3490863953
  251. .long 1072763649
  252. .long 863738719
  253. .long 1072561303
  254. .long 1014845819
  255. .long 1072788152
  256. .long 3707479175
  257. .long 1072519192
  258. .long 828946858
  259. .long 1072813191
  260. .long 3706687593
  261. .long 1072477984
  262. .long 1853186616
  263. .long 1072838778
  264. .long 3716502172
  265. .long 1072437659
  266. .long 4112506593
  267. .long 1072864925
  268. .long 4076559943
  269. .long 1072398198
  270. .long 171030293
  271. .long 1072891646
  272. .long 2572866477
  273. .long 1072359583
  274. .long 926591435
  275. .long 1072918951
  276. .long 2990417245
  277. .long 1072321795
  278. .long 1276261410
  279. .long 1072946854
  280. .long 2191782032
  281. .long 1072284817
  282. .long 1617004845
  283. .long 1072975368
  284. .long 2966275557
  285. .long 1072248631
  286. .long 3577096743
  287. .long 1073004506
  288. .long 1110089947
  289. .long 1072213221
  290. .long 1453150082
  291. .long 1073034283
  292. .long 2571947539
  293. .long 1072178569
  294. .long 3712504873
  295. .long 1073064711
  296. .long 1944781191
  297. .long 1072144660
  298. .long 2956612997
  299. .long 1073095806
  300. .long 3907805044
  301. .long 1072111477
  302. .long 1719614413
  303. .long 1073127582
  304. .long 1719614413
  305. .long 1072079006
  306. .long 3907805044
  307. .long 1073160053
  308. .long 2956612997
  309. .long 1072047230
  310. .long 1944781191
  311. .long 1073193236
  312. .long 3712504873
  313. .long 1072016135
  314. .long 2571947539
  315. .long 1073227145
  316. .long 1453150082
  317. .long 1071985707
  318. .long 1110089947
  319. .long 1073261797
  320. .long 3577096743
  321. .long 1071955930
  322. .long 2966275557
  323. .long 1073297207
  324. .long 1617004845
  325. .long 1071926792
  326. .long 2191782032
  327. .long 1073333393
  328. .long 1276261410
  329. .long 1071898278
  330. .long 2990417245
  331. .long 1073370371
  332. .long 926591435
  333. .long 1071870375
  334. .long 2572866477
  335. .long 1073408159
  336. .long 171030293
  337. .long 1071843070
  338. .long 4076559943
  339. .long 1073446774
  340. .long 4112506593
  341. .long 1071816349
  342. .long 3716502172
  343. .long 1073486235
  344. .long 1853186616
  345. .long 1071790202
  346. .long 3706687593
  347. .long 1073526560
  348. .long 828946858
  349. .long 1071764615
  350. .long 3707479175
  351. .long 1073567768
  352. .long 1014845819
  353. .long 1071739576
  354. .long 863738719
  355. .long 1073609879
  356. .long 3490863953
  357. .long 1071715073
  358. .long 2728693978
  359. .long 1073652911
  360. .long 1828292879
  361. .long 1071691096
  362. .long 1533953344
  363. .long 1073696886
  364. .long 3541402996
  365. .long 1071667632
  366. .long 0
  367. .long 1127743488
  368. .long 0
  369. .long 3275227136
  370. .long 4289495988
  371. .long 1058308051
  372. .long 4289495988
  373. .long 1058308051
  374. .long 4277811695
  375. .long 1065758274
  376. .long 4277811695
  377. .long 3213241922
  378. .long 4277811695
  379. .long 1066806850
  380. .long 4277811695
  381. .long 3214290498
  382. .long 0
  383. .long 1072693248
  384. .long 0
  385. .long 1072693248
  386. .long 985008993
  387. .long 1026206379
  388. .long 0
  389. .long 0
  390. .long 1697350398
  391. .long 2017924423
  392. .long 0
  393. .long 0
  394. .long 0
  395. .long 1072693248
  396. .long 0
  397. .long 0
  398. .type static_const_table,@object
  399. .size static_const_table,640
  400. .data
  401. .section .note.GNU-stack, ""
  402. # End