diff options
Diffstat (limited to 'lib/libc/arch/amd64/gen/fpgetround.S')
-rw-r--r-- | lib/libc/arch/amd64/gen/fpgetround.S | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/libc/arch/amd64/gen/fpgetround.S b/lib/libc/arch/amd64/gen/fpgetround.S new file mode 100644 index 00000000000..5220b3ef396 --- /dev/null +++ b/lib/libc/arch/amd64/gen/fpgetround.S @@ -0,0 +1,26 @@ +/* $OpenBSD: fpgetround.S,v 1.1 2004/01/28 01:44:45 mickey Exp $ */ +/* $NetBSD: fpgetround.S,v 1.3 2002/06/12 19:17:22 fvdl Exp $ */ + +/* + * Written by J.T. Conklin, Apr 4, 1995 + * Public domain. + */ + +#include <machine/asm.h> + +/* + * XXX store only x87 state. If an application only uses the fp* + * interface, this should be in sync with the SSE mxcsr register. + */ + +#ifdef WEAK_ALIAS +WEAK_ALIAS(fpgetround, _fpgetround) +ENTRY(_fpgetround) +#else +ENTRY(fpgetround) +#endif + fnstcw -4(%rsp) + movl -4(%rsp),%eax + rorl $10,%eax + andl $3,%eax + ret |