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.
This commit is contained in:
Warner Losh 2020-01-09 18:14:48 +00:00
parent ead85fe415
commit dea247463c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=356560

View File

@ -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