[PATCH] fix some Arm FP routines not checking if floating point is enabled

Richard Earnshaw Richard.Earnshaw@foss.arm.com
Wed Apr 21 15:19:04 GMT 2021


Pushed.

R.

On 21/04/2021 13:48, Ties Stuij wrote:
> A lot of the Arm FP routines check for the availability of floating point by way
> of `(__ARM_FP & 0x4)`. However some do not. This patch remedies this.
> ---
>   newlib/libm/machine/arm/sf_ceil.c      | 2 +-
>   newlib/libm/machine/arm/sf_floor.c     | 2 +-
>   newlib/libm/machine/arm/sf_nearbyint.c | 2 +-
>   newlib/libm/machine/arm/sf_rint.c      | 2 +-
>   newlib/libm/machine/arm/sf_round.c     | 2 +-
>   newlib/libm/machine/arm/sf_trunc.c     | 2 +-
>   6 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/newlib/libm/machine/arm/sf_ceil.c b/newlib/libm/machine/arm/sf_ceil.c
> index b6efbff0b..44fdf834a 100644
> --- a/newlib/libm/machine/arm/sf_ceil.c
> +++ b/newlib/libm/machine/arm/sf_ceil.c
> @@ -24,7 +24,7 @@
>      NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
>      SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
>   
> -#if __ARM_ARCH >= 8 && !defined (__SOFTFP__)
> +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x4) && !defined (__SOFTFP__)
>   #include <math.h>
>   
>   float
> diff --git a/newlib/libm/machine/arm/sf_floor.c b/newlib/libm/machine/arm/sf_floor.c
> index 7bc95808c..44c38c42c 100644
> --- a/newlib/libm/machine/arm/sf_floor.c
> +++ b/newlib/libm/machine/arm/sf_floor.c
> @@ -24,7 +24,7 @@
>      NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
>      SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
>   
> -#if __ARM_ARCH >= 8 && !defined (__SOFTFP__)
> +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x4) && !defined (__SOFTFP__)
>   #include <math.h>
>   
>   float
> diff --git a/newlib/libm/machine/arm/sf_nearbyint.c b/newlib/libm/machine/arm/sf_nearbyint.c
> index c70d84442..126673e97 100644
> --- a/newlib/libm/machine/arm/sf_nearbyint.c
> +++ b/newlib/libm/machine/arm/sf_nearbyint.c
> @@ -24,7 +24,7 @@
>      NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
>      SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
>   
> -#if __ARM_ARCH >= 8 && !defined (__SOFTFP__)
> +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x4) && !defined (__SOFTFP__)
>   #include <math.h>
>   
>   float
> diff --git a/newlib/libm/machine/arm/sf_rint.c b/newlib/libm/machine/arm/sf_rint.c
> index d9c383a7e..5def21009 100644
> --- a/newlib/libm/machine/arm/sf_rint.c
> +++ b/newlib/libm/machine/arm/sf_rint.c
> @@ -24,7 +24,7 @@
>      NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
>      SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
>   
> -#if __ARM_ARCH >= 8 && !defined (__SOFTFP__)
> +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x4) && !defined (__SOFTFP__)
>   #include <math.h>
>   
>   float
> diff --git a/newlib/libm/machine/arm/sf_round.c b/newlib/libm/machine/arm/sf_round.c
> index 232fc0848..88c53ba13 100644
> --- a/newlib/libm/machine/arm/sf_round.c
> +++ b/newlib/libm/machine/arm/sf_round.c
> @@ -24,7 +24,7 @@
>      NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
>      SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
>   
> -#if __ARM_ARCH >= 8 && !defined (__SOFTFP__)
> +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x4) && !defined (__SOFTFP__)
>   #include <math.h>
>   
>   float
> diff --git a/newlib/libm/machine/arm/sf_trunc.c b/newlib/libm/machine/arm/sf_trunc.c
> index 64e4aeb9a..c08fa6fed 100644
> --- a/newlib/libm/machine/arm/sf_trunc.c
> +++ b/newlib/libm/machine/arm/sf_trunc.c
> @@ -24,7 +24,7 @@
>      NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
>      SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
>   
> -#if __ARM_ARCH >= 8 && !defined (__SOFTFP__)
> +#if __ARM_ARCH >= 8 && (__ARM_FP & 0x4) && !defined (__SOFTFP__)
>   #include <math.h>
>   
>   float
> 


More information about the Newlib mailing list