WBINVD not necessary havw to flush ICACHE

This commit is contained in:
Stanislav Shwartsman 2012-09-21 08:55:10 +00:00
parent cc5f8d12d1
commit 74f5bb1934
3 changed files with 8 additions and 8 deletions

View File

@ -454,7 +454,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo32[512*2] = {
/* 0F 06 /w */ { BxTraceEnd, BX_IA_CLTS }, /* 0F 06 /w */ { BxTraceEnd, BX_IA_CLTS },
/* 0F 07 /w */ { BxTraceEnd, BX_IA_SYSRET_LEGACY }, /* 0F 07 /w */ { BxTraceEnd, BX_IA_SYSRET_LEGACY },
/* 0F 08 /w */ { BxTraceEnd, BX_IA_INVD }, /* 0F 08 /w */ { BxTraceEnd, BX_IA_INVD },
/* 0F 09 /w */ { BxTraceEnd, BX_IA_WBINVD }, /* 0F 09 /w */ { 0, BX_IA_WBINVD },
/* 0F 0A /w */ { 0, BX_IA_ERROR }, /* 0F 0A /w */ { 0, BX_IA_ERROR },
/* 0F 0B /w */ { BxTraceEnd, BX_IA_UD2A }, /* 0F 0B /w */ { BxTraceEnd, BX_IA_UD2A },
/* 0F 0C /w */ { 0, BX_IA_ERROR }, /* 0F 0C /w */ { 0, BX_IA_ERROR },
@ -999,7 +999,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo32[512*2] = {
/* 0F 06 /d */ { BxTraceEnd, BX_IA_CLTS }, /* 0F 06 /d */ { BxTraceEnd, BX_IA_CLTS },
/* 0F 07 /d */ { BxTraceEnd, BX_IA_SYSRET_LEGACY }, /* 0F 07 /d */ { BxTraceEnd, BX_IA_SYSRET_LEGACY },
/* 0F 08 /d */ { BxTraceEnd, BX_IA_INVD }, /* 0F 08 /d */ { BxTraceEnd, BX_IA_INVD },
/* 0F 09 /d */ { BxTraceEnd, BX_IA_WBINVD }, /* 0F 09 /d */ { 0, BX_IA_WBINVD },
/* 0F 0A /d */ { 0, BX_IA_ERROR }, /* 0F 0A /d */ { 0, BX_IA_ERROR },
/* 0F 0B /d */ { BxTraceEnd, BX_IA_UD2A }, /* 0F 0B /d */ { BxTraceEnd, BX_IA_UD2A },
/* 0F 0C /d */ { 0, BX_IA_ERROR }, /* 0F 0C /d */ { 0, BX_IA_ERROR },

View File

@ -405,7 +405,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3] = {
/* 0F 06 /w */ { BxTraceEnd, BX_IA_CLTS }, /* 0F 06 /w */ { BxTraceEnd, BX_IA_CLTS },
/* 0F 07 /w */ { BxTraceEnd, BX_IA_SYSRET }, /* 0F 07 /w */ { BxTraceEnd, BX_IA_SYSRET },
/* 0F 08 /w */ { BxTraceEnd, BX_IA_INVD }, /* 0F 08 /w */ { BxTraceEnd, BX_IA_INVD },
/* 0F 09 /w */ { BxTraceEnd, BX_IA_WBINVD }, /* 0F 09 /w */ { 0, BX_IA_WBINVD },
/* 0F 0A /w */ { 0, BX_IA_ERROR }, /* 0F 0A /w */ { 0, BX_IA_ERROR },
/* 0F 0B /w */ { BxTraceEnd, BX_IA_UD2A }, /* 0F 0B /w */ { BxTraceEnd, BX_IA_UD2A },
/* 0F 0C /w */ { 0, BX_IA_ERROR }, /* 0F 0C /w */ { 0, BX_IA_ERROR },
@ -920,7 +920,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3] = {
/* 0F 06 /d */ { BxTraceEnd, BX_IA_CLTS }, /* 0F 06 /d */ { BxTraceEnd, BX_IA_CLTS },
/* 0F 07 /d */ { BxTraceEnd, BX_IA_SYSRET }, /* 0F 07 /d */ { BxTraceEnd, BX_IA_SYSRET },
/* 0F 08 /d */ { BxTraceEnd, BX_IA_INVD }, /* 0F 08 /d */ { BxTraceEnd, BX_IA_INVD },
/* 0F 09 /d */ { BxTraceEnd, BX_IA_WBINVD }, /* 0F 09 /d */ { 0, BX_IA_WBINVD },
/* 0F 0A /d */ { 0, BX_IA_ERROR }, /* 0F 0A /d */ { 0, BX_IA_ERROR },
/* 0F 0B /d */ { BxTraceEnd, BX_IA_UD2A }, /* 0F 0B /d */ { BxTraceEnd, BX_IA_UD2A },
/* 0F 0C /d */ { 0, BX_IA_ERROR }, /* 0F 0C /d */ { 0, BX_IA_ERROR },
@ -1435,7 +1435,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3] = {
/* 0F 06 /q */ { BxTraceEnd, BX_IA_CLTS }, /* 0F 06 /q */ { BxTraceEnd, BX_IA_CLTS },
/* 0F 07 /q */ { BxTraceEnd, BX_IA_SYSRET }, /* 0F 07 /q */ { BxTraceEnd, BX_IA_SYSRET },
/* 0F 08 /q */ { BxTraceEnd, BX_IA_INVD }, /* 0F 08 /q */ { BxTraceEnd, BX_IA_INVD },
/* 0F 09 /q */ { BxTraceEnd, BX_IA_WBINVD }, /* 0F 09 /q */ { 0, BX_IA_WBINVD },
/* 0F 0A /q */ { 0, BX_IA_ERROR }, /* 0F 0A /q */ { 0, BX_IA_ERROR },
/* 0F 0B /q */ { BxTraceEnd, BX_IA_UD2A }, /* 0F 0B /q */ { BxTraceEnd, BX_IA_UD2A },
/* 0F 0C /q */ { 0, BX_IA_ERROR }, /* 0F 0C /q */ { 0, BX_IA_ERROR },

View File

@ -244,12 +244,12 @@ BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::WBINVD(bxInstruction_c *i)
} }
#endif #endif
invalidate_prefetch_q(); //invalidate_prefetch_q();
BX_DEBUG(("WBINVD: Flush internal caches !")); BX_DEBUG(("WBINVD: WB-Invalidate internal caches !"));
BX_INSTR_CACHE_CNTRL(BX_CPU_ID, BX_INSTR_WBINVD); BX_INSTR_CACHE_CNTRL(BX_CPU_ID, BX_INSTR_WBINVD);
flushICaches(); //flushICaches();
BX_NEXT_TRACE(i); BX_NEXT_TRACE(i);
} }