/* try a fast lookup in the translation cache */
// r0 = next guest, r1,r2,r3 scratch
ldr r1, =VG_TT_FAST_MASK // r1 = VG_TT_FAST_MASK
- and r2, r1, r0, LSR #2 // r2 = entry #
+ and r2, r1, r0, LSR #1 // r2 = entry #
ldr r1, =VG_(tt_fast) // r1 = &tt_fast[0]
add r1, r1, r2, LSL #3 // r1 = &tt_fast[entry#]
ldr r3, [r1, #0] /* .guest */
/* try a fast lookup in the translation cache */
// r0 = next guest, r1,r2,r3 scratch
ldr r1, =VG_TT_FAST_MASK // r1 = VG_TT_FAST_MASK
- and r2, r1, r0, LSR #2 // r2 = entry #
+ and r2, r1, r0, LSR #1 // r2 = entry #
ldr r1, =VG_(tt_fast) // r1 = &tt_fast[0]
add r1, r1, r2, LSL #3 // r1 = &tt_fast[entry#]
ldr r3, [r1, #0] /* .guest */
/* This macro isn't usable in asm land; nevertheless this seems
like a good place to put it. */
+
#if defined(VGA_x86) || defined(VGA_amd64)
# define VG_TT_FAST_HASH(_addr) ((((UWord)(_addr)) ) & VG_TT_FAST_MASK)
-#elif defined(VGA_ppc32) || defined(VGA_ppc64) || defined(VGA_arm)
-# define VG_TT_FAST_HASH(_addr) ((((UWord)(_addr)) >> 2) & VG_TT_FAST_MASK)
-#elif defined(VGA_s390x)
+
+#elif defined(VGA_s390x) || defined(VGA_arm)
# define VG_TT_FAST_HASH(_addr) ((((UWord)(_addr)) >> 1) & VG_TT_FAST_MASK)
+
+#elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# define VG_TT_FAST_HASH(_addr) ((((UWord)(_addr)) >> 2) & VG_TT_FAST_MASK)
+
#else
# error "VG_TT_FAST_HASH: unknown platform"
#endif