summaryrefslogtreecommitdiff
path: root/util/statetrace
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-08-07 15:27:54 -0700
committerGabe Black <gblack@eecs.umich.edu>2007-08-07 15:27:54 -0700
commite85144bff21445ef19864c38be87055045d95c35 (patch)
tree987503a623d838ceace8d0b753de269c0ac1c9cf /util/statetrace
parentcd3f0646caf7fbf637ee10148c5e3bd5a034d4e9 (diff)
downloadgem5-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.cc10
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()