|
From: <sv...@va...> - 2006-10-17 02:08:34
|
Author: sewardj
Date: 2006-10-17 03:08:26 +0100 (Tue, 17 Oct 2006)
New Revision: 6291
Log:
Merge r6217 (also comment cosmetics):
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:
trunk/coregrind/m_dispatch/dispatch-amd64-linux.S
trunk/coregrind/m_dispatch/dispatch-ppc32-linux.S
trunk/coregrind/m_dispatch/dispatch-ppc64-linux.S
trunk/coregrind/m_dispatch/dispatch-x86-linux.S
Modified: trunk/coregrind/m_dispatch/dispatch-amd64-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-amd64-linux.S 2006-10-17 02:05:14=
UTC (rev 6290)
+++ trunk/coregrind/m_dispatch/dispatch-amd64-linux.S 2006-10-17 02:08:26=
UTC (rev 6291)
@@ -1,7 +1,7 @@
=20
/*--------------------------------------------------------------------*/
/*--- The core dispatch loop, for jumping to a code address. ---*/
-/*--- dispatch-amd64.S ---*/
+/*--- dispatch-amd64-linux.S ---*/
/*--------------------------------------------------------------------*/
=20
/*
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 2006-10-17 02:05:14=
UTC (rev 6290)
+++ trunk/coregrind/m_dispatch/dispatch-ppc32-linux.S 2006-10-17 02:08:26=
UTC (rev 6291)
@@ -1,7 +1,7 @@
=20
/*--------------------------------------------------------------------*/
/*--- The core dispatch loop, for jumping to a code address. ---*/
-/*--- dispatch-ppc32.S ---*/
+/*--- dispatch-ppc32-linux.S ---*/
/*--------------------------------------------------------------------*/
=20
/*
@@ -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: 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-10-17 02:05:14=
UTC (rev 6290)
+++ trunk/coregrind/m_dispatch/dispatch-ppc64-linux.S 2006-10-17 02:08:26=
UTC (rev 6291)
@@ -1,7 +1,7 @@
=20
/*--------------------------------------------------------------------*/
/*--- The core dispatch loop, for jumping to a code address. ---*/
-/*--- dispatch-ppc64.S ---*/
+/*--- dispatch-ppc64-linux.S ---*/
/*--------------------------------------------------------------------*/
=20
/*
@@ -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.
Modified: trunk/coregrind/m_dispatch/dispatch-x86-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-x86-linux.S 2006-10-17 02:05:14 U=
TC (rev 6290)
+++ trunk/coregrind/m_dispatch/dispatch-x86-linux.S 2006-10-17 02:08:26 U=
TC (rev 6291)
@@ -1,7 +1,7 @@
=20
/*--------------------------------------------------------------------*/
/*--- The core dispatch loop, for jumping to a code address. ---*/
-/*--- dispatch-x86.S ---*/
+/*--- dispatch-x86-linux.S ---*/
/*--------------------------------------------------------------------*/
=20
/*
|