Age | Commit message (Collapse) | Author |
|
|
|
ok guenther millert kettenis
|
|
up to 3 times slower than the C code most of the time. This was
brought up by DragonflyBSD guys initially.
ok deraadt, guenther. miod will not miss it.
|
|
|
|
getting rid of the (hopefully) last bug in this code.
|
|
|
|
|
|
from bcopy.m4. Fix that.
|
|
|
|
Also fix the return value of memcpy. With these changes, this seems to
work as advertised now.
|
|
|
|
if the addresses are 4-byte aligned.
ok jsing@
|
|
from NetBSD. ok miod@ drahn@
|
|
|
|
|
|
|
|
|
|
local registers for a few temporaries. This was changed to use two global
registers. Maybe to permit use in-kernel without conflicting with the
register V7 register window handlers. (Was this done by Chris Torek? Is this
related to Gordon Irlam's work? Or was it in NetBSD? Hard to tell because
NetBSD removed their original cvs tree.)
In V8 the ABI was tightened; more global registers became offlimits in
different ways. We started supporting sun4m, and did not consider this.
As a result, the global registers chosen are the wrong choice. In
particular, %g7 is a poor choice for upcoming TLS work. It looks like
it is safer to use %g5 and %g6 since these functions are "system software".
All re-entrant parts of the system save it.
On sparc64 these functions are in libc per ABI requirement, but are unused.
On sparc, they occur in bootblocks (no reentrancy), kernel (reentrancy saves
globals; kernel is not ABI compliant), userland libc (signal handlers save
globals), and ld.so (symbol binding is not re-entrant on its own).
Discussed rather extensively with guenther, kettenis, miod and drahn.
|
|
TIMEZONE and DST...
|
|
|
|
ok kettenis@
|
|
|
|
traditionnaly found in libkern. However, the memcmp() flavour would behave
as bcmp() with only two possible return values: zero and positive non-zero.
This broke the name cache RB trees which now rely upon proper memcmp()
semantics(negative value, zero, or positive value).
Just give up on these macros and provide the same code as libc, in libkern.
As a side effect, this no longer uses the cmpc3 instruction, which is not
implemented and requires (slow) kernel emulation, on the original uVax.
|
|
has never been performance sensitive.
Running on all platforms, discussed with millert and kettenis, ok toby
|
|
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@
|
|
|
|
|
|
including mulscc to do multiplications) and switch to the generic random.c
code.
|
|
|
|
with bcopy.S
ok miod@
|
|
|
|
directive can select between MI and MD versions of these files. At
the same time, adjust the boot programs to pick exactly what they need,
instead of the 7 or 8 mechanisms previously used.
There will be some fallout from this, but testing it all by myself is a
ridiculously slow process; it will be finished in-tree.
Various developers were very nice and avoided making fun of me when I
was gibbering in the corner..
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from hppa the fact that t1-t4 actually number down from r22-r19 got somehow
lost.
|
|
|
|
input from miod@, ok kettenis@
|
|
|
|
(OpenBSD does not use strcat/strcpy in the kernel, if people do it in
external modules they should update their code)
ok deraadt@
|
|
no longer share the same code, but will be instead be duplicated from the same
source, so that bcopy() and memcpy() do not need to check for overlap, and
memcpy() and memmove() are shorter.
|
|
|
|
|
|
as the assembly version on 0[234]0, but *fifteen* times faster than it on
68060 systems, since it uses a form of muls.l which has to be emulated.
And since we use random() for statclock variance, this means we were
gratuitously doing an average of 100 emulation traps per second.
ok deraadt@ millert@
|
|
|
|
|