[PATCH v2 07/14] LoongArch: Implement ARCH_HAS_KERNEL_FPU_SUPPORT

Huacai Chen chenhuacai at kernel.org
Sat Jan 6 18:39:07 PST 2024


On Thu, Jan 4, 2024 at 11:58 PM Samuel Holland
<samuel.holland at sifive.com> wrote:
>
> Hi Huacai,
>
> On 2024-01-04 3:55 AM, Huacai Chen wrote:
> > Hi, Samuel,
> >
> > On Thu, Dec 28, 2023 at 9:42 AM Samuel Holland
> > <samuel.holland at sifive.com> wrote:
> >>
> >> LoongArch already provides kernel_fpu_begin() and kernel_fpu_end() in
> >> asm/fpu.h, so it only needs to add kernel_fpu_available() and export
> >> the CFLAGS adjustments.
> >>
> >> Acked-by: WANG Xuerui <git at xen0n.name>
> >> Reviewed-by: Christoph Hellwig <hch at lst.de>
> >> Signed-off-by: Samuel Holland <samuel.holland at sifive.com>
> >> ---
> >>
> >> (no changes since v1)
> >>
> >>  arch/loongarch/Kconfig           | 1 +
> >>  arch/loongarch/Makefile          | 5 ++++-
> >>  arch/loongarch/include/asm/fpu.h | 1 +
> >>  3 files changed, 6 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
> >> index ee123820a476..65d4475565b8 100644
> >> --- a/arch/loongarch/Kconfig
> >> +++ b/arch/loongarch/Kconfig
> >> @@ -15,6 +15,7 @@ config LOONGARCH
> >>         select ARCH_HAS_CPU_FINALIZE_INIT
> >>         select ARCH_HAS_FORTIFY_SOURCE
> >>         select ARCH_HAS_KCOV
> >> +       select ARCH_HAS_KERNEL_FPU_SUPPORT if CPU_HAS_FPU
> >>         select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
> >>         select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
> >>         select ARCH_HAS_PTE_SPECIAL
> >> diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
> >> index 4ba8d67ddb09..1afe28feaba5 100644
> >> --- a/arch/loongarch/Makefile
> >> +++ b/arch/loongarch/Makefile
> >> @@ -25,6 +25,9 @@ endif
> >>  32bit-emul             = elf32loongarch
> >>  64bit-emul             = elf64loongarch
> >>
> >> +CC_FLAGS_FPU           := -mfpu=64
> >> +CC_FLAGS_NO_FPU                := -msoft-float
> > We will add LoongArch32 support later, maybe it should be -mfpu=32 in
> > that case, and do other archs have the case that only support FP32?
>
> Do you mean that LoongArch32 does not support double-precision FP in hardware?
> At least both of the consumers in this series use double-precision, so my first
> thought is that LoongArch32 could not select ARCH_HAS_KERNEL_FPU_SUPPORT.
Then is it possible to introduce CC_FLAGS_SP_FPU and CC_FLAGS_DP_FPU?
I think there may be some place where SP FP is enough.

Huacai

>
> Regards,
> Samuel
>



More information about the linux-riscv mailing list