diff options
Diffstat (limited to 'strings')
-rw-r--r-- | strings/bmove512.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/strings/bmove512.c b/strings/bmove512.c index 4b0c3f5c1cb..11dc282d05c 100644 --- a/strings/bmove512.c +++ b/strings/bmove512.c @@ -40,12 +40,10 @@ void bmove512(register gptr to, register const gptr from, register uint length) { - reg1 LONG *f,*t; - reg3 int len; + reg1 LONG *f,*t,*end= (LONG*) ((char*) from+length); f= (LONG*) from; t= (LONG*) to; - len= (int) length; #if defined(m88k) || defined(sparc) || defined(HAVE_LONG_LONG) do { @@ -86,7 +84,7 @@ void bmove512(register gptr to, register const gptr from, register uint length) t[124]=f[124]; t[125]=f[125]; t[126]=f[126]; t[127]=f[127]; t+=128; f+=128; #endif - } while ((len-=512) > 0); + } while (f < end); #else do { *t++ = *f++; *t++ = *f++; *t++ = *f++; *t++ = *f++; @@ -121,7 +119,7 @@ void bmove512(register gptr to, register const gptr from, register uint length) *t++ = *f++; *t++ = *f++; *t++ = *f++; *t++ = *f++; *t++ = *f++; *t++ = *f++; *t++ = *f++; *t++ = *f++; *t++ = *f++; *t++ = *f++; *t++ = *f++; *t++ = *f++; - } while ((len-=512) > 0); + } while (f < end); #endif return; } /* bmove512 */ |