Hi Linuxers.
We have uploaded lx10inline.tgz on sunsite. It is a set of patches for 1.0
kernel (and maybe 0.99.15) for speeding up and optimizing some code sequen-
ces used by the kernel, notably those in /linux/include/linux/string.h.
The purpose of these patches is:
1) speed up some code sequences which are inefficient on the i486
and pentium compared to the i386. In particular, the string move
instructions (movsb,lodsb,stosb) are slower on the new processors.
The gain in speed is about 20-30% on the single functions; on the
whole kernel it is much difficult to measure, but certainly smaller
and not normally noticeable.
2) help gcc performing a better register allocation and produce smaller
code, as a consequence of avoiding as much as possible any
instruction which force register use (lods,stos,movs,loop); this
allows replacing the "c","S","D"... asm constraints with the more
general forms "q" and "r", letting gcc choose the best register
placement strategy.
3) fix the behaviour of the functions in string.h, which are now
ANSI-compliant.
Here is the lsm entry:
Begin
Title = Linux-1.0-inline.asm.diff
Version = 1.0 Mar 18,1994
Desc1 = A set of patches for the Linux 1.0 kernel to speed up
Desc2 = string operations and allow better register allocation by
Desc3 = gcc.
Author = Alberto Vignani, Davide Parodi
Site1 = sunsite.unc.edu
Path1 = kernel/misc.patches
File1 = lx10inline.tgz
FileSize1 = 6656
Required1 = Linux 1.0 kernel sources
CopyPolicy1 = same as kernel sources
Keywords = kernel, gcc, assembler, inline, pentium
Entered = 18 Mar 1994
EnteredBy = Alberto Vignani
End
Many thanks to Linus Torvalds for his useful suggestions.
---------------------------------------------------------------------------
[ If mail bounces back please retry ]