remquol.S 22 KB

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