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 <[email protected]>
@@ -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);
}