[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: arm64 softfloat
From: |
Andrei Borzenkov |
Subject: |
Re: arm64 softfloat |
Date: |
Tue, 2 Jun 2015 19:51:12 +0300 |
В Tue, 02 Jun 2015 18:37:32 +0200
Vladimir 'φ-coder/phcoder' Serbinenko <address@hidden> пишет:
> On 02.06.2015 16:55, Leif Lindholm wrote:
> > On Tue, Jun 02, 2015 at 02:25:15PM +0200, Vladimir 'phcoder' Serbinenko
> > wrote:
> >> Please give more details as to where we have floats. We shouldn't have any
> >
> > Ok, seems I was tripping over myself with the internal compiler error
> > workaround (-mgeneral-regs-only), and applying it on the host tools
> > as well, where +nofp was (correctly) not being enforced, causing a
> > clash.
> >
> What is the relation of -mgeneral-regs-only with +nofp? The decription
> of -mgeneral-regs-only in manual is very vague
According to
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0774a/chr1392305446662.html
1.16 -mgeneral-regs-only
Prevents the use of floating-point instructions or floating-point registers.
Note
The -mgeneral-regs-only option is only valid with the aarch64-arm-none-eabi
target. Use -mfpu=none to prevent the use of floating-point instructions or
floating-point registers for the armv8a-arm-none-eabi target.
The description is for armclang; we can just hope that GCC is using the
same semantic.
> > So, rewinding a bit - in order to work around the gcc 5.1 build issue
> > (which is not Fedora specific), we can use -mgeneral-regs-only
> > instead of -march=armv8-a+nofp. If we do this, we can also get
> > rid of the arm64-specific twiddling that drops the +nosimd.
> >
> > Like so:
> >
> >>From 43d4231432838821cabe4f6aea4f0f50e87af9c4 Mon Sep 17 00:00:00 2001
> > From: Leif Lindholm <address@hidden>
> > Date: Tue, 2 Jun 2015 15:41:09 +0100
> > Subject: [PATCH] configure.ac: clean up arm64 soft-float handling
> >
> > Fix compilation with gcc 5.1 (avoid internal compiler error), by
> > replacing explicit -march +nofp+nosimd options with -mgeneral-regs-only.
> >
> > This also enables the removal of some further conditional build flag
> > setting.
> > ---
> > configure.ac | 14 +++-----------
> > 1 file changed, 3 insertions(+), 11 deletions(-)
> >
> > diff --git a/configure.ac b/configure.ac
> > index 891c14f..fd8a62e 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -686,9 +686,9 @@ if test x"$platform" != xemu ; then
> > AC_CACHE_CHECK([for options to get soft-float],
> > grub_cv_target_cc_soft_float, [
> > grub_cv_target_cc_soft_float=no
> > if test "x$target_cpu" = xarm64; then
> > - CFLAGS="$TARGET_CFLAGS -march=armv8-a+nofp+nosimd -Werror"
> > + CFLAGS="$TARGET_CFLAGS -mgeneral-regs-only -Werror"
> > AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
> > -
> > [grub_cv_target_cc_soft_float="-march=armv8-a+nofp+nosimd"], [])
> > + [grub_cv_target_cc_soft_float="-mgeneral-regs-only"],
> > [])
> > fi
> > if test "x$target_cpu" = xia64; then
> > CFLAGS="$TARGET_CFLAGS -mno-inline-float-divide -mno-inline-sqrt
> > -Werror"
> > @@ -720,15 +720,7 @@ if test x"$platform" != xemu ; then
> > TARGET_CFLAGS="$TARGET_CFLAGS $grub_cv_target_cc_soft_float"
> > ;;
> > esac
> > - case x"$grub_cv_target_cc_soft_float" in
> > - x"-march=armv8-a+nofp+nosimd")
> > - # +nosimd disables also the cache opcodes that we need in asm.
> > - TARGET_CCASFLAGS="$TARGET_CCASFLAGS -march=armv8-a+nofp"
> > - ;;
> > - *)
> > - TARGET_CCASFLAGS="$TARGET_CCASFLAGS $grub_cv_target_cc_soft_float"
> > - ;;
> > - esac
> > + TARGET_CCASFLAGS="$TARGET_CCASFLAGS $grub_cv_target_cc_soft_float"
> >
> > fi
> >
> >
>
>
pgpldY6NAPy6t.pgp
Description: OpenPGP digital signature
- arm64 softfloat, Leif Lindholm, 2015/06/02
- Re: arm64 softfloat, Vladimir 'phcoder' Serbinenko, 2015/06/02
- Re: arm64 softfloat, Leif Lindholm, 2015/06/02
- Re: arm64 softfloat, Vladimir 'φ-coder/phcoder' Serbinenko, 2015/06/02
- Re: arm64 softfloat,
Andrei Borzenkov <=
- Re: arm64 softfloat, Leif Lindholm, 2015/06/03
- Re: arm64 softfloat, Andrei Borzenkov, 2015/06/03
- Re: arm64 softfloat, Leif Lindholm, 2015/06/03
- Re: arm64 softfloat, Andrei Borzenkov, 2015/06/03
- Re: arm64 softfloat, Vladimir 'phcoder' Serbinenko, 2015/06/03