s_scalbnl.S 751 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * Based on code written by J.T. Conklin <[email protected]>.
  3. * Public domain.
  4. */
  5. #include <amd64/bsd_asm.h>
  6. //__FBSDID("$FreeBSD: src/lib/msun/amd64/s_scalbnl.S,v 1.3 2011/01/07 16:13:12 kib Exp $")
  7. /* //RCSID("$NetBSD: s_scalbnf.S,v 1.4 1999/01/02 05:15:40 kristerw Exp $") */
  8. ENTRY(scalbnl)
  9. #ifndef _WIN64
  10. movl %edi,-4(%rsp)
  11. fildl -4(%rsp)
  12. fldt 8(%rsp)
  13. #else
  14. mov %r8,%rax
  15. movl %eax,-4(%rsp)
  16. fildl -4(%rsp)
  17. fldt (%rdx)
  18. #endif
  19. fscale
  20. fstp %st(1)
  21. #ifdef _WIN64
  22. mov %rcx,%rax
  23. movq $0x0,0x8(%rcx)
  24. fstpt (%rcx)
  25. #endif
  26. ret
  27. END(scalbnl)
  28. .globl CNAME(ldexpl)
  29. .set CNAME(ldexpl),CNAME(scalbnl)
  30. /* Enable stack protection */
  31. #if defined(__linux__) && defined(__ELF__)
  32. .section .note.GNU-stack,"",%progbits
  33. #endif