|
From: <sv...@va...> - 2006-02-25 04:50:36
|
Author: njn
Date: 2006-02-25 04:50:26 +0000 (Sat, 25 Feb 2006)
New Revision: 5699
Log:
Previously in STOREV1 if the 4-byte word that encompassed the 1 byte bein=
g=20
written wasn't entirely addressible, we'd fall back to the slow case. No=
w,
if the 4-byte addressability test fails I check for 1-byte addressability=
.
This avoids the slow case a lot in some cases. It speeds up perf/bz2 fro=
m=20
21.5s to 19.5s on one machine, and the SPEC bzip2 benchmark with "test"=20
input goes from 208 seconds to 138 seconds.
Modified:
branches/COMPVBITS/memcheck/mc_main.c
Modified: branches/COMPVBITS/memcheck/mc_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- branches/COMPVBITS/memcheck/mc_main.c 2006-02-24 10:36:54 UTC (rev 56=
98)
+++ branches/COMPVBITS/memcheck/mc_main.c 2006-02-25 04:50:26 UTC (rev 56=
99)
@@ -3171,9 +3171,13 @@
sm =3D get_secmap_readable_low(a);
sm_off =3D SM_OFF(a);
vabits8 =3D sm->vabits8[sm_off];
- if (EXPECTED_TAKEN( !is_distinguished_sm(sm) &&=20
- (VA_BITS8_READABLE =3D=3D vabits8 ||
- VA_BITS8_WRITABLE =3D=3D vabits8) ))
+ if (EXPECTED_TAKEN
+ ( !is_distinguished_sm(sm) &&
+ ( (VA_BITS8_READABLE =3D=3D vabits8 || VA_BITS8_WRITABLE =3D=3D=
vabits8)
+ || (VA_BITS2_NOACCESS !=3D extract_vabits2_from_vabits8(a, vab=
its8))
+ )
+ )
+ )
{
/* Handle common case quickly: a is mapped, the entire word32 it
lives in is addressible. */
|