summaryrefslogtreecommitdiff
path: root/lib/libc/arch/m88k
AgeCommit message (Collapse)Author
2013-06-05On second thought, do not use a tcnd instruction to test for divide-by-zero,Miod Vallat
as it forces a pipeline synchronization; replace it with a bcnd + unconditional trap, to only synchronize when the trap is needed.
2013-06-05...also add __modsi3 and __umodsi3, and make these symbols weak by default.Miod Vallat
2013-06-05Add __divsi3 and __udivsi3 gcc-compatible routines. Not used by anything yetMiod Vallat
(as gcc does not emit code calling them), but will be shortly; belatedly riding the libc minor bump.
2013-04-11Fix obviously stupid bug in the PIC_{LOAD,STORE} macros when compiling withMiod Vallat
-fPIC. Harmless since we build libc -fpic so far.
2013-01-24Oops, due to the way return from system calls work, we can not use a delayMiod Vallat
slot in the branch to cerror, for the delay slot instruction would also run as part of a successful return. Doh. Fortunately almost nothing in the tree uses brk() or sbrk() anymore... but binaries linked against libiberty.
2013-01-23The kernel sources mention that the system call entry point is trap #450; theMiod Vallat
fact that #128 and #129 may also be used for this purpose was never documented, so there is no reason to have libc use #128. Switch to #450 for consistency.
2013-01-20Fix PIC_LOAD and PIC_STORE macros to really access the variable, instead ofMiod Vallat
the GOT pointer. Oops.
2013-01-20PIC-related code should follow the #ifdef __PIC__ line, not the #else line.Miod Vallat
Doh!
2013-01-11Add END() directives to the various functions.Miod Vallat
Make the code PIC-aware when necessary (i.e. invoke other functions through the PLT, and access global data through the GOT). No change for non-PIC compilation.
2013-01-11Add a bunch of macros to help writing PIC code for libc .S routines. HandlesMiod Vallat
both -fpic and -fPIC.
2013-01-08fix __cerror non-weak symbol nameMiod Vallat
2013-01-05Switch m88k ports to ELF.Miod Vallat
2012-12-26Actually invoke the system call in libc's sigreturn() wrapper; went unnoticedMiod Vallat
for 15 years or so (sigcode, of course, was correct).
2012-09-15Adapt ieee.h, gdtoa and libc to the fact that we don't have 80-bitMartynas Venckus
floats on m88k. Agreed by miod@.
2012-09-04these are no longer used; ok guentherTheo de Raadt
2012-08-12Fix almost ten-years old bug in siglongjmp(), which would not restore a signalMiod Vallat
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).
2012-06-25Do not use <machine/float.h>, that is an deformed BSD-ism.Theo de Raadt
It turns out <float.h> is the right file to pull in. ok millert
2012-06-21__tfork() needs to set the stack address of the new thread in the kernel,Philip Guenthe
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@
2012-04-12alloca.c cannot be usedTheo de Raadt
2012-04-12remove rfork(); ok guenther miodTheo de Raadt
2012-03-22Move __tfork_thread() from rthreads (libpthread) to libc so thatPhilip Guenthe
it can be used for not-strictly-threading purposes ok matthew@ kurt@
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-04-09On the a.out architectures, WEAK_ALIAS does an implicit _C_LABEL()Theo de Raadt
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@
2009-10-28more rcsid/sccs cleanupTheo 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@
2008-12-09these were not neededMartynas Venckus
2008-12-09ditto frexpl and ldexplMartynas 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-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-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
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.
2005-11-29if we pull in a .S file, we must fake out the lint with a .c fileTheo de Raadt
for this first cut, we will do this for alloca() using alloca.c by adding it to LSRCS
2005-08-07zap rcsid.Marc Espie
okay deraadt@ (tested them all)
2005-02-01Replace broken frexp() with a working one from FreeBSD. There'sTodd C. Miller
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@
2004-07-28Use less stack space for temporary storage and C code invocation, afterMiod Vallat
the ABI change.
2004-07-28Update stack frame processing after ABI change.Miod Vallat
2004-07-22Do not overallocate stack space, and keep the stack on a 16-byte boundary.Miod Vallat
2004-04-01It turns out that the so-called fast ffs(3) routines were wrong, as soon asMiod Vallat
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.
2004-01-26Use libkern's fast ffs() in libc too.Miod Vallat
2003-12-25Use an unsigned comparison against minbrk.Miod Vallat
ok deraadt@
2003-12-24In the never-ending story of *setjmp bugs, fix a typo preventingMiod Vallat
sigsetjmp(foo, !0) to work. Sigh.
2003-12-19Speed up sbrk() one cycle by removing an unnecessary register shuffling.Miod Vallat
2003-12-08OR r13, not r9 to match SYS.h; fixes syscall(2) on mvme88k; OK miod@Todd C. Miller
2003-10-16Only a clown like me could put cerror in the data section by mistake...Miod Vallat
2003-09-01These files are not necessary anymore.Miod Vallat
2003-08-06In setjmp() and sigsetjmp(), be sure to return with r14 and r15 unchanged, asMiod Vallat
they are part of the call preserved register set, and gcc -O relies upon this.
2003-08-01Fix the *longjmp() behaviour - it is legal to reuse a jmp_buf several times.Miod Vallat
Gets us a working perl 5.8.