libutil: add O_NOCTTY back to old pty open code
[minix.git] / lib / libc / arch / sparc64 / gen / fpsetround.c
blob0a3cd482c9cab29db746f66458fcbe6b1f6d6e8e
1 /* $NetBSD: fpsetround.c,v 1.5 2012/03/17 21:35:06 martin Exp $ */
3 /*
4 * Written by J.T. Conklin, Apr 10, 1995
5 * Public domain.
6 */
8 #include <sys/cdefs.h>
9 #if defined(LIBC_SCCS) && !defined(lint)
10 __RCSID("$NetBSD: fpsetround.c,v 1.5 2012/03/17 21:35:06 martin Exp $");
11 #endif /* LIBC_SCCS and not lint */
13 #include "namespace.h"
15 #include <sys/types.h>
16 #include <ieeefp.h>
18 #ifdef __weak_alias
19 __weak_alias(fpsetround,_fpsetround)
20 #endif
22 fp_rnd
23 fpsetround(rnd_dir)
24 fp_rnd rnd_dir;
26 fp_rnd old;
27 fp_rnd new;
29 __asm("st %%fsr,%0" : "=m" (*&old));
31 new = old;
32 new &= ~(0x03 << 30);
33 new |= ((rnd_dir & 0x03) << 30);
35 __asm("ld %0,%%fsr" : : "m" (*&new));
37 return ((uint32_t)old >> 30) & 0x03;