From 0850d324437283dc75535727e4a85f728a4ee70c Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Tue, 17 Oct 2006 02:08:26 +0000 Subject: [PATCH] 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). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6291 --- coregrind/m_dispatch/dispatch-amd64-linux.S | 2 +- coregrind/m_dispatch/dispatch-ppc32-linux.S | 10 +++++----- coregrind/m_dispatch/dispatch-ppc64-linux.S | 10 +++++----- coregrind/m_dispatch/dispatch-x86-linux.S | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/coregrind/m_dispatch/dispatch-amd64-linux.S b/coregrind/m_dispatch/dispatch-amd64-linux.S index 001492f981..bbb631294c 100644 --- a/coregrind/m_dispatch/dispatch-amd64-linux.S +++ b/coregrind/m_dispatch/dispatch-amd64-linux.S @@ -1,7 +1,7 @@ /*--------------------------------------------------------------------*/ /*--- The core dispatch loop, for jumping to a code address. ---*/ -/*--- dispatch-amd64.S ---*/ +/*--- dispatch-amd64-linux.S ---*/ /*--------------------------------------------------------------------*/ /* diff --git a/coregrind/m_dispatch/dispatch-ppc32-linux.S b/coregrind/m_dispatch/dispatch-ppc32-linux.S index 4752498c68..f4e12aa988 100644 --- a/coregrind/m_dispatch/dispatch-ppc32-linux.S +++ b/coregrind/m_dispatch/dispatch-ppc32-linux.S @@ -1,7 +1,7 @@ /*--------------------------------------------------------------------*/ /*--- The core dispatch loop, for jumping to a code address. ---*/ -/*--- dispatch-ppc32.S ---*/ +/*--- dispatch-ppc32-linux.S ---*/ /*--------------------------------------------------------------------*/ /* @@ -275,10 +275,10 @@ VG_(run_innerloop__dispatch_unprofiled): /* 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 /* run the translation */ - blrl + bctrl /* On return from guest code: r3 holds destination (original) address. @@ -338,10 +338,10 @@ VG_(run_innerloop__dispatch_profiled): /* 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 /* run the translation */ - blrl + bctrl /* On return from guest code: r3 holds destination (original) address. diff --git a/coregrind/m_dispatch/dispatch-ppc64-linux.S b/coregrind/m_dispatch/dispatch-ppc64-linux.S index 6256e484be..581e6c61d8 100644 --- a/coregrind/m_dispatch/dispatch-ppc64-linux.S +++ b/coregrind/m_dispatch/dispatch-ppc64-linux.S @@ -1,7 +1,7 @@ /*--------------------------------------------------------------------*/ /*--- The core dispatch loop, for jumping to a code address. ---*/ -/*--- dispatch-ppc64.S ---*/ +/*--- dispatch-ppc64-linux.S ---*/ /*--------------------------------------------------------------------*/ /* @@ -298,10 +298,10 @@ VG_(run_innerloop__dispatch_unprofiled): /* 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 /* run the translation */ - blrl + bctrl /* On return from guest code: r3 holds destination (original) address. @@ -376,10 +376,10 @@ VG_(run_innerloop__dispatch_profiled): /* 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 /* run the translation */ - blrl + bctrl /* On return from guest code: r3 holds destination (original) address. diff --git a/coregrind/m_dispatch/dispatch-x86-linux.S b/coregrind/m_dispatch/dispatch-x86-linux.S index 0ebae6bd55..17dd3efc32 100644 --- a/coregrind/m_dispatch/dispatch-x86-linux.S +++ b/coregrind/m_dispatch/dispatch-x86-linux.S @@ -1,7 +1,7 @@ /*--------------------------------------------------------------------*/ /*--- The core dispatch loop, for jumping to a code address. ---*/ -/*--- dispatch-x86.S ---*/ +/*--- dispatch-x86-linux.S ---*/ /*--------------------------------------------------------------------*/ /* -- 2.47.2