summaryrefslogtreecommitdiffstats
path: root/lib/libc/arch/m88k (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fix almost ten-years old bug in siglongjmp(), which would not restore a signalmiod2012-08-123-87/+57
| | | | | | | | | | | | | mask of zero (because of flawed logic assuming finding zero in the sigjmp_buf signal mask means sigsetjmp was invoked with a zero `savemask' argument). While there, clean comments of all *{set,long}jmp routines, and shave a few instructions by using bcnd insead of cmp + bb to test for zero values. Passes the regress tests, and now devel/libsigsegv configure siglongjmp test will not spin (this test is however flawed as it expects a signal handler declared as running on the sigaltstack and `returning' through siglongjmp to be invoked on the signal stack the next time the signal is raised).
* Do not use <machine/float.h>, that is an deformed BSD-ism.deraadt2012-06-251-2/+2
| | | | | It turns out <float.h> is the right file to pull in. ok millert
* __tfork() needs to set the stack address of the new thread in the kernel,guenther2012-06-211-5/+3
| | | | | | | | | so that it can't get a signal while still running on the parent thread's stack. Also, pass in sizeof(struct __tfork) to provide forward compat when more members are added. This is an ABI change, so switch syscall numbers and bump lib majors this time. ok deraadt@ matthew@
* alloca.c cannot be usedderaadt2012-04-121-3/+1
|
* remove rfork(); ok guenther miodderaadt2012-04-121-45/+0
|
* Move __tfork_thread() from rthreads (libpthread) to libc so thatguenther2012-03-221-0/+55
| | | | | | it can be used for not-strictly-threading purposes ok matthew@ kurt@
* Revert (leaving the complex math part alone). Some stuff is dependingmartynas2011-07-082-3/+49
| | | | | on this historical behavior; so we're stuck in this stupid situation. No cookie for me.
* Move fabs(3), frexp(3), and modf(3) to libm--nothing has been usingmartynas2011-07-082-49/+3
| | | | them in libc for a very long time. OK guenther@.
* On the a.out architectures, WEAK_ALIAS does an implicit _C_LABEL()deraadt2011-04-091-2/+2
| | | | ok miod
* Move __cerror to ___cerror with a weak alias so that rthreads can override it.guenther2011-04-041-2/+4
| | | | | | On mips64, also correct the name called from plain cerror to __cerror. "looks correct" miod@
* more rcsid/sccs cleanupderaadt2009-10-284-24/+4
|
* remove from gen so that lint doesn't check gen if assembly versionsmartynas2009-04-211-3/+3
| | | | are available. spotted by theo
* - ldexp implementation has issues. switch to the one from libmmartynas2009-04-193-449/+3
| | | | | | - remove frexp in hppa64, cloned from hppa - move generic ieee754 implementations of modf and ldexp to gen ok kettenis@, "looks good" millert@
* these were not neededmartynas2008-12-091-2/+1
|
* ditto frexpl and ldexplmartynas2008-12-091-1/+2
|
* - add long double signbitmartynas2008-12-096-6/+38
| | | | | | | | | | | | | - 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@
* - replace dtoa w/ David's gdtoa, version 2008-03-15martynas2008-09-0710-1/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* - move isinf, isnan dups to gen, since most is ieee 754martynas2008-07-244-97/+12
| | | | | | | | | | | | | | | | - 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
* Change the syscall invocation sequences to no longer fetch the last fewmiod2007-10-242-8/+2
| | | | | | | | | | 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.
* if we pull in a .S file, we must fake out the lint with a .c filederaadt2005-11-291-1/+2
| | | | | for this first cut, we will do this for alloca() using alloca.c by adding it to LSRCS
* zap rcsid.espie2005-08-0729-158/+29
| | | | okay deraadt@ (tested them all)
* Replace broken frexp() with a working one from FreeBSD. There'smillert2005-02-012-76/+2
| | | | | | no need to have a copy for each platform with ieee floating point, only vax needs a special version (which probably has similar bugs). OK and with help from otto@
* Use less stack space for temporary storage and C code invocation, aftermiod2004-07-283-30/+24
| | | | the ABI change.
* Update stack frame processing after ABI change.miod2004-07-282-9/+9
|
* Do not overallocate stack space, and keep the stack on a 16-byte boundary.miod2004-07-221-7/+7
|
* It turns out that the so-called fast ffs(3) routines were wrong, as soon asmiod2004-04-012-18/+2
| | | | | | | | | | | | more than one bit is set, as the ff1 instruction counts from the highest order. However, gcc/m88k with optimization enabled would use a correct, short sequence based upon ff1 and tweaks, to achieve the intended result, hence i did not catch this flaw initially. So revert to the C implementation - it is correct, still decently fast, and will only be used when compiling at -O0.
* Use libkern's fast ffs() in libc too.miod2004-01-262-2/+18
|
* Use an unsigned comparison against minbrk.miod2003-12-251-7/+6
| | | | ok deraadt@
* In the never-ending story of *setjmp bugs, fix a typo preventingmiod2003-12-241-5/+5
| | | | sigsetjmp(foo, !0) to work. Sigh.
* Speed up sbrk() one cycle by removing an unnecessary register shuffling.miod2003-12-191-4/+3
|
* OR r13, not r9 to match SYS.h; fixes syscall(2) on mvme88k; OK miod@millert2003-12-081-3/+3
|
* Only a clown like me could put cerror in the data section by mistake...miod2003-10-161-4/+3
|
* These files are not necessary anymore.miod2003-09-011-45/+0
|
* In setjmp() and sigsetjmp(), be sure to return with r14 and r15 unchanged, asmiod2003-08-062-4/+11
| | | | they are part of the call preserved register set, and gcc -O relies upon this.
* Fix the *longjmp() behaviour - it is legal to reuse a jmp_buf several times.miod2003-08-013-36/+15
| | | | Gets us a working perl 5.8.
* Remove the advertising clause in the UCB license which Berkeleymillert2003-06-0223-160/+68
| | | | rescinded 22 July 1999. Proofed by myself and Theo.
* Add Doug Gwyn's portable alloca() for platforms w/o an assemblermillert2003-05-021-1/+2
| | | | | | | version. Normally, gcc provides its own alloca() (unless -fno-builtin is specified). The C version is decidedly suboptimal--we really need proper assembler versions but this will work as a stop-gap measure.
* duplicate words and spelling fixes in commentsdavid2003-03-101-3/+3
| | | | ok miod@
* Waiter! I asked for a working vfork!miod2003-01-161-3/+3
|
* Alignment requirements are satisfied in ENTRY(), no need to add more here.miod2003-01-161-2/+1
|
* Get static rcsid correctly, better style for .S files, trim whitespace.miod2003-01-0730-156/+167
|
* Properly align __infinity - m88k is very strict wrt double alignment.miod2003-01-071-6/+7
| | | | Fixes - oh what a surprise - bus errors in awk.
* Get the rounding modes table correct, eventually.miod2003-01-071-4/+10
|
* One more pass to get thinks correct wrt weak symbols and syscalls.miod2003-01-071-35/+27
|
* Fix *longjmp() return values.miod2003-01-043-59/+57
|
* Adapt to recent changes in libc/libc_r wrt weak symbols, so that programsmiod2003-01-026-50/+66
| | | | | | | can link against libc without unresolved symbols again. Anyone who correctly guessed that my m88k hard drive has been recovered, wins a strawberry lollipop.
* Rename cerror to __cerror and curbrk to __curbrk, to avoid namespacemiod2003-01-029-41/+42
| | | | pollution. Conforming to art@'s evil plans.
* Typosmiod2003-01-023-13/+13
|
* Fix license and conformance with man page.smurph2002-09-184-53/+369
|
* Remove unused pieces and clean Makefile.incmiod2002-05-173-36/+1
|