--- 2006-05-16/xen/include/asm-x86/string.h.0 2006-04-06 17:50:27.000000000 +0200 +++ 2006-05-16/xen/include/asm-x86/string.h 2006-05-24 11:12:15.000000000 +0200 @@ -90,7 +90,7 @@ static inline int strcmp(const char *cs, " or $1,%%al \n" "3: \n" : "=a" (__res), "=&S" (d0), "=&D" (d1) - : "1" (cs), "2" (ct) ); + : "1" (cs), "2" (ct), "m" (*cs), "m" (*ct) ); return __res; } @@ -113,7 +113,7 @@ static inline int strncmp(const char *cs " or $1,%%al \n" "4: \n" : "=a" (__res), "=&S" (d0), "=&D" (d1), "=&c" (d2) - : "1" (cs), "2" (ct), "3" (count) ); + : "1" (cs), "2" (ct), "3" (count), "m" (*cs), "m" (*ct) ); return __res; } @@ -132,7 +132,8 @@ static inline char *strchr(const char *s " mov $1,%1 \n" "2: mov %1,%0 \n" " dec %0 \n" - : "=a" (__res), "=&S" (d0) : "1" (s), "0" (c) ); + : "=a" (__res), "=&S" (d0) + : "1" (s), "0" (c), "m" (*s) ); return __res; } @@ -145,7 +146,8 @@ static inline size_t strlen(const char * " repne ; scasb \n" " notl %0 \n" " decl %0 \n" - : "=c" (__res), "=&D" (d0) : "1" (s), "a" (0), "0" (0xffffffffUL) ); + : "=c" (__res), "=&D" (d0) + : "1" (s), "a" (0), "0" (0xffffffffUL), "m" (*s) ); return __res; } @@ -270,7 +272,8 @@ static inline void *memchr(const void *c " je 1f \n" " mov $1,%0 \n" "1: dec %0 \n" - : "=D" (__res), "=&c" (d0) : "a" (c), "0" (cs), "1" (count) ); + : "=D" (__res), "=&c" (d0) + : "a" (c), "0" (cs), "1" (count), "m" (*(const unsigned char *)cs) ); return __res; }