|
From: <sv...@va...> - 2007-08-25 23:25:01
|
Author: sewardj
Date: 2007-08-26 00:25:00 +0100 (Sun, 26 Aug 2007)
New Revision: 6780
Log:
Merge from CGTUNE branch:
r6738:
Unroll memset; apparently is popular in some places (kpdf).
Modified:
trunk/memcheck/mc_replace_strmem.c
Modified: trunk/memcheck/mc_replace_strmem.c
===================================================================
--- trunk/memcheck/mc_replace_strmem.c 2007-08-25 23:09:36 UTC (rev 6779)
+++ trunk/memcheck/mc_replace_strmem.c 2007-08-25 23:25:00 UTC (rev 6780)
@@ -475,10 +475,17 @@
void* VG_REPLACE_FUNCTION_ZU(soname,fnname)(void *s, Int c, SizeT n) \
{ \
unsigned char *cp = s; \
- \
- while(n--) \
+ while (n >= 4) { \
+ cp[0] = c; \
+ cp[1] = c; \
+ cp[2] = c; \
+ cp[3] = c; \
+ cp += 4; \
+ n -= 4; \
+ } \
+ while (n--) { \
*cp++ = c; \
- \
+ } \
return s; \
}
|