[edk2-devel] [PATCH v3 2/7] ArmPkg/ArmSoftFloatLib: switch to new version of softfloat library

Leif Lindholm leif.lindholm at linaro.org
Fri May 31 13:20:55 UTC 2019


On Fri, May 31, 2019 at 02:49:53PM +0200, Ard Biesheuvel wrote:
> diff --git a/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf b/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
> index cbb49f49ade6..4d0c94df83db 100644
> --- a/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
> +++ b/ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf
> @@ -2,7 +2,7 @@
>  #  ARM Software floating point Library.
>  #
>  #  Copyright (c) 2014, ARM Ltd. All rights reserved.
> -#  Copyright (c) 2015, Linaro Ltd. All rights reserved.
> +#  Copyright (c) 2015 - 2019, Linaro Ltd. All rights reserved.
>  #
>  #  SPDX-License-Identifier: BSD-2-Clause-Patent
>  #
> @@ -10,7 +10,7 @@
>  ##
>  
>  [Defines]
> -  INF_VERSION                    = 0x00010005
> +  INF_VERSION                    = 0x0001001B
>    BASE_NAME                      = ArmSoftFloatLib
>    FILE_GUID                      = a485f921-749e-41a0-9f91-62f09a38721c
>    MODULE_TYPE                    = BASE
> @@ -22,26 +22,71 @@
>  #
>  
>  [Sources]
> -  bits32/softfloat.c
> -  Arm/__aeabi_dcmpeq.c
> -  Arm/__aeabi_fcmpeq.c
> -  Arm/__aeabi_dcmpge.c
> -  Arm/__aeabi_fcmpge.c
> -  Arm/__aeabi_dcmpgt.c
> -  Arm/__aeabi_fcmpgt.c
> -  Arm/__aeabi_dcmple.c
> -  Arm/__aeabi_fcmple.c
> -  Arm/__aeabi_dcmplt.c
> -  Arm/__aeabi_fcmplt.c
> -  Arm/__aeabi_dcmpun.c
> -  Arm/__aeabi_fcmpun.c
> +  berkeley-softfloat-3/source/ARM-VFPv2/s_propagateNaNF64UI.c
> +  berkeley-softfloat-3/source/ARM-VFPv2/softfloat_raiseFlags.c
> +  berkeley-softfloat-3/source/ARM-VFPv2/specialize.h
> +  berkeley-softfloat-3/source/f32_add.c
> +  berkeley-softfloat-3/source/f32_div.c
> +  berkeley-softfloat-3/source/f32_eq.c
> +  berkeley-softfloat-3/source/f32_le.c
> +  berkeley-softfloat-3/source/f32_lt.c
> +  berkeley-softfloat-3/source/f32_mul.c
> +  berkeley-softfloat-3/source/f32_sub.c
> +  berkeley-softfloat-3/source/f32_to_f64.c
> +  berkeley-softfloat-3/source/f32_to_i32_r_minMag.c
> +  berkeley-softfloat-3/source/f32_to_i64_r_minMag.c
> +  berkeley-softfloat-3/source/f32_to_ui32_r_minMag.c
> +  berkeley-softfloat-3/source/f32_to_ui64_r_minMag.c
> +  berkeley-softfloat-3/source/f64_add.c
> +  berkeley-softfloat-3/source/f64_div.c
> +  berkeley-softfloat-3/source/f64_eq.c
> +  berkeley-softfloat-3/source/f64_le.c
> +  berkeley-softfloat-3/source/f64_lt.c
> +  berkeley-softfloat-3/source/f64_mul.c
> +  berkeley-softfloat-3/source/f64_sub.c
> +  berkeley-softfloat-3/source/f64_to_f32.c
> +  berkeley-softfloat-3/source/f64_to_i32_r_minMag.c
> +  berkeley-softfloat-3/source/f64_to_i64_r_minMag.c
> +  berkeley-softfloat-3/source/f64_to_ui32_r_minMag.c
> +  berkeley-softfloat-3/source/f64_to_ui64_r_minMag.c
> +  berkeley-softfloat-3/source/i32_to_f32.c
> +  berkeley-softfloat-3/source/i32_to_f64.c
> +  berkeley-softfloat-3/source/i64_to_f32.c
> +  berkeley-softfloat-3/source/i64_to_f64.c
> +  berkeley-softfloat-3/source/include/internals.h
> +  berkeley-softfloat-3/source/include/opts-GCC.h
> +  berkeley-softfloat-3/source/include/primitiveTypes.h
> +  berkeley-softfloat-3/source/include/primitives.h
> +  berkeley-softfloat-3/source/include/softfloat.h
> +  berkeley-softfloat-3/source/include/softfloat_types.h
> +  berkeley-softfloat-3/source/s_addMagsF32.c
> +  berkeley-softfloat-3/source/s_addMagsF64.c
> +  berkeley-softfloat-3/source/s_countLeadingZeros32.c
> +  berkeley-softfloat-3/source/s_countLeadingZeros64.c
> +  berkeley-softfloat-3/source/s_countLeadingZeros8.c
> +  berkeley-softfloat-3/source/s_mul64To128.c
> +  berkeley-softfloat-3/source/s_normRoundPackToF32.c
> +  berkeley-softfloat-3/source/s_normRoundPackToF64.c
> +  berkeley-softfloat-3/source/s_normSubnormalF32Sig.c
> +  berkeley-softfloat-3/source/s_normSubnormalF64Sig.c
> +  berkeley-softfloat-3/source/s_roundPackToF32.c
> +  berkeley-softfloat-3/source/s_roundPackToF64.c
> +  berkeley-softfloat-3/source/s_shiftRightJam32.c
> +  berkeley-softfloat-3/source/s_shiftRightJam64.c
> +  berkeley-softfloat-3/source/s_shortShiftRightJam64.c
> +  berkeley-softfloat-3/source/s_subMagsF32.c
> +  berkeley-softfloat-3/source/s_subMagsF64.c
> +  berkeley-softfloat-3/source/softfloat_state.c
> +  berkeley-softfloat-3/source/ui32_to_f32.c
> +  berkeley-softfloat-3/source/ui32_to_f64.c
> +  berkeley-softfloat-3/source/ui64_to_f32.c
> +  berkeley-softfloat-3/source/ui64_to_f64.c
>  
> -  Arm/__aeabi_cdcmp.asm   | RVCT
> -  Arm/__aeabi_cfcmp.asm   | RVCT
> +  ArmSoftFloatLib.c
> +  platform.h
>  
>  [Packages]
>    MdePkg/MdePkg.dec
>  
>  [BuildOptions]
> -  GCC:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC -Wno-enum-compare -fno-lto
> -  RVCT:*_*_*_CC_FLAGS = -DSOFTFLOAT_FOR_GCC

It doesn't need to be a separate patch, but could you add a note to
commit message about dropping RVCT support?

> +  GCC:*_*_*_CC_FLAGS = -fno-lto -ffreestanding -Wno-unused-label

Hmm. You add -ffreestanding here, but you also add it to the CLANG
profiles in 4/7. Could we do one of:
- dropping this one, adding -ffreestanding to GCC profiles too in 4/7
- keeping this one, dropping the -ffreestanding from 4/7?

/
    Leif

> diff --git a/ArmPkg/Library/ArmSoftFloatLib/platform.h b/ArmPkg/Library/ArmSoftFloatLib/platform.h
> new file mode 100644
> index 000000000000..31e843463a38
> --- /dev/null
> +++ b/ArmPkg/Library/ArmSoftFloatLib/platform.h
> @@ -0,0 +1,11 @@
> +/*
> + * Copyright (c) 2019, Linaro Limited
> + *
> + * SPDX-License-Identifier: BSD-2-Clause-Patent
> + */
> +
> +#define LITTLEENDIAN 1
> +#define INLINE inline __attribute__((always_inline))
> +#define SOFTFLOAT_BUILTIN_CLZ 1
> +#define SOFTFLOAT_FAST_INT64
> +#include "opts-GCC.h"
> -- 
> 2.20.1
> 

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#41744): https://edk2.groups.io/g/devel/message/41744
Mute This Topic: https://groups.io/mt/31879989/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list