Update of /cvsroot/linux-mips/linux/include/asm-mips
In directory usw-pr-cvs1:/tmp/cvs-serv23323/include/asm-mips
Modified Files:
string.h
Log Message:
Handle characters > 127 correctly in memscan.
Index: string.h
===================================================================
RCS file: /cvsroot/linux-mips/linux/include/asm-mips/string.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- string.h 2001/10/08 16:18:38 1.2
+++ string.h 2001/11/14 00:51:42 1.3
@@ -136,17 +136,18 @@
extern __inline__ void *memscan(void *__addr, int __c, size_t __size)
{
char *__end = (char *)__addr + __size;
+ unsigned char * __uc = (unsigned char) __c;
__asm__(".set\tpush\n\t"
".set\tnoat\n\t"
".set\treorder\n\t"
"1:\tbeq\t%0,%1,2f\n\t"
"addiu\t%0,1\n\t"
- "lb\t$1,-1(%0)\n\t"
+ "lbu\t$1,-1(%0)\n\t"
"bne\t$1,%z4,1b\n"
"2:\t.set\tpop"
: "=r" (__addr), "=r" (__end)
- : "0" (__addr), "1" (__end), "Jr" (__c));
+ : "0" (__addr), "1" (__end), "Jr" (__uc));
return __addr;
}
|