opnsense-src/lib/libc
Xin LI 42ddb8f1db MFC r205099-205100,205108:
Two optimizations to MI strlen(3) inspired by David S. Miller's
blog posting [1].

 - Use word-sized test for unaligned pointer before working
   the hard way.

   Memory page boundary is always integral multiple of a word
   alignment boundary.  Therefore, if we can access memory
   referenced by pointer p, then (p & ~word mask) must be also
   accessible.

 - Better utilization of multi-issue processor's ability of
   concurrency.

   The previous implementation utilized a formular that must be
   executed sequentially.  However, the ~, & and - operations can
   actually be caculated at the same time when the operand were
   different and unrelated.

   The original Hacker's Delight formular also offered consistent
   performance regardless whether the input would contain
   characters with their highest-bit set, as it catches real
   nul characters only.

These two optimizations has shown further improvements over the
previous implementation on microbenchmarks on i386 and amd64 CPU
including Pentium 4, Core Duo 2 and i7.

[1] http://vger.kernel.org/~davem/cgi-bin/blog.cgi/2010/03/08#strlen_1
2010-05-13 23:28:20 +00:00
..
amd64 Mark uname(), getdomainname() and setdomainname() with COMPAT_FREEBSD4. 2008-11-09 10:45:13 +00:00
arm Remove unneeded stdlib directories. 2009-06-23 14:11:41 +00:00
compat-43 MFC r199827: 2010-01-31 18:38:03 +00:00
db MFC r206178: ibc/db/hash: cap auto-tuned block size 2010-04-12 21:12:03 +00:00
gdtoa Unbreak the build for arm and powerpc. 2008-04-12 14:53:52 +00:00
gen MFC r206760: getcwd(3): Clarify that EACCES may or may not be checked. 2010-05-05 22:17:17 +00:00
gmon Remove .mcount from gmon's Symbol map and add it to the appropriate 2007-05-13 14:16:55 +00:00
i386 Remove hand-written labs/abs implementations. GCC is smart enough. 2009-06-23 09:04:59 +00:00
ia64 Remove unneeded stdlib directories. 2009-06-23 14:11:41 +00:00
include MFC 199606, 199614: 2009-12-17 20:41:27 +00:00
inet Merge the resolver part of BIND 9.4.3 into HEAD. 2008-12-14 19:39:53 +00:00
isc Merge BIND 9.4.1 into main chunk. 2007-06-03 17:20:27 +00:00
locale MFC r199244: 2009-12-24 20:35:01 +00:00
mips Remove unneeded stdlib directories. 2009-06-23 14:11:41 +00:00
nameser This commit was generated by cvs2svn to compensate for changes in r174223, 2007-12-03 15:07:58 +00:00
net MFC r206155, r206267: Add capability to use a db version of 2010-04-18 04:07:32 +00:00
nls MFC r199092: Add gai_strerror() catalog for ja_JP.UTF-8 2009-11-22 17:08:52 +00:00
posix1e MFC r205796: 2010-04-13 06:01:24 +00:00
powerpc Mark uname(), getdomainname() and setdomainname() with COMPAT_FREEBSD4. 2008-11-09 10:45:13 +00:00
quad Fix a typo that prevented the quad symbols from being exported 2007-07-06 13:42:24 +00:00
regex Add two example regexps: (1) one for matching all the characters 2008-09-05 17:41:20 +00:00
resolv Add an option to enforce strict RFC 1034 compliance. 2009-05-29 07:34:54 +00:00
rpc MFC 204950,205020: 2010-03-22 15:52:26 +00:00
softfloat MFC: r206490, r206492 2010-05-02 16:52:23 +00:00
sparc64 MFC: r205410 2010-03-30 19:13:37 +00:00
stdio MFC r204447: 2010-03-12 06:56:51 +00:00
stdlib MFC r207009: 2010-05-05 09:29:34 +00:00
stdtime MFC 199607, 200797, 201270, 201669: 2010-01-13 18:12:21 +00:00
string MFC r205099-205100,205108: 2010-05-13 23:28:20 +00:00
sys MFC r207734: sigaltstack(2): document some modernizations: 2010-05-13 15:44:49 +00:00
uuid Move uuid_enc_le, uuid_dec_le, uuid_enc_be and uuid_dec_be symbols 2008-09-19 15:52:56 +00:00
xdr Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
yp MFC revs 199781,199782,199784,199785,199786: 2009-12-02 02:47:29 +00:00
Makefile Second attempt at eliminating .text relocations in shared libraries 2009-07-14 21:19:13 +00:00
Versions.def MFC r197163 2009-11-01 20:24:17 +00:00