|
From: <sv...@va...> - 2006-01-23 00:09:13
|
Author: sewardj
Date: 2006-01-23 00:09:07 +0000 (Mon, 23 Jan 2006)
New Revision: 5587
Log:
Fix profiling dispatcher.
Modified:
trunk/coregrind/m_dispatch/dispatch-ppc64-linux.S
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 2006-01-22 20:12:45=
UTC (rev 5586)
+++ trunk/coregrind/m_dispatch/dispatch-ppc64-linux.S 2006-01-23 00:09:07=
UTC (rev 5587)
@@ -290,7 +290,7 @@
sldi 4,4,3
=20
ld 5, .tocent__vgPlain_tt_fast@toc(2)
- ldx 5, 5,4 /* r5 =3D VG_(tt_fast)[r3 & VG_TT_FAST_MASK] */
+ ldx 5, 5,4 /* r5 =3D VG_(tt_fast)[VG_TT_FAST_HASH(addr)] */
ld 6, 0(5) /* r6 =3D (r5)->orig_addr */
cmpd 3,6
bne .fast_lookup_failed
@@ -360,17 +360,17 @@
sldi 4,4,3
=20
ld 5, .tocent__vgPlain_tt_fast@toc(2)
- ldx 5, 5,4 /* r5 =3D VG_(tt_fast)[r3 & VG_TT_FAST_MASK] */
+ ldx 5, 5,4 /* r5 =3D VG_(tt_fast)[VG_TT_FAST_HASH(addr)] */
ld 6, 0(5) /* r6 =3D (r5)->orig_addr */
cmpd 3,6
bne .fast_lookup_failed
=20
/* increment bb profile counter VG_(tt_fastN)[x] (=3D32bit val) =
*/
ld 7, .tocent__vgPlain_tt_fastN@toc(2)
- srdi 4, 4,1 /* r4 =3D ((r3<<2) & (VG_TT_FAST_MASK<<2)) */
- lwzx 6, 7,4 /* r6 =3D VG_(tt_fastN)[(r4)] */
+ ldx 7, 7,4 /* r7 =3D VG_(tt_fastN)[VG_TT_HASH(addr)] */
+ lwz 6, 0(7) /* *(UInt*)r7 ++ */
addi 6, 6,1
- stwx 6, 7,4
+ stw 6, 0(7)
=20
/* Found a match. Call tce[1], which is 8 bytes along, since
each tce element is a 64-bit int. */
|