Save some time in redundant tracing

This commit is contained in:
Stanislav Shwartsman 2008-07-17 17:28:25 +00:00
parent 3223d7c004
commit 8fff36b6e3

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: icache.cc,v 1.14 2008-07-13 13:24:36 sshwarts Exp $ // $Id: icache.cc,v 1.15 2008-07-17 17:28:25 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2007 Stanislav Shwartsman // Copyright (c) 2007 Stanislav Shwartsman
@ -92,11 +92,13 @@ void BX_CPU_C::serveICacheMiss(bxICacheEntry_c *cache_entry, Bit32u eipBiased, b
unsigned remainingInPage = BX_CPU_THIS_PTR eipPageWindowSize - eipBiased; unsigned remainingInPage = BX_CPU_THIS_PTR eipPageWindowSize - eipBiased;
const Bit8u *fetchPtr = BX_CPU_THIS_PTR eipFetchPtr + eipBiased; const Bit8u *fetchPtr = BX_CPU_THIS_PTR eipFetchPtr + eipBiased;
unsigned ret; unsigned ret, max_length = BX_MAX_TRACE_LENGTH;
bxInstruction_c *i = cache_entry->i; bxInstruction_c *i = cache_entry->i;
for (unsigned n=0;n<BX_MAX_TRACE_LENGTH;n++) if (BX_CPU_THIS_PTR async_event) max_length = 1;
for (unsigned n=0;n<max_length;n++)
{ {
#if BX_SUPPORT_X86_64 #if BX_SUPPORT_X86_64
if (BX_CPU_THIS_PTR cpu_mode == BX_MODE_LONG_64) if (BX_CPU_THIS_PTR cpu_mode == BX_MODE_LONG_64)