hypotl.S 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858
  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 "hypotl.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin hypotl
  41. .text
  42. .align 16,0x90
  43. .globl hypotl
  44. hypotl:
  45. # parameter 1: 8 + %ebp
  46. # parameter 2: 20 + %ebp
  47. ..B1.1:
  48. ..L1:
  49. pushl %ebp
  50. movl %esp, %ebp
  51. andl $-16, %esp
  52. pushl %esi
  53. pushl %ebx
  54. subl $24, %esp
  55. ..B1.2:
  56. fnstcw 14(%esp)
  57. ..B1.3:
  58. andb $127, 17(%ebp)
  59. andb $127, 29(%ebp)
  60. movzwl 16(%ebp), %esi
  61. andl $32767, %esi
  62. movzwl 28(%ebp), %ebx
  63. andl $32767, %ebx
  64. cmpl $32767, %esi
  65. je ..B1.73
  66. ..B1.4:
  67. cmpl $32767, %ebx
  68. je ..B1.73
  69. ..B1.5:
  70. movl %esi, %eax
  71. subl %ebx, %eax
  72. call ..L2
  73. ..L2:
  74. popl %ecx
  75. lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%ecx), %ecx
  76. lea 64(%eax), %edx
  77. cmpl $128, %edx
  78. ja ..B1.27
  79. ..B1.6:
  80. lea (%esi,%ebx), %edx
  81. cmpl $18376, %edx
  82. jge ..B1.38
  83. ..B1.7:
  84. testl %esi, %esi
  85. jne ..B1.14
  86. ..B1.8:
  87. cmpl $0, 12(%ebp)
  88. jne ..B1.14
  89. ..B1.9:
  90. cmpl $0, 8(%ebp)
  91. jne ..B1.14
  92. ..B1.10:
  93. testl %ebx, %ebx
  94. jne ..B1.14
  95. ..B1.11:
  96. cmpl $0, 24(%ebp)
  97. jne ..B1.14
  98. ..B1.12:
  99. cmpl $0, 20(%ebp)
  100. jne ..B1.14
  101. ..B1.13:
  102. fldl _zeros@GOTOFF(%ecx)
  103. addl $24, %esp
  104. popl %ebx
  105. popl %esi
  106. movl %ebp, %esp
  107. popl %ebp
  108. ret
  109. ..B1.14:
  110. movzwl 14(%esp), %ebx
  111. movl %ebx, %edx
  112. andl $768, %edx
  113. cmpl $768, %edx
  114. je ..B1.37
  115. ..B1.15:
  116. orl $-64768, %ebx
  117. movw %bx, 12(%esp)
  118. ..B1.16:
  119. fldcw 12(%esp)
  120. ..B1.17:
  121. movl $1, %ebx
  122. ..B1.18:
  123. fldt _scales@GOTOFF(%ecx)
  124. lea 4(%eax), %edx
  125. fldt 8(%ebp)
  126. cmpl $8, %edx
  127. fmul %st(1), %st
  128. fldt 20(%ebp)
  129. fmulp %st, %st(2)
  130. ja ..B1.22
  131. ..B1.19:
  132. fldl _TWO_48H@GOTOFF(%ecx)
  133. fld %st(1)
  134. fmul %st(1), %st
  135. fld %st(2)
  136. fadd %st(1), %st
  137. fsubp %st, %st(1)
  138. fld %st(0)
  139. fld %st(4)
  140. fxch %st(3)
  141. fmul %st(5), %st
  142. fadd %st, %st(3)
  143. fsubrp %st, %st(3)
  144. fld %st(2)
  145. fld %st(4)
  146. fsub %st(3), %st
  147. fmul %st, %st(2)
  148. fld %st(6)
  149. fsub %st(5), %st
  150. fmul %st, %st(2)
  151. fxch %st(6)
  152. fcom %st(7)
  153. fnstsw %ax
  154. fmulp %st, %st(1)
  155. sahf
  156. faddp %st, %st(2)
  157. fxch %st(5)
  158. fmulp %st, %st(4)
  159. fxch %st(3)
  160. faddp %st, %st(4)
  161. fxch %st(2)
  162. faddp %st, %st(3)
  163. fmul %st(0), %st
  164. fld %st(0)
  165. fxch %st(2)
  166. fmul %st(0), %st
  167. fadd %st, %st(2)
  168. fldl _TWO_32H@GOTOFF(%ecx)
  169. fld %st(0)
  170. fmul %st(4), %st
  171. fadd %st, %st(4)
  172. fsubrp %st, %st(4)
  173. jbe ..B1.21
  174. ..B1.20:
  175. fxch %st(1)
  176. fsubr %st(3), %st
  177. fsubrp %st, %st(2)
  178. fxch %st(1)
  179. faddp %st, %st(3)
  180. fxch %st(1)
  181. jmp ..B1.24
  182. ..B1.21:
  183. fxch %st(2)
  184. fsubr %st(3), %st
  185. fsubrp %st, %st(1)
  186. faddp %st, %st(3)
  187. fxch %st(1)
  188. jmp ..B1.24
  189. ..B1.22:
  190. fldl _TWO_48H@GOTOFF(%ecx)
  191. testl %eax, %eax
  192. fldl _TWO_32H@GOTOFF(%ecx)
  193. jle ..B1.36
  194. ..B1.23:
  195. fxch %st(1)
  196. fmul %st(2), %st
  197. fld %st(2)
  198. fadd %st(1), %st
  199. fsubp %st, %st(1)
  200. fld %st(0)
  201. fld %st(3)
  202. fsub %st(2), %st
  203. fmul %st, %st(1)
  204. fmulp %st, %st(4)
  205. faddp %st, %st(3)
  206. fxch %st(3)
  207. fmul %st(0), %st
  208. faddp %st, %st(2)
  209. fxch %st(2)
  210. fmul %st(0), %st
  211. fxch %st(1)
  212. fxch %st(2)
  213. fxch %st(1)
  214. ..B1.24:
  215. fldt .L_2il0floatpacket.0@GOTOFF(%ecx)
  216. fld %st(1)
  217. testl %ebx, %ebx
  218. fadd %st(4), %st
  219. fsqrt
  220. fmul %st, %st(3)
  221. fld %st(3)
  222. fadd %st(1), %st
  223. fsubp %st, %st(4)
  224. fld %st(3)
  225. fmul %st(4), %st
  226. fsubrp %st, %st(3)
  227. fld %st(3)
  228. fxch %st(1)
  229. fsub %st(4), %st
  230. fmul %st, %st(1)
  231. fxch %st(1)
  232. fsubrp %st, %st(3)
  233. fxch %st(4)
  234. faddp %st, %st(2)
  235. fld %st(2)
  236. fadd %st(4), %st
  237. fdivrp %st, %st(2)
  238. fxch %st(1)
  239. faddp %st, %st(3)
  240. fmulp %st, %st(2)
  241. faddp %st, %st(1)
  242. fldt 12+_scales@GOTOFF(%ecx)
  243. fmulp %st, %st(1)
  244. fstpt (%esp)
  245. je ..B1.26
  246. ..B1.25:
  247. fldcw 14(%esp)
  248. ..B1.26:
  249. fldt (%esp)
  250. addl $24, %esp
  251. popl %ebx
  252. popl %esi
  253. movl %ebp, %esp
  254. popl %ebp
  255. ret
  256. ..B1.27:
  257. movzwl 14(%esp), %edx
  258. movl %edx, %eax
  259. andl $768, %eax
  260. cmpl $768, %eax
  261. je ..B1.72
  262. ..B1.28:
  263. orl $-64768, %edx
  264. movw %dx, 12(%esp)
  265. ..B1.29:
  266. fldcw 12(%esp)
  267. ..B1.30:
  268. movl $1, %edx
  269. ..B1.31:
  270. fldt 8(%ebp)
  271. fldt 20(%ebp)
  272. faddp %st, %st(1)
  273. fstpt (%esp)
  274. fldt (%esp)
  275. fldt 12+_ranges@GOTOFF(%ecx)
  276. fcompp
  277. fnstsw %ax
  278. sahf
  279. jae ..B1.33
  280. jp ..B1.33
  281. ..B1.32:
  282. fldt _large_value_80@GOTOFF(%ecx)
  283. fmul %st(0), %st
  284. fstpt (%esp)
  285. ..B1.33:
  286. testl %edx, %edx
  287. je ..B1.35
  288. ..B1.34:
  289. fldcw 14(%esp)
  290. ..B1.35:
  291. fldt (%esp)
  292. addl $24, %esp
  293. popl %ebx
  294. popl %esi
  295. movl %ebp, %esp
  296. popl %ebp
  297. ret
  298. ..B1.36:
  299. fxch %st(1)
  300. fmul %st(3), %st
  301. fld %st(3)
  302. fadd %st(1), %st
  303. fsubp %st, %st(1)
  304. fld %st(0)
  305. fld %st(4)
  306. fsub %st(2), %st
  307. fmul %st, %st(1)
  308. fmulp %st, %st(5)
  309. faddp %st, %st(4)
  310. fxch %st(2)
  311. fmul %st(0), %st
  312. faddp %st, %st(3)
  313. fxch %st(1)
  314. fmul %st(0), %st
  315. jmp ..B1.24
  316. ..B1.37:
  317. xorl %ebx, %ebx
  318. jmp ..B1.18
  319. ..B1.38:
  320. movzwl 14(%esp), %ebx
  321. cmpl $47156, %edx
  322. jle ..B1.54
  323. ..B1.39:
  324. movl %ebx, %edx
  325. andl $768, %edx
  326. cmpl $768, %edx
  327. je ..B1.69
  328. ..B1.40:
  329. orl $-64768, %ebx
  330. movw %bx, 12(%esp)
  331. ..B1.41:
  332. fldcw 12(%esp)
  333. ..B1.42:
  334. xorl %ebx, %ebx
  335. incl %ebx
  336. ..B1.43:
  337. fldt 12+_scales@GOTOFF(%ecx)
  338. lea 4(%eax), %edx
  339. fldt 8(%ebp)
  340. cmpl $8, %edx
  341. fmul %st(1), %st
  342. fldt 20(%ebp)
  343. fmulp %st, %st(2)
  344. ja ..B1.47
  345. ..B1.44:
  346. fldl _TWO_48H@GOTOFF(%ecx)
  347. fld %st(1)
  348. fmul %st(1), %st
  349. fld %st(2)
  350. fadd %st(1), %st
  351. fsubp %st, %st(1)
  352. fld %st(0)
  353. fld %st(4)
  354. fxch %st(3)
  355. fmul %st(5), %st
  356. fadd %st, %st(3)
  357. fsubrp %st, %st(3)
  358. fld %st(2)
  359. fld %st(4)
  360. fsub %st(3), %st
  361. fmul %st, %st(2)
  362. fld %st(6)
  363. fsub %st(5), %st
  364. fmul %st, %st(2)
  365. fxch %st(6)
  366. fcom %st(7)
  367. fnstsw %ax
  368. fmulp %st, %st(1)
  369. sahf
  370. faddp %st, %st(2)
  371. fxch %st(5)
  372. fmulp %st, %st(4)
  373. fxch %st(3)
  374. faddp %st, %st(4)
  375. fxch %st(2)
  376. faddp %st, %st(3)
  377. fmul %st(0), %st
  378. fld %st(0)
  379. fxch %st(2)
  380. fmul %st(0), %st
  381. fadd %st, %st(2)
  382. fldl _TWO_32H@GOTOFF(%ecx)
  383. fld %st(0)
  384. fmul %st(4), %st
  385. fadd %st, %st(4)
  386. fsubrp %st, %st(4)
  387. jbe ..B1.46
  388. ..B1.45:
  389. fxch %st(1)
  390. fsubr %st(3), %st
  391. fsubrp %st, %st(2)
  392. fxch %st(1)
  393. faddp %st, %st(3)
  394. fxch %st(1)
  395. jmp ..B1.49
  396. ..B1.46:
  397. fxch %st(2)
  398. fsubr %st(3), %st
  399. fsubrp %st, %st(1)
  400. faddp %st, %st(3)
  401. fxch %st(1)
  402. jmp ..B1.49
  403. ..B1.47:
  404. fldl _TWO_48H@GOTOFF(%ecx)
  405. testl %eax, %eax
  406. fldl _TWO_32H@GOTOFF(%ecx)
  407. jle ..B1.68
  408. ..B1.48:
  409. fxch %st(1)
  410. fmul %st(2), %st
  411. fld %st(2)
  412. fadd %st(1), %st
  413. fsubp %st, %st(1)
  414. fld %st(0)
  415. fld %st(3)
  416. fsub %st(2), %st
  417. fmul %st, %st(1)
  418. fmulp %st, %st(4)
  419. faddp %st, %st(3)
  420. fxch %st(3)
  421. fmul %st(0), %st
  422. faddp %st, %st(2)
  423. fxch %st(2)
  424. fmul %st(0), %st
  425. fxch %st(1)
  426. fxch %st(2)
  427. fxch %st(1)
  428. ..B1.49:
  429. fldt .L_2il0floatpacket.0@GOTOFF(%ecx)
  430. fld %st(1)
  431. fadd %st(4), %st
  432. fsqrt
  433. fmul %st, %st(3)
  434. fld %st(3)
  435. fadd %st(1), %st
  436. fsubp %st, %st(4)
  437. fld %st(3)
  438. fmul %st(4), %st
  439. fsubrp %st, %st(3)
  440. fld %st(3)
  441. fxch %st(1)
  442. fsub %st(4), %st
  443. fmul %st, %st(1)
  444. fxch %st(1)
  445. fsubrp %st, %st(3)
  446. fxch %st(4)
  447. faddp %st, %st(2)
  448. fld %st(2)
  449. fadd %st(4), %st
  450. fdivrp %st, %st(2)
  451. fxch %st(1)
  452. faddp %st, %st(3)
  453. fmulp %st, %st(2)
  454. faddp %st, %st(1)
  455. fstpt (%esp)
  456. fldt (%esp)
  457. fldt _ranges@GOTOFF(%ecx)
  458. fcompp
  459. fnstsw %ax
  460. sahf
  461. jp ..B1.50
  462. jbe ..B1.67
  463. ..B1.50:
  464. fldt _scales@GOTOFF(%ecx)
  465. fldt (%esp)
  466. fmulp %st, %st(1)
  467. fstpt (%esp)
  468. ..B1.51:
  469. testl %ebx, %ebx
  470. je ..B1.53
  471. ..B1.52:
  472. fldcw 14(%esp)
  473. ..B1.53:
  474. fldt (%esp)
  475. addl $24, %esp
  476. popl %ebx
  477. popl %esi
  478. movl %ebp, %esp
  479. popl %ebp
  480. ret
  481. ..B1.54:
  482. movl %ebx, %edx
  483. andl $768, %edx
  484. cmpl $768, %edx
  485. je ..B1.71
  486. ..B1.55:
  487. orl $-64768, %ebx
  488. movw %bx, 12(%esp)
  489. ..B1.56:
  490. fldcw 12(%esp)
  491. ..B1.57:
  492. xorl %ebx, %ebx
  493. incl %ebx
  494. ..B1.58:
  495. lea 4(%eax), %edx
  496. cmpl $8, %edx
  497. ja ..B1.62
  498. ..B1.59:
  499. fldt 8(%ebp)
  500. fld %st(0)
  501. fld %st(1)
  502. fld %st(2)
  503. fldt 20(%ebp)
  504. fld %st(0)
  505. fxch %st(5)
  506. fcom %st(1)
  507. fnstsw %ax
  508. fldl _TWO_48H@GOTOFF(%ecx)
  509. fmul %st, %st(5)
  510. sahf
  511. fxch %st(4)
  512. fadd %st(5), %st
  513. fsubp %st, %st(5)
  514. fld %st(4)
  515. fld %st(2)
  516. fxch %st(3)
  517. fmul %st, %st(5)
  518. fxch %st(3)
  519. fadd %st(5), %st
  520. fsubp %st, %st(5)
  521. fld %st(4)
  522. fxch %st(4)
  523. fsub %st(6), %st
  524. fmul %st, %st(1)
  525. fxch %st(5)
  526. fsubr %st, %st(7)
  527. fxch %st(4)
  528. fmul %st(7), %st
  529. fxch %st(2)
  530. fmulp %st, %st(5)
  531. faddp %st, %st(4)
  532. fxch %st(1)
  533. fmulp %st, %st(5)
  534. faddp %st, %st(4)
  535. fxch %st(1)
  536. faddp %st, %st(3)
  537. fmul %st(0), %st
  538. fld %st(0)
  539. fxch %st(2)
  540. fmul %st(0), %st
  541. fadd %st, %st(2)
  542. fldl _TWO_32H@GOTOFF(%ecx)
  543. fld %st(0)
  544. fmul %st(4), %st
  545. fadd %st, %st(4)
  546. fsubrp %st, %st(4)
  547. jbe ..B1.61
  548. ..B1.60:
  549. fxch %st(1)
  550. fsubr %st(3), %st
  551. fsubrp %st, %st(2)
  552. fxch %st(1)
  553. faddp %st, %st(3)
  554. fxch %st(2)
  555. fxch %st(1)
  556. jmp ..B1.64
  557. ..B1.61:
  558. fxch %st(2)
  559. fsubr %st(3), %st
  560. fsubrp %st, %st(1)
  561. faddp %st, %st(3)
  562. fxch %st(2)
  563. fxch %st(1)
  564. jmp ..B1.64
  565. ..B1.62:
  566. fldt 8(%ebp)
  567. testl %eax, %eax
  568. fldt 20(%ebp)
  569. fldl _TWO_48H@GOTOFF(%ecx)
  570. fldl _TWO_32H@GOTOFF(%ecx)
  571. jle ..B1.70
  572. ..B1.63:
  573. fxch %st(1)
  574. fmul %st(3), %st
  575. fld %st(3)
  576. fadd %st(1), %st
  577. fsubp %st, %st(1)
  578. fld %st(0)
  579. fld %st(4)
  580. fsub %st(2), %st
  581. fmul %st, %st(1)
  582. fmulp %st, %st(5)
  583. faddp %st, %st(4)
  584. fxch %st(2)
  585. fmul %st(0), %st
  586. faddp %st, %st(3)
  587. fxch %st(1)
  588. fmul %st(0), %st
  589. fxch %st(2)
  590. fxch %st(1)
  591. fxch %st(2)
  592. ..B1.64:
  593. fldt .L_2il0floatpacket.0@GOTOFF(%ecx)
  594. fld %st(1)
  595. testl %ebx, %ebx
  596. fadd %st(3), %st
  597. fsqrt
  598. fmul %st, %st(4)
  599. fld %st(4)
  600. fadd %st(1), %st
  601. fsubp %st, %st(5)
  602. fld %st(4)
  603. fmul %st(5), %st
  604. fsubrp %st, %st(3)
  605. fld %st(4)
  606. fxch %st(1)
  607. fsub %st(5), %st
  608. fmul %st, %st(1)
  609. fxch %st(1)
  610. fsubrp %st, %st(3)
  611. fxch %st(3)
  612. faddp %st, %st(2)
  613. fld %st(3)
  614. fadd %st(3), %st
  615. fdivrp %st, %st(2)
  616. fxch %st(1)
  617. faddp %st, %st(2)
  618. fmulp %st, %st(1)
  619. faddp %st, %st(1)
  620. fstpt (%esp)
  621. je ..B1.66
  622. ..B1.65:
  623. fldcw 14(%esp)
  624. ..B1.66:
  625. fldt (%esp)
  626. addl $24, %esp
  627. popl %ebx
  628. popl %esi
  629. movl %ebp, %esp
  630. popl %ebp
  631. ret
  632. ..B1.67:
  633. fldt _large_value_80@GOTOFF(%ecx)
  634. fmul %st(0), %st
  635. fstpt (%esp)
  636. jmp ..B1.51
  637. ..B1.68:
  638. fxch %st(1)
  639. fmul %st(3), %st
  640. fld %st(3)
  641. fadd %st(1), %st
  642. fsubp %st, %st(1)
  643. fld %st(0)
  644. fld %st(4)
  645. fsub %st(2), %st
  646. fmul %st, %st(1)
  647. fmulp %st, %st(5)
  648. faddp %st, %st(4)
  649. fxch %st(2)
  650. fmul %st(0), %st
  651. faddp %st, %st(3)
  652. fxch %st(1)
  653. fmul %st(0), %st
  654. jmp ..B1.49
  655. ..B1.69:
  656. xorl %ebx, %ebx
  657. jmp ..B1.43
  658. ..B1.70:
  659. fxch %st(1)
  660. fmul %st(2), %st
  661. fld %st(2)
  662. fadd %st(1), %st
  663. fsubp %st, %st(1)
  664. fld %st(0)
  665. fld %st(3)
  666. fsub %st(2), %st
  667. fmul %st, %st(1)
  668. fmulp %st, %st(4)
  669. faddp %st, %st(3)
  670. fxch %st(3)
  671. fmul %st(0), %st
  672. faddp %st, %st(2)
  673. fxch %st(2)
  674. fmul %st(0), %st
  675. jmp ..B1.64
  676. ..B1.71:
  677. xorl %ebx, %ebx
  678. jmp ..B1.58
  679. ..B1.72:
  680. xorl %edx, %edx
  681. jmp ..B1.31
  682. ..B1.73:
  683. movzwl 14(%esp), %edx
  684. movl %edx, %eax
  685. andl $768, %eax
  686. cmpl $768, %eax
  687. je ..B1.96
  688. ..B1.74:
  689. orl $-64768, %edx
  690. movw %dx, 12(%esp)
  691. ..B1.75:
  692. fldcw 12(%esp)
  693. ..B1.76:
  694. movl $1, %eax
  695. ..B1.77:
  696. cmpl $32767, %esi
  697. je ..B1.94
  698. ..B1.78:
  699. cmpl $32767, %ebx
  700. je ..B1.91
  701. ..B1.79:
  702. fldt 8(%ebp)
  703. fldt 20(%ebp)
  704. faddp %st, %st(1)
  705. fstpt (%esp)
  706. ..B1.80:
  707. testl %eax, %eax
  708. je ..B1.82
  709. ..B1.81:
  710. fldcw 14(%esp)
  711. ..B1.82:
  712. cmpl $32767, %esi
  713. je ..B1.88
  714. ..B1.83:
  715. cmpl $32767, %ebx
  716. jne ..B1.87
  717. ..B1.84:
  718. cmpl $-2147483648, 24(%ebp)
  719. jne ..B1.87
  720. ..B1.85:
  721. cmpl $0, 20(%ebp)
  722. jne ..B1.87
  723. ..B1.86:
  724. fldt 20(%ebp)
  725. addl $24, %esp
  726. popl %ebx
  727. popl %esi
  728. movl %ebp, %esp
  729. popl %ebp
  730. ret
  731. ..B1.87:
  732. fldt (%esp)
  733. addl $24, %esp
  734. popl %ebx
  735. popl %esi
  736. movl %ebp, %esp
  737. popl %ebp
  738. ret
  739. ..B1.88:
  740. cmpl $-2147483648, 12(%ebp)
  741. jne ..B1.83
  742. ..B1.89:
  743. cmpl $0, 8(%ebp)
  744. jne ..B1.83
  745. ..B1.90:
  746. fldt 8(%ebp)
  747. addl $24, %esp
  748. popl %ebx
  749. popl %esi
  750. movl %ebp, %esp
  751. popl %ebp
  752. ret
  753. ..B1.91:
  754. cmpl $-2147483648, 24(%ebp)
  755. jne ..B1.93
  756. ..B1.92:
  757. cmpl $0, 20(%ebp)
  758. je ..B1.79
  759. ..B1.93:
  760. fldt 8(%ebp)
  761. fldt 20(%ebp)
  762. fmulp %st, %st(1)
  763. fstpt (%esp)
  764. jmp ..B1.80
  765. ..B1.94:
  766. cmpl $-2147483648, 12(%ebp)
  767. jne ..B1.93
  768. ..B1.95:
  769. cmpl $0, 8(%ebp)
  770. jne ..B1.93
  771. jmp ..B1.78
  772. ..B1.96:
  773. xorl %eax, %eax
  774. jmp ..B1.77
  775. .align 16,0x90
  776. .type hypotl,@function
  777. .size hypotl,.-hypotl
  778. .data
  779. # -- End hypotl
  780. .section .rodata, "a"
  781. .align 16
  782. .align 16
  783. .L_2il0floatpacket.0:
  784. .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xfe,0x3f,0x00,0x00
  785. .type .L_2il0floatpacket.0,@object
  786. .size .L_2il0floatpacket.0,12
  787. .align 4
  788. _zeros:
  789. .long 0
  790. .long 0
  791. .long 0
  792. .long 2147483648
  793. .type _zeros,@object
  794. .size _zeros,16
  795. .align 4
  796. _TWO_48H:
  797. .long 0
  798. .long 1123549184
  799. .type _TWO_48H,@object
  800. .size _TWO_48H,8
  801. .align 4
  802. _TWO_32H:
  803. .long 0
  804. .long 1106771968
  805. .type _TWO_32H,@object
  806. .size _TWO_32H,8
  807. .align 2
  808. _scales:
  809. .word 0
  810. .word 0
  811. .word 0
  812. .word 32768
  813. .word 24653
  814. .word 0
  815. .word 0
  816. .word 0
  817. .word 0
  818. .word 32768
  819. .word 8113
  820. .word 0
  821. .type _scales,@object
  822. .size _scales,24
  823. .align 2
  824. _ranges:
  825. .word 0
  826. .word 0
  827. .word 0
  828. .word 32768
  829. .word 24497
  830. .word 0
  831. .word 65535
  832. .word 65535
  833. .word 65535
  834. .word 65535
  835. .word 32766
  836. .word 0
  837. .type _ranges,@object
  838. .size _ranges,24
  839. .align 2
  840. _large_value_80:
  841. .word 0
  842. .word 0
  843. .word 0
  844. .word 32768
  845. .word 26383
  846. .word 0
  847. .word 0
  848. .word 0
  849. .word 0
  850. .word 32768
  851. .word 59151
  852. .word 0
  853. .type _large_value_80,@object
  854. .size _large_value_80,24
  855. .data
  856. .section .note.GNU-stack, ""
  857. # End