summaryrefslogtreecommitdiff
path: root/lib/libc/arch
AgeCommit message (Collapse)Author
2011-04-23Merge the same fix for hppa64; reminded by miod@:Martynas Venckus
Sticky flags are in the left half of fpsr;  not the undefined bits in the right half.  OK miod@.
2011-04-22Sticky flags are in the left half of fpsr; not the undefined bitsMartynas Venckus
in the right half. OK miod@.
2011-04-21Make this code actually compile on hppa64.Joel Sing
ok kettenis@
2011-04-21Rework setjmp so that it works for hppa64.Joel Sing
ok kettenis@
2011-04-21Provide reasonable gdtoa headers.Joel Sing
ok kettenis@
2011-04-21Make SYS.h actually compile on hppa64.Joel Sing
ok kettenis@
2011-04-15Remove wrong check.Ariane van der Steldt
HPPA longjmp tests that the env parameter < the current stack pointer. The test relies on the stack being at the end of the memory space. This test is wrong for a couple of reasons: - the main stack is at 0x78000000-0x80000000, but allocations between 0x80000000-0xc0000000 are available to the program, - pthread stacks may be at any place in the address space, allowing a heap-allocated env parameter to fail the check. ok deraadt@, kettenis@, guenther@ at least
2011-04-09On the a.out architectures, WEAK_ALIAS does an implicit _C_LABEL()Theo de Raadt
ok miod
2011-04-05Fix the previous commit: define ___cerror, no __cerrorPhilip Guenthe
tested by otto@; ok miod@
2011-04-04Move __cerror to ___cerror with a weak alias so that rthreads can override it.Philip Guenthe
On mips64, also correct the name called from plain cerror to __cerror. "looks correct" miod@
2011-03-12In the original sparc V7 book (and in the v8 book), the divrem leaf code usedTheo de Raadt
local registers for a few temporaries. This was changed to use two global registers. Maybe to permit use in-kernel without conflicting with the register V7 register window handlers. (Was this done by Chris Torek? Is this related to Gordon Irlam's work? Or was it in NetBSD? Hard to tell because NetBSD removed their original cvs tree.) In V8 the ABI was tightened; more global registers became offlimits in different ways. We started supporting sun4m, and did not consider this. As a result, the global registers chosen are the wrong choice. In particular, %g7 is a poor choice for upcoming TLS work. It looks like it is safer to use %g5 and %g6 since these functions are "system software". All re-entrant parts of the system save it. On sparc64 these functions are in libc per ABI requirement, but are unused. On sparc, they occur in bootblocks (no reentrancy), kernel (reentrancy saves globals; kernel is not ABI compliant), userland libc (signal handlers save globals), and ld.so (symbol binding is not re-entrant on its own). Discussed rather extensively with guenther, kettenis, miod and drahn.
2010-10-01Provide a WEAK_ALIAS macro in <machine/asm.h> for the few platformsPhilip Guenthe
that didn't already have one, and then immediately use it in libc's SYS.h ok miod@
2010-09-24Provide IRIX-compatible get_fpc_csr() and set_fpc_csr() for mips, althoughMiod Vallat
we don't provide the silly union to decompose the value. This will allow userland to flip the ``flush denormalized to zero'' setting, which apparently is being relied upon by tcl. Asked by jasper@ a long time ago. Riding upon the upcoming libc major crank.
2010-01-23Give little-endian fp on mips a change to be handled correctly.Miod Vallat
2009-12-11More changes to avoid truncating 64 bit pointers to 32 bits and sign-extendingMiod Vallat
them; allows userland with stack beyond 2GB to run.
2009-11-01Use a local numeric label to branch to the start of the function, instead ofMiod Vallat
referencing it by name; silences a linker warning; no functional change.
2009-10-28more rcsid/sccs cleanupTheo de Raadt
2009-10-16teach gdtoa & its subroutines that malloc can fail; in which caseMartynas Venckus
ecvt, fcvt, gcvt, *printf, strtof, strtod, strtold act per ieee 1003.1. after these massive changes, remove unused files which would not work now. reported by Maksymilian Arciemowicz; ok theo
2009-09-27Add an implementation of IRIX-compatible cacheflush() routine to mips ports,Miod Vallat
needed for gcc -ftrampoline operation as well as by some third-party software. Although the implementation uses the sysarch() sysctl, the wrapper is added to libc as it was a direct system call (which it is on IRIX).
2009-07-13Load symbol address with dla, not la; good thing userland is still limitedMiod Vallat
to 2GB of vm space.
2009-06-21fix rcs ids. ok sthen@Martynas Venckus
2009-05-03Fix signed vs unsigned issue with memcmp/strncmp where the size parameterDale Rahn
was incorrectly being treated as signed. ok miod@
2009-04-29junk spaceTheo de Raadt
2009-04-21remove from gen so that lint doesn't check gen if assembly versionsMartynas Venckus
are available. spotted by theo
2009-04-19- ldexp implementation has issues. switch to the one from libmMartynas Venckus
- remove frexp in hppa64, cloned from hppa - move generic ieee754 implementations of modf and ldexp to gen ok kettenis@, "looks good" millert@
2009-04-05this is not a write-only register. might have caused to optimizeMartynas Venckus
it away. ok miod@
2008-12-12__isinff and __isnanfMartynas Venckus
2008-12-12do the same as was done in mi version: do not include math.h, since isinf,Martynas Venckus
and isnan would expand to macros and compatibility aliases won't work
2008-12-10no spaces allowed in the macro arguments. completely insanity!Theo de Raadt
2008-12-10use sys/cdefs.h; pointed out by theoMartynas Venckus
2008-12-10use sys/cdefs.hTheo de Raadt
2008-12-09these were not neededMartynas Venckus
2008-12-09ditto frexpl and ldexplMartynas Venckus
2008-12-09alias fabsl to fabs on these archsMartynas Venckus
2008-12-09remove unusedMartynas Venckus
2008-12-09- add long double signbitMartynas Venckus
- make long double versions weak aliases to double versions, on archs where long doubles are 64 bits - no need to have two finites. finite() and finitef() are non-standard 3BSD obsolete versions of isfinite. remove from libm. make them weak_alias in libc to __isfinite and __isfinitef instead. similarly make 3BSD obsolete versions of isinf, isinff, isnan, isnanf weak_aliases to C99's __isinf, __isinff, __isnan, __isnanf - bump major ok millert@
2008-09-29Use large pic asm for access to errno (needed for pie). Originally fromKurt Miller
drahn@ but tweaked to use same scratch reg as PIC_PROLOGUE. okay miod@ drahn@
2008-09-07- replace dtoa w/ David's gdtoa, version 2008-03-15Martynas Venckus
- provide proper dtoa locks - use the real strtof implementation - add strtold, __hdtoa, __hldtoa - add %a/%A support - don't lose precision in printf, don't round to double anymore - implement extended-precision versions of libc functions: fpclassify, isnan, isinf, signbit, isnormal, isfinite, now that the ieee.h is fixed - separate vax versions of strtof, and __hdtoa - add complex math support. added functions: cacos, casin, catan, ccos, csin, ctan, cacosh, casinh, catanh, ccosh, csinh, ctanh, cexp, clog, cabs, cpow, csqrt, carg, cimag, conj, cproj, creal, cacosf, casinf, catanf, ccosf, csinf, ctanf, cacoshf, casinhf, catanhf, ccoshf, csinhf, ctanhf, cexpf, clogf, cabsf, cpowf, csqrtf, cargf, cimagf, conjf, cprojf, crealf - add fdim, fmax, fmin - add log2. (adapted implementation e_log.c. could be more acruate & faster, but it's good enough for now) - remove wrappers & cruft in libm, supposed to work-around mistakes in SVID, etc.; use ieee versions. fixes issues in python 2.6 for djm@ - make _digittoint static - proper definitions for i386, and amd64 in ieee.h - sh, powerpc don't really have extended-precision - add missing definitions for mips64 (quad), m{6,8}k (96-bit) float.h for LDBL_* - merge lead to frac for m{6,8}k, for gdtoa to work properly - add FRAC*BITS & EXT_TO_ARRAY32 definitions in ieee.h, for hdtoa&ldtoa to use - add EXT_IMPLICIT_NBIT definition, which indicates implicit normalization bit - add regression tests for libc: fpclassify and printf - arith.h & gd_qnan.h definitions - update ieee.h: hppa doesn't have quad-precision, hppa64 does - add missing prototypes to gdtoaimp - on 64-bit platforms make sure gdtoa doesn't use a long when it really wants an int - etc., what i may have forgotten... - bump libm major, due to removed&changed symbols - no libc bump, since this is riding on djm's libc major crank from a day ago discussed with / requested by / testing theo, sthen@, djm@, jsg@, merdely@, jsing@, tedu@, brad@, jakemsr@, and others. looks good to millert@ parts of the diff ok kettenis@ this commit does not include: - man page changes
2008-07-25fix apps that use isinff, isnanf; use ieee 754 mi code, as allMartynas Venckus
other ieee fp archs do; pointed out by theo. tested by theo
2008-07-24- move isinf, isnan dups to gen, since most is ieee 754Martynas Venckus
- is{inf,nan} should be macros for real-floating, so rename to __is{inf,nan}, per C99 - implement C99 __fpclassify(), __fpclassifyf(), __isfinite(), __isfinitef(), __isnormal(), __isnormalf(), __signbit(), __signbitf() - long functions added, but not yet enabled, till ieee.h is fixed - implement vax equivalents of the functions - reimplement isinff, isnanf in a better way, and move to libc - add qnan bytes for all archs - bump major man pages will follow ok millert@. arm bits looked over by drahn@ discussed w/ theo, who showed the right direction, to put these functions in libc
2008-07-23clear sign bit, instead of comparing to zero and setting x=-x.Martynas Venckus
fixes special cases, such as neg. zero, and makes C99 conformant ok miod@, millert@ since there's nothing else in arm's fabs.c, replace 4-clause license w/ the one at /usr/share/misc/license.template
2008-06-26First pass at removing clauses 3 and 4 from NetBSD licenses.Ray Lai
Not sure what's more surprising: how long it took for NetBSD to catch up to the rest of the BSDs (including UCB), or the amount of code that NetBSD has claimed for itself without attributing to the actual authors. OK deraadt@
2008-05-21Use _C_LABEL when appropriate.Miod Vallat
2008-05-21Use _PROF_PROLOGUE insteaf of rolling our own.Miod Vallat
2007-10-27Repair FLT_ROUNDS operation. ok kettenis@Miod Vallat
2007-10-24Change the syscall invocation sequences to no longer fetch the last fewMiod Vallat
arguments from the stack, since the kernel will now copyin() them when necessary. This makes all system calls (but mmap()) slightly faster. WARNING! After this commit, your binaries must run against a kernel featuring m88k/m88k/trap.c r1.34 or better - i.e. a 4.1 or later kernel.
2007-05-25"boundries" -> "boundaries" in various comments. Started by Diego Casati.Kenneth R Westerback
2007-05-17LSRCS should refer to the C source version of asm files 'put it in' deraadt@Dale Rahn
2007-05-17Unbreak libc on arm. -mojMats O Jansson
2007-05-15fix some lint 'xxx used, but not defined' warnings by properly addingOtto Moerbeek
stuff to LSRCS