On 25/07/2020 19:15, Eshan dhawan wrote:
Signed-off-by: Eshan dhawan <eshandhawa...@gmail.com>
---
newlib/libc/machine/arm/sys/fenv.h | 8 +
newlib/libm/machine/arm/Makefile.am | 6 +-
newlib/libm/machine/arm/Makefile.in | 34 +++-
newlib/libm/machine/arm/fe_dfl_env.c | 38 +++-
newlib/libm/machine/arm/feclearexcept.c | 45 ++++-
newlib/libm/machine/arm/fedisableexcept.c | 47 +++++
newlib/libm/machine/arm/feenableexcept.c | 48 +++++
newlib/libm/machine/arm/fegetenv.c | 42 +++-
newlib/libm/machine/arm/fegetexcept.c | 44 +++++
newlib/libm/machine/arm/fegetexceptflag.c | 46 ++++-
newlib/libm/machine/arm/fegetround.c | 49 ++++-
newlib/libm/machine/arm/feholdexcept.c | 47 ++++-
newlib/libm/machine/arm/fenv.c | 223 ----------------------
newlib/libm/machine/arm/feraiseexcept.c | 44 ++++-
newlib/libm/machine/arm/fesetenv.c | 43 ++++-
newlib/libm/machine/arm/fesetexceptflag.c | 47 ++++-
newlib/libm/machine/arm/fesetround.c | 46 ++++-
newlib/libm/machine/arm/fetestexcept.c | 45 ++++-
newlib/libm/machine/arm/feupdateenv.c | 50 ++++-
19 files changed, 670 insertions(+), 282 deletions(-)
create mode 100644 newlib/libm/machine/arm/fedisableexcept.c
create mode 100644 newlib/libm/machine/arm/feenableexcept.c
create mode 100644 newlib/libm/machine/arm/fegetexcept.c
delete mode 100644 newlib/libm/machine/arm/fenv.c
diff --git a/newlib/libc/machine/arm/sys/fenv.h
b/newlib/libc/machine/arm/sys/fenv.h
index 70bd57be4..8712b2f33 100644
--- a/newlib/libc/machine/arm/sys/fenv.h
+++ b/newlib/libc/machine/arm/sys/fenv.h
@@ -62,6 +62,14 @@ typedef int fexcept_t;
#define FE_DOWNWARD 0x00800000
#define FE_TOWARDZERO 0x00c00000
+#ifndef __SOFTFP__
+#define vmrs_fpscr(__r) __asm __volatile("vmrs %0, fpscr" : "=&r"(__r))
+#define vmsr_fpscr(__r) __asm __volatile("vmsr fpscr, %0" : : "r"(__r))
+#define _FPU_MASK_SHIFT 8
+#define _ROUND_MASK (FE_TONEAREST | FE_DOWNWARD | \
+ FE_UPWARD | FE_TOWARDZERO)
+#endif
+
I would still prefer to have this in an internal header file
"newlib/libm/machine/arm/_fenv.h" which is included via #include "_fenv.h".
If you really want to have it visible via <fenv.h>, then the vm*()
should at least be renamed to _vmrs_fpscr() and _vmsr_fpscr().
[...]
diff --git a/newlib/libm/machine/arm/fe_dfl_env.c
b/newlib/libm/machine/arm/fe_dfl_env.c
index 8cbee7771..07aee8e7c 100644
--- a/newlib/libm/machine/arm/fe_dfl_env.c
+++ b/newlib/libm/machine/arm/fe_dfl_env.c
@@ -1,7 +1,37 @@
-/*
- * SPDX-License-Identifier: BSD-2-Clause
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
*
- * (c) Copyright 2019 Joel Sherrill <j...@rtems.org>
+ * Copyright (c) 2004-2005 David Schultz <d...@freebsd.org>
+ * Copyright (c) 2013 Andrew Turner <and...@freebsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
*/
-#include "../../fenv/fenv_stub.c"
+#include <fenv.h>
+
+ fenv_t __fe_dfl_env = { 0 };
+
+ const fenv_t *_fe_dfl_env = &__fe_dfl_env;
+
Why indent?
There is a blank line at the end of the file. Please remove the blank
line at the end of all files from this patch.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel