1*631951aaSmortimer/* $OpenBSD: fpgetsticky.S,v 1.3 2018/07/03 23:14:05 mortimer Exp $ */ 2118f6189Smickey/* $NetBSD: fpgetsticky.S,v 1.3 2002/06/12 19:17:22 fvdl Exp $ */ 3118f6189Smickey 4118f6189Smickey/* 5118f6189Smickey * Written by Frank van der Linden at Wasabi Systems for NetBSD. 6118f6189Smickey * Public domain. 7118f6189Smickey * 8118f6189Smickey */ 9118f6189Smickey 10118f6189Smickey#include <machine/asm.h> 11118f6189Smickey 12118f6189Smickey/* 13118f6189Smickey * XXX read both the x87 and SSE status words here, and OR 14118f6189Smickey * them to get a complete picture of exceptions. 15118f6189Smickey */ 16118f6189Smickey 17118f6189Smickey#ifdef WEAK_ALIAS 18118f6189SmickeyWEAK_ALIAS(fpgetsticky, _fpgetsticky) 19118f6189SmickeyENTRY(_fpgetsticky) 20118f6189Smickey#else 21118f6189SmickeyENTRY(fpgetsticky) 22118f6189Smickey#endif 23*631951aaSmortimer RETGUARD_SETUP(fpgetsticky, r11) 24118f6189Smickey fnstsw -4(%rsp) 25118f6189Smickey stmxcsr -8(%rsp) 26118f6189Smickey movl -4(%rsp),%eax 27118f6189Smickey orl -8(%rsp),%eax 28118f6189Smickey andl $63,%eax 29*631951aaSmortimer RETGUARD_CHECK(fpgetsticky, r11) 30118f6189Smickey ret 3153e48b83Suebayasi#ifdef WEAK_ALIAS 3253e48b83SuebayasiEND(_fpgetsticky) 3353e48b83Suebayasi#else 3453e48b83SuebayasiEND(fpgetsticky) 3553e48b83Suebayasi#endif 36