|
From: <sv...@va...> - 2007-05-09 11:13:38
|
Author: sewardj
Date: 2007-05-09 12:12:20 +0100 (Wed, 09 May 2007)
New Revision: 6738
Log:
Unroll memset; apparently is popular in some places (kpdf).
Modified:
branches/CGTUNE/memcheck/mc_replace_strmem.c
Modified: branches/CGTUNE/memcheck/mc_replace_strmem.c
===================================================================
--- branches/CGTUNE/memcheck/mc_replace_strmem.c 2007-05-08 18:01:59 UTC (rev 6737)
+++ branches/CGTUNE/memcheck/mc_replace_strmem.c 2007-05-09 11:12:20 UTC (rev 6738)
@@ -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; \
}
|