1*0a6a1f1dSLionel Sambuc/* $NetBSD: fpsetprec.S,v 1.2 2014/05/23 02:34:19 uebayasi Exp $ */ 2f14fb602SLionel Sambuc 3f14fb602SLionel Sambuc/* 4f14fb602SLionel Sambuc * Written by Charles M. Hannum, Apr 9, 1995 5f14fb602SLionel Sambuc * Public domain. 6f14fb602SLionel Sambuc */ 7f14fb602SLionel Sambuc 8f14fb602SLionel Sambuc#include <machine/asm.h> 9f14fb602SLionel Sambuc 10f14fb602SLionel Sambuc#ifdef WEAK_ALIAS 11f14fb602SLionel SambucWEAK_ALIAS(fpsetprec, _fpsetprec) 12f14fb602SLionel SambucENTRY(_fpsetprec) 13f14fb602SLionel Sambuc#else 14f14fb602SLionel SambucENTRY(fpsetprec) 15f14fb602SLionel Sambuc#endif 16f14fb602SLionel Sambuc subl $4,%esp 17f14fb602SLionel Sambuc 18f14fb602SLionel Sambuc fnstcw (%esp) 19f14fb602SLionel Sambuc movl (%esp),%eax 20f14fb602SLionel Sambuc 21f14fb602SLionel Sambuc rorl $8,%eax 22f14fb602SLionel Sambuc movl %eax,%edx 23f14fb602SLionel Sambuc andl $3,%eax 24f14fb602SLionel Sambuc 25f14fb602SLionel Sambuc subl %eax,%edx 26f14fb602SLionel Sambuc movl 8(%esp),%ecx 27f14fb602SLionel Sambuc andl $3,%ecx 28f14fb602SLionel Sambuc orl %ecx,%edx 29f14fb602SLionel Sambuc roll $8,%edx 30f14fb602SLionel Sambuc movl %edx,(%esp) 31f14fb602SLionel Sambuc fldcw (%esp) 32f14fb602SLionel Sambuc 33f14fb602SLionel Sambuc addl $4,%esp 34f14fb602SLionel Sambuc ret 35*0a6a1f1dSLionel Sambuc#ifdef WEAK_ALIAS 36*0a6a1f1dSLionel SambucEND(_fpsetprec) 37*0a6a1f1dSLionel Sambuc#else 38*0a6a1f1dSLionel SambucEND(fpsetprec) 39*0a6a1f1dSLionel Sambuc#endif 40