Fix mdoc(7)/man(7) mix up.
[netbsd-mini2440.git] / lib / libc / arch / x86_64 / gen / fpsetmask.S
blob05366ac8dc065e2ab014307ec34338072ee1843a
1 /*      $NetBSD: fpsetmask.S,v 1.2 2002/01/13 21:45:51 thorpej Exp $    */
3 /*
4  * Written by Frank van der Linden at Wasabi Systems for NetBSD.
5  * Public domain.
6  */
8 #include <machine/asm.h>
11  * XXX set both the x87 control word and the SSE mxcsr register.
12  * Applications should only set exception and round flags
13  * via the fp*() interface, otherwise the status words
14  * will get our of sync.
15  */
17 #ifdef WEAK_ALIAS
18 WEAK_ALIAS(fpsetmask, _fpsetmask)
19 ENTRY(_fpsetmask)
20 #else
21 ENTRY(fpsetmask)
22 #endif
23         fnstcw  -4(%rsp)
24         stmxcsr -8(%rsp)
25         andl    $63,%edi
26         notl    %edi
28         movl    -4(%rsp),%edx
29         movl    %edx,%eax
30         andl    %edi,%edx
31         movl    %edx,-4(%rsp)
33         movl    -8(%rsp),%edx
34         roll    $7,%edi
35         andl    %edi,%edx
36         movl    %edx,-8(%rsp)
38         fldcw   -4(%rsp)
39         ldmxcsr -8(%rsp)
40         andl    $63,%eax
41         ret