Module Name: src Committed By: martin Date: Sat Dec 30 17:59:25 UTC 2017
Modified Files: src/lib/libm/arch/alpha: fenv.c Log Message: Fix usage of sysarch(ALPHA_FPGETMASK) To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/lib/libm/arch/alpha/fenv.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libm/arch/alpha/fenv.c diff -u src/lib/libm/arch/alpha/fenv.c:1.2 src/lib/libm/arch/alpha/fenv.c:1.3 --- src/lib/libm/arch/alpha/fenv.c:1.2 Wed Mar 22 23:11:08 2017 +++ src/lib/libm/arch/alpha/fenv.c Sat Dec 30 17:59:24 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: fenv.c,v 1.2 2017/03/22 23:11:08 chs Exp $ */ +/* $NetBSD: fenv.c,v 1.3 2017/12/30 17:59:24 martin Exp $ */ /*- * Copyright (c) 2004-2005 David Schultz <d...@freebsd.org> @@ -28,7 +28,7 @@ * $FreeBSD: src/lib/msun/alpha/fenv.c,v 1.2 2005/03/16 19:03:44 das Exp $ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: fenv.c,v 1.2 2017/03/22 23:11:08 chs Exp $"); +__RCSID("$NetBSD: fenv.c,v 1.3 2017/12/30 17:59:24 martin Exp $"); #include "namespace.h" @@ -63,7 +63,7 @@ fegetenv(fenv_t *envp) * only need to issue an excb after the mf_fpcr to ensure that * the read is executed before any subsequent FP ops. */ - sysarch(ALPHA_FPGETMASK, (char *)&p); + p.mask = sysarch(ALPHA_FPGETMASK, 0); __mf_fpcr(&r.__d); *envp = r.__bits | p.mask; __excb(); @@ -76,7 +76,7 @@ feholdexcept(fenv_t *envp) struct alpha_fp_except_args p; union __fpcr r; - sysarch(ALPHA_FPGETMASK, (char *)&p); + p.mask = sysarch(ALPHA_FPGETMASK, 0); __mf_fpcr(&r.__d); *envp = r.__bits | p.mask; r.__bits &= ~((fenv_t)FE_ALL_EXCEPT << _FPUSW_SHIFT); @@ -124,7 +124,7 @@ feenableexcept(int mask) { struct alpha_fp_except_args p; - sysarch(ALPHA_FPGETMASK, &p); + p.mask = sysarch(ALPHA_FPGETMASK, 0); p.mask |= (mask & FE_ALL_EXCEPT); sysarch(ALPHA_FPSETMASK, &p); return p.mask; @@ -135,7 +135,7 @@ fedisableexcept(int mask) { struct alpha_fp_except_args p; - sysarch(ALPHA_FPGETMASK, &p); + p.mask = sysarch(ALPHA_FPGETMASK, 0); p.mask &= ~(mask & FE_ALL_EXCEPT); sysarch(ALPHA_FPSETMASK, &p); return p.mask; @@ -144,8 +144,6 @@ fedisableexcept(int mask) int fegetexcept(void) { - struct alpha_fp_except_args p; - sysarch(ALPHA_FPGETMASK, &p); - return p.mask; + return sysarch(ALPHA_FPGETMASK, 0); }