xref: /minix3/lib/libc/arch/i386/gen/fpsetmask.S (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc/*	$NetBSD: fpsetmask.S,v 1.5 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(fpsetmask, _fpsetmask)
122fe8fb19SBen GrasENTRY(_fpsetmask)
132fe8fb19SBen Gras#else
142fe8fb19SBen GrasENTRY(fpsetmask)
152fe8fb19SBen Gras#endif
162fe8fb19SBen Gras	subl $4,%esp
172fe8fb19SBen Gras
182fe8fb19SBen Gras	fnstcw (%esp)
192fe8fb19SBen Gras	movl (%esp),%eax
202fe8fb19SBen Gras	movl %eax,%edx
212fe8fb19SBen Gras
222fe8fb19SBen Gras	notl %eax
232fe8fb19SBen Gras	andl $63,%eax
242fe8fb19SBen Gras
252fe8fb19SBen Gras	addl %eax,%edx
262fe8fb19SBen Gras	movl 8(%esp),%ecx
272fe8fb19SBen Gras	andl $63,%ecx
282fe8fb19SBen Gras	subl %ecx,%edx
292fe8fb19SBen Gras	movl %edx,(%esp)
302fe8fb19SBen Gras	fldcw (%esp)
312fe8fb19SBen Gras
322fe8fb19SBen Gras	addl $4,%esp
332fe8fb19SBen Gras	ret
34*0a6a1f1dSLionel Sambuc#ifdef WEAK_ALIAS
35*0a6a1f1dSLionel SambucEND(_fpsetmask)
36*0a6a1f1dSLionel Sambuc#else
37*0a6a1f1dSLionel SambucEND(fpsetmask)
38*0a6a1f1dSLionel Sambuc#endif
39