Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Jan 2020 18:14:48 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r356560 - head/share/mk
Message-ID:  <202001091814.009IEmgS073512@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: imp
Date: Thu Jan  9 18:14:48 2020
New Revision: 356560
URL: https://svnweb.freebsd.org/changeset/base/356560

Log:
  Add note to remind me there are three choices for arm32 floating point.
  
  hard	use floating point hardware, pass registers to functions in
  	floating point registers.
  softfp	use floating point hardware, but pass registers to functions
  	in integer registers.
  soft	do floating point calcuations without using floating point
  	hardware. Pass arguments in integer registers.
  
  FreeBSD 11 and newer assumes hard. 10 and earlier assumed softfp.  We have no
  real support, at the moment, for soft. It's untested, though, if softfp still
  works.
  
  Add a note here since this is a whack-a-doodle combination relative to all other
  platforms.
  
  softfp is likely to go away in the future because it was retained for people
  using FreeBSD 10 + armv6 needing to transition more slowly from softfp -> hard
  than the project. It likely is no longer needed, and may be getting in the
  way of people needing 'soft' support.

Modified:
  head/share/mk/bsd.cpu.mk

Modified: head/share/mk/bsd.cpu.mk
==============================================================================
--- head/share/mk/bsd.cpu.mk	Thu Jan  9 17:21:00 2020	(r356559)
+++ head/share/mk/bsd.cpu.mk	Thu Jan  9 18:14:48 2020	(r356560)
@@ -355,7 +355,11 @@ MACHINE_CPU += softfp
 # to force that.
 .if ${MACHINE_ARCH:Marmv[67]*} && defined(CPUTYPE) && ${CPUTYPE:M*soft*} != ""
 # Needs to be CFLAGS not _CPUCFLAGS because it's needed for the ABI
-# not a nice optimization.
+# not a nice optimization. Please note: softfp ABI uses hardware floating
+# instructions, but passes arguments to function calls in integer regsiters.
+# -mfloat-abi=soft is full software floating point, but is not currently
+# supported. softfp support in FreeBSD may disappear in FreeBSD 13.0 since
+# it was a transition tool from FreeBSD 10 to 11 and is a bit of an odd duck.
 CFLAGS += -mfloat-abi=softfp
 .endif
 .endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001091814.009IEmgS073512>