igcc386.s 869 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. .file "igcc386.s"
  2. gcc2_compiled.:
  3. ___gnu_compiled_c:
  4. .text
  5. .align 2
  6. .globl _Imultiply
  7. _Imultiply:
  8. pushl %ebp
  9. movl %esp, %ebp
  10. movl 16(%ebp), %eax
  11. mull 12(%ebp)
  12. movl 8(%ebp), %ecx
  13. addl 20(%ebp), %eax
  14. adcl $0, %edx
  15. addl %eax, %eax
  16. adcl %edx, %edx
  17. shrl $1, %eax
  18. movl %eax, 0(%ecx)
  19. movl %edx, %eax
  20. leave
  21. ret
  22. .align 2
  23. .globl _Idiv10_9
  24. _Idiv10_9:
  25. pushl %ebp
  26. movl %esp, %ebp
  27. movl 12(%ebp), %edx
  28. movl 16(%ebp), %eax
  29. shll $1, %eax
  30. shrl $1, %edx
  31. rcrl $1, %eax
  32. movl $1000000000, %ecx
  33. divl %ecx
  34. movl 8(%ebp), %ecx
  35. movl %eax, 0(%ecx)
  36. movl %edx, %eax
  37. leave
  38. ret
  39. .align 2
  40. .globl _Idivide
  41. _Idivide:
  42. pushl %ebp
  43. movl %esp, %ebp
  44. movl 12(%ebp), %edx
  45. movl 16(%ebp), %eax
  46. shll $1, %eax
  47. shrl $1, %edx
  48. rcrl $1, %eax
  49. movl 20(%ebp), %ecx
  50. divl %ecx
  51. movl 8(%ebp), %ecx
  52. movl %eax, 0(%ecx)
  53. movl %edx, %eax
  54. leave
  55. ret
  56. .align 2