diff options
author | Flavio Cruz <flaviocruz@gmail.com> | 2023-01-17 00:11:16 -0500 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-01-18 02:03:31 +0100 |
commit | 67776029423f364c6d9fce4f6c0e80a045a46218 (patch) | |
tree | 18b3f1b573de17a0c45f49b895343e553a4c0ec0 | |
parent | 4d01db742c28098da9f9bee6c64c03090ebf1321 (diff) | |
download | gnumach-67776029423f364c6d9fce4f6c0e80a045a46218.tar.gz gnumach-67776029423f364c6d9fce4f6c0e80a045a46218.tar.bz2 gnumach-67776029423f364c6d9fce4f6c0e80a045a46218.zip |
Delete x86 string functions
The i386 functions are not used and the more portable versions in kern/strings.c
are faster (1-4x faster in synthetic benchmarks compiled with -O2 on my x86_64 box).
Message-Id: <Y8Yt9FvIagB78uyR@jupiter.tail36e24.ts.net>
-rw-r--r-- | i386/i386/strings.c | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/i386/i386/strings.c b/i386/i386/strings.c index 84a3bc16..f1752de2 100644 --- a/i386/i386/strings.c +++ b/i386/i386/strings.c @@ -94,57 +94,3 @@ memcmp(const void *s1, const void *s2, size_t n) return (int)c1 - (int)c2; } #endif /* ARCH_STRING_MEMCMP */ - -#ifdef ARCH_STRING_STRLEN -size_t -strlen(const char *s) -{ - size_t n; - - n = (size_t)-1; - asm volatile("repne scasb" - : "+D" (s), "+c" (n) - : "a" (0) - : "memory"); - return ~n - 1; -} -#endif /* ARCH_STRING_STRLEN */ - -#ifdef ARCH_STRING_STRCPY -char * -strcpy(char *dest, const char *src) -{ - char *orig_dest; - - orig_dest = dest; - asm volatile("1:\n" - "lodsb\n" - "stosb\n" - "testb %%al, %%al\n" - "jnz 1b\n" - : "+D" (dest), "+S" (src) - : : "al", "memory"); - return orig_dest; -} -#endif /* ARCH_STRING_STRCPY */ - -#ifdef ARCH_STRING_STRCMP -int -strcmp(const char *s1, const char *s2) -{ - unsigned char c1, c2; - - asm volatile("1:\n" - "lodsb\n" - "scasb\n" - "jne 1f\n" - "testb %%al, %%al\n" - "jnz 1b\n" - "1:\n" - : "+D" (s1), "+S" (s2) - : : "al", "memory"); - c1 = *(((const unsigned char *)s1) - 1); - c2 = *(((const unsigned char *)s2) - 1); - return (int)c1 - (int)c2; -} -#endif /* ARCH_STRING_STRCMP */ |