acosf_wmt.S 13 KB

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