sinhf_wmt.S 11 KB

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