summaryrefslogtreecommitdiff
path: root/sys/arch/m88k
AgeCommit message (Collapse)Author
2008-12-21Proper cpu_unidle() function for MP kernels. ok art@ long agoMiod Vallat
2008-11-27On 88100 cpus, make sure userland processes start with SNIP and SFIP validMiod Vallat
(i.e. with the valid bit set in them). Found the hard way by Anders Gavare trying his latest gxemul, proves the hardware is more permitting than one would expect it to be...
2008-10-30In cpu_switchto(), always pmap_deactivate() the process being switched out,Miod Vallat
even in non-MP kernels, to avoid unnecessary tlb flushes later when pmap operates on shared pages.
2008-10-27Rename "machine cpu" to "machine ddbcpu" in MP kernels, for consistency withMiod Vallat
other MP platforms.
2008-10-23Move the va_copy define to <sys/stdrag.h> making sure it is uniformalyMark Kettenis
protected by __ISO_C_VISIBLE > 1999. With a little help from miod@. ok miod@
2008-10-15make random(9) return per-cpu values (by saving the seed in the cpuinfo),Theo de Raadt
which are uniform for the profclock on each cpu in a SMP system (but using a different seed for each cpu). on all cpus, avoid seeding with a value out of the [0, 2^31-1] range (since that is not stable) ok kettenis drahn
2008-10-10Add empty cpu_unidle() macros for architectures that currently don't doArtur Grabowski
anything special to prod a cpu to leave the idle loop in signotify. powerpc, i386, amd64 and sparc64 will follow soon so that everyone has the same interface to wake an idling cpu.
2008-10-10Define MAXCPUS on all architectures.Artur Grabowski
For now, sparc64 is arbitrarily set to 256 (only architecture that didn't have a practical limit in the code on the number of cpus).
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-28Remove dead code.Miod Vallat
2008-07-28In process_write_regs() and sigreturn(), be more strict about the bitsMiod Vallat
userland is allowed to change in psr.
2008-07-28According to the manual, delay slot kill the benefits of being superscalar,Miod Vallat
so don't use any in the 88110-specific parts of locore.
2008-07-21- add proper double_t and float_t definitions for each archMartynas Venckus
- 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@
2008-07-18Add a macro that clears the want_resched flag that need_resched sets.Artur Grabowski
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
2008-06-14A bunch of pool_get() + bzero() -> pool_get(..., .. | PR_ZERO)Michael Knudsen
conversions that should shave a few bytes off the kernel. ok henning, krw, jsing, oga, miod, and thib (``even though i usually prefer FOO|BAR''; thanks for looking.
2008-06-10Rename pmap_remove_all() to pmap_remove_page().Miod Vallat
2008-05-02Check for a disabled FPU before attempting to emulate the instruction.Miod Vallat
2008-05-02Grab the biglock unconditionnaly when system calls go through systrace;Miod Vallat
spotted by drahn
2008-04-25neccessary -> necessary; from Pierre RiteauJason McIntyre
2008-04-01typoMiod Vallat
2008-02-20Preserve pcb_onfault within kcopy(), as expected and as all other platforms do.Miod Vallat
2008-02-16On these platforms, REDUCEing unconditionnaly a second time is faster andMiod Vallat
shorter code than a conditional ADDCARRY, so use it; inspired by hppa.
2008-01-13Add a machdep.cputype sysctl, which returns the processor type (0 for 88100,Miod Vallat
1 for 88110), for userland to have an easy way to figure out.
2007-12-31replace ctob/btoc by ptoa/atop as done for other architecturesMartin Reindl
2007-12-29Override SoftFloat's countLeadingZeros32() with a faster, ff1-based, versionMiod Vallat
on m88k.
2007-12-29Had I known we had a kernel version of John Hauser's SoftFloat code, I wouldMiod Vallat
have jumped on it instead of basing the FPU completion work on the sparc FPU code. This is now repaired with this commit, and m88110_fp.c changes directory again, for the last time.
2007-12-26Remove the last debug bit from the PSR on 88110: do not force memory accessesMiod Vallat
instructions to be serialized (this defeats the purpose of having a superscalar processor, and accesses to volatile variables are done with explicit memory barriers anyway). This brings a HUGE speedup: openssl speed -elapsed shows AES is 90% faster, blowfish is 75% faster, and sha1 is 50% faster. Not so bad! However, doing this increases the pressure on the processor bus, so it is necessary to increase the processor bus timeout on 40MHz boards again (to 256 usec). ``black cat'' 50MHz boards seem to be unaffected, so they remain at 64 usec.
2007-12-26Honour the rounding mode in fpu_ftoi().Miod Vallat
2007-12-26First try at getting the interval bits filled in fcmp{,u} results.Miod Vallat
2007-12-26Fix FPU_SET_CARRY()Miod Vallat
2007-12-25A few fixes in the exception bits reporting, spotted by John Hauser's TestFloat.Miod Vallat
2007-12-25Zero / Num should return a zero with the same sign as the divider.Miod Vallat
2007-12-25Accept valid forms of double-precision fmul/fadd/fsub/fdiv and reject invalidMiod Vallat
forms of fcvt where source and destination precision is the same.
2007-12-25Missing pointer initialization for int/nint/trnc exceptions.Miod Vallat
2007-12-25Never write boolean expressions which do not fit in one line, after midnight.Miod Vallat
2007-12-25Do not make struct pmap visible unless _KERNEL.Miod Vallat
2007-12-25Restart the m88110 floating-point trap code from scratch, basing it on theMiod Vallat
sparc{,64} floating-point emulator, adapted to the 88110 specifics. Handling of these traps is now entirely done in C for convenience. Although there are a few rounding issues to address, and the XRF is ignored, this allows all the ieee754 regression tests to pass (lib/libc/ieeefp, sys/kern/signal/fpsig, sys/kern/signal/sigfpe).
2007-12-22Make sure we have a real stack when invoking getipl() during exceptions.Miod Vallat
Fits in the brown-paperbag bug category.
2007-12-22Move initial PSR initialization to a separate routine, instead of duplicatingMiod Vallat
it five times.
2007-12-21Change the EF_xxx constants to be real offsets within the trapframe, insteadMiod Vallat
of offsets / sizeof(register_t), and nuke the REG_OFF macro. No functional change.
2007-12-20Get rid of disable_interrupt() and have caller use get_psr() and set_psr();Miod Vallat
this allows us to get rid of the dependency of asm_macro.h on asm.h, which was really only there to bring in psl.h.
2007-12-20Do not protect this file with _KERNEL; other header files which include it do itMiod Vallat
in a _KERNEL-only section, and we want to eventually be able to use it from the bootblocks.
2007-12-20Flush the source page before copying in pmap_copy_page(). This should notMiod Vallat
be necessary, but not doing it appears to break 88204 (not 88200) and split CMMUs.
2007-12-15Since the 88110 can not invalidate a particular tlb entry, do not stackMiod Vallat
invalidate tlb ipis, and turn them into simple ``handle once'' ipis.
2007-12-15Move the cmmu lock back from 8820x-specific code to global, and use it onMiod Vallat
MVME197DP to serialize 88410 operations.
2007-12-12Make non-88110 kernels (aviion, luna88k) kernels compile again.Miod Vallat
2007-12-09I honestly do not remember what 88110 errata convinced me to disableMiod Vallat
out-of-order (superscalar) execution on these processors. Since OoO brings a nice 50% to 250% speedup (as shown by ``openssl speed''), it is definitely worth enabling.
2007-12-08Better siginfo fault codes for floating point exceptions on 88110, withMiod Vallat
more work in progress to handle these exceptions correctly, and document a new undocumented and evil chip bug while there.
2007-12-08Do not pass a siginfo_t * pointer to the signal handler if no siginfoMiod Vallat
is required.
2007-12-05Make the CPU_88100 and CPU_88110 constants match the architectural numberMiod Vallat
field from the processor identification register; this allows .S code which needs to decide on the cpu type at runtime to check quicker, without needing to access memory. No functional change.