asinf_wmt.S 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514
  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 "asinf_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 asinf
  59. .text
  60. .align 16,0x90
  61. .globl asinf
  62. asinf:
  63. # parameter 1: 8 + %ebp
  64. # parameter 2: 12 + %ebp
  65. ..B2.1:
  66. ..L3:
  67. ..B2.2:
  68. pushl %ebp
  69. movl %esp, %ebp
  70. subl $104, %esp
  71. movl %ebx, 40(%esp)
  72. call static_func
  73. movl %eax, %ebx
  74. movss 112(%esp), %xmm0
  75. cvtps2pd %xmm0, %xmm1
  76. movd %xmm0, %eax
  77. movsd 1040(%ebx), %xmm3
  78. movl $2139095040, %ecx
  79. movl $8388608, %edx
  80. andl %eax, %ecx
  81. subl $1015021568, %ecx
  82. cmpl $50331648, %ecx
  83. jae .L_2TAG_PACKET_0.0.3
  84. mulsd %xmm1, %xmm1
  85. cvtps2pd %xmm0, %xmm2
  86. shrl $23, %ecx
  87. addl $1, %ecx
  88. shrl %cl, %edx
  89. subsd %xmm1, %xmm3
  90. orl %edx, %eax
  91. negl %edx
  92. andl %edx, %eax
  93. movd %eax, %xmm4
  94. sqrtsd %xmm3, %xmm3
  95. addl %edx, %edx
  96. andl $16777215, %edx
  97. andl %edx, %eax
  98. negl %ecx
  99. addl $24, %ecx
  100. orl $8388608, %eax
  101. shrl %cl, %eax
  102. addl %eax, %eax
  103. movsd (%ebx,%eax,8), %xmm5
  104. psrlq $31, %xmm0
  105. movsd 8(%ebx,%eax,8), %xmm1
  106. psllq $63, %xmm0
  107. cvtps2pd %xmm4, %xmm4
  108. mulsd %xmm5, %xmm2
  109. orpd %xmm1, %xmm0
  110. movsd 1056(%ebx), %xmm5
  111. movsd 1072(%ebx), %xmm1
  112. mulsd %xmm3, %xmm4
  113. movsd 1088(%ebx), %xmm3
  114. subsd %xmm4, %xmm2
  115. pshufd $68, %xmm2, %xmm4
  116. mulsd %xmm2, %xmm2
  117. mulsd %xmm4, %xmm5
  118. mulsd %xmm4, %xmm1
  119. mulsd %xmm4, %xmm3
  120. mulsd %xmm2, %xmm5
  121. mulsd %xmm2, %xmm1
  122. mulsd %xmm2, %xmm2
  123. addsd %xmm5, %xmm3
  124. addsd %xmm1, %xmm4
  125. mulsd %xmm3, %xmm2
  126. addsd %xmm4, %xmm0
  127. addsd %xmm2, %xmm0
  128. movsd %xmm0, (%esp)
  129. fldl (%esp)
  130. jmp .L_2TAG_PACKET_1.0.3
  131. .L_2TAG_PACKET_0.0.3:
  132. jge .L_2TAG_PACKET_2.0.3
  133. addl $1015021568, %ecx
  134. cmpl $964689920, %ecx
  135. jb .L_2TAG_PACKET_3.0.3
  136. movsd 1072(%ebx), %xmm2
  137. movapd %xmm1, %xmm0
  138. movsd 1088(%ebx), %xmm3
  139. mulsd %xmm1, %xmm1
  140. mulsd %xmm1, %xmm2
  141. mulsd %xmm1, %xmm1
  142. mulsd %xmm0, %xmm3
  143. mulsd %xmm0, %xmm2
  144. mulsd %xmm3, %xmm1
  145. addsd %xmm2, %xmm0
  146. addsd %xmm0, %xmm1
  147. cvtpd2ps %xmm1, %xmm0
  148. movss %xmm0, (%esp)
  149. flds (%esp)
  150. jmp .L_2TAG_PACKET_1.0.3
  151. .L_2TAG_PACKET_3.0.3:
  152. movsd 1104(%ebx), %xmm5
  153. mulsd %xmm5, %xmm1
  154. cvtpd2ps %xmm1, %xmm0
  155. movss %xmm0, (%esp)
  156. flds (%esp)
  157. jmp .L_2TAG_PACKET_1.0.3
  158. .L_2TAG_PACKET_2.0.3:
  159. addl %eax, %eax
  160. cmpl $2130706432, %eax
  161. jne .L_2TAG_PACKET_4.0.3
  162. movapd 1024(%ebx), %xmm0
  163. psrlq $63, %xmm1
  164. psllq $63, %xmm1
  165. orpd %xmm1, %xmm0
  166. cvtpd2ps %xmm0, %xmm0
  167. movss %xmm0, (%esp)
  168. flds (%esp)
  169. jmp .L_2TAG_PACKET_1.0.3
  170. .L_2TAG_PACKET_4.0.3:
  171. cmpl $-16777216, %eax
  172. ja .L_2TAG_PACKET_5.0.3
  173. xorps %xmm0, %xmm0
  174. movl $2139095040, %edx
  175. movd %edx, %xmm1
  176. mulss %xmm1, %xmm0
  177. movss %xmm0, (%esp)
  178. subl $32, %esp
  179. lea 112(%esp), %eax
  180. movl %eax, (%esp)
  181. lea 112(%esp), %eax
  182. movl %eax, 4(%esp)
  183. lea 32(%esp), %eax
  184. movl %eax, 8(%esp)
  185. movl $62, %eax
  186. movl %eax, 12(%esp)
  187. call __libm_error_support
  188. addl $32, %esp
  189. flds (%esp)
  190. jmp .L_2TAG_PACKET_1.0.3
  191. .L_2TAG_PACKET_5.0.3:
  192. addss %xmm0, %xmm0
  193. movss %xmm0, (%esp)
  194. flds (%esp)
  195. .L_2TAG_PACKET_1.0.3:
  196. movl 40(%esp), %ebx
  197. movl %ebp, %esp
  198. popl %ebp
  199. ret
  200. ..B2.3:
  201. .align 16,0x90
  202. .type asinf,@function
  203. .size asinf,.-asinf
  204. .data
  205. # -- End asinf
  206. .text
  207. # -- Begin __libm_error_support
  208. .text
  209. .align 16,0x90
  210. __libm_error_support:
  211. # parameter 1: 4 + %esp
  212. # parameter 2: 8 + %esp
  213. # parameter 3: 12 + %esp
  214. # parameter 4: 16 + %esp
  215. ..B3.1:
  216. ..L4:
  217. ret
  218. .align 16,0x90
  219. .type __libm_error_support,@function
  220. .size __libm_error_support,.-__libm_error_support
  221. .data
  222. # -- End __libm_error_support
  223. .section .rodata, "a"
  224. .align 16
  225. .align 16
  226. static_const_table:
  227. .long 4290772864
  228. .long 1072693183
  229. .long 2864569868
  230. .long 1065353226
  231. .long 3955135328
  232. .long 1072692671
  233. .long 152932388
  234. .long 1066926224
  235. .long 1671525387
  236. .long 1072691647
  237. .long 2415589551
  238. .long 1067712845
  239. .long 2799290704
  240. .long 1072690109
  241. .long 3864800403
  242. .long 1068237715
  243. .long 2477707161
  244. .long 1072688057
  245. .long 725093587
  246. .long 1068630990
  247. .long 2787892653
  248. .long 1072685489
  249. .long 2536557765
  250. .long 1068893940
  251. .long 4138691444
  252. .long 1072682403
  253. .long 62552236
  254. .long 1069157247
  255. .long 941089134
  256. .long 1072678798
  257. .long 165833141
  258. .long 1069420976
  259. .long 3045724825
  260. .long 1072674669
  261. .long 2611259588
  262. .long 1069616357
  263. .long 1338788729
  264. .long 1072670015
  265. .long 2616012614
  266. .long 1069748746
  267. .long 2049955026
  268. .long 1072664831
  269. .long 11397492
  270. .long 1069881450
  271. .long 922854000
  272. .long 1072659114
  273. .long 2157235516
  274. .long 1070014503
  275. .long 326738075
  276. .long 1072652859
  277. .long 2788743992
  278. .long 1070147943
  279. .long 589211462
  280. .long 1072646061
  281. .long 3920198733
  282. .long 1070281807
  283. .long 4203970809
  284. .long 1072638714
  285. .long 3416546056
  286. .long 1070416134
  287. .long 2847908959
  288. .long 1072630814
  289. .long 4071425947
  290. .long 1070550963
  291. .long 3041144817
  292. .long 1072622353
  293. .long 623140044
  294. .long 1070641216
  295. .long 254499552
  296. .long 1072613325
  297. .long 307519074
  298. .long 1070709195
  299. .long 247322296
  300. .long 1072603721
  301. .long 2945179265
  302. .long 1070777488
  303. .long 1734768715
  304. .long 1072593533
  305. .long 3301227932
  306. .long 1070846119
  307. .long 512284341
  308. .long 1072582753
  309. .long 148694291
  310. .long 1070915112
  311. .long 2150320922
  312. .long 1072571370
  313. .long 959165711
  314. .long 1070984490
  315. .long 307214965
  316. .long 1072559375
  317. .long 862254873
  318. .long 1071054280
  319. .long 2261822985
  320. .long 1072546755
  321. .long 303820077
  322. .long 1071124509
  323. .long 2878424532
  324. .long 1072533499
  325. .long 1279667396
  326. .long 1071195205
  327. .long 1489389340
  328. .long 1072519594
  329. .long 3626865975
  330. .long 1071266398
  331. .long 1561634021
  332. .long 1072505025
  333. .long 1381197995
  334. .long 1071338121
  335. .long 1731593006
  336. .long 1072489777
  337. .long 685577004
  338. .long 1071410406
  339. .long 3972360633
  340. .long 1072473833
  341. .long 3426639945
  342. .long 1071483288
  343. .long 231016948
  344. .long 1072457177
  345. .long 3858097791
  346. .long 1071556806
  347. .long 1951983052
  348. .long 1072439787
  349. .long 2522397359
  350. .long 1071631000
  351. .long 806900869
  352. .long 1072421644
  353. .long 1565390008
  354. .long 1071675292
  355. .long 2352519275
  356. .long 1072402724
  357. .long 2655228975
  358. .long 1071713130
  359. .long 3752547712
  360. .long 1072383003
  361. .long 3066292715
  362. .long 1071751375
  363. .long 1444584515
  364. .long 1072362455
  365. .long 933027783
  366. .long 1071790054
  367. .long 2960036461
  368. .long 1072341049
  369. .long 3589869088
  370. .long 1071829194
  371. .long 4214933698
  372. .long 1072318754
  373. .long 2973206241
  374. .long 1071868828
  375. .long 957213757
  376. .long 1072295536
  377. .long 2756129430
  378. .long 1071908989
  379. .long 4263431727
  380. .long 1072271354
  381. .long 2767348050
  382. .long 1071949714
  383. .long 4197201246
  384. .long 1072246168
  385. .long 874994578
  386. .long 1071991044
  387. .long 1821133236
  388. .long 1072219931
  389. .long 3810301671
  390. .long 1072033022
  391. .long 2102004657
  392. .long 1072192590
  393. .long 4064603671
  394. .long 1072075699
  395. .long 1957725919
  396. .long 1072164088
  397. .long 276553332
  398. .long 1072119130
  399. .long 3365782140
  400. .long 1072134360
  401. .long 1120469626
  402. .long 1072163374
  403. .long 4096932877
  404. .long 1072103334
  405. .long 4291572900
  406. .long 1072208500
  407. .long 177757517
  408. .long 1072070929
  409. .long 2376322938
  410. .long 1072254587
  411. .long 4029755771
  412. .long 1072037049
  413. .long 3060434712
  414. .long 1072301721
  415. .long 497611374
  416. .long 1072001591
  417. .long 4010165530
  418. .long 1072350003
  419. .long 3306304935
  420. .long 1071964429
  421. .long 388249839
  422. .long 1072399550
  423. .long 539435036
  424. .long 1071925423
  425. .long 165779504
  426. .long 1072450495
  427. .long 2497352827
  428. .long 1071884403
  429. .long 1343287957
  430. .long 1072502997
  431. .long 884164153
  432. .long 1071841172
  433. .long 1828157318
  434. .long 1072557245
  435. .long 3653025069
  436. .long 1071795489
  437. .long 2128712154
  438. .long 1072613466
  439. .long 3056817116
  440. .long 1071747064
  441. .long 1489283833
  442. .long 1072671938
  443. .long 1840990109
  444. .long 1071695534
  445. .long 2059782629
  446. .long 1072713127
  447. .long 3931971716
  448. .long 1071636206
  449. .long 1027831985
  450. .long 1072745180
  451. .long 3187721039
  452. .long 1071517691
  453. .long 3329524973
  454. .long 1072779038
  455. .long 3649449467
  456. .long 1071389244
  457. .long 2110923290
  458. .long 1072815090
  459. .long 4055205277
  460. .long 1071248617
  461. .long 2992048670
  462. .long 1072853879
  463. .long 2715653706
  464. .long 1071092488
  465. .long 419466969
  466. .long 1072896214
  467. .long 2030806678
  468. .long 1070915559
  469. .long 1069790871
  470. .long 1072943387
  471. .long 2084655462
  472. .long 1070708358
  473. .long 3811755941
  474. .long 1072997722
  475. .long 3549768261
  476. .long 1070304457
  477. .long 884757291
  478. .long 1073064302
  479. .long 4261330719
  480. .long 1069543419
  481. .long 3631318613
  482. .long 1073160613
  483. .long 1413754136
  484. .long 1073291771
  485. .long 0
  486. .long 0
  487. .long 0
  488. .long 1072693248
  489. .long 0
  490. .long 0
  491. .long 3067833783
  492. .long 1067899757
  493. .long 0
  494. .long 0
  495. .long 1431655765
  496. .long 1069897045
  497. .long 0
  498. .long 0
  499. .long 858993459
  500. .long 1068708659
  501. .long 0
  502. .long 0
  503. .long 1
  504. .long 1072693248
  505. .long 0
  506. .long 0
  507. .type static_const_table,@object
  508. .size static_const_table,1120
  509. .data
  510. .section .note.GNU-stack, ""
  511. # End