dsl
d582bd909a
In the misaligned case, xor the read word with the target pattern
...
before making the unwanted bytes non-zero.
Means that memchr(buf, 0xff) is no longer a special case.
2009-08-01 20:47:02 +00:00
dsl
170e962b6c
Remove some long dependant instruction sequences (ie allow parallel code).
...
Since 'rep stos' will have a long setup time, avoid doing it more than once.
For misaligned (start address or length) write an unaligned word at both
ends of the buffer then aligned 'rep stosd' the middle.
Use the same code for bzero().
bzero.S is left being compiled for a while (empty) - to avoid issues with
duplicate symbols in libc.a after update builds.
2009-08-01 20:35:45 +00:00
drochner
8e73e87c59
remove stray semicolons, makes lint happy and lets the libc build proceed
2009-07-21 19:56:55 +00:00
joerg
11e383c9e8
Include limits.h.
2009-07-21 17:37:51 +00:00
joerg
cb19415914
Make the constant u_longlong too, lint is just too stupid...
2009-07-21 17:14:12 +00:00
joerg
9a4b5deb76
Add explicit casts to make lint happy.
2009-07-21 16:10:48 +00:00
joerg
0578c2ad0f
Move popcount et al to src/common and add popcount32/popcount64.
...
Requested by rmind@. MD should now override popcount32/popcount64 and
provide the aliases as fitting.
2009-07-21 14:55:32 +00:00
christos
28a175e482
Put back dsl's string changes, but fix memchr.S to use cmp (rather
...
than test) so that the condition code is set correctly (and fix the
comments: 0x10->0x01 and ^->&). From Anon Ymous
XXX: There are similar comment errors in some of the other string code.
XXX: We really need a regression test that includes misaligned memory
with searches designed to catch corner cases such as searching for 0,
-1, etc, and search length limit violations. Searching for 0 on
misaligned memory would have caught this problem.
2009-07-20 15:21:00 +00:00
christos
13763a400f
Put back dsl's string changes, but fix memchr.S to use cmp so that the
...
condition code is set (and fix the comments 0x10->0x01). From Anon Ymous
We need a test for memchr(x, -1)...
2009-07-20 15:20:59 +00:00
christos
1621a90cd8
revert changes that made new kernels hang in ACPI detection
2009-07-19 23:45:29 +00:00
dsl
97943df1a9
A better memchr().
...
Always read aligned words, invalidating unwanted bytes in first word,
and checking that any match in the last word is before the buffer end.
No loops apart from the one through the data.
2009-07-18 18:06:56 +00:00
dsl
6bdd82f5c7
Shorten a dependency chain by using 'sbb, xor' (at a time when carry is set)
...
instead of 'mov, neg, dec'.
('mov, not' can't be used because it doesn't set the flags.)
2009-07-18 16:40:31 +00:00
dsl
957285f031
Remove a pointless _ALIGN_TEXT.
...
XXX ffs() ought to be a gcc inline asm.
2009-07-18 12:03:31 +00:00
dsl
6054206dee
Replace with a version that:
...
1) doesn't do byte compares to find which byte matched
2) doesn't do byte compares if any top bits are set
3) doesn't use a loop when the input is misaligned
4) has less mispredicted branches
Passes regression tests and 'build.sh' doesn't explode (and more than usual).
2009-07-18 11:41:23 +00:00
dsl
082a39150a
Delete files that are no longer needed.
2009-07-17 19:42:04 +00:00
dsl
53a0f227e6
Change all archs so that strchr.[cS] and strrchr.[cS] exist and generate
...
duplicate symbols for index() and rindex().
2009-07-17 19:37:57 +00:00
dsl
487c31f545
Add asm files for str(r)chr by copying the files for (r)index from
...
src/libc/arch/mips/string.
Add XLEAF() for index entry points.
2009-07-16 21:25:36 +00:00
dsl
5f3551c2f8
Add netbsd copyright.
...
Reorder a few instructions to interleave a dependency chain.
(I'm really not sure of the best order for those instructions!)
2009-07-12 21:24:21 +00:00
dsl
f9b60c2be5
Correct some comments
2009-07-12 21:00:54 +00:00
dsl
66df44074f
After alg 2 triggers, mask with ~x (alg 3) to ignore bytes with top bit set.
...
Then use bit scan to work out which byte is zero.
If the source is misaligned read the aligned word and make the unwanted
(low order) bytes non-zero.
Passes regression test - which probably tests just enough cases.
2009-07-11 11:57:47 +00:00
dsl
5acd65fcb7
Change comments about algorithms, 99.6% for random data isn't 'rare' in my book!
...
(The 'rare' case is any byte values 0x80-0xff.)
2009-07-11 08:48:51 +00:00
joerg
faf14618b6
Fix initialisation of SHA224.
2009-06-25 14:05:18 +00:00
tsutsui
ab35397894
- move #include <sys/param.h> inside #if defined(_KERNEL) section
...
where it's actually required
- add XXX comments that notes <sys/param.h> is required for vax memset(9)
2009-06-19 05:09:09 +00:00
he
b1946a6b32
Back out the addition of memset.c to the vax libkern, and instead do
...
as tsutsui@ suggested, and include <sys/param.h> in sha2.c instead.
On the vax, this causes <machine/macros.h> to be included, and it contains
that machine's memset() macro+inline.
2009-06-18 15:22:24 +00:00
martin
cd4c43c910
Fix copy&paste errors
2009-06-14 14:04:07 +00:00
joerg
94cd590d07
Provide fallback definitions of be[32|64]toh and htobe[32|64] for
...
systems without sys/endian.h.
2009-06-11 22:40:42 +00:00
christos
13573b1916
use memcpy for bitcount writes to the buffer to avoid type punning issues.
2009-06-11 20:43:00 +00:00
christos
46f23cedb2
- fix sha224 functions that used sha256 ctx, and add casts.
...
- fix sha224 function lengths.
- wrap long lines
- use NULL
- fix whitespace
- put all 224 functions together in the same spirit as 384
2009-06-11 20:35:29 +00:00
joerg
02c4298092
KNF
2009-06-11 19:05:17 +00:00
joerg
8c33577af1
De-uglify:
...
- drop useless asserts
- use uintXX_t directly
- use NULL
2009-06-11 19:02:04 +00:00
joerg
c8f28eff97
Simplify by using sys/endian.h functions. Fixes Big Endian case for SHA2.
2009-06-11 18:46:37 +00:00
yamt
303f5b9ebd
fix comment typos.
2009-06-07 03:12:40 +00:00
yamt
502e0d2fd8
fix a comment
2009-05-26 22:39:15 +00:00
yamt
d8e7c6e522
rpst_iterate_next: remove an unnecessary assignment.
2009-05-26 22:38:51 +00:00
yamt
0681720282
rpst_iterate_first: fix a bug which causes unnecessary scan.
2009-05-26 22:38:18 +00:00
yamt
87a9663c51
sprinkle some inline
2009-05-26 22:37:50 +00:00
joerg
09d5d44150
Add SHA224 implementation to libc.
...
Make libcrypto use the SHA2 implementation of libc.
Bump minor versions of libc and libcrypto.
2009-05-26 08:04:11 +00:00
yamt
5e092cbdd7
maintain parent node pointers to speed up search and node removal.
2009-05-25 14:54:06 +00:00
yamt
03578bbe5a
add comments.
2009-05-25 14:16:54 +00:00
yamt
89c1ff5632
rpst_insert_node1: fix an inverted condition.
2009-05-22 11:38:05 +00:00
christos
f1dbbfab6d
Set endptr if the base is not supported. The opengroup spec does not special
...
case this condition. Note: glibc has the same problem.
2009-05-20 22:03:29 +00:00
yamt
89ff3f9c4f
- fix various bugs in the iteration code.
...
- add assertions.
- unittest: more tests. verify query results by comparing with linear search.
2009-05-20 10:56:29 +00:00
yamt
0a13e5f80a
don't include sys/cdefs.h twice.
2009-05-19 22:48:19 +00:00
yamt
1a764d8c67
radix priority search tree.
2009-05-19 12:39:56 +00:00
wiz
e923b399de
New sentence, new line.
2009-05-13 22:31:59 +00:00
pgoyette
28469fc250
Implement snprintb_m(3) to provide multi-line bit/bit-field decode.
...
Discussed on tech-kern.
2009-05-13 02:50:31 +00:00
rmind
79a49ca39e
- Add kcpuset_iszero().
...
- Fix kcpuset_match().
2009-04-25 19:38:25 +00:00
skrll
0e68e44118
Only include <assert.h> and <string.h> if !_KERNEL && !_STANDALONE
2009-04-25 12:20:48 +00:00
haad
8a85d2e387
Check if pd is not NULL before we try to lock rw lock associated with it.
...
This fixes proplib crash when NULL is passed to prop_dictionary_get as a
dictionary.
2009-04-14 02:53:41 +00:00
joerg
1491f958e9
Improve markup.
2009-04-09 01:18:17 +00:00