diff options
Diffstat (limited to 'arch/x86/lib/string_32.c')
| -rw-r--r-- | arch/x86/lib/string_32.c | 17 | 
1 files changed, 6 insertions, 11 deletions
diff --git a/arch/x86/lib/string_32.c b/arch/x86/lib/string_32.c index 53b3f202267c..f87ec24fa579 100644 --- a/arch/x86/lib/string_32.c +++ b/arch/x86/lib/string_32.c @@ -40,8 +40,7 @@ char *strncpy(char *dest, const char *src, size_t count)  		"stosb\n\t"  		"testb %%al,%%al\n\t"  		"jne 1b\n\t" -		"rep\n\t" -		"stosb\n" +		"rep stosb\n"  		"2:"  		: "=&S" (d0), "=&D" (d1), "=&c" (d2), "=&a" (d3)  		: "0" (src), "1" (dest), "2" (count) : "memory"); @@ -54,8 +53,7 @@ EXPORT_SYMBOL(strncpy);  char *strcat(char *dest, const char *src)  {  	int d0, d1, d2, d3; -	asm volatile("repne\n\t" -		"scasb\n\t" +	asm volatile("repne scasb\n\t"  		"decl %1\n"  		"1:\tlodsb\n\t"  		"stosb\n\t" @@ -72,8 +70,7 @@ EXPORT_SYMBOL(strcat);  char *strncat(char *dest, const char *src, size_t count)  {  	int d0, d1, d2, d3; -	asm volatile("repne\n\t" -		"scasb\n\t" +	asm volatile("repne scasb\n\t"  		"decl %1\n\t"  		"movl %8,%3\n"  		"1:\tdecl %3\n\t" @@ -167,8 +164,7 @@ size_t strlen(const char *s)  {  	int d0;  	size_t res; -	asm volatile("repne\n\t" -		"scasb" +	asm volatile("repne scasb"  		: "=c" (res), "=&D" (d0)  		: "1" (s), "a" (0), "0" (0xffffffffu)  		: "memory"); @@ -184,8 +180,7 @@ void *memchr(const void *cs, int c, size_t count)  	void *res;  	if (!count)  		return NULL; -	asm volatile("repne\n\t" -		"scasb\n\t" +	asm volatile("repne scasb\n\t"  		"je 1f\n\t"  		"movl $1,%0\n"  		"1:\tdecl %0" @@ -202,7 +197,7 @@ void *memscan(void *addr, int c, size_t size)  {  	if (!size)  		return addr; -	asm volatile("repnz; scasb\n\t" +	asm volatile("repnz scasb\n\t"  	    "jnz 1f\n\t"  	    "dec %%edi\n"  	    "1:"  | 
