Remove $FreeBSD$: one-line sh patternRemove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
Remove $FreeBSD$: two-line .h patternRemove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
arm64 lib32: prepare arm64 headers to redirect to armIn order to compile lib32 libraries and other 32-bit code on arm64,<machine/foo.h> needs to be redirected to an arm header ratherthan arm64 wh
arm64 lib32: prepare arm64 headers to redirect to armIn order to compile lib32 libraries and other 32-bit code on arm64,<machine/foo.h> needs to be redirected to an arm header ratherthan arm64 when building with -m32. Ifdef the arm64 headers thatare installed in /usr/include/machine and used by user-level software(including references from /usr/include/*.h) so that if __arm__ isdefined when including the arm64 version, <arm/foo.h> is includedrather than using the rest of the file's contents. Some arm headershad no arm64 equivalent; headers were added just to do the redirection.These files use #error if __arm__ is not defined to guard againstconfusion. Also add an include/arm Makefile, and modify Makefilesas needed to install everything, including the arm files in/usr/include/arm. fenv.h comes from lib/msun/arm/fenv.h.The new arm64 headers are: acle-compat.h cpuinfo.h sysreg.hReviewed by: jrtc27, impDifferential Revision: https://reviews.freebsd.org/D40944
show more ...
Use a builtin where possible in msunSome of the functions in msun can be implemented using a compilerbuiltin function to generate a small number of instructions. Implementthis support in fma, fma
Use a builtin where possible in msunSome of the functions in msun can be implemented using a compilerbuiltin function to generate a small number of instructions. Implementthis support in fma, fmax, fmin, and sqrt on arm64.Care must be taken as the builtin can be implemented as a functioncall on some architectures that lack direct support. In these caseswe need to use the original code path.As we don't set errno on failure build with -fno-math-errno so thetoolchain doesn't convert a builtin into a function call when itdetects a failure, e.g. gcc will add a call to sqrt when the inputis negative leading to an infinite loop.Sponsored by: The FreeBSD FoundationDifferential Revision: https://reviews.freebsd.org/D32801
Save all fpcr/fpsr bits in the AArch64 fenv_tThe existing code masked off all bits that it didn't know about. To befuture-proof, we should save and restore the entire fpcr/fpsr registers.Addition
Save all fpcr/fpsr bits in the AArch64 fenv_tThe existing code masked off all bits that it didn't know about. To befuture-proof, we should save and restore the entire fpcr/fpsr registers.Additionally, the existing fesetenv() was incorrectly setting the roundingmode in fpsr instead of fpcr.This patch stores fpcr in the high 32 bits of fenv_t and fpsr in the lowbits instead of trying to interleave them in a single 32-bit field.Technically, this is an ABI break if you re-compile parts of your code orpass a fenv_t between DSOs that were compiled with different versionsof fenv.h. However, I believe we should fix this since the existing codewas broken and passing fenv_t across DSOs should rarely happen.Reviewed By: andrewDifferential Revision: https://reviews.freebsd.org/D29160
Add the fe* symbols to libm for arm64.Sponsored by: The FreeBSD Foundation
Correct mrs_fpcr and mrs_fpsr macros in arm64 fenv.hSubmitted by: andrewSponsored by: The FreeBSD Foundation
Start to import support for the AArch64 architecture from ARM. This changeonly adds support for kernel-toolchain, however it is expected furtherchanges to add kernel and userland support will be co
Start to import support for the AArch64 architecture from ARM. This changeonly adds support for kernel-toolchain, however it is expected furtherchanges to add kernel and userland support will be committed as they arereviewed.As our copy of binutils is too old the devel/aarch64-binutils port needsto be installed to pull in a linker.To build either TARGET needs to be set to arm64, or TARGET_ARCH set toaarch64. The latter is set so uname -p will return aarch64 as existingthird party software expects this.Differential Revision: https://reviews.freebsd.org/D2005Relnotes: YesSponsored by: The FreeBSD Foundation