Age | Commit message (Collapse) | Author |
|
- 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
|
|
ok deraadt@
|
|
|
|
|
|
|
|
|
|
problem where the clock would stop ticking on some CPUs because of lost
ticks.
|
|
- math.h shouldn't define FLT_EVAL_METHOD, but float.h should (per
C99). remove from math.h, and add proper definitions in float.h
ok millert@
|
|
SUN4V to let it suspend strands (why does everyone invent own words for
hyperthreads?). This gives a huge performance boost when most of the
cpus are idle.
kettenis@ ok
|
|
Right now when mi_switch picks up the same proc, we didn't clear the
flag which would mean that every time we service an AST we would attempt
a context switch. For some architectures, amd64 being probably the
most extreme, that meant attempting to context switch for every
trap and interrupt.
Now we clear_resched explicitly after every context switch, even if it
didn't do anything. Which also allows us to remove some more code
in cpu_switchto (not done yet).
miod@ ok
|
|
parameter and returns an aligned random load address for position
independent executables to use. This also adds three new vmparam.h
defines to specify the maximum address, minimum address and minimum
allowed alignment for uvm_map_pie() to use. The PIE address range
for i386 was carefully selected to work well within the i386 W^X
framework.
With much help and feedback from weingart@.
okay weingart@, miod@, kettenis@, drahn@
|
|
|
|
use them in cpu_myid().
|
|
UltraSPARC I/II has a 41-bit physical address space, UltraSPARC III/IV has a
43-bit physical address space. The Fujitsu SPARC64-VI extends this to 46 bits.
Adjust the TTE masks to take this into account and adjust some locore code
that truncated physical addresses to 41 bits (fixing a potential bug for
UltraSPARC III/IV too).
While there, fix the locore code for UltraSPARC Architecture 2007 CPUs, which
may support up to 56 bits of physical address space.
|
|
|
|
|
|
|
|
problem by adopting the same encoding used by Solaris for the kernel windows.
Note that this involves rearranging the trap vector tables, both fur sun4u and
for sun4v.
|
|
|
|
actually be used to access trap vectors.
|
|
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@
|
|
are using has an even larger one, so implement pmap_remove_hole() to
prevent mmap() from ever reaching the hole.
feedback and ok kettenis@
|
|
|
|
|
|
needs the few MD definitions they (sometimes) provide; only binutils is
interested in them, but binutils provide their own include files for that
purpose anyway.
ok deraadt@ kettenis@
|
|
|
|
on drugs; ok kettenis@
|
|
|
|
Make sun4v code use the new TSB_TAG_LOCKED define.
|
|
gets called for every clock tick, even if we miss one.
|
|
sometimes fail, which would result in the periodic clock interrupts on a CPU
stop.
Spotted in a NetBSD commit message, loosely based on code in OpenSolaris.
|
|
|
|
or reboot yet, but that will (hopefully) be fixed in the near future.
|
|
sun4u and sun4v. GENERIC.MP won't work yet though.
|
|
|
|
existing sun4u defines and add sun4v. For now, decide which set to use
at compile time. Change the sun4u-specific code in locore.s to use the sun4u
defines.
|
|
sun4v.
|
|
|
|
even more unreadable.
|
|
supports 32 ports, and a machine with up to 64 CPUs obviously needs more.
So the machine has a special ASIC that does port translation, and because
of that we need to distinguish between port ID's and interrupt target ID's.
|
|
|
|
|
|
|
|
|
|
to avoid attaching disabled or failed devices.
This should make it possible to manually deconfigure devices on mid-range and
high-end servers like the V880 using the "asr-disable" PROM command, and make
OpenBSD avoid using hardware that has been detected as faulty by the POST or
OpenBoot Diagnostics.
|
|
mind.
tested by miod@
|
|
port configuration and returns the configured speed.
|
|
drop to ddb(4) in order to avoid overheating in case of a system crash.
ok kettenis@
|
|
ok kettenis@
|
|
interrupts twice, with one exception: interrupt handlers are allowed to be on
the tail of said lists (needed for clock interrupts on MP kernels).
Prevents losing interrupts. Makes usb keyboard as console work on Sun Blade
1000/2000 with MP kernels.
|