summaryrefslogtreecommitdiff
path: root/lib/libm/arch
AgeCommit message (Collapse)Author
2024-03-04Bring back the fabsf strong alias to fabs, lost sometime ago duringMiod Vallat
libm symbol visibility rework. This would warrant a libm.so minor bump, but as 7.5 packages build have started, this won't happen (and hopefully noone will notice since this only affects landisk). ok deraadt@
2023-01-27Use the same inline assembly constraints as for libc fp*(), when operatingMiod Vallat
on the floating-point control register.
2023-01-27Remove fast round(3) implementation for hppa. It is a nice idea, but does notMiod Vallat
round in the right direction for halfway values. (noticed in the perl test results thanks to afresh1@)
2022-12-27spelling fixes; from paul tagliamonteJason McIntyre
any changes not taken noted on tech, but chiefly here i did not take the cancelation - cancellation changes;
2022-08-29use ansi volatile keyword, not __volatileJonathan Gray
ok miod@ guenther@
2022-08-27Use ENTRY_NB() instead of ENTRY()Theo Buehler
Since llvm 13, there are compiler warnings in libm on amd64 and i386 due to .weak overriding an earlier .globl. Use ENTRY_NB() instead of ENTRY() to avoid emitting the .globl. ok deraadt jca (for amd64) ok guenther
2021-09-17sys/param.h is not needed in this fileTheo de Raadt
2021-05-12Correct defines for fenv rounding modes and change fenv_t and fexcept_tJonathan Gray
from unsigned long long to unsigned int. ok kettenis@
2021-05-11use FE_ALL_EXCEPT not _ROUND_MASK when masking fcsr exception bitsJonathan Gray
2021-04-27riscv64 additions for libmDale Rahn
ok kettenis@
2020-11-07Fix ilogb(3) implementation. The results have to match FP_ILOGB0 andMark Kettenis
FP_ILOGBNAN which isn't the case for the amd64 and i386 assembly versions. Drop these in favour of C implementations. Als reimplement ilogbl(3) by providing separate ld80 and ld128 implementations that replace the existing implementation which may hit an infinite loop when built for quad-precision long double. ok patrick@, gkoehler@
2020-07-09The fegetexceptflag() function should not have a DEF_STD.Mark Kettenis
Brings arm64 in line with all the other architectures. ok millert@
2020-06-28Add powerpc64 fenv bits; copied from powerpc. From drahn@Mark Kettenis
2019-03-12Setting and getting the rounding mode on our arm64 FPU has not workedPatrick Wildt
in libm since the rounding mode is in fpcr, not fpsr. Since both FPU registers are 32-bit we can store them in the 64-bit fenv_t to make handling the bits easier. While there add FE_DENORMAL, which also exists on x86. Also make sure that whenever we are being passed an exception mask, we only allow the bits that are supported by hardware. Found by regression tests Debugged with Moritz Buhl ok kettenis@
2018-07-08Add missing retguard checkmortimer
ok deraadt
2018-07-03Add retguard macros to libm assembly.mortimer
ok deraadt
2018-03-16Since most (if not all) ARMv8 hardware doesn't actually support trapping ofMark Kettenis
floating-point exceptions, simplify the functions that control the exception masks just like we did on armv7. ok tom@
2018-03-12Make the binding of rintl, significand, and significandf consistentlyPhilip Guenther
'weak' in the static libm.a ok deraadt@
2018-02-28Change floating-point mode/environment control functions to operate onMark Kettenis
both the hardfloat (FPU registers) and softfloat (software) state. This makes these functions work correctly when mixing hardfloat and softfloat code. Disable trapping for softfloat since most (if not all) ARMv7 and ARMv8 hardware that is on the market doesn't support trapping of floating-point exceptions. ok patrick@
2018-02-05Constants which can go into .rodataTheo de Raadt
2017-08-19Use 0xcc trapsleds instead of default/nop/0xcc in BTC alignmentsTheo de Raadt
don't bother with .text before ENTRY()
2017-01-11Add support for AArch64. Based on FreeBSD's msun header, modifiedPatrick Wildt
to look and feel like our code.
2016-12-22copysign and copysignf are used within libm, so declare them accordingly.Christian Weisgerber
Required if the compiler doesn't replace them with builtins (e.g. clang on amd64). ok kettenis@ guenther@ i386 sync requested by guenther@
2016-09-12Reduce libm's exports and make internal calls go direct.Philip Guenther
All dependencies on libc are now via reserved/standardized names. ok kettenis@ millert@ deraadt@
2016-09-01retire the sparc library codeTed Unangst
2016-05-12more hppa64 cleaningTheo de Raadt
2016-03-10more pieces of vaxTheo de Raadt
2015-01-20Missing $OpenBSD$'s.Kenneth R Westerback
ok deraadt@
2014-09-12Provide a sparc64 version of sqrtl(3) that simply calls _Qp_sqrt.Mark Kettenis
The generic sqrtl(3) is not nearly accurate enough for quad-precision floating point.
2014-04-18It's been a quarter century: we can assume volatile is present with that name.Philip Guenther
2014-03-18Retire hp300, mvme68k and mvme88k ports. These ports have no users, keepingMiod Vallat
this hardware alive is becoming increasingly difficult, and I should heed the message sent by the three disks which have died on me over the last few days. Noone sane will mourn these ports anyway. So long, and thanks for the fish.
2013-08-06scalbnf on vax, okay miod@Marc Espie
2013-07-15Fix atan2f() and hypotf() by actually converting both their arguments to theMiod Vallat
larger type and passing them both the the double routine.
2013-07-15add some missing asm functions to vax: long double as aliases to double,Marc Espie
and float functions by cvtfd/cvtdf (like in netbsd) scalbnf will have to wait, as it's more complicated... brings vax in line with the rest. okay miod@/martynas@
2013-07-05VAX ELF userland bits. Consists mostly of register prefix additions.Miod Vallat
2013-03-28Switch libc and libm to use strong aliases rather than weak aliasesMartynas Venckus
where appropriate. Among other things makes the symbols consistent across all architectures (notably where ldbl mantissa is 53 bits). While at it, kill unused LINTLIBRARY/PROTOLIB1 cruft which was there to trick lint into recording the right prototypes for aliased functions. Most of the work done at the awesome n2k13 hackathon. Agreed by kettenis@, guenther@, matthew@.
2013-02-02Userland bits for m68k/ELF. Mostly addition of register prefixes to theMiod Vallat
assembler instructions, and cope with the few changes in return values location.
2013-01-13Get rid of the very ugly lint workarounds: LINTLIBRARY, PROTOLIB,Martynas Venckus
and a few empty files for lint to chew on.
2013-01-05Switch m88k ports to ELF.Miod Vallat
2012-12-30Provide proper ldexp{f,l} aliases to scalbn{f,l} to match the MI (ld80) code.Miod Vallat
2012-12-05Remove excessive sys/cdefs.h inclusionTheo de Raadt
ok guenther millert kettenis
2012-08-23Aliases for extended precision were missed on a few functions on hppa.Martynas Venckus
Reported by Brad, thanks!
2011-07-09Switch to the SSE code. OK mikeb@.Martynas Venckus
2011-07-09Don't reimplement the same thing twice. OK matthew@.Martynas Venckus
2011-07-08Revert (leaving the complex math part alone). Some stuff is dependingMartynas Venckus
on this historical behavior; so we're stuck in this stupid situation. No cookie for me.
2011-07-08Move fabs(3), frexp(3), and modf(3) to libm--nothing has been usingMartynas Venckus
them in libc for a very long time. OK guenther@.
2011-05-31Make lint play nicer in pass 2 of libm on amd64 and i386. TheMartynas Venckus
internal _ItL_* extended-precision constants are of course going to be declared inconsistently since we define them based on structures; however prototype as long doubles.
2011-05-30Trick lint into recording the right prototypes in the llib-lm.lnMartynas Venckus
database on platforms without extended-precision floating-point support. Seems like a reasonable approach to millert@.
2011-05-28Adapt m68k MD functions to extended-precision.Martynas Venckus
Go for it miod@.
2011-05-28Adapt m68k MD functions to single-precision.Martynas Venckus
Looked over by miod@.