summaryrefslogtreecommitdiffstats
path: root/lib/libc/arch/mips64/gen (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Userland timecounter implementation for octeonvisa2020-07-181-3/+30
| | | | OK naddy@; no objections from kettenis@
* Add support for timeconting in userland.pirofti2020-07-062-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | This diff exposes parts of clock_gettime(2) and gettimeofday(2) to userland via libc eliberating processes from the need for a context switch everytime they want to count the passage of time. If a timecounter clock can be exposed to userland than it needs to set its tc_user member to a non-zero value. Tested with one or multiple counters per architecture. The timing data is shared through a pointer found in the new ELF auxiliary vector AUX_openbsd_timekeep containing timehands information that is frequently updated by the kernel. Timing differences between the last kernel update and the current time are adjusted in userland by the tc_get_timecount() function inside the MD usertc.c file. This permits a much more responsive environment, quite visible in browsers, office programs and gaming (apparently one is are able to fly in Minecraft now). Tested by robert@, sthen@, naddy@, kmos@, phessler@, and many others! OK from at least kettenis@, cheloha@, naddy@, sthen@
* Replace two-operand instruction aliases that clang does notvisa2019-01-051-2/+2
| | | | | | understand with the three-operand instructions. No binary change with gas.
* Move SC_* defines into <machine/setjmp.h>, and rename them,visa2018-01-082-158/+158
| | | | | | so that <machine/signal.h> is not needed in setjmp.S. Suggested by kettenis@ long ago, OK deraadt@
* Do not use an uninitialized value when determining the signvisa2017-10-151-4/+4
| | | | | | | | | | of a denormal result of ldexp(3). The bug was found when investigating why denormal results of pow(3) can have an incorrect sign on loongson. pow(3) misbehaviour reported and fix tested by juanfra@ No objection from deraadt@
* Copy files from ../librthread in preparation for moving functionalityguenther2017-08-151-0/+27
| | | | | | | from libpthread to libc. No changes to the build yet, just making it easier to review the substantive diffs. ok beck@ kettenis@ tedu@
* Wrap fpgetround() so internal calls to it (seen on arm, powerpc, and sh)guenther2016-07-261-2/+3
| | | | | | go direct instead of through the PLT. ok millert@ kettenis@
* Do setjmp cookies for gp, sp, and raguenther2016-05-302-26/+58
| | | | | endian testing and ok deraadt@ ok visa@
* Stop supporting longjmperror(); it's not used, not portable, and the checksguenther2016-05-232-6/+2
| | | | | | | longjmp performs can't really be relied upon, even after we got rid of the false positives... ok millert@ deraadt@
* Implement longjmp directly and not on top of sigreturn.guenther2016-05-083-98/+125
| | | | | | Use the hidden symbols for internal calls to abort, longjmp, etc ok deraadt@
* Wrap the remaining math functions in libc: __fpclassify*(), __flt_rounds(),guenther2015-10-273-5/+7
| | | | | | and ldexp(). ok millert@
* Do provide hidden _libc_* aliases for sig{block,setmask} and use them inguenther2015-09-131-2/+2
| | | | | | | the ASM *setjmp implementations. Skip the PLT when calling them on amd64 (other archs to do this after testing) ok miod@
* Switch from <sys/endian.h> or <machine/endian.h> to the new,guenther2014-07-212-5/+4
| | | | | | being-standardized <endian.h> ok deraadt@ millert@ beck@
* 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
* alloca.c cannot be usedderaadt2012-04-121-3/+1
|
* sigstack() is long dead, and the compat sigaltstack syscall is gone too.guenther2011-11-221-2/+2
| | | | | | Correct the namespace protections for sigreturn(), sigwait(), and psignal() ok millert@
* Revert (leaving the complex math part alone). Some stuff is dependingmartynas2011-07-083-2/+119
| | | | | 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-083-119/+2
| | | | them in libc for a very long time. OK guenther@.
* Provide IRIX-compatible get_fpc_csr() and set_fpc_csr() for mips, althoughmiod2010-09-242-2/+46
| | | | | | | | 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.
* More changes to avoid truncating 64 bit pointers to 32 bits and sign-extendingmiod2009-12-111-2/+2
| | | | them; allows userland with stack beyond 2GB to run.
* Add an implementation of IRIX-compatible cacheflush() routine to mips ports,miod2009-09-272-1/+39
| | | | | | | 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).
* 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-077-4/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* fix apps that use isinff, isnanf; use ieee 754 mi code, as allmartynas2008-07-253-119/+2
| | | | other ieee fp archs do; pointed out by theo. tested by theo
* - move isinf, isnan dups to gen, since most is ieee 754martynas2008-07-244-30/+81
| | | | | | | | | | | | | | | | - 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
* 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-0715-69/+15
| | | | 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@
* fix a couple of wrongly used li's instead of dli's. spotted by as@gnu ;)pefo2004-10-181-3/+3
|
* convert to 64 bitpefo2004-10-021-97/+55
|
* convert to 64 bitpefo2004-10-021-19/+13
|
* ABI compliant register namespefo2004-09-151-19/+19
|
* setjmp now passes all regress tests.pefo2004-09-103-11/+17
|
* mips64 is now going ABI64 and shared library support!pefo2004-09-097-46/+87
| | | | String functions need some optimization/rewrite to take full advantage.
* 32 -> 64 bit cleanups but no optimizations yetpefo2004-09-072-11/+15
|
* Move mips to mips64pefo2004-08-1117-0/+1055