/* $OpenBSD: fpgetround.c,v 1.5 2016/07/26 19:07:09 guenther Exp $ */ /* * Written by Miodrag Vallat. Public domain */ #include #include fp_rnd fpgetround(void) { u_int64_t fpsr; __asm__ volatile("fstd %%fr0,0(%1)" : "=m" (fpsr) : "r" (&fpsr)); return ((fpsr >> 41) & 0x3); } DEF_WEAK(fpgetround);