Commit Graph

13 Commits

Author SHA1 Message Date
Julian Seward
79f854bc29 Redo the dispatcher's fast-cache mechanism (VG_(tt_fast) et al) to be
more cache friendly.  This changes the mechanism from being a table of
pointers to (guest address, translated code pairs) to being a table of
pairs (guest address, pointer to translated code).  The effect ranges
from zero up to about 20% performance improvement on memcheck, the
biggest effects being seen for programs which jump around a large
number of blocks of code and whose data set does not fit in L2.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6582
2007-02-11 05:08:06 +00:00
Julian Seward
172505c978 Update copyright dates.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488
2007-01-08 06:01:59 +00:00
Julian Seward
0850d32443 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
2006-10-17 02:08:26 +00:00
Julian Seward
ad67fd79fe Update copyright dates.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5954
2006-06-05 23:21:15 +00:00
Tom Hughes
f5f7215ba4 Add .type and .size directives for VG_(run_innerloop) and
VG_(run_a_noredir_translation) on all platforms where they are
missing.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5873
2006-05-01 09:28:39 +00:00
Josef Weidendorfer
835f28229d Make VG_(run_innerloop) visible for outer Valgrinds
with self hosting. Without this, the symbol has
size 0 and type NOT, and is ignored by the symbol loader.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5872
2006-05-01 02:12:58 +00:00
Julian Seward
f9a9e03c7a Merge in function wrapping support from the FNWRAP branch. That
branch hereby becomes inactive.  This currently breaks everything
except x86; fixes for amd64/ppc32 to follow.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5520
2006-01-12 12:32:32 +00:00
Julian Seward
87e9f78e0c - Track vex r1494 (x86/amd64 change of conventions for getting
to translations and back to dispatcher, and also different arg
  passing conventions to LibVEX_Translate).

- Rewrite x86 dispatcher to not increment the profiling counters
  unless requested by the user.  This dramatically reduces the
  D1 miss rate and gives considerable performance improvement
  on x86.  Also, restructure and add comments to dispatch-x86-linux.S
  to make it much easier to follow (imo).

amd64/ppc32/ppc64 fixes to follow.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5345
2005-12-15 14:07:07 +00:00
Nicholas Nethercote
8a17ca2276 add comment from log message.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5281
2005-12-04 19:33:03 +00:00
Julian Seward
f6c90df51e Avoid potential partial-flags stall on P4.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5275
2005-12-03 14:27:41 +00:00
Julian Seward
18afc93af3 wibble
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5118
2005-11-13 18:50:39 +00:00
Julian Seward
10ee793424 Tidy up the machinery for detecting the CPU type and capabilities.
Move it from m_translate to m_machine, which is a more appropriate
place for it.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5104
2005-11-12 23:10:48 +00:00
Nicholas Nethercote
4ef4aabbd0 Make the dispatch files platform-specific, not just arch-specific,
as requested by Greg Parker.  (The ppc32/Darwin dispatch loop is
different to the ppc32/Linux one, for example.)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4843
2005-10-02 14:48:09 +00:00