| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/stable/8/; revision=208051
|
| |
|
|
| |
Notes:
svn path=/stable/8/; revision=203598
|
| |
|
|
|
|
|
| |
Add an .Nm for strncat.
Notes:
svn path=/stable/8/; revision=200092
|
| |
|
|
|
|
|
|
|
|
|
| |
appeared in FreeBSD.
PR: 133785
Submitted by: Ulrich Spoerlein <uqs@spoerlein.net>
MFC after: 3 days
Notes:
svn path=/head/; revision=191414
|
| |
|
|
|
|
|
|
| |
because there is no way to figure that out based on the file mode
itself. Make the manual page match reality.
Notes:
svn path=/head/; revision=191055
|
| |
|
|
|
|
|
| |
Approved by: rwatson (mentor)
Notes:
svn path=/head/; revision=190798
|
| |
|
|
|
|
|
|
| |
Submitted by: Florian Smeets <flo kasimir com>
MFC after: 3 days
Notes:
svn path=/head/; revision=190266
|
| |
|
|
| |
Notes:
svn path=/head/; revision=189361
|
| |
|
|
|
|
|
| |
I missed this file in my previous commit.
Notes:
svn path=/head/; revision=189137
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
wcscasecmp(), and wcsncasecmp().
- Make some previously non-standard extensions visible
if POSIX_VISIBLE >= 200809.
- Use restrict qualifiers in stpcpy().
- Declare off_t and size_t in stdio.h.
- Bump __FreeBSD_version in case the new symbols (particularly
getline()) cause issues with ports.
Reviewed by: standards@
Notes:
svn path=/head/; revision=189136
|
| |
|
|
|
|
|
|
| |
The annotation mainly just serves as a hint that they're not intended
for use with overlapping strings.
Notes:
svn path=/head/; revision=189133
|
| |
|
|
| |
Notes:
svn path=/head/; revision=188295
|
| |
|
|
|
|
|
| |
from the ANSI-C prototype due to the 'int promotion' rule.
Notes:
svn path=/head/; revision=188098
|
| |
|
|
|
|
|
|
|
| |
- use nul when we are looking for a terminating character where appropriate
Approved by: imp
Notes:
svn path=/head/; revision=188080
|
| |
|
|
|
|
|
|
|
|
|
| |
- Use the correct term 'long mode'. [2]
- style(9) for return value. [3]
Submitted by: Ben Kaduk <minimarmot gmail com> [1],
obrien [2], scf [3]
Notes:
svn path=/head/; revision=187707
|
| |
|
|
|
|
|
|
|
|
|
|
| |
reducing branches and doing word-sized operation.
The idea is taken from J.T. Conklin's x86_64 optimized version of strlen(3)
for NetBSD, and reimplemented in C by me.
Discussed on: -arch@
Notes:
svn path=/head/; revision=187700
|
| |
|
|
|
|
|
|
|
|
| |
FreeBSD 7.1
Submitted by: Jan Henrik Sylvester <me janh de>
MFC after: 3 days
Notes:
svn path=/head/; revision=187147
|
| |
|
|
|
|
|
|
|
| |
o Use an ISC-style license as did by the author.
Obtained from: OpenBSD
Notes:
svn path=/head/; revision=187091
|
| |
|
|
|
|
|
|
|
| |
o Use ISC style copyright as did by the author.
Obtained from: OpenBSD
Notes:
svn path=/head/; revision=187090
|
| |
|
|
| |
Notes:
svn path=/head/; revision=186957
|
| |
|
|
| |
Notes:
svn path=/head/; revision=185789
|
| |
|
|
|
|
|
|
|
|
|
| |
Copyright attribution is kept the same as in original NetBSD source.
Submitted by: Florian Smeets <flo kasimir com>
Obtained from: NetBSD
MFC after: 2 weeks
Notes:
svn path=/head/; revision=185690
|
| |
|
|
|
|
|
|
| |
Submitted by: Florian Smeets <flo kasimir com>
MFC after: 2 weeks
Notes:
svn path=/head/; revision=185689
|
| |
|
|
|
|
|
| |
Reviewed by: trasz
Notes:
svn path=/head/; revision=185641
|
| |
|
|
|
|
|
|
|
|
|
| |
on long long arguments.
Reviewed by: bde (previous version, that included asm implementation
for all ffs and fls functions on i386 and amd64)
MFC after: 2 weeks
Notes:
svn path=/head/; revision=184587
|
| |
|
|
| |
Notes:
svn path=/head/; revision=184586
|
| |
|
|
|
|
|
|
|
|
|
| |
- ANSIfy;
- Convert do {} while loop -> while {} for clarity;
- Sync RCS ID with OpenBSD;
Obtained from: OpenBSD
Notes:
svn path=/head/; revision=184059
|
| |
|
|
|
|
|
| |
Submitted by: Christoph Mallon <christoph.mallon gmx.de>
Notes:
svn path=/head/; revision=184055
|
| |
|
|
| |
Notes:
svn path=/head/; revision=183990
|
| |
|
|
|
|
|
| |
Obtained from: OpenBSD
Notes:
svn path=/head/; revision=178051
|
| |
|
|
|
|
|
| |
Prompted by: Glenn Halperin, Symbian Software
Notes:
svn path=/head/; revision=174553
|
| |
|
|
| |
Notes:
svn path=/head/; revision=169092
|
| |
|
|
|
|
|
|
|
| |
clause.
# If I've done so improperly on a file, please let me know.
Notes:
svn path=/head/; revision=165903
|
| |
|
|
|
|
|
|
| |
PR: docs/94803
MFC after: 3 days
Notes:
svn path=/head/; revision=163274
|
| |
|
|
|
|
|
|
| |
first sentence back to the way it was. Add a second sentence that
explains the case when strcmp is called.
Notes:
svn path=/head/; revision=161274
|
| |
|
|
| |
Notes:
svn path=/head/; revision=159644
|
| |
|
|
| |
Notes:
svn path=/head/; revision=156613
|
| |
|
|
|
|
|
| |
Reviewed by: davidxu
Notes:
svn path=/head/; revision=156608
|
| |
|
|
| |
Notes:
svn path=/head/; revision=152746
|
| |
|
|
| |
Notes:
svn path=/head/; revision=152571
|
| |
|
|
| |
Notes:
svn path=/head/; revision=149792
|
| |
|
|
|
|
|
|
|
|
| |
PR: docs/84850
Submitted by: garys
MFC after: 3 days
Approved by: keramida
Notes:
svn path=/head/; revision=149603
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
It is the binary equivalent to strstr(3).
void *memmem(const void *big, size_t big_len,
const void *little, size_t little_len);
Submitted by: Pascal Gloor <pascal.gloor at spale.com>
MFC after: 3 days
Notes:
svn path=/head/; revision=149466
|
| |
|
|
|
|
|
| |
on Microsoft and GNU systems.
Notes:
svn path=/head/; revision=149011
|
| |
|
|
|
|
|
|
|
|
|
|
| |
implementations inspired by the ones in DragonFly. Unlike the
DragonFly versions, these have a small data cache footprint, and my
tests show that they're never slower than the old code except when the
charset or the span is 0 or 1 characters. This implementation is
generally faster than DragonFly until either the charset or the span
gets in the ballpark of 32 to 64 characters.
Notes:
svn path=/head/; revision=144545
|
| |
|
|
|
|
|
| |
Reported by: Sean McNeil <sean@mcneil.com>
Notes:
svn path=/head/; revision=143166
|
| |
|
|
| |
Notes:
svn path=/head/; revision=142693
|
| |
|
|
|
|
|
|
|
| |
Controlled by NLS define, currently disabled by default.
Idea obtained from: NetBSD
Notes:
svn path=/head/; revision=142667
|
| |
|
|
|
|
|
|
|
| |
PR: misc/77369
Submitted by: Ed Maste <emaste@phaedrus.sandvine.ca>
MFC after: 1 week
Notes:
svn path=/head/; revision=141701
|
| |
|
|
| |
Notes:
svn path=/head/; revision=140505
|