mirror of
https://sourceware.org/git/glibc.git
synced 2025-09-02 16:01:20 +03:00
2005-01-28 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/bits/string.h (strlen, strncpy, strcat, strncat, strncat, memchr, strcmp): Add missing memory clobber.
This commit is contained in:
@@ -51,7 +51,7 @@ strlen (__const char *__str)
|
|||||||
"0: srst %0,%1\n"
|
"0: srst %0,%1\n"
|
||||||
" jo 0b\n"
|
" jo 0b\n"
|
||||||
: "+&a" (__ptr), "+&a" (__tmp) :
|
: "+&a" (__ptr), "+&a" (__tmp) :
|
||||||
: "cc", "0" );
|
: "cc", "memory", "0" );
|
||||||
return (size_t) (__ptr - __str);
|
return (size_t) (__ptr - __str);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -105,7 +105,7 @@ strncpy (char *__dest, __const char *__src, size_t __n)
|
|||||||
#endif
|
#endif
|
||||||
"4:"
|
"4:"
|
||||||
: "+&a" (__ptr), "+&a" (__n) : "a" (__diff)
|
: "+&a" (__ptr), "+&a" (__n) : "a" (__diff)
|
||||||
: "cc", "0" );
|
: "cc", "memory", "0" );
|
||||||
}
|
}
|
||||||
return __ret;
|
return __ret;
|
||||||
}
|
}
|
||||||
@@ -134,7 +134,7 @@ strcat(char *__dest, const char *__src)
|
|||||||
"0: mvst %0,%1\n"
|
"0: mvst %0,%1\n"
|
||||||
" jo 0b"
|
" jo 0b"
|
||||||
: "+&a" (__ptr), "+&a" (__src) :
|
: "+&a" (__ptr), "+&a" (__src) :
|
||||||
: "cc", "0" );
|
: "cc", "memory", "0" );
|
||||||
return __ret;
|
return __ret;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -157,7 +157,7 @@ strncat (char *__dest, __const char *__src, size_t __n)
|
|||||||
"0: srst %0,%1\n"
|
"0: srst %0,%1\n"
|
||||||
" jo 0b\n"
|
" jo 0b\n"
|
||||||
: "+&a" (__ptr), "+&a" (__tmp) :
|
: "+&a" (__ptr), "+&a" (__tmp) :
|
||||||
: "cc", "0" );
|
: "cc", "memory", "0" );
|
||||||
|
|
||||||
__diff = (size_t) (__ptr - __src);
|
__diff = (size_t) (__ptr - __src);
|
||||||
__tmp = (char *) __src;
|
__tmp = (char *) __src;
|
||||||
@@ -175,7 +175,7 @@ strncat (char *__dest, __const char *__src, size_t __n)
|
|||||||
" stc 0,1(%2,%0)\n"
|
" stc 0,1(%2,%0)\n"
|
||||||
"2:"
|
"2:"
|
||||||
: "+&a" (__tmp), "+&a" (__n) : "a" (__diff)
|
: "+&a" (__tmp), "+&a" (__n) : "a" (__diff)
|
||||||
: "cc", "0" );
|
: "cc", "memory", "0" );
|
||||||
|
|
||||||
}
|
}
|
||||||
return __ret;
|
return __ret;
|
||||||
@@ -200,7 +200,7 @@ memchr (__const void *__str, int __c, size_t __n)
|
|||||||
" la %0,0\n"
|
" la %0,0\n"
|
||||||
"1:"
|
"1:"
|
||||||
: "+&a" (__ptr), "+&a" (__tmp) : "d" (__c)
|
: "+&a" (__ptr), "+&a" (__tmp) : "d" (__c)
|
||||||
: "cc", "0" );
|
: "cc", "memory", "0" );
|
||||||
return __ptr;
|
return __ptr;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -222,7 +222,7 @@ strcmp (__const char *__s1, __const char *__s2)
|
|||||||
" ipm %0\n"
|
" ipm %0\n"
|
||||||
" srl %0,28"
|
" srl %0,28"
|
||||||
: "=d" (__ret), "+&a" (__p1), "+&a" (__p2) :
|
: "=d" (__ret), "+&a" (__p1), "+&a" (__p2) :
|
||||||
: "cc", "0" );
|
: "cc", "memory", "0" );
|
||||||
__ret = (__ret == 0) ? 0 : (__ret == 1) ? -1 : 1;
|
__ret = (__ret == 0) ? 0 : (__ret == 1) ? -1 : 1;
|
||||||
return __ret;
|
return __ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user