ad8278c1f03fb63bca9dd287827f3223026f0e5c
[dragonfly.git] / lib / libc / i386 / gen / fpsetmask.S
1 /*
2  * Written by Charles M. Hannum, Apr 9, 1995
3  * Public domain.
4  *
5  * $NetBSD: fpsetmask.S,v 1.4 2002/01/13 21:45:43 thorpej Exp $
6  * $DragonFly: src/lib/libc/i386/gen/fpsetmask.S,v 1.1 2005/07/26 21:15:19 joerg Exp $
7  */
8
9 #include <machine/asm.h>
10
11 #ifdef WEAK_ALIAS
12 WEAK_ALIAS(fpsetmask, _fpsetmask)
13 ENTRY(_fpsetmask)
14 #else
15 ENTRY(fpsetmask)
16 #endif
17         subl $4,%esp
18
19         fnstcw (%esp)
20         movl (%esp),%eax
21         movl %eax,%edx
22
23         notl %eax
24         andl $63,%eax
25
26         addl %eax,%edx
27         movl 8(%esp),%ecx
28         andl $63,%ecx
29         subl %ecx,%edx
30         movl %edx,(%esp)
31         fldcw (%esp)
32
33         addl $4,%esp
34         ret