| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
OK naddy@; no objections from kettenis@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
| |
understand with the three-operand instructions.
No binary change with gas.
|
|
|
|
|
|
| |
so that <machine/signal.h> is not needed in setjmp.S.
Suggested by kettenis@ long ago, OK deraadt@
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
| |
from libpthread to libc. No changes to the build yet, just making it
easier to review the substantive diffs.
ok beck@ kettenis@ tedu@
|
|
|
|
|
|
| |
go direct instead of through the PLT.
ok millert@ kettenis@
|
|
|
|
|
| |
endian testing and ok deraadt@
ok visa@
|
|
|
|
|
|
|
| |
longjmp performs can't really be relied upon, even after we got rid of the
false positives...
ok millert@ deraadt@
|
|
|
|
|
|
| |
Use the hidden symbols for internal calls to abort, longjmp, etc
ok deraadt@
|
|
|
|
|
|
| |
and ldexp().
ok millert@
|
|
|
|
|
|
|
| |
the ASM *setjmp implementations.
Skip the PLT when calling them on amd64 (other archs to do this after testing)
ok miod@
|
|
|
|
|
|
| |
being-standardized <endian.h>
ok deraadt@ millert@ beck@
|
|
|
|
|
| |
It turns out <float.h> is the right file to pull in.
ok millert
|
| |
|
|
|
|
|
|
| |
Correct the namespace protections for sigreturn(), sigwait(), and psignal()
ok millert@
|
|
|
|
|
| |
on this historical behavior; so we're stuck in this stupid situation.
No cookie for me.
|
|
|
|
| |
them in libc for a very long time. OK guenther@.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
them; allows userland with stack beyond 2GB to run.
|
|
|
|
|
|
|
| |
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).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
other ieee fp archs do; pointed out by theo. tested by theo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
| |
for this first cut, we will do this for alloca() using alloca.c by
adding it to LSRCS
|
|
|
|
| |
okay deraadt@ (tested them all)
|
|
|
|
|
|
| |
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@
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
String functions need some optimization/rewrite to take full advantage.
|
| |
|
|
|