|
From: <sv...@va...> - 2006-10-13 11:00:13
|
Author: sewardj
Date: 2006-10-13 12:00:05 +0100 (Fri, 13 Oct 2006)
New Revision: 6217
Log:
Use 'ctr' rather than 'lr' for indirect jumps, so as not to trash the
branch predictor(s) for returns from generated code. Makes a big
difference on ppc970 (and POWER4).
Modified:
branches/AIX5/coregrind/m_dispatch/dispatch-ppc32-linux.S
branches/AIX5/coregrind/m_dispatch/dispatch-ppc64-linux.S
Modified: branches/AIX5/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
--- branches/AIX5/coregrind/m_dispatch/dispatch-ppc32-linux.S 2006-10-13 =
00:41:09 UTC (rev 6216)
+++ branches/AIX5/coregrind/m_dispatch/dispatch-ppc32-linux.S 2006-10-13 =
11:00:05 UTC (rev 6217)
@@ -275,10 +275,10 @@
/* Found a match. Call tce[1], which is 8 bytes along, since
each tce element is a 64-bit int. */
addi 8,5,8
- mtlr 8
+ mtctr 8
=20
/* run the translation */
- blrl
+ bctrl
=20
/* On return from guest code:
r3 holds destination (original) address.
@@ -338,10 +338,10 @@
/* Found a match. Call tce[1], which is 8 bytes along, since
each tce element is a 64-bit int. */
addi 8,5,8
- mtlr 8
+ mtctr 8
=20
/* run the translation */
- blrl
+ bctrl
=20
/* On return from guest code:
r3 holds destination (original) address.
Modified: branches/AIX5/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
--- branches/AIX5/coregrind/m_dispatch/dispatch-ppc64-linux.S 2006-10-13 =
00:41:09 UTC (rev 6216)
+++ branches/AIX5/coregrind/m_dispatch/dispatch-ppc64-linux.S 2006-10-13 =
11:00:05 UTC (rev 6217)
@@ -298,10 +298,10 @@
/* Found a match. Call tce[1], which is 8 bytes along, since
each tce element is a 64-bit int. */
addi 8,5,8
- mtlr 8
+ mtctr 8
=20
/* run the translation */
- blrl
+ bctrl
=20
/* On return from guest code:
r3 holds destination (original) address.
@@ -376,10 +376,10 @@
/* Found a match. Call tce[1], which is 8 bytes along, since
each tce element is a 64-bit int. */
addi 8,5,8
- mtlr 8
+ mtctr 8
=20
/* run the translation */
- blrl
+ bctrl
=20
/* On return from guest code:
r3 holds destination (original) address.
|