freebsd-dev/lib
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
..
bind Update to 9.6.2-P1, the latest patchfix release which deals with 2010-03-29 06:31:58 +00:00
csu MFC r205398: Do not create *.gmon files for PIE executables on i386. 2010-03-23 23:25:17 +00:00
libalias Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libarchive MFC r196962: Fix /usr/bin/unzip: A bug deep in libarchive's read-ahead logic 2009-09-17 06:31:59 +00:00
libauditd Merge OpenBSM alpha 4 from OpenBSM vendor branch to head, both 2008-12-31 11:12:24 +00:00
libautofs Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libbegemot Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libbluetooth MFC SVN rev 198492 2010-01-26 00:38:56 +00:00
libbsm Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libbsnmp Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libbz2 Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libc MFC r205099-205100,205108: 2010-05-13 23:28:20 +00:00
libc_r MFC: r203918: Unbreak makefiles by removing mentions of DEFAULT_THREAD_LIB. 2010-02-18 16:52:49 +00:00
libcalendar
libcam Separate the parallel scsi knowledge out of the core of the XPT, and 2009-07-10 08:18:08 +00:00
libcom_err
libcompat K&R -> ANSI 2009-06-23 23:20:09 +00:00
libcrypt Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libdevinfo MFC r197224: 2009-09-15 19:24:18 +00:00
libdevstat Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libdisk MFC: r197322 and r197374 2009-09-24 15:34:18 +00:00
libdwarf Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libedit Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libelf MFC: r202159 2010-01-15 19:53:36 +00:00
libexpat MFC r201137: 2010-01-04 01:09:59 +00:00
libfetch insta-mfh r203028 (doc update) 2010-01-26 15:07:47 +00:00
libftpio Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libgeom Add links to libgeom(3) where appropriate. 2009-05-19 12:10:48 +00:00
libgpib MFC r203356: add a manpage for gpib(3). 2010-02-04 19:49:07 +00:00
libgssapi Merge r203027 from head: 2010-02-02 19:44:52 +00:00
libipsec Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libipx
libjail MFC: r204008: realloc() with a proper amount of memory. 2010-02-22 15:58:10 +00:00
libkiconv Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libkse MFC: r203918: Unbreak makefiles by removing mentions of DEFAULT_THREAD_LIB. 2010-02-18 16:52:49 +00:00
libkvm MFC r207187: kvm(3): Mention that some of the functions use sysctl(3) 2010-05-02 12:38:59 +00:00
libmagic Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libmd Remove reference to no longer existing document. 2009-01-09 11:45:13 +00:00
libmemstat Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libmilter Switch libmilter from select(2) to poll(2) so milters are not limited 2008-02-17 05:14:47 +00:00
libmp Rename all symbols in libmp(3) to mp_*, just like Solaris. 2009-02-26 21:43:15 +00:00
libncp Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libnetgraph Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libngatm Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libopie Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libpam MFH OpenSSH 5.4p1 2010-04-21 06:33:10 +00:00
libpcap Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libpmc MFC r206089, r206684: 2010-04-16 15:45:09 +00:00
libproc Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libradius MFC rev. 197621: 2009-10-30 13:02:08 +00:00
librpcsec_gss Merge r203025,r203026 from head: 2010-02-02 19:37:26 +00:00
librpcsvc Use ANSI function declarations in librpcsvc. 2009-02-26 20:32:11 +00:00
librt atomic_fetchadd_int works on unsigned quantities - change 2008-08-15 21:08:48 +00:00
libsbuf
libsdp Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libsm MFC: Enable the use of nanosleep() instead of using pause() and signals. 2010-03-07 02:02:07 +00:00
libsmb Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libsmdb
libsmutil
libstand MFC 205900: 2010-04-14 17:17:06 +00:00
libtacplus MFC r199802: 2009-12-19 19:23:25 +00:00
libtelnet Rename all symbols in libmp(3) to mp_*, just like Solaris. 2009-02-26 21:43:15 +00:00
libthr MFC r198508, r198509: 2009-12-19 11:47:00 +00:00
libthread_db Revert r181651, which changed the ABI, and use a temp variable instead. 2009-06-09 12:32:10 +00:00
libufs MFC of 203763, 203764, 203768, 203769, 203770, 203782, and 203784. 2010-02-26 21:49:11 +00:00
libugidfw Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libusb MFC r203147 2010-04-07 00:34:05 +00:00
libusbhid Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libutil MFC r202500: 2010-01-24 14:30:57 +00:00
libvgl Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libwrap Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
liby
libypclnt Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libz MFC assembler version of match functions for amd64 and i386(*). 2010-04-20 22:57:05 +00:00
msun MFC r203441: 2010-02-17 09:09:12 +00:00
ncurses Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
Makefile MFC x86emu/x86bios emulator and make previously i386 only dpms and vesa 2010-03-02 01:56:55 +00:00
Makefile.inc Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00