blitz_ftoi.macos.x86.s 331 B

123456789101112131415161718192021222324252627
  1. .globl _bbFloatToInt
  2. .text
  3. # 0[esp]=ret
  4. # 4[esp]=double
  5. _bbFloatToInt:
  6. fldl 4(%esp)
  7. sub $12,%esp
  8. fistl (%esp)
  9. fsts 4(%esp)
  10. fisubl (%esp)
  11. fstps 8(%esp)
  12. pop %eax
  13. pop %ecx
  14. pop %edx
  15. test %ecx,%ecx
  16. js negative
  17. add $0x7fffffff,%edx
  18. sbb $0,%eax
  19. ret
  20. negative:
  21. xor %ecx,%ecx
  22. test %edx,%edx
  23. setg %cl
  24. add %ecx,%eax
  25. ret