forked from KolibriOS/kolibrios
libc.obj:
- Formatted by clang-format (WebKit-style). - Removed unnecessary errno linux. - Added KOS error codes. - String functions have been replaced with more optimal ones for x86. - Changed wrappers for 70 sysfunction. git-svn-id: svn://kolibrios.org@9765 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,24 +1,20 @@
|
||||
/* memchr( const void *, int, size_t )
|
||||
|
||||
This file is part of the Public Domain C Library (PDCLib).
|
||||
Permission is granted to use, modify, and / or redistribute at will.
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
void * memchr( const void * s, int c, size_t n )
|
||||
{
|
||||
const unsigned char * p = ( const unsigned char * ) s;
|
||||
|
||||
while ( n-- )
|
||||
{
|
||||
if ( *p == ( unsigned char ) c )
|
||||
{
|
||||
return ( void * ) p;
|
||||
}
|
||||
|
||||
++p;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
#include <assert.h>
|
||||
#include "unconst.h"
|
||||
#include <string.h>
|
||||
|
||||
void* memchr(const void* s, int c, size_t n)
|
||||
{
|
||||
int d0;
|
||||
register void* __res;
|
||||
if (!n)
|
||||
return NULL;
|
||||
__asm__ __volatile__(
|
||||
"repne\n\t"
|
||||
"scasb\n\t"
|
||||
"je 1f\n\t"
|
||||
"movl $1,%0\n"
|
||||
"1:\tdecl %0"
|
||||
: "=D"(__res), "=&c"(d0)
|
||||
: "a"(c), "0"(s), "1"(n));
|
||||
return __res;
|
||||
}
|
Reference in New Issue
Block a user