e_remainderl.S 588 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Based on the i387 version written by:
  3. * J.T. Conklin ([email protected])
  4. * Public domain.
  5. */
  6. #include <amd64/bsd_asm.h>
  7. //__FBSDID("$FreeBSD: src/lib/msun/amd64/e_remainderl.S,v 1.2 2011/01/07 16:13:12 kib Exp $")
  8. ENTRY(remainderl)
  9. #ifndef _WIN64
  10. fldt 24(%rsp)
  11. fldt 8(%rsp)
  12. #else
  13. fldt (%r8)
  14. fldt (%rdx)
  15. #endif
  16. 1: fprem1
  17. fstsw %ax
  18. testw $0x400,%ax
  19. jne 1b
  20. fstp %st(1)
  21. #ifdef _WIN64
  22. mov %rcx,%rax
  23. movq $0x0,0x8(%rcx)
  24. fstpt (%rcx)
  25. #endif
  26. ret
  27. /* Enable stack protection */
  28. #if defined(__ELF__)
  29. .section .note.GNU-stack,"",%progbits
  30. #endif