fmal.S 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483
  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 "fmal.c"
  38. .text
  39. ..TXTST0:
  40. # -- Begin fmal
  41. .text
  42. .align 16,0x90
  43. .globl fmal
  44. fmal:
  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 $-16, %esp
  53. pushl %esi
  54. pushl %edi
  55. pushl %ebx
  56. subl $100, %esp
  57. ..B1.2:
  58. fnstcw 62(%esp)
  59. ..B1.3:
  60. fnstcw 88(%esp)
  61. ..B1.4:
  62. movzbl 17(%ebp), %edi
  63. movzbl 41(%ebp), %ebx
  64. andl $128, %edi
  65. andl $128, %ebx
  66. movzbl 29(%ebp), %edx
  67. shrl $7, %edi
  68. andl $128, %edx
  69. shrl $7, %ebx
  70. movzwl 88(%esp), %ecx
  71. movl %edi, 80(%esp)
  72. andl $3072, %ecx
  73. movl %ebx, 84(%esp)
  74. movzwl 16(%ebp), %edi
  75. movzwl 40(%ebp), %ebx
  76. movl %ebx, %eax
  77. movl %ecx, 72(%esp)
  78. movl %edi, %ecx
  79. shrl $7, %edx
  80. andl $32767, %ecx
  81. movzwl 28(%ebp), %esi
  82. andl $32767, %eax
  83. movl %edx, 32(%esp)
  84. movl %esi, %edx
  85. movl %eax, 56(%esp)
  86. andl $32767, %edx
  87. call ..L2
  88. ..L2:
  89. popl %eax
  90. lea _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
  91. cmpl $32767, %ecx
  92. movl %eax, 76(%esp)
  93. je ..B1.21
  94. ..B1.5:
  95. testl %ecx, %ecx
  96. jne ..B1.8
  97. ..B1.6:
  98. cmpl $0, 12(%ebp)
  99. jne ..B1.9
  100. ..B1.7:
  101. cmpl $0, 8(%ebp)
  102. je ..B1.20
  103. jmp ..B1.9
  104. ..B1.8:
  105. cmpl $16383, %ecx
  106. je ..B1.204
  107. ..B1.9:
  108. cmpl $32767, %edx
  109. je ..B1.18
  110. ..B1.10:
  111. testl %edx, %edx
  112. jne ..B1.13
  113. ..B1.11:
  114. cmpl $0, 24(%ebp)
  115. jne ..B1.14
  116. ..B1.12:
  117. cmpl $0, 20(%ebp)
  118. je ..B1.18
  119. jmp ..B1.14
  120. ..B1.13:
  121. cmpl $16383, %edx
  122. je ..B1.202
  123. ..B1.14:
  124. cmpl $32767, 56(%esp)
  125. je ..B1.18
  126. ..B1.15:
  127. cmpl $0, 56(%esp)
  128. jne ..B1.54
  129. ..B1.16:
  130. cmpl $0, 36(%ebp)
  131. jne ..B1.54
  132. ..B1.17:
  133. cmpl $0, 32(%ebp)
  134. jne ..B1.54
  135. ..B1.18:
  136. testl %ecx, %ecx
  137. jne ..B1.21
  138. ..B1.19:
  139. cmpl $0, 12(%ebp)
  140. jne ..B1.27
  141. ..B1.209:
  142. cmpl $0, 8(%ebp)
  143. ..B1.20:
  144. jne ..B1.27
  145. ..B1.21:
  146. testl %edx, %edx
  147. jne ..B1.24
  148. ..B1.22:
  149. cmpl $0, 24(%ebp)
  150. jne ..B1.27
  151. ..B1.23:
  152. cmpl $0, 20(%ebp)
  153. jne ..B1.27
  154. ..B1.24:
  155. cmpl $0, 56(%esp)
  156. jne ..B1.28
  157. ..B1.25:
  158. cmpl $0, 36(%ebp)
  159. jne ..B1.27
  160. ..B1.26:
  161. cmpl $0, 32(%ebp)
  162. je ..B1.28
  163. ..B1.27:
  164. fldl _smallest_value_64@GOTOFF(%eax)
  165. fstpl 64(%esp)
  166. ..B1.28:
  167. cmpl $32767, %ecx
  168. je ..B1.185
  169. ..B1.29:
  170. cmpl $32767, %edx
  171. je ..B1.176
  172. ..B1.30:
  173. cmpl $32767, 56(%esp)
  174. je ..B1.167
  175. ..B1.31:
  176. cmpl $32767, %ecx
  177. jge ..B1.34
  178. ..B1.32:
  179. cmpl $32767, %edx
  180. jge ..B1.34
  181. ..B1.33:
  182. cmpl $32767, 56(%esp)
  183. je ..B1.206
  184. ..B1.34:
  185. movzwl 62(%esp), %edx
  186. movl %edx, %eax
  187. andl $768, %eax
  188. cmpl $768, %eax
  189. je ..B1.166
  190. ..B1.35:
  191. orl $-64768, %edx
  192. movw %dx, 60(%esp)
  193. ..B1.36:
  194. fldcw 60(%esp)
  195. ..B1.37:
  196. movzwl 16(%ebp), %edi
  197. movl $1, %edx
  198. ..B1.38:
  199. fldt 8(%ebp)
  200. testl $32767, %edi
  201. fldt 20(%ebp)
  202. fmulp %st, %st(1)
  203. jne ..B1.41
  204. ..B1.39:
  205. cmpl $0, 12(%ebp)
  206. jne ..B1.41
  207. ..B1.40:
  208. cmpl $0, 8(%ebp)
  209. je ..B1.50
  210. ..B1.41:
  211. movzwl 28(%ebp), %eax
  212. testl $32767, %eax
  213. jne ..B1.46
  214. ..B1.42:
  215. cmpl $0, 24(%ebp)
  216. jne ..B1.46
  217. ..B1.43:
  218. cmpl $0, 20(%ebp)
  219. je ..B1.50
  220. ..B1.46:
  221. fstpt 20(%esp)
  222. fldt 20(%esp)
  223. ..B1.47:
  224. movzwl 28(%esp), %eax
  225. testl $32767, %eax
  226. jne ..B1.50
  227. ..B1.48:
  228. cmpl $0, 24(%esp)
  229. jne ..B1.50
  230. ..B1.49:
  231. cmpl $0, 20(%esp)
  232. je ..B1.51
  233. ..B1.50:
  234. fldt 32(%ebp)
  235. faddp %st, %st(1)
  236. fstpt 20(%esp)
  237. fldt 20(%esp)
  238. ..B1.51:
  239. fstp %st(0)
  240. testl %edx, %edx
  241. je ..B1.53
  242. ..B1.52:
  243. fldcw 62(%esp)
  244. ..B1.53:
  245. fldt 20(%esp)
  246. addl $100, %esp
  247. popl %ebx
  248. popl %edi
  249. popl %esi
  250. movl %ebp, %esp
  251. popl %ebp
  252. ret
  253. ..B1.54:
  254. testl %ecx, %ecx
  255. je ..B1.57
  256. ..B1.55:
  257. testl %edx, %edx
  258. je ..B1.57
  259. ..B1.56:
  260. cmpl $0, 56(%esp)
  261. jne ..B1.69
  262. ..B1.57:
  263. fldl _smallest_value_64@GOTOFF(%eax)
  264. movzwl 62(%esp), %eax
  265. movl %eax, (%esp)
  266. andl $768, %eax
  267. fstpl 64(%esp)
  268. cmpl $768, %eax
  269. je ..B1.201
  270. ..B1.58:
  271. movl (%esp), %eax
  272. orl $-64768, %eax
  273. movw %ax, 60(%esp)
  274. ..B1.59:
  275. fldcw 60(%esp)
  276. ..B1.60:
  277. movzwl 16(%ebp), %edi
  278. movl $1, %eax
  279. movzwl 28(%ebp), %esi
  280. movzwl 40(%ebp), %ebx
  281. ..B1.61:
  282. testl $32767, %edi
  283. jne ..B1.63
  284. ..B1.62:
  285. andl $-32768, %edi
  286. orl $-49153, %edi
  287. movw %di, 16(%ebp)
  288. movl 76(%esp), %ecx
  289. movl 80(%esp), %edi
  290. orl $-2147483648, 12(%ebp)
  291. fldt 8(%ebp)
  292. fsubl _ones@GOTOFF(%ecx,%edi,8)
  293. fstpt 8(%ebp)
  294. movzwl 16(%ebp), %ecx
  295. andl $32767, %ecx
  296. addl $-16382, %ecx
  297. ..B1.63:
  298. testl $32767, %esi
  299. jne ..B1.65
  300. ..B1.64:
  301. andl $-32768, %esi
  302. orl $-49153, %esi
  303. movw %si, 28(%ebp)
  304. movl 76(%esp), %edx
  305. movl 32(%esp), %esi
  306. orl $-2147483648, 24(%ebp)
  307. fldt 20(%ebp)
  308. fsubl _ones@GOTOFF(%edx,%esi,8)
  309. fstpt 20(%ebp)
  310. movzwl 28(%ebp), %edx
  311. andl $32767, %edx
  312. addl $-16382, %edx
  313. ..B1.65:
  314. testl $32767, %ebx
  315. jne ..B1.67
  316. ..B1.66:
  317. andl $-32768, %ebx
  318. orl $-49153, %ebx
  319. movw %bx, 40(%ebp)
  320. movl 76(%esp), %ebx
  321. movl 84(%esp), %esi
  322. orl $-2147483648, 36(%ebp)
  323. fldt 32(%ebp)
  324. fsubl _ones@GOTOFF(%ebx,%esi,8)
  325. fstpt 32(%ebp)
  326. movzwl 40(%ebp), %edi
  327. andl $32767, %edi
  328. addl $-16382, %edi
  329. movl %edi, 56(%esp)
  330. ..B1.67:
  331. testl %eax, %eax
  332. je ..B1.69
  333. ..B1.68:
  334. fldcw 62(%esp)
  335. ..B1.69:
  336. movl 36(%ebp), %eax
  337. lea -16383(%ecx,%edx), %edx
  338. movl %eax, 4(%esp)
  339. movl 32(%ebp), %eax
  340. movl %eax, (%esp)
  341. movl 32(%esp), %eax
  342. movl 8(%ebp), %edi
  343. xorl %eax, 80(%esp)
  344. movl %edi, %eax
  345. movl 20(%ebp), %ebx
  346. movl %edx, 52(%esp)
  347. mull %ebx
  348. movl %eax, 44(%esp)
  349. movl %ebx, %eax
  350. movl 12(%ebp), %esi
  351. movl %edx, 20(%esp)
  352. mull %esi
  353. movl %eax, %ecx
  354. movl %edi, %eax
  355. movl 24(%ebp), %ebx
  356. movl %edx, 24(%esp)
  357. mull %ebx
  358. movl %eax, %edi
  359. movl %esi, %eax
  360. movl %edx, 28(%esp)
  361. xorl %esi, %esi
  362. addl %edi, %ecx
  363. adcl $0, %esi
  364. mull %ebx
  365. addl 20(%esp), %ecx
  366. movl %edx, %ebx
  367. movl %ecx, 48(%esp)
  368. adcl $0, %esi
  369. xorl %edx, %edx
  370. addl %eax, %esi
  371. movl 24(%esp), %ecx
  372. adcl $0, %edx
  373. xorl %eax, %eax
  374. addl 28(%esp), %ecx
  375. adcl $0, %eax
  376. addl %ecx, %esi
  377. adcl %eax, %edx
  378. addl %edx, %ebx
  379. movl 52(%esp), %edx
  380. testl $-2147483648, %ebx
  381. je ..B1.71
  382. ..B1.70:
  383. incl %edx
  384. jmp ..B1.72
  385. ..B1.71:
  386. movl %esi, %edi
  387. addl %ebx, %ebx
  388. shrl $31, %edi
  389. addl %esi, %esi
  390. movl 48(%esp), %eax
  391. orl %edi, %ebx
  392. movl %eax, %edi
  393. addl %eax, %eax
  394. shrl $31, %edi
  395. movl 44(%esp), %ecx
  396. orl %edi, %esi
  397. movl %ecx, %edi
  398. addl %ecx, %ecx
  399. shrl $31, %edi
  400. orl %edi, %eax
  401. movl %eax, 48(%esp)
  402. movl %ecx, 44(%esp)
  403. ..B1.72:
  404. cmpl 56(%esp), %edx
  405. jg ..B1.77
  406. ..B1.73:
  407. jne ..B1.78
  408. ..B1.74:
  409. cmpl 4(%esp), %ebx
  410. ja ..B1.77
  411. ..B1.75:
  412. jne ..B1.78
  413. ..B1.76:
  414. cmpl (%esp), %esi
  415. jb ..B1.78
  416. ..B1.77:
  417. movl %edx, %eax
  418. subl 56(%esp), %eax
  419. movl 4(%esp), %edi
  420. movl %eax, 32(%esp)
  421. movl (%esp), %eax
  422. movl %edi, 28(%esp)
  423. xorl %edi, %edi
  424. movl %eax, 36(%esp)
  425. movl %edi, 40(%esp)
  426. jmp ..B1.79
  427. ..B1.78:
  428. movl 56(%esp), %eax
  429. movl %eax, %edi
  430. subl %edx, %edi
  431. movl %eax, %edx
  432. movl 80(%esp), %eax
  433. movl %eax, 84(%esp)
  434. movzbl 41(%ebp), %eax
  435. movl %ebx, 28(%esp)
  436. andl $128, %eax
  437. movl 48(%esp), %ebx
  438. movl %edi, 32(%esp)
  439. shrl $7, %eax
  440. movl %esi, 36(%esp)
  441. movl %ebx, 40(%esp)
  442. movl 44(%esp), %edi
  443. movl %eax, 80(%esp)
  444. xorl %eax, %eax
  445. movl 4(%esp), %ebx
  446. movl (%esp), %esi
  447. movl %eax, 44(%esp)
  448. movl %eax, 48(%esp)
  449. ..B1.79:
  450. cmpl $0, 32(%esp)
  451. je ..B1.89
  452. ..B1.80:
  453. cmpl $32, 32(%esp)
  454. jge ..B1.82
  455. ..B1.81:
  456. movl %esi, 20(%esp)
  457. movl %edi, %eax
  458. movl 32(%esp), %esi
  459. movl %esi, %ecx
  460. movl %edx, 52(%esp)
  461. movl %esi, %edx
  462. movl %ebx, 24(%esp)
  463. negl %edx
  464. movl $-1, %ebx
  465. shrl %cl, %ebx
  466. movl %edx, %ecx
  467. shll %cl, %eax
  468. notl %ebx
  469. movl %eax, 56(%esp)
  470. movl 40(%esp), %eax
  471. shll %cl, %eax
  472. movl %esi, %ecx
  473. shrl %cl, %edi
  474. andl %ebx, %eax
  475. orl %eax, %edi
  476. movl %edx, %ecx
  477. movl %edi, 4(%esp)
  478. movl 36(%esp), %edi
  479. movl %edi, %eax
  480. shll %cl, %eax
  481. movl %esi, %ecx
  482. andl %ebx, %eax
  483. movl %eax, (%esp)
  484. movl 40(%esp), %eax
  485. shrl %cl, %eax
  486. movl %edx, %ecx
  487. orl (%esp), %eax
  488. movl 28(%esp), %edx
  489. movl %eax, 40(%esp)
  490. movl %edx, %eax
  491. shll %cl, %eax
  492. movl %esi, %ecx
  493. shrl %cl, %edi
  494. andl %ebx, %eax
  495. shrl %cl, %edx
  496. orl %eax, %edi
  497. movl %edi, 36(%esp)
  498. movl %edx, 28(%esp)
  499. movl 20(%esp), %esi
  500. movl 52(%esp), %edx
  501. movl 24(%esp), %ebx
  502. movl 4(%esp), %edi
  503. jmp ..B1.90
  504. ..B1.82:
  505. cmpl $64, 32(%esp)
  506. jge ..B1.84
  507. ..B1.83:
  508. movl %ebx, 24(%esp)
  509. movl 32(%esp), %ebx
  510. movl %ebx, %ecx
  511. movl %edx, 52(%esp)
  512. movl %ebx, %edx
  513. movl %esi, 20(%esp)
  514. negl %edx
  515. movl $-1, %esi
  516. shrl %cl, %esi
  517. movl %edx, %ecx
  518. movl 40(%esp), %eax
  519. notl %esi
  520. shll %cl, %eax
  521. xorl %ecx, %ecx
  522. testl %edi, %edi
  523. movl %esi, (%esp)
  524. setne %cl
  525. andl (%esp), %eax
  526. movl 36(%esp), %esi
  527. orl %ecx, %eax
  528. movl %edx, %ecx
  529. movl %esi, %edi
  530. shll %cl, %edi
  531. movl %ebx, %ecx
  532. movl %eax, 56(%esp)
  533. movl 40(%esp), %eax
  534. andl (%esp), %edi
  535. shrl %cl, %eax
  536. movl %edx, %ecx
  537. movl 28(%esp), %edx
  538. orl %eax, %edi
  539. movl %edx, %eax
  540. shll %cl, %eax
  541. movl %ebx, %ecx
  542. andl (%esp), %eax
  543. shrl %cl, %esi
  544. shrl %cl, %edx
  545. orl %esi, %eax
  546. movl %edx, 36(%esp)
  547. movl %eax, 40(%esp)
  548. movl $0, 28(%esp)
  549. movl 20(%esp), %esi
  550. movl 52(%esp), %edx
  551. movl 24(%esp), %ebx
  552. jmp ..B1.90
  553. ..B1.84:
  554. cmpl $96, 32(%esp)
  555. jge ..B1.86
  556. ..B1.85:
  557. movl %edx, 52(%esp)
  558. movl 32(%esp), %edx
  559. movl %edx, %ecx
  560. movl %ebx, 24(%esp)
  561. movl %edx, %ebx
  562. movl %esi, 20(%esp)
  563. movl $-1, %esi
  564. negl %ebx
  565. movl %ebx, (%esp)
  566. shrl %cl, %esi
  567. xorl %ebx, %ebx
  568. orl 40(%esp), %edi
  569. notl %esi
  570. movl (%esp), %ecx
  571. movl 36(%esp), %eax
  572. setne %bl
  573. shll %cl, %eax
  574. andl %esi, %eax
  575. orl %ebx, %eax
  576. movl %eax, 56(%esp)
  577. movl 28(%esp), %eax
  578. movl %eax, %edi
  579. shll %cl, %edi
  580. movl %edx, %ecx
  581. andl %esi, %edi
  582. xorl %edx, %edx
  583. movl 36(%esp), %esi
  584. shrl %cl, %esi
  585. shrl %cl, %eax
  586. orl %esi, %edi
  587. movl %edx, 36(%esp)
  588. movl %edx, 28(%esp)
  589. movl %eax, 40(%esp)
  590. movl 20(%esp), %esi
  591. movl 52(%esp), %edx
  592. movl 24(%esp), %ebx
  593. jmp ..B1.90
  594. ..B1.86:
  595. cmpl $128, 32(%esp)
  596. jge ..B1.88
  597. ..B1.87:
  598. movl %edx, 52(%esp)
  599. movl 32(%esp), %edx
  600. movl %edx, %eax
  601. movl %ebx, 24(%esp)
  602. negl %eax
  603. movl %edx, %ecx
  604. movl $-1, %ebx
  605. movl %esi, 20(%esp)
  606. movl 28(%esp), %esi
  607. shrl %cl, %ebx
  608. movl %eax, %ecx
  609. movl %esi, %eax
  610. notl %ebx
  611. shll %cl, %eax
  612. movl 36(%esp), %ecx
  613. andl %ebx, %eax
  614. orl 40(%esp), %ecx
  615. xorl %ebx, %ebx
  616. orl %edi, %ecx
  617. movl %edx, %ecx
  618. movl %esi, %edi
  619. setne %bl
  620. xorl %edx, %edx
  621. movl %edx, 40(%esp)
  622. orl %ebx, %eax
  623. movl %edx, 36(%esp)
  624. movl %edx, 28(%esp)
  625. movl %eax, 56(%esp)
  626. shrl %cl, %edi
  627. movl 20(%esp), %esi
  628. movl 52(%esp), %edx
  629. movl 24(%esp), %ebx
  630. jmp ..B1.90
  631. ..B1.88:
  632. movl 28(%esp), %ecx
  633. orl 36(%esp), %ecx
  634. xorl %eax, %eax
  635. orl 40(%esp), %ecx
  636. orl %edi, %ecx
  637. setne %al
  638. xorl %edi, %edi
  639. movl %eax, 56(%esp)
  640. movl %edi, 40(%esp)
  641. movl %edi, 36(%esp)
  642. movl %edi, 28(%esp)
  643. jmp ..B1.90
  644. ..B1.89:
  645. movl $0, 56(%esp)
  646. ..B1.90:
  647. movl 80(%esp), %eax
  648. cmpl 84(%esp), %eax
  649. jne ..B1.94
  650. ..B1.91:
  651. movl 44(%esp), %eax
  652. addl %eax, %edi
  653. cmpl %eax, %edi
  654. movl $0, %eax
  655. movl 48(%esp), %ecx
  656. setb %al
  657. addl 40(%esp), %ecx
  658. movl %edi, 4(%esp)
  659. movl $0, %edi
  660. adcl $0, %edi
  661. addl %eax, %ecx
  662. adcl $0, %edi
  663. xorl %eax, %eax
  664. addl 36(%esp), %esi
  665. movl %ecx, 48(%esp)
  666. adcl $0, %eax
  667. addl %edi, %esi
  668. adcl $0, %eax
  669. xorl %edi, %edi
  670. addl 28(%esp), %ebx
  671. adcl $0, %edi
  672. addl %eax, %ebx
  673. adcl $0, %edi
  674. movl 4(%esp), %edi
  675. je ..B1.93
  676. ..B1.92:
  677. orl 48(%esp), %edi
  678. movl %esi, %eax
  679. shll $31, %eax
  680. incl %edx
  681. orl 56(%esp), %edi
  682. movl %eax, 36(%esp)
  683. movl %ebx, %edi
  684. movl $0, %eax
  685. setne %al
  686. shll $31, %edi
  687. shrl $1, %esi
  688. shrl $1, %ebx
  689. orl %edi, %esi
  690. orl %eax, 36(%esp)
  691. orl $-2147483648, %ebx
  692. jmp ..B1.116
  693. ..B1.93:
  694. orl 56(%esp), %edi
  695. movl $0, %eax
  696. setne %al
  697. orl 48(%esp), %eax
  698. movl %eax, 36(%esp)
  699. jmp ..B1.116
  700. ..B1.94:
  701. negl 56(%esp)
  702. movl %edx, 52(%esp)
  703. movl $0, %edx
  704. movl 44(%esp), %ecx
  705. setne %dl
  706. xorl %eax, %eax
  707. subl %edi, %ecx
  708. movl 48(%esp), %edi
  709. sbbl $0, %eax
  710. subl %edx, %ecx
  711. movl %ecx, 44(%esp)
  712. sbbl $0, %eax
  713. xorl %ecx, %ecx
  714. subl 40(%esp), %edi
  715. cltd
  716. sbbl $0, %ecx
  717. addl %eax, %edi
  718. movl %edi, 48(%esp)
  719. adcl %edx, %ecx
  720. xorl %edi, %edi
  721. subl 36(%esp), %esi
  722. movl %ecx, %eax
  723. cltd
  724. sbbl $0, %edi
  725. addl %esi, %ecx
  726. movl %ecx, 32(%esp)
  727. adcl %edx, %edi
  728. subl 28(%esp), %ebx
  729. movl 52(%esp), %edx
  730. addl %edi, %ebx
  731. je ..B1.96
  732. ..B1.95:
  733. movl $0, 28(%esp)
  734. movl %ebx, %eax
  735. jmp ..B1.104
  736. ..B1.96:
  737. cmpl $0, 32(%esp)
  738. je ..B1.98
  739. ..B1.97:
  740. movl %ecx, %eax
  741. movl $32, 28(%esp)
  742. jmp ..B1.104
  743. ..B1.98:
  744. cmpl $0, 48(%esp)
  745. je ..B1.100
  746. ..B1.99:
  747. movl 48(%esp), %eax
  748. movl $64, 28(%esp)
  749. jmp ..B1.104
  750. ..B1.100:
  751. cmpl $0, 44(%esp)
  752. je ..B1.102
  753. ..B1.101:
  754. movl 44(%esp), %eax
  755. movl $96, 28(%esp)
  756. jmp ..B1.104
  757. ..B1.102:
  758. cmpl $0, 56(%esp)
  759. je ..B1.165
  760. ..B1.103:
  761. movl 56(%esp), %eax
  762. movl $128, 28(%esp)
  763. ..B1.104:
  764. testl $-2147483648, %eax
  765. jne ..B1.108
  766. ..B1.105:
  767. movl 28(%esp), %esi
  768. ..B1.106:
  769. addl %eax, %eax
  770. incl %esi
  771. testl $-2147483648, %eax
  772. je ..B1.106
  773. ..B1.107:
  774. movl %esi, 28(%esp)
  775. ..B1.108:
  776. cmpl $32, 28(%esp)
  777. jge ..B1.110
  778. ..B1.109:
  779. movl 28(%esp), %edi
  780. movl %edi, %esi
  781. movl %edx, 52(%esp)
  782. movl %edi, %ecx
  783. movl $1, %edx
  784. negl %esi
  785. movl %esi, (%esp)
  786. shll %cl, %edx
  787. movl 44(%esp), %esi
  788. decl %edx
  789. orl 56(%esp), %esi
  790. movl %ebx, 24(%esp)
  791. movl 48(%esp), %ebx
  792. movl %ebx, %eax
  793. movl %edx, 4(%esp)
  794. movl $0, %edx
  795. setne %dl
  796. shll %cl, %eax
  797. orl %edx, %eax
  798. movl %eax, 36(%esp)
  799. movl 32(%esp), %eax
  800. movl %eax, %esi
  801. shll %cl, %esi
  802. movl (%esp), %ecx
  803. shrl %cl, %ebx
  804. movl %edi, %ecx
  805. andl 4(%esp), %ebx
  806. orl %ebx, %esi
  807. movl 24(%esp), %ebx
  808. shll %cl, %ebx
  809. movl (%esp), %ecx
  810. shrl %cl, %eax
  811. andl 4(%esp), %eax
  812. movl 52(%esp), %edx
  813. orl %eax, %ebx
  814. jmp ..B1.115
  815. ..B1.110:
  816. cmpl $64, 28(%esp)
  817. jge ..B1.112
  818. ..B1.111:
  819. movl 28(%esp), %eax
  820. movl %eax, %ecx
  821. movl %edx, 52(%esp)
  822. movl $1, %edx
  823. shll %cl, %edx
  824. movl %eax, %esi
  825. decl %edx
  826. negl %esi
  827. cmpl $0, 56(%esp)
  828. movl 44(%esp), %edi
  829. movl %edi, %ebx
  830. movl %edx, 4(%esp)
  831. movl $0, %edx
  832. setne %dl
  833. shll %cl, %ebx
  834. orl %edx, %ebx
  835. movl %ebx, 36(%esp)
  836. movl %esi, (%esp)
  837. movl 48(%esp), %ebx
  838. movl %ebx, %esi
  839. shll %cl, %esi
  840. movl (%esp), %ecx
  841. shrl %cl, %edi
  842. movl %eax, %ecx
  843. andl 4(%esp), %edi
  844. orl %edi, %esi
  845. movl 32(%esp), %edi
  846. shll %cl, %edi
  847. movl (%esp), %ecx
  848. shrl %cl, %ebx
  849. andl 4(%esp), %ebx
  850. movl 52(%esp), %edx
  851. orl %edi, %ebx
  852. jmp ..B1.115
  853. ..B1.112:
  854. cmpl $96, 28(%esp)
  855. jge ..B1.114
  856. ..B1.113:
  857. movl 28(%esp), %eax
  858. movl %eax, %esi
  859. movl %eax, %ecx
  860. movl $1, %edi
  861. movl %edx, 52(%esp)
  862. negl %esi
  863. movl 56(%esp), %edx
  864. movl 44(%esp), %ebx
  865. shll %cl, %edx
  866. movl %esi, (%esp)
  867. movl %ebx, %esi
  868. movl %edx, 36(%esp)
  869. shll %cl, %edi
  870. shll %cl, %esi
  871. decl %edi
  872. movl (%esp), %ecx
  873. shrl %cl, %edx
  874. movl %eax, %ecx
  875. andl %edi, %edx
  876. orl %edx, %esi
  877. movl 48(%esp), %edx
  878. shll %cl, %edx
  879. movl (%esp), %ecx
  880. shrl %cl, %ebx
  881. andl %edi, %ebx
  882. orl %edx, %ebx
  883. movl 52(%esp), %edx
  884. jmp ..B1.115
  885. ..B1.114:
  886. movl 28(%esp), %ecx
  887. xorl %eax, %eax
  888. movl 44(%esp), %ebx
  889. xorl %esi, %esi
  890. shll %cl, %ebx
  891. cmpl $128, %ecx
  892. movl %eax, 36(%esp)
  893. jl ..L3
  894. movl $0, %ebx
  895. ..L3:
  896. ..B1.115:
  897. subl 28(%esp), %edx
  898. ..B1.116:
  899. lea -1(%edx), %edi
  900. cmpl $32766, %edi
  901. jb ..B1.126
  902. ..B1.117:
  903. cmpl $32767, %edx
  904. jge ..B1.164
  905. ..B1.118:
  906. negl %edx
  907. incl %edx
  908. cmpl $32, %edx
  909. jge ..B1.120
  910. ..B1.119:
  911. movl %edx, %edi
  912. movl %edx, %ecx
  913. negl %edi
  914. xorl %eax, %eax
  915. movl %edi, (%esp)
  916. movl $-1, %edi
  917. shrl %cl, %edi
  918. cmpl $0, 36(%esp)
  919. notl %edi
  920. movl (%esp), %ecx
  921. movl %esi, 20(%esp)
  922. setne %al
  923. shll %cl, %esi
  924. andl %edi, %esi
  925. orl %esi, %eax
  926. movl %eax, 36(%esp)
  927. movl %ebx, %eax
  928. movl (%esp), %ecx
  929. shll %cl, %eax
  930. movl %edx, %ecx
  931. movl 20(%esp), %esi
  932. andl %edi, %eax
  933. shrl %cl, %esi
  934. shrl %cl, %ebx
  935. orl %eax, %esi
  936. jmp ..B1.125
  937. ..B1.120:
  938. cmpl $64, %edx
  939. jge ..B1.122
  940. ..B1.121:
  941. movl %edx, %edi
  942. movl %edx, %ecx
  943. negl %edi
  944. movl $-1, %eax
  945. shrl %cl, %eax
  946. movl %edi, %ecx
  947. movl %ebx, %edi
  948. notl %eax
  949. shll %cl, %edi
  950. movl %edx, %ecx
  951. andl %eax, %edi
  952. xorl %eax, %eax
  953. orl 36(%esp), %esi
  954. movl %ebx, %esi
  955. setne %al
  956. xorl %ebx, %ebx
  957. orl %edi, %eax
  958. movl %eax, 36(%esp)
  959. shrl %cl, %esi
  960. jmp ..B1.125
  961. ..B1.122:
  962. cmpl $96, %edx
  963. jge ..B1.124
  964. ..B1.123:
  965. movl %edx, %edi
  966. movl %edx, %ecx
  967. negl %edi
  968. movl $-1, %eax
  969. movl %ebx, %edx
  970. shrl %cl, %eax
  971. shrl %cl, %edx
  972. movl %edi, %ecx
  973. shll %cl, %ebx
  974. notl %eax
  975. andl %eax, %ebx
  976. orl %esi, %ebx
  977. orl 36(%esp), %ebx
  978. movl $0, %ebx
  979. setne %bl
  980. xorl %esi, %esi
  981. orl %edx, %ebx
  982. movl %ebx, 36(%esp)
  983. xorl %ebx, %ebx
  984. jmp ..B1.125
  985. ..B1.124:
  986. xorl %esi, %esi
  987. movl $1, 36(%esp)
  988. xorl %ebx, %ebx
  989. ..B1.125:
  990. xorl %edx, %edx
  991. ..B1.126:
  992. cmpl $0, 36(%esp)
  993. je ..B1.163
  994. ..B1.127:
  995. movl 76(%esp), %edi
  996. cmpl $0, 72(%esp)
  997. fldt _small_value_80@GOTOFF(%edi)
  998. fldl _ones@GOTOFF(%edi)
  999. fadd %st(1), %st
  1000. fstpt 8(%esp)
  1001. je ..B1.194
  1002. ..B1.128:
  1003. cmpl $3072, 72(%esp)
  1004. je ..B1.159
  1005. ..B1.129:
  1006. cmpl $2048, 72(%esp)
  1007. jne ..B1.144
  1008. ..B1.130:
  1009. testl %edx, %edx
  1010. jne ..B1.138
  1011. ..B1.131:
  1012. cmpl $0, 80(%esp)
  1013. jne ..B1.137
  1014. ..B1.132:
  1015. cmpl $2147483647, %ebx
  1016. jb ..B1.137
  1017. ..B1.133:
  1018. jne ..B1.139
  1019. ..B1.134:
  1020. cmpl $-1, %esi
  1021. jb ..B1.137
  1022. ..B1.135:
  1023. jne ..B1.139
  1024. ..B1.136:
  1025. cmpl $-2147483648, 36(%esp)
  1026. jae ..B1.139
  1027. ..B1.137:
  1028. fmul %st(0), %st
  1029. fstpt 8(%esp)
  1030. fldt 8(%esp)
  1031. ..B1.138:
  1032. cmpl $0, 80(%esp)
  1033. jne ..B1.211
  1034. ..B1.139:
  1035. fstp %st(0)
  1036. incl %esi
  1037. jne ..B1.142
  1038. ..B1.140:
  1039. movl $-2147483648, %edi
  1040. testl %edx, %edx
  1041. je ..L4
  1042. movl $0, %edi
  1043. ..L4:
  1044. incl %ebx
  1045. cmpl %edi, %ebx
  1046. jne ..B1.142
  1047. ..B1.141:
  1048. orl $-2147483648, %ebx
  1049. incl %edx
  1050. ..B1.142:
  1051. cmpl $32767, %edx
  1052. jl ..B1.163
  1053. ..B1.143:
  1054. movl 80(%esp), %edx
  1055. movl 76(%esp), %ebx
  1056. lea (,%edx,8), %eax
  1057. fldt _large_value_80@GOTOFF(%ebx)
  1058. lea (%eax,%edx,4), %ecx
  1059. fldt _large_value_80@GOTOFF(%ebx,%ecx)
  1060. fmulp %st, %st(1)
  1061. fstpt 8(%esp)
  1062. fldt 8(%esp)
  1063. fstpt 20(%esp)
  1064. fldt 20(%esp)
  1065. addl $100, %esp
  1066. popl %ebx
  1067. popl %edi
  1068. popl %esi
  1069. movl %ebp, %esp
  1070. popl %ebp
  1071. ret
  1072. ..B1.144:
  1073. cmpl $1024, 72(%esp)
  1074. jne ..B1.211
  1075. ..B1.145:
  1076. testl %edx, %edx
  1077. jne ..B1.153
  1078. ..B1.146:
  1079. cmpl $0, 80(%esp)
  1080. je ..B1.152
  1081. ..B1.147:
  1082. cmpl $2147483647, %ebx
  1083. jb ..B1.152
  1084. ..B1.148:
  1085. jne ..B1.154
  1086. ..B1.149:
  1087. cmpl $-1, %esi
  1088. jb ..B1.152
  1089. ..B1.150:
  1090. jne ..B1.154
  1091. ..B1.151:
  1092. cmpl $-2147483648, 36(%esp)
  1093. jae ..B1.154
  1094. ..B1.152:
  1095. fmul %st(0), %st
  1096. fstpt 8(%esp)
  1097. fldt 8(%esp)
  1098. ..B1.153:
  1099. cmpl $0, 80(%esp)
  1100. je ..B1.211
  1101. ..B1.154:
  1102. fstp %st(0)
  1103. incl %esi
  1104. jne ..B1.157
  1105. ..B1.155:
  1106. movl $-2147483648, %edi
  1107. testl %edx, %edx
  1108. je ..L5
  1109. movl $0, %edi
  1110. ..L5:
  1111. incl %ebx
  1112. cmpl %edi, %ebx
  1113. jne ..B1.157
  1114. ..B1.156:
  1115. orl $-2147483648, %ebx
  1116. incl %edx
  1117. ..B1.157:
  1118. cmpl $32767, %edx
  1119. jl ..B1.163
  1120. ..B1.158:
  1121. movl 80(%esp), %edx
  1122. movl 76(%esp), %ebx
  1123. lea (,%edx,8), %eax
  1124. fldt _large_value_80@GOTOFF(%ebx)
  1125. lea (%eax,%edx,4), %ecx
  1126. fldt _large_value_80@GOTOFF(%ebx,%ecx)
  1127. fmulp %st, %st(1)
  1128. fstpt 8(%esp)
  1129. fldt 8(%esp)
  1130. fstpt 20(%esp)
  1131. fldt 20(%esp)
  1132. addl $100, %esp
  1133. popl %ebx
  1134. popl %edi
  1135. popl %esi
  1136. movl %ebp, %esp
  1137. popl %ebp
  1138. ret
  1139. ..B1.159:
  1140. testl %edx, %edx
  1141. je ..B1.162
  1142. ..B1.160:
  1143. lea -1(%edx), %eax
  1144. lea -2147483648(%ebx), %edi
  1145. orl %edi, %eax
  1146. orl %esi, %eax
  1147. jne ..B1.211
  1148. ..B1.161:
  1149. cmpl $-2147483648, 36(%esp)
  1150. jne ..B1.211
  1151. ..B1.162:
  1152. fmul %st(0), %st
  1153. fstpt 8(%esp)
  1154. ..B1.163:
  1155. movzbl 29(%esp), %eax
  1156. andl $32767, %edx
  1157. movl 80(%esp), %edi
  1158. andl $127, %eax
  1159. shll $7, %edi
  1160. orl %edi, %eax
  1161. movb %al, 29(%esp)
  1162. movzwl 28(%esp), %edi
  1163. andl $-32768, %edi
  1164. orl %edx, %edi
  1165. movw %di, 28(%esp)
  1166. movl %ebx, 24(%esp)
  1167. movl %esi, 20(%esp)
  1168. fldt 20(%esp)
  1169. addl $100, %esp
  1170. popl %ebx
  1171. popl %edi
  1172. popl %esi
  1173. movl %ebp, %esp
  1174. popl %ebp
  1175. ret
  1176. ..B1.164:
  1177. movl 80(%esp), %edx
  1178. movl 76(%esp), %ebx
  1179. lea (,%edx,8), %eax
  1180. fldt _large_value_80@GOTOFF(%ebx)
  1181. lea (%eax,%edx,4), %ecx
  1182. fldt _large_value_80@GOTOFF(%ebx,%ecx)
  1183. fmulp %st, %st(1)
  1184. fstpt 8(%esp)
  1185. fldt 8(%esp)
  1186. fstpt 20(%esp)
  1187. fldt 20(%esp)
  1188. addl $100, %esp
  1189. popl %ebx
  1190. popl %edi
  1191. popl %esi
  1192. movl %ebp, %esp
  1193. popl %ebp
  1194. ret
  1195. ..B1.165:
  1196. xorl %eax, %eax
  1197. cmpl $1024, 72(%esp)
  1198. movl 76(%esp), %edi
  1199. sete %al
  1200. fldl _zeros@GOTOFF(%edi,%eax,8)
  1201. addl $100, %esp
  1202. popl %ebx
  1203. popl %edi
  1204. popl %esi
  1205. movl %ebp, %esp
  1206. popl %ebp
  1207. ret
  1208. ..B1.166:
  1209. xorl %edx, %edx
  1210. jmp ..B1.38
  1211. ..B1.167:
  1212. cmpl $-2147483648, 36(%ebp)
  1213. jne ..B1.169
  1214. ..B1.168:
  1215. cmpl $0, 32(%ebp)
  1216. je ..B1.31
  1217. ..B1.169:
  1218. movzwl 62(%esp), %edx
  1219. movl %edx, %eax
  1220. andl $768, %eax
  1221. cmpl $768, %eax
  1222. je ..B1.175
  1223. ..B1.170:
  1224. orl $-64768, %edx
  1225. movw %dx, 60(%esp)
  1226. ..B1.171:
  1227. fldcw 60(%esp)
  1228. ..B1.172:
  1229. fldt 32(%ebp)
  1230. fldt 8(%ebp)
  1231. fmulp %st, %st(1)
  1232. fldt 20(%ebp)
  1233. fmulp %st, %st(1)
  1234. fstpt 20(%esp)
  1235. ..B1.173:
  1236. fldcw 62(%esp)
  1237. ..B1.174:
  1238. fldt 20(%esp)
  1239. addl $100, %esp
  1240. popl %ebx
  1241. popl %edi
  1242. popl %esi
  1243. movl %ebp, %esp
  1244. popl %ebp
  1245. ret
  1246. ..B1.175:
  1247. fldt 32(%ebp)
  1248. fldt 8(%ebp)
  1249. fmulp %st, %st(1)
  1250. fldt 20(%ebp)
  1251. fmulp %st, %st(1)
  1252. fstpt 20(%esp)
  1253. jmp ..B1.174
  1254. ..B1.176:
  1255. cmpl $-2147483648, 24(%ebp)
  1256. jne ..B1.178
  1257. ..B1.177:
  1258. cmpl $0, 20(%ebp)
  1259. je ..B1.30
  1260. ..B1.178:
  1261. movzwl 62(%esp), %edx
  1262. movl %edx, %eax
  1263. andl $768, %eax
  1264. cmpl $768, %eax
  1265. je ..B1.184
  1266. ..B1.179:
  1267. orl $-64768, %edx
  1268. movw %dx, 60(%esp)
  1269. ..B1.180:
  1270. fldcw 60(%esp)
  1271. ..B1.181:
  1272. fldt 20(%ebp)
  1273. fldt 32(%ebp)
  1274. fmulp %st, %st(1)
  1275. fldt 8(%ebp)
  1276. fmulp %st, %st(1)
  1277. fstpt 20(%esp)
  1278. ..B1.182:
  1279. fldcw 62(%esp)
  1280. ..B1.183:
  1281. fldt 20(%esp)
  1282. addl $100, %esp
  1283. popl %ebx
  1284. popl %edi
  1285. popl %esi
  1286. movl %ebp, %esp
  1287. popl %ebp
  1288. ret
  1289. ..B1.184:
  1290. fldt 20(%ebp)
  1291. fldt 32(%ebp)
  1292. fmulp %st, %st(1)
  1293. fldt 8(%ebp)
  1294. fmulp %st, %st(1)
  1295. fstpt 20(%esp)
  1296. jmp ..B1.183
  1297. ..B1.185:
  1298. cmpl $-2147483648, 12(%ebp)
  1299. jne ..B1.187
  1300. ..B1.186:
  1301. cmpl $0, 8(%ebp)
  1302. je ..B1.29
  1303. ..B1.187:
  1304. movzwl 62(%esp), %edx
  1305. movl %edx, %eax
  1306. andl $768, %eax
  1307. cmpl $768, %eax
  1308. je ..B1.193
  1309. ..B1.188:
  1310. orl $-64768, %edx
  1311. movw %dx, 60(%esp)
  1312. ..B1.189:
  1313. fldcw 60(%esp)
  1314. ..B1.190:
  1315. fldt 8(%ebp)
  1316. fldt 20(%ebp)
  1317. fmulp %st, %st(1)
  1318. fldt 32(%ebp)
  1319. fmulp %st, %st(1)
  1320. fstpt 20(%esp)
  1321. ..B1.191:
  1322. fldcw 62(%esp)
  1323. ..B1.192:
  1324. fldt 20(%esp)
  1325. addl $100, %esp
  1326. popl %ebx
  1327. popl %edi
  1328. popl %esi
  1329. movl %ebp, %esp
  1330. popl %ebp
  1331. ret
  1332. ..B1.193:
  1333. fldt 8(%ebp)
  1334. fldt 20(%ebp)
  1335. fmulp %st, %st(1)
  1336. fldt 32(%ebp)
  1337. fmulp %st, %st(1)
  1338. fstpt 20(%esp)
  1339. jmp ..B1.192
  1340. ..B1.194:
  1341. testl $-2147483648, 36(%esp)
  1342. je ..B1.159
  1343. ..B1.195:
  1344. movl %esi, %eax
  1345. movl 36(%esp), %edi
  1346. andl $1, %eax
  1347. andl $2147483647, %edi
  1348. orl %edi, %eax
  1349. je ..B1.159
  1350. ..B1.196:
  1351. incl %esi
  1352. jne ..B1.199
  1353. ..B1.197:
  1354. movl $-2147483648, %edi
  1355. testl %edx, %edx
  1356. je ..L6
  1357. movl $0, %edi
  1358. ..L6:
  1359. incl %ebx
  1360. cmpl %edi, %ebx
  1361. jne ..B1.199
  1362. ..B1.198:
  1363. orl $-2147483648, %ebx
  1364. incl %edx
  1365. ..B1.199:
  1366. cmpl $32767, %edx
  1367. jl ..B1.159
  1368. ..B1.200:
  1369. fstp %st(0)
  1370. movl 80(%esp), %edx
  1371. movl 76(%esp), %ebx
  1372. lea (,%edx,8), %eax
  1373. fldt _large_value_80@GOTOFF(%ebx)
  1374. lea (%eax,%edx,4), %ecx
  1375. fldt _large_value_80@GOTOFF(%ebx,%ecx)
  1376. fmulp %st, %st(1)
  1377. fstpt 8(%esp)
  1378. fldt 8(%esp)
  1379. fstpt 20(%esp)
  1380. fldt 20(%esp)
  1381. addl $100, %esp
  1382. popl %ebx
  1383. popl %edi
  1384. popl %esi
  1385. movl %ebp, %esp
  1386. popl %ebp
  1387. ret
  1388. ..B1.201:
  1389. xorl %eax, %eax
  1390. jmp ..B1.61
  1391. ..B1.202:
  1392. cmpl $-2147483648, 24(%ebp)
  1393. jne ..B1.14
  1394. ..B1.203:
  1395. cmpl $0, 20(%ebp)
  1396. je ..B1.18
  1397. jmp ..B1.14
  1398. ..B1.204:
  1399. cmpl $-2147483648, 12(%ebp)
  1400. jne ..B1.9
  1401. ..B1.205:
  1402. cmpl $0, 8(%ebp)
  1403. je ..B1.21
  1404. jmp ..B1.9
  1405. ..B1.206:
  1406. fldt 32(%ebp)
  1407. addl $100, %esp
  1408. popl %ebx
  1409. popl %edi
  1410. popl %esi
  1411. movl %ebp, %esp
  1412. popl %ebp
  1413. ret
  1414. ..B1.211:
  1415. fstp %st(0)
  1416. jmp ..B1.163
  1417. .align 16,0x90
  1418. .type fmal,@function
  1419. .size fmal,.-fmal
  1420. .data
  1421. # -- End fmal
  1422. .section .rodata, "a"
  1423. .align 4
  1424. .align 4
  1425. _smallest_value_64:
  1426. .long 1
  1427. .long 0
  1428. .long 1
  1429. .long 2147483648
  1430. .type _smallest_value_64,@object
  1431. .size _smallest_value_64,16
  1432. .align 4
  1433. _ones:
  1434. .long 0
  1435. .long 1072693248
  1436. .long 0
  1437. .long 3220176896
  1438. .type _ones,@object
  1439. .size _ones,16
  1440. .align 4
  1441. _zeros:
  1442. .long 0
  1443. .long 0
  1444. .long 0
  1445. .long 2147483648
  1446. .type _zeros,@object
  1447. .size _zeros,16
  1448. .align 2
  1449. _small_value_80:
  1450. .word 0
  1451. .word 0
  1452. .word 0
  1453. .word 32768
  1454. .word 6383
  1455. .word 0
  1456. .word 0
  1457. .word 0
  1458. .word 0
  1459. .word 32768
  1460. .word 39151
  1461. .word 0
  1462. .type _small_value_80,@object
  1463. .size _small_value_80,24
  1464. .align 2
  1465. _large_value_80:
  1466. .word 0
  1467. .word 0
  1468. .word 0
  1469. .word 32768
  1470. .word 26383
  1471. .word 0
  1472. .word 0
  1473. .word 0
  1474. .word 0
  1475. .word 32768
  1476. .word 59151
  1477. .word 0
  1478. .type _large_value_80,@object
  1479. .size _large_value_80,24
  1480. .data
  1481. .section .note.GNU-stack, ""
  1482. # End