Looks like the monkeys-with-typewriters department wrote the size-8
for-Vex load/store cases.  Try and improve things.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3369 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/memcheck/mc_main.c b/memcheck/mc_main.c
index 56d07a9..f5d6c32 100644
--- a/memcheck/mc_main.c
+++ b/memcheck/mc_main.c
@@ -875,7 +875,7 @@
 #  ifdef VG_DEBUG_MEMORY
    return mc_rd_V8_SLOWLY(a);
 #  else
-   if (IS_4_ALIGNED(a)) {
+   if (IS_8_ALIGNED(a)) {
       UInt    sec_no = shiftRight16(a) & 0xFFFF;
       SecMap* sm     = primary_map[sec_no];
       UInt    a_off  = (SM_OFF(a)) >> 3;
@@ -909,12 +909,11 @@
 #  ifdef VG_DEBUG_MEMORY
    mc_wr_V8_SLOWLY(a, vbytes);
 #  else
-   if (IS_4_ALIGNED(a)) {
+   if (IS_8_ALIGNED(a)) {
       UInt    sec_no = shiftRight16(a) & 0xFFFF;
       SecMap* sm     = primary_map[sec_no];
       UInt    a_off  = (SM_OFF(a)) >> 3;
-      UChar   abits  = sm->abits[a_off];
-      if (abits == VGM_BYTE_VALID) {
+      if (!IS_DISTINGUISHED_SM(sm) && sm->abits[a_off] == VGM_BYTE_VALID) {
          /* a is 8-aligned, mapped, and addressible. */
          UInt v_off = SM_OFF(a);
          UInt vHi = (UInt)(vbytes >> 32);