1*b5aa3b33Sguenther /* $OpenBSD: fpgetmask.c,v 1.4 2014/04/18 15:09:52 guenther Exp $ */ 2c9d6e9aeSmiod 3c9d6e9aeSmiod /* 44451fc0fSmiod * Written by Miodrag Vallat. Public domain 5c9d6e9aeSmiod */ 6c9d6e9aeSmiod 7c9d6e9aeSmiod #include <sys/types.h> 8c9d6e9aeSmiod #include <ieeefp.h> 9c9d6e9aeSmiod 10c9d6e9aeSmiod fp_except fpgetmask()11c9d6e9aeSmiodfpgetmask() 12c9d6e9aeSmiod { 138524f5e4Smickey u_int64_t fpsr; 14c9d6e9aeSmiod 15*b5aa3b33Sguenther __asm__ volatile("fstd %%fr0,0(%1)" : "=m" (fpsr) : "r" (&fpsr)); 168524f5e4Smickey return ((fpsr >> 32) & 0x1f); 17c9d6e9aeSmiod } 18