1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-16 10:20:30 +00:00
freebsd/sys/i386
Bruce Evans 18860b410d Added i586-optimized bcopy() and bzero().
These are based on using the FPU to do 64-bit stores.  They also
use i586-optimized instruction ordering, i586-optimized cache
management and a couple of other tricks.  They should work on any
i*86 with a h/w FPU, but are slower on at least i386's and i486's.
They come close to saturating the memory bus on i586's.  bzero()
can maintain a 3-3-3-3 burst cycle to 66 MHz non-EDO main memory
on a P133 (but is too slow to keep up with a 2-2-2-2 burst cycle
for EDO - someone with EDO should fix this).  bcopy() is several
cycles short of keeping up with a 3-3-3-3 cycle for writing.  For
a P133 writing to 66 MHz main memory, it just manages an N-3-3-3,
3-3-3-3 pair of burst cycles, where N is typically 6.

The new routines are not used by default.  They are always configured
and can be enabled at runtime using a debugger or an lkm to change
their function pointer, or at compile time using new options (see
another log message).

Removed old, dead i586_bzero() and i686_bzero().  Read-before-write is
usually bad for i586's.  It doubles the memory traffic unless the data
is already cached, and data is (or should be) very rarely cached for
large bzero()s (the system should prefer uncached pages for cleaning),
and the amount of data handled by small bzero()s is relatively small
in the kernel.

Improved comments about overlapping copies.

Removed unused #include.
1996-10-09 18:16:17 +00:00
..
apm APM_DSVALUE_BUS is no longer with the addition of the correct fix to 1996-09-07 17:41:22 +00:00
bios APM_DSVALUE_BUS is no longer with the addition of the correct fix to 1996-09-07 17:41:22 +00:00
boot Added option PROBE_KEYBOARD_LOCK which gives a serial console if the 1996-10-08 22:41:34 +00:00
conf Centralized the definition of CWARNFLAGS into bsd.kern.mk. 1996-10-08 22:09:03 +00:00
eisa Bring aic7xxx driver bug fixes from 'SCSI' into current. 1996-10-06 16:38:45 +00:00
i386 Added i586-optimized bcopy() and bzero(). 1996-10-09 18:16:17 +00:00
ibcs2 Cleaned up all headers that include <sys/ioctl.h> or <sys/ioccom.h>: 1996-09-21 14:59:43 +00:00
include Improved the btodb() and dbtob() macros. I made them give unsigned 1996-10-06 19:24:02 +00:00
isa Don't claim the console when the driver is disabled. The getc/putc 1996-10-09 15:24:21 +00:00
linux Changed type of ni_dirp in struct namei' from caddr_t to const char *' 1996-09-03 23:17:15 +00:00
pci Removed unused #includes of <i386/isa/icu.h> and <i386/isa/icu.h>. icu.h 1996-06-18 01:22:40 +00:00
scsi Advanced Systems Inc. SCSI Controller driver and ISA/VL front end. 1996-10-07 02:07:07 +00:00
Makefile Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some 1993-10-16 19:17:18 +00:00