freebsd-skq/sys
John Polstra d5de6c2a5f Fix several bugs in the i386 asm statements used to speed up Internet
checksumming.  These bugs could possibly cause bad code to be
generated at elevated optimization levels.

First, eliminate the use of preprocessor magic to form the address
fields of asm instructions.  It hid the actual addresses being
referenced from the compiler.  Without knowledge of all the data
dependencies, the compiler might possibly use optimizations which
would result in incorrect code.

Use "__asm __volatile" rather than "__asm" for instruction sequences
that pass information through the condition codes (the carry bit, in
this case).  Without __volatile, the compiler might add unrelated
code between consecutive __asm instructions, modifying the condition
codes.  I have seen GCC insert stack pointer adjustments in this
way, for example.  Unfortunately, GCC doesn't provide a way to
specify dependencies on the condition codes.  You can specify that
they are clobbered, but not that you are going to use them as input.

Finally, simplify the LOAD macro.  This macro is used as a poor
man's prefetch.  The simpler version gives the compiler more leeway
about just how it performs the prefetch.

MFC after:	1 week
2002-06-22 22:35:53 +00:00
..
alpha Update an 'XXX what is this?' type comment about suswintr and fuswintr. 2002-06-20 07:40:53 +00:00
amd64 Use rm -f in the clean target, as seems to be common practice, and also avoids 2002-06-22 18:16:24 +00:00
arm Move MI stuff out of MD param.h files. 2002-05-14 20:35:29 +00:00
boot Enable cd9660 support by default. 2002-06-21 22:34:51 +00:00
cam Correct spelling of 'supplied'. 2002-06-19 20:44:48 +00:00
coda More s/file system/filesystem/g 2002-05-16 21:28:32 +00:00
compat Add a comment about how we should use vn_open() here instead of directly 2002-06-14 07:24:01 +00:00
conf Remove CAPABILITIES from NOTES 2002-06-21 19:53:04 +00:00
contrib - Add sanity check for argument. 2002-06-12 14:55:19 +00:00
crypto Fixed AES encryption algorithm bug 2002-05-24 07:26:17 +00:00
ddb Allow DB_SET() to set all fields in the ddb command structure. This 2002-06-05 19:00:02 +00:00
dev Make this compile on Alpha. 2002-06-22 16:33:29 +00:00
fs nmount'ify unionfs further by using separate options instead 2002-06-15 22:48:14 +00:00
geom Put geom_gpt.c under the GEOM option instead of having a special GEOM_GPT 2002-06-10 18:49:41 +00:00
gnu Use suword16/fuword16 instead of susword/fusword - this has two different 2002-06-20 07:23:08 +00:00
i4b Remote pci.h/NPCI usage from i4b code. 2002-06-13 06:04:28 +00:00
i386 Fix several bugs in the i386 asm statements used to speed up Internet 2002-06-22 22:35:53 +00:00
ia64 Update an 'XXX what is this?' type comment about suswintr and fuswintr. 2002-06-20 07:40:53 +00:00
isa Clock frequencies reported by sysctl should be unsigned values. Discovered 2002-06-22 16:30:18 +00:00
isofs/cd9660 Quick fix for non-unique inode numbers for hard links. We use the 2002-05-22 08:50:18 +00:00
kern This patch fixes a size problem with the stat structure for 2002-06-22 22:01:13 +00:00
libkern For some reason this didn't get added in my previous commit. 2002-05-29 21:58:12 +00:00
modules A node that creates a device entry in /dev (yay devfs) 2002-06-18 21:32:33 +00:00
net Remove (almost all) global variables that were used to hold 2002-06-22 11:51:02 +00:00
netatalk Back out my lats commit of locking down a socket, it conflicts with hsu's work. 2002-05-31 11:52:35 +00:00
netatm - Turn a DIAGNOSTIC check into a KASSERT(9). 2002-06-17 06:10:17 +00:00
netgraph NUL terminate the ACNAME passed to userland. 2002-06-22 21:00:53 +00:00
netinet Remove (almost all) global variables that were used to hold 2002-06-22 11:51:02 +00:00
netinet6 Notify functions can destroy the pcb, so they have to return an 2002-06-14 08:35:21 +00:00
netipx Back out my lats commit of locking down a socket, it conflicts with hsu's work. 2002-05-31 11:52:35 +00:00
netkey Remove so*_locked(), which were backed out by mistake. 2002-06-18 07:42:02 +00:00
netnatm Back out my lats commit of locking down a socket, it conflicts with hsu's work. 2002-05-31 11:52:35 +00:00
netncp Back out my lats commit of locking down a socket, it conflicts with hsu's work. 2002-05-31 11:52:35 +00:00
netns Fix bug which has been there since rev 1.1 where && was used instead of &. 2002-06-09 03:57:34 +00:00
netsmb Back out my lats commit of locking down a socket, it conflicts with hsu's work. 2002-05-31 11:52:35 +00:00
nfs Remove unused include. 2002-03-20 10:12:07 +00:00
nfsclient Back out my lats commit of locking down a socket, it conflicts with hsu's work. 2002-05-31 11:52:35 +00:00
nfsserver Back out my lats commit of locking down a socket, it conflicts with hsu's work. 2002-05-31 11:52:35 +00:00
pc98 MFi386: revisions from 1.342 to 1.344 2002-06-19 13:47:53 +00:00
pccard hw.pcic.ignore_pci 2002-06-13 17:28:55 +00:00
pci Fix typo in the BSD copyright: s/withough/without/ 2002-06-02 20:05:59 +00:00
posix4 Change p_can{debug,see,sched,signal}()'s first argument to be a thread 2002-05-19 00:14:50 +00:00
powerpc Deorbit suibyte(). It was only used for split address space systems 2002-06-20 07:13:35 +00:00
rpc
security/lomac Get rid of warnings, there's no need to do preprocessor concatination of 2002-06-01 18:45:33 +00:00
sparc64 Warning fix. 2002-06-22 20:46:59 +00:00
sys This patch fixes a size problem with the stat structure for 2002-06-22 22:01:13 +00:00
tools include systm.h in vnode_if.c so that panic is defined when we're doing 2002-05-04 02:35:13 +00:00
ufs This patch fixes a problem whereby filesystems that ran 2002-06-22 21:24:58 +00:00
vm o Reduce the scope of Giant in vm_mmap() to just the code that manipulates 2002-06-22 19:13:56 +00:00
Makefile Milestone #1 in cross-arch make releases. 2002-04-26 17:55:27 +00:00