solv.s 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. .file "solv2.c"
  2. .version "01.01"
  3. gcc2_compiled.:
  4. .section .rodata
  5. .align 4
  6. .LC0:
  7. .long 0x9ee75616,0x3cd203af
  8. .text
  9. .align 4
  10. .globl solv
  11. .type solv,@function
  12. solv:
  13. pushl %ebp
  14. movl %esp,%ebp
  15. subl $72,%esp
  16. pushl %edi
  17. pushl %esi
  18. pushl %ebx
  19. fldz
  20. pushl $8
  21. movl 16(%ebp),%edx
  22. pushl %edx
  23. fstpt -60(%ebp)
  24. call calloc
  25. movl %eax,-20(%ebp)
  26. movl $0,-4(%ebp)
  27. movl 8(%ebp),%ecx
  28. movl %ecx,-12(%ebp)
  29. movl %ecx,-16(%ebp)
  30. addl $8,%esp
  31. fldt -60(%ebp)
  32. movl 16(%ebp),%edi
  33. cmpl %edi,-4(%ebp)
  34. jge .L72
  35. leal 0(,%edi,8),%edx
  36. movl %edx,-24(%ebp)
  37. addl $8,%edx
  38. movl %edx,-32(%ebp)
  39. movl $0,-40(%ebp)
  40. movl 12(%ebp),%ecx
  41. movl %ecx,-44(%ebp)
  42. movl $0,-48(%ebp)
  43. .align 4
  44. .L7:
  45. cmpl $0,-4(%ebp)
  46. je .L8
  47. movl $0,-64(%ebp)
  48. movl -20(%ebp),%edi
  49. movl %edi,-72(%ebp)
  50. movl -12(%ebp),%ebx
  51. movl 16(%ebp),%edx
  52. cmpl %edx,-64(%ebp)
  53. jge .L10
  54. .align 4
  55. .L12:
  56. movl -72(%ebp),%ecx
  57. movl (%ebx),%eax
  58. movl %eax,(%ecx)
  59. movl 4(%ebx),%eax
  60. movl %eax,4(%ecx)
  61. addl $8,%ecx
  62. movl %ecx,-72(%ebp)
  63. incl -64(%ebp)
  64. addl -24(%ebp),%ebx
  65. movl 16(%ebp),%edi
  66. cmpl %edi,-64(%ebp)
  67. jl .L12
  68. .L10:
  69. movl $1,-64(%ebp)
  70. movl 16(%ebp),%edx
  71. cmpl %edx,-64(%ebp)
  72. jge .L15
  73. movl -48(%ebp),%ecx
  74. movl %ecx,-28(%ebp)
  75. movl -20(%ebp),%edi
  76. addl $8,%edi
  77. movl %edi,-68(%ebp)
  78. movl %edx,-36(%ebp)
  79. .align 4
  80. .L17:
  81. movl -64(%ebp),%edx
  82. movl %edx,-8(%ebp)
  83. movl -4(%ebp),%ecx
  84. cmpl %ecx,%edx
  85. jle .L18
  86. movl %ecx,-8(%ebp)
  87. .L18:
  88. xorl %esi,%esi
  89. movl -36(%ebp),%edi
  90. movl -12(%ebp),%edx
  91. leal (%edx,%edi,8),%eax
  92. movl %eax,%ebx
  93. subl -28(%ebp),%ebx
  94. movl -20(%ebp),%ecx
  95. movl %ecx,%edi
  96. movl %ecx,-72(%ebp)
  97. movl -8(%ebp),%ecx
  98. fldz
  99. cmpl %esi,%ecx
  100. jle .L20
  101. .align 4
  102. .L22:
  103. fldl (%ebx)
  104. fmull (%edi)
  105. faddp %st,%st(1)
  106. addl $8,%edi
  107. addl $8,%ebx
  108. incl %esi
  109. cmpl %esi,%ecx
  110. jg .L22
  111. .L20:
  112. movl -72(%ebp),%ecx
  113. movl -68(%ebp),%edx
  114. fldl (%edx)
  115. fsubp %st,%st(1)
  116. fstpl (%edx)
  117. addl $8,%edx
  118. movl %edx,-68(%ebp)
  119. movl 16(%ebp),%ecx
  120. addl %ecx,-36(%ebp)
  121. incl -64(%ebp)
  122. cmpl %ecx,-64(%ebp)
  123. jl .L17
  124. .L15:
  125. movl $0,-64(%ebp)
  126. movl -20(%ebp),%edi
  127. movl %edi,-72(%ebp)
  128. movl -12(%ebp),%ebx
  129. movl 16(%ebp),%edx
  130. cmpl %edx,-64(%ebp)
  131. jge .L8
  132. .align 4
  133. .L28:
  134. movl -72(%ebp),%ecx
  135. movl (%ecx),%eax
  136. movl %eax,(%ebx)
  137. movl 4(%ecx),%eax
  138. movl %eax,4(%ebx)
  139. addl $8,%ecx
  140. movl %ecx,-72(%ebp)
  141. incl -64(%ebp)
  142. addl -24(%ebp),%ebx
  143. movl 16(%ebp),%edi
  144. cmpl %edi,-64(%ebp)
  145. jl .L28
  146. .L8:
  147. movl -16(%ebp),%edx
  148. fldl (%edx)
  149. fabs
  150. movl -4(%ebp),%ecx
  151. movl %ecx,-8(%ebp)
  152. movl %ecx,%esi
  153. incl %esi
  154. movl %edx,-68(%ebp)
  155. cmpl %esi,16(%ebp)
  156. jle .L31
  157. .align 4
  158. .L33:
  159. movl -24(%ebp),%edi
  160. addl %edi,-68(%ebp)
  161. movl -68(%ebp),%edx
  162. fldl (%edx)
  163. fabs
  164. fcom %st(1)
  165. fnstsw %ax
  166. andb $69,%ah
  167. jne .L73
  168. fstp %st(1)
  169. movl %esi,-8(%ebp)
  170. jmp .L32
  171. .align 4
  172. .L73:
  173. fstp %st(0)
  174. .L32:
  175. incl %esi
  176. cmpl %esi,16(%ebp)
  177. jg .L33
  178. .L31:
  179. fld %st(0)
  180. fxch %st(2)
  181. fcom %st(1)
  182. fnstsw %ax
  183. andb $69,%ah
  184. jne .L74
  185. fstp %st(2)
  186. jmp .L36
  187. .align 4
  188. .L74:
  189. fstp %st(0)
  190. .L36:
  191. fldl .LC0
  192. fmul %st(2),%st
  193. fcompp
  194. fnstsw %ax
  195. andb $69,%ah
  196. jne .L38
  197. fstp %st(0)
  198. movl -20(%ebp),%ecx
  199. pushl %ecx
  200. call free
  201. movl $-1,%eax
  202. jmp .L71
  203. .align 4
  204. .L38:
  205. movl -4(%ebp),%edi
  206. cmpl %edi,-8(%ebp)
  207. je .L39
  208. movl -44(%ebp),%edx
  209. fldl (%edx)
  210. movl -8(%ebp),%ecx
  211. movl 12(%ebp),%edi
  212. movl (%edi,%ecx,8),%eax
  213. movl %eax,(%edx)
  214. movl 4(%edi,%ecx,8),%eax
  215. movl %eax,4(%edx)
  216. fstpl (%edi,%ecx,8)
  217. xorl %esi,%esi
  218. movl -40(%ebp),%edx
  219. movl 8(%ebp),%ecx
  220. leal (%ecx,%edx,8),%ebx
  221. movl 16(%ebp),%eax
  222. imull -8(%ebp),%eax
  223. leal (%ecx,%eax,8),%eax
  224. movl %eax,-72(%ebp)
  225. cmpl %esi,16(%ebp)
  226. jle .L39
  227. .align 4
  228. .L43:
  229. fldl (%ebx)
  230. movl -72(%ebp),%edi
  231. movl (%edi),%eax
  232. movl %eax,(%ebx)
  233. movl 4(%edi),%eax
  234. movl %eax,4(%ebx)
  235. addl $8,%ebx
  236. fstpl (%edi)
  237. addl $8,%edi
  238. movl %edi,-72(%ebp)
  239. incl %esi
  240. cmpl %esi,16(%ebp)
  241. jg .L43
  242. .L39:
  243. movl -4(%ebp),%esi
  244. incl %esi
  245. movl -16(%ebp),%edx
  246. movl %edx,-68(%ebp)
  247. fld1
  248. fdivl (%edx)
  249. cmpl %esi,16(%ebp)
  250. jle .L75
  251. .align 4
  252. .L48:
  253. movl -24(%ebp),%ecx
  254. addl %ecx,-68(%ebp)
  255. movl -68(%ebp),%edi
  256. fldl (%edi)
  257. fmul %st(1),%st
  258. fstpl (%edi)
  259. incl %esi
  260. cmpl %esi,16(%ebp)
  261. jg .L48
  262. .L75:
  263. fstp %st(0)
  264. movl 16(%ebp),%edx
  265. addl %edx,-40(%ebp)
  266. addl $8,-44(%ebp)
  267. addl $8,-48(%ebp)
  268. incl -4(%ebp)
  269. addl $8,-12(%ebp)
  270. movl -32(%ebp),%ecx
  271. addl %ecx,-16(%ebp)
  272. cmpl %edx,-4(%ebp)
  273. jl .L7
  274. .L72:
  275. fstp %st(0)
  276. movl $1,-4(%ebp)
  277. movl 12(%ebp),%edi
  278. addl $8,%edi
  279. movl %edi,-68(%ebp)
  280. movl 16(%ebp),%edx
  281. cmpl %edx,-4(%ebp)
  282. jge .L52
  283. movl 16(%ebp),%eax
  284. .align 4
  285. .L54:
  286. xorl %esi,%esi
  287. movl 8(%ebp),%ecx
  288. leal (%ecx,%eax,8),%ebx
  289. movl 12(%ebp),%edi
  290. movl %edi,-72(%ebp)
  291. fldz
  292. cmpl %esi,-4(%ebp)
  293. jle .L56
  294. .align 4
  295. .L58:
  296. fldl (%ebx)
  297. movl -72(%ebp),%edx
  298. fmull (%edx)
  299. faddp %st,%st(1)
  300. addl $8,%edx
  301. movl %edx,-72(%ebp)
  302. addl $8,%ebx
  303. incl %esi
  304. cmpl %esi,-4(%ebp)
  305. jg .L58
  306. .L56:
  307. movl -68(%ebp),%ecx
  308. fldl (%ecx)
  309. fsubp %st,%st(1)
  310. fstpl (%ecx)
  311. addl $8,%ecx
  312. movl %ecx,-68(%ebp)
  313. addl 16(%ebp),%eax
  314. incl -4(%ebp)
  315. movl 16(%ebp),%edi
  316. cmpl %edi,-4(%ebp)
  317. jl .L54
  318. .L52:
  319. movl 16(%ebp),%edx
  320. decl %edx
  321. movl %edx,-4(%ebp)
  322. addl $-8,-68(%ebp)
  323. movl 16(%ebp),%eax
  324. imull %eax,%eax
  325. movl 8(%ebp),%ecx
  326. leal -8(%ecx,%eax,8),%eax
  327. movl %eax,-16(%ebp)
  328. testl %edx,%edx
  329. jl .L62
  330. movl 16(%ebp),%edi
  331. leal 8(,%edi,8),%edi
  332. movl %edi,-64(%ebp)
  333. leal 0(,%edx,8),%eax
  334. .align 4
  335. .L64:
  336. movl -4(%ebp),%esi
  337. incl %esi
  338. movl -16(%ebp),%ebx
  339. movl 12(%ebp),%edx
  340. addl %eax,%edx
  341. movl %edx,-72(%ebp)
  342. fldz
  343. cmpl %esi,16(%ebp)
  344. jle .L66
  345. .align 4
  346. .L68:
  347. addl $8,%ebx
  348. addl $8,-72(%ebp)
  349. fldl (%ebx)
  350. movl -72(%ebp),%ecx
  351. fmull (%ecx)
  352. faddp %st,%st(1)
  353. incl %esi
  354. cmpl %esi,16(%ebp)
  355. jg .L68
  356. .L66:
  357. movl -68(%ebp),%edi
  358. fldl (%edi)
  359. fsubp %st,%st(1)
  360. fstl (%edi)
  361. movl -16(%ebp),%edx
  362. fdivl (%edx)
  363. fstpl (%edi)
  364. addl $-8,%edi
  365. movl %edi,-68(%ebp)
  366. addl $-8,%eax
  367. movl -64(%ebp),%ecx
  368. subl %ecx,%edx
  369. movl %edx,-16(%ebp)
  370. decl -4(%ebp)
  371. jns .L64
  372. .L62:
  373. movl -20(%ebp),%edi
  374. pushl %edi
  375. call free
  376. xorl %eax,%eax
  377. .L71:
  378. leal -84(%ebp),%esp
  379. popl %ebx
  380. popl %esi
  381. popl %edi
  382. movl %ebp,%esp
  383. popl %ebp
  384. ret
  385. .Lfe1:
  386. .size solv,.Lfe1-solv
  387. .ident "GCC: (GNU) 2.7.2"