Remove building with NOCRYPTO option
[minix3.git] / lib / libc / arch / x86_64 / gen / fpsetsticky.S
blob25a73a0e8748be6bf511df822e1c02cbafea6e15
1 /*      $NetBSD: fpsetsticky.S,v 1.6 2014/05/22 15:01:56 uebayasi 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 status 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  */ 
18 #ifdef WEAK_ALIAS
19 WEAK_ALIAS(fpsetsticky, _fpsetsticky)
20 ENTRY(_fpsetsticky)
21 #else
22 ENTRY(fpsetsticky)
23 #endif
24         fnstenv -28(%rsp)
25         stmxcsr -32(%rsp)
27         andl    $63,%edi
29         movl    -24(%rsp),%eax
30         movl    %eax,%edx
31         andb    $0xc0,%dl
33         orl     %edi,%edx
34         movl    %edx,-24(%rsp)
36         movl    -32(%rsp),%edx
37         orl     %edx,%eax
38         andl    $63,%eax
39         andb    $0xc0,%dl
40         orl     %edi,%edx
41         movl    %edx,-32(%rsp)
43         ldmxcsr -32(%rsp)
44         fldenv  -28(%rsp)
45         ret
46 #ifdef WEAK_ALIAS
47 END(_fpsetsticky)
48 #else
49 END(fpsetsticky)
50 #endif