1*631951aaSmortimer/* $OpenBSD: fpgetmask.S,v 1.3 2018/07/03 23:14:05 mortimer Exp $ */ 2118f6189Smickey/* $NetBSD: fpgetmask.S,v 1.3 2002/06/12 19:17:22 fvdl Exp $ */ 3118f6189Smickey 4118f6189Smickey/* 5118f6189Smickey * Written by J.T. Conklin, Apr 4, 1995 6118f6189Smickey * Public domain. 7118f6189Smickey */ 8118f6189Smickey 9118f6189Smickey#include <machine/asm.h> 10118f6189Smickey 11118f6189Smickey/* 12118f6189Smickey * XXX only read x87 control word here. If an application only 13118f6189Smickey * uses the fp* interface to manipulate FP bits, it should 14118f6189Smickey * always remain in sync with the SSE mxcsr register. 15118f6189Smickey */ 16118f6189Smickey 17118f6189Smickey#ifdef WEAK_ALIAS 18118f6189SmickeyWEAK_ALIAS(fpgetmask, _fpgetmask) 19118f6189SmickeyENTRY(_fpgetmask) 20118f6189Smickey#else 21118f6189SmickeyENTRY(fpgetmask) 22118f6189Smickey#endif 23*631951aaSmortimer RETGUARD_SETUP(fpgetmask, r11) 24118f6189Smickey fnstcw -4(%rsp) 25118f6189Smickey movl -4(%rsp),%eax 26118f6189Smickey notl %eax 27118f6189Smickey andl $63,%eax 28*631951aaSmortimer RETGUARD_CHECK(fpgetmask, r11) 29118f6189Smickey ret 3053e48b83Suebayasi#ifdef WEAK_ALIAS 3153e48b83SuebayasiEND(_fpgetmask) 3253e48b83Suebayasi#else 3353e48b83SuebayasiEND(fpgetmask) 3453e48b83Suebayasi#endif 35