[PATCH v2 2/2] break fenv.c file to function files
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Jul 27 04:49:44 UTC 2020
On 25/07/2020 19:15, Eshan dhawan wrote:
> Signed-off-by: Eshan dhawan <eshandhawan51 at 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 <joel at rtems.org>
> + * Copyright (c) 2004-2005 David Schultz <das at FreeBSD.ORG>
> + * Copyright (c) 2013 Andrew Turner <andrew at 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.
More information about the devel
mailing list