Module Name: src
Committed By: rillig
Date: Wed Mar 20 06:15:40 UTC 2024
Modified Files:
src/lib/libc/arch/sparc64/gen: fpsetround.c
Log Message:
sparc64/fpsetround: avoid shifting into the sign bit
Lint had warned about the constant expression '0x03 << 30' but not about
the structurally equal nonconstant expression '(rnd_dir & 0x03) << 30'.
No binary change.
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libc/arch/sparc64/gen/fpsetround.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/libc/arch/sparc64/gen/fpsetround.c
diff -u src/lib/libc/arch/sparc64/gen/fpsetround.c:1.8 src/lib/libc/arch/sparc64/gen/fpsetround.c:1.9
--- src/lib/libc/arch/sparc64/gen/fpsetround.c:1.8 Mon Mar 11 23:05:35 2024
+++ src/lib/libc/arch/sparc64/gen/fpsetround.c Wed Mar 20 06:15:39 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: fpsetround.c,v 1.8 2024/03/11 23:05:35 christos Exp $ */
+/* $NetBSD: fpsetround.c,v 1.9 2024/03/20 06:15:39 rillig Exp $ */
/*
* Written by J.T. Conklin, Apr 10, 1995
@@ -7,7 +7,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: fpsetround.c,v 1.8 2024/03/11 23:05:35 christos Exp $");
+__RCSID("$NetBSD: fpsetround.c,v 1.9 2024/03/20 06:15:39 rillig Exp $");
#endif /* LIBC_SCCS and not lint */
#include "namespace.h"
@@ -36,8 +36,8 @@ fpsetround(fp_rnd rnd_dir)
#endif
new = old;
- new &= ~(0x03U << 30);
- new |= ((rnd_dir & 0x03) << 30);
+ new &= ~(0x03U << 30);
+ new |= ((rnd_dir & 0x03U) << 30);
__asm("ld %0,%%fsr" : : "m" (*&new));