Statetrace: Make statetrace do string instructions all at once like m5 does.
authorGabe Black <gblack@eecs.umich.edu>
Tue, 7 Aug 2007 22:27:54 +0000 (15:27 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Tue, 7 Aug 2007 22:27:54 +0000 (15:27 -0700)
--HG--
extra : convert_revision : 2103029077450e46f70077066708255310963d9d

util/statetrace/arch/tracechild_amd64.cc

index 22292397264c86d3385b7eab76dbb7fb29b78fe4..112ee793e2072ad66a05ce5f18ec304e389a753d 100644 (file)
@@ -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()