diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-08-07 15:27:54 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-08-07 15:27:54 -0700 |
commit | e85144bff21445ef19864c38be87055045d95c35 (patch) | |
tree | 987503a623d838ceace8d0b753de269c0ac1c9cf /util/statetrace | |
parent | cd3f0646caf7fbf637ee10148c5e3bd5a034d4e9 (diff) | |
download | gem5-e85144bff21445ef19864c38be87055045d95c35.tar.xz |
Statetrace: Make statetrace do string instructions all at once like m5 does.
--HG--
extra : convert_revision : 2103029077450e46f70077066708255310963d9d
Diffstat (limited to 'util/statetrace')
-rw-r--r-- | util/statetrace/arch/tracechild_amd64.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/util/statetrace/arch/tracechild_amd64.cc b/util/statetrace/arch/tracechild_amd64.cc index 222923972..112ee793e 100644 --- a/util/statetrace/arch/tracechild_amd64.cc +++ b/util/statetrace/arch/tracechild_amd64.cc @@ -317,7 +317,15 @@ bool AMD64TraceChild::step() ptrace(PTRACE_POKEDATA, pid, ripAfterSyscall, buf); } else - ptraceSingleStep(); + { + //Get all the way past repe and repne string instructions in one shot. + uint64_t newPC, origPC = getPC(); + do + { + ptraceSingleStep(); + newPC = getPC(); + } while(newPC == origPC); + } } TraceChild * genTraceChild() |