123456789101112131415161718192021222324 |
- /*
- * Adapted from strlen.c code
- *
- * Copyright (C) 2008 Denys Vlasenko <vda.linux@googlemail.com>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
- #include <string.h>
- #undef rawmemchr
- void *rawmemchr(const void *s, int c)
- {
- void *eax;
- int ecx, edi;
- __asm__ __volatile__(
- " repne; scasb\n"
- " leal -1(%%edi), %%eax\n"
- : "=&c" (ecx), "=&D" (edi), "=&a" (eax)
- : "0" (0xffffffff), "1" (s), "2" (c)
- );
- return eax;
- }
- libc_hidden_def(rawmemchr)
|