1 /* $NetBSD: fpsetsticky.S,v 1.7 2014/05/23 02:34:19 uebayasi Exp $ */ 2 3 /* 4 * Written by Charles M. Hannum, Apr 9, 1995 5 * Public domain. 6 */ 7 8 #include <machine/asm.h> 9 10 #ifdef WEAK_ALIAS 11 WEAK_ALIAS(fpsetsticky, _fpsetsticky) 12 ENTRY(_fpsetsticky) 13 #else 14 ENTRY(fpsetsticky) 15 #endif 16 subl $28,%esp 17 18 fnstenv (%esp) 19 movl 4(%esp),%eax 20 movl %eax,%edx 21 22 andl $63,%eax 23 24 subl %eax,%edx 25 movl 32(%esp),%ecx 26 andl $63,%ecx 27 addl %ecx,%edx 28 movl %edx,4(%esp) 29 fldenv (%esp) 30 31 addl $28,%esp 32 ret 33 #ifdef WEAK_ALIAS 34 END(_fpsetsticky) 35 #else 36 END(fpsetsticky) 37 #endif 38