xref: /minix3/lib/libc/arch/i386/gen/fpsetsticky.S (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc/*	$NetBSD: fpsetsticky.S,v 1.7 2014/05/23 02:34:19 uebayasi Exp $	*/
22fe8fb19SBen Gras
32fe8fb19SBen Gras/*
42fe8fb19SBen Gras * Written by Charles M. Hannum, Apr 9, 1995
52fe8fb19SBen Gras * Public domain.
62fe8fb19SBen Gras */
72fe8fb19SBen Gras
82fe8fb19SBen Gras#include <machine/asm.h>
92fe8fb19SBen Gras
102fe8fb19SBen Gras#ifdef WEAK_ALIAS
112fe8fb19SBen GrasWEAK_ALIAS(fpsetsticky, _fpsetsticky)
122fe8fb19SBen GrasENTRY(_fpsetsticky)
132fe8fb19SBen Gras#else
142fe8fb19SBen GrasENTRY(fpsetsticky)
152fe8fb19SBen Gras#endif
162fe8fb19SBen Gras	subl $28,%esp
172fe8fb19SBen Gras
182fe8fb19SBen Gras	fnstenv (%esp)
192fe8fb19SBen Gras	movl 4(%esp),%eax
202fe8fb19SBen Gras	movl %eax,%edx
212fe8fb19SBen Gras
222fe8fb19SBen Gras	andl $63,%eax
232fe8fb19SBen Gras
242fe8fb19SBen Gras	subl %eax,%edx
252fe8fb19SBen Gras	movl 32(%esp),%ecx
262fe8fb19SBen Gras	andl $63,%ecx
272fe8fb19SBen Gras	addl %ecx,%edx
282fe8fb19SBen Gras	movl %edx,4(%esp)
292fe8fb19SBen Gras	fldenv (%esp)
302fe8fb19SBen Gras
312fe8fb19SBen Gras	addl $28,%esp
322fe8fb19SBen Gras	ret
33*0a6a1f1dSLionel Sambuc#ifdef WEAK_ALIAS
34*0a6a1f1dSLionel SambucEND(_fpsetsticky)
35*0a6a1f1dSLionel Sambuc#else
36*0a6a1f1dSLionel SambucEND(fpsetsticky)
37*0a6a1f1dSLionel Sambuc#endif
38