|
From: <sv...@va...> - 2005-12-30 04:16:56
|
Author: sewardj
Date: 2005-12-30 04:16:37 +0000 (Fri, 30 Dec 2005)
New Revision: 5460
Log:
Fix up ppc64 dispatcher following the changes made by r5441.
Modified:
trunk/coregrind/m_dispatch/dispatch-ppc32-linux.S
trunk/coregrind/m_dispatch/dispatch-ppc64-linux.S
Modified: trunk/coregrind/m_dispatch/dispatch-ppc32-linux.S
=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
--- trunk/coregrind/m_dispatch/dispatch-ppc32-linux.S 2005-12-29 17:46:04=
UTC (rev 5459)
+++ trunk/coregrind/m_dispatch/dispatch-ppc32-linux.S 2005-12-30 04:16:37=
UTC (rev 5460)
@@ -259,7 +259,7 @@
beq counter_is_zero
=20
/* try a fast lookup in the translation cache */
- /* r4 =3D VG_TT_FAST_HASH(addr) * sizeof(ULong)
+ /* r4 =3D VG_TT_FAST_HASH(addr) * sizeof(ULong*)
=3D ((r3 >>u 2) & VG_TT_FAST_MASK) << 2 */
rlwinm 4,3, 0, 32-2-VG_TT_FAST_BITS, 31-2 =20
addis 5,4,VG_(tt_fast)@ha
@@ -315,7 +315,7 @@
beq counter_is_zero
=20
/* try a fast lookup in the translation cache */
- /* r4 =3D VG_TT_FAST_HASH(addr) * sizeof(ULong)
+ /* r4 =3D VG_TT_FAST_HASH(addr) * sizeof(ULong*)
=3D ((r3 >>u 2) & VG_TT_FAST_MASK) << 2 */
rlwinm 4,3, 0, 32-2-VG_TT_FAST_BITS, 31-2=20
addis 5,4,VG_(tt_fast)@ha
Modified: trunk/coregrind/m_dispatch/dispatch-ppc64-linux.S
=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
--- trunk/coregrind/m_dispatch/dispatch-ppc64-linux.S 2005-12-29 17:46:04=
UTC (rev 5459)
+++ trunk/coregrind/m_dispatch/dispatch-ppc64-linux.S 2005-12-30 04:16:37=
UTC (rev 5460)
@@ -276,14 +276,16 @@
std 3,OFFSET_ppc64_CIA(31)
=20
/* Are we out of timeslice? If yes, defer to scheduler. */
-// subic. 29,29,1
subi 29,29,1
cmpldi 29,0
beq .counter_is_zero
=20
/* try a fast lookup in the translation cache */
- /* r4=3D((r3<<3) & (VG_TT_FAST_MASK<<3)) */
- rldic 4,3, 3, 64-3-VG_TT_FAST_BITS
+ /* r4 =3D VG_TT_FAST_HASH(addr) * sizeof(ULong*)
+ =3D ((r3 >>u 2) & VG_TT_FAST_MASK) << 3 */
+ rldicl 4,3, 62, 64-VG_TT_FAST_BITS
+ sldi 4,4,3
+
ld 5, .tocent__vgPlain_tt_fast@toc(2)
ldx 5, 5,4 /* r5 =3D VG_(tt_fast)[r3 & VG_TT_FAST_MASK] */
ld 6, 0(5) /* r6 =3D (r5)->orig_addr */
@@ -344,14 +346,16 @@
std 3,OFFSET_ppc64_CIA(31)
=20
/* Are we out of timeslice? If yes, defer to scheduler. */
-// subic. 29,29,1
subi 29,29,1
cmpldi 29,0
beq .counter_is_zero
=20
/* try a fast lookup in the translation cache */
- /* r4=3D((r3<<3) & (VG_TT_FAST_MASK<<3)) */
- rldic 4,3, 3, 64-3-VG_TT_FAST_BITS
+ /* r4 =3D VG_TT_FAST_HASH(addr) * sizeof(ULong*)
+ =3D ((r3 >>u 2) & VG_TT_FAST_MASK) << 3 */
+ rldicl 4,3, 62, 64-VG_TT_FAST_BITS
+ sldi 4,4,3
+
ld 5, .tocent__vgPlain_tt_fast@toc(2)
ldx 5, 5,4 /* r5 =3D VG_(tt_fast)[r3 & VG_TT_FAST_MASK] */
ld 6, 0(5) /* r6 =3D (r5)->orig_addr */
|