cleanup and optimization
This commit is contained in:
parent
ef1dadcdd8
commit
c201a53c76
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode.h,v 1.98 2010-02-08 15:22:53 sshwarts Exp $
|
||||
// $Id: fetchdecode.h,v 1.99 2010-02-15 14:04:48 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (c) 2005-2010 Stanislav Shwartsman
|
||||
@ -573,8 +573,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64G5qR[8] = {
|
||||
static const BxOpcodeInfo_t BxOpcodeInfoG6[8] = {
|
||||
/* 0 */ { 0, BX_IA_SLDT_Ew },
|
||||
/* 1 */ { 0, BX_IA_STR_Ew },
|
||||
/* 2 */ { BxTraceEnd, BX_IA_LLDT_Ew },
|
||||
/* 3 */ { BxTraceEnd, BX_IA_LTR_Ew },
|
||||
/* 2 */ { 0, BX_IA_LLDT_Ew },
|
||||
/* 3 */ { 0, BX_IA_LTR_Ew },
|
||||
/* 4 */ { 0, BX_IA_VERR_Ew },
|
||||
/* 5 */ { 0, BX_IA_VERW_Ew },
|
||||
/* 6 */ { 0, BX_IA_ERROR },
|
||||
@ -661,8 +661,8 @@ static const BxOpcodeInfo_t BxOpcodeInfoG7M[8] = {
|
||||
// attributes defined in main area
|
||||
/* 0 */ { 0, BX_IA_SGDT_Ms },
|
||||
/* 1 */ { 0, BX_IA_SIDT_Ms },
|
||||
/* 2 */ { BxTraceEnd, BX_IA_LGDT_Ms },
|
||||
/* 3 */ { BxTraceEnd, BX_IA_LIDT_Ms },
|
||||
/* 2 */ { 0, BX_IA_LGDT_Ms },
|
||||
/* 3 */ { 0, BX_IA_LIDT_Ms },
|
||||
/* 4 */ { 0, BX_IA_SMSW_EwM },
|
||||
/* 5 */ { 0, BX_IA_ERROR },
|
||||
/* 6 */ { BxTraceEnd, BX_IA_LMSW_Ew },
|
||||
@ -673,8 +673,8 @@ static const BxOpcodeInfo_t BxOpcodeInfoG7M[8] = {
|
||||
static const BxOpcodeInfo_t BxOpcodeInfo64G7M[8] = {
|
||||
/* 0 */ { 0, BX_IA_SGDT64_Ms },
|
||||
/* 1 */ { 0, BX_IA_SIDT64_Ms },
|
||||
/* 2 */ { BxTraceEnd, BX_IA_LGDT64_Ms },
|
||||
/* 3 */ { BxTraceEnd, BX_IA_LIDT64_Ms },
|
||||
/* 2 */ { 0, BX_IA_LGDT64_Ms },
|
||||
/* 3 */ { 0, BX_IA_LIDT64_Ms },
|
||||
/* 4 */ { 0, BX_IA_SMSW_EwM },
|
||||
/* 5 */ { 0, BX_IA_ERROR },
|
||||
/* 6 */ { BxTraceEnd, BX_IA_LMSW_Ew },
|
||||
@ -765,8 +765,8 @@ static const BxOpcodeInfo_t BxOpcodeInfoG9M[8] = {
|
||||
/* 3 */ { 0, BX_IA_ERROR },
|
||||
/* 4 */ { 0, BX_IA_ERROR },
|
||||
/* 5 */ { 0, BX_IA_ERROR },
|
||||
/* 6 */ { BxTraceEnd | BxPrefixSSE, BX_IA_VMPTRLD_Mq, BxOpcodeGroupSSE_G9VMX6 },
|
||||
/* 7 */ { BxTraceEnd | BxPrefixSSE, BX_IA_VMPTRST_Mq, BxOpcodeGroupSSE_ERR }
|
||||
/* 6 */ { BxPrefixSSE, BX_IA_VMPTRLD_Mq, BxOpcodeGroupSSE_G9VMX6 },
|
||||
/* 7 */ { BxPrefixSSE, BX_IA_VMPTRST_Mq, BxOpcodeGroupSSE_ERR }
|
||||
};
|
||||
|
||||
#if BX_SUPPORT_X86_64
|
||||
@ -777,8 +777,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64G9qM[8] = {
|
||||
/* 3 */ { 0, BX_IA_ERROR },
|
||||
/* 4 */ { 0, BX_IA_ERROR },
|
||||
/* 5 */ { 0, BX_IA_ERROR },
|
||||
/* 6 */ { BxTraceEnd | BxPrefixSSE, BX_IA_VMPTRLD_Mq, BxOpcodeGroupSSE_G9VMX6 },
|
||||
/* 7 */ { BxTraceEnd | BxPrefixSSE, BX_IA_VMPTRST_Mq, BxOpcodeGroupSSE_ERR }
|
||||
/* 6 */ { BxPrefixSSE, BX_IA_VMPTRLD_Mq, BxOpcodeGroupSSE_G9VMX6 },
|
||||
/* 7 */ { BxPrefixSSE, BX_IA_VMPTRST_Mq, BxOpcodeGroupSSE_ERR }
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: proc_ctrl.cc,v 1.310 2010-01-31 18:06:44 sshwarts Exp $
|
||||
// $Id: proc_ctrl.cc,v 1.311 2010-02-15 14:04:48 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001-2009 The Bochs Project
|
||||
@ -1171,21 +1171,6 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::LOADALL(bxInstruction_c *i)
|
||||
BX_PANIC(("loadall: ES invalid"));
|
||||
}
|
||||
|
||||
#if 0
|
||||
BX_INFO(("cs.dpl = %02x", (unsigned) BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].cache.dpl));
|
||||
BX_INFO(("ss.dpl = %02x", (unsigned) BX_CPU_THIS_PTR sregs[BX_SEG_REG_SS].cache.dpl));
|
||||
BX_INFO(("BX_CPU_THIS_PTR sregs[BX_SEG_REG_DS].dpl = 0x%02x", (unsigned) BX_CPU_THIS_PTR ds.cache.dpl));
|
||||
BX_INFO(("BX_CPU_THIS_PTR sregs[BX_SEG_REG_ES].dpl = 0x%02x", (unsigned) BX_CPU_THIS_PTR es.cache.dpl));
|
||||
BX_INFO(("LOADALL: setting cs.selector.rpl to %u",
|
||||
(unsigned) BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].selector.rpl));
|
||||
BX_INFO(("LOADALL: setting ss.selector.rpl to %u",
|
||||
(unsigned) BX_CPU_THIS_PTR sregs[BX_SEG_REG_SS].selector.rpl));
|
||||
BX_INFO(("LOADALL: setting ds.selector.rpl to %u",
|
||||
(unsigned) BX_CPU_THIS_PTR sregs[BX_SEG_REG_DS].selector.rpl));
|
||||
BX_INFO(("LOADALL: setting es.selector.rpl to %u",
|
||||
(unsigned) BX_CPU_THIS_PTR sregs[BX_SEG_REG_ES].selector.rpl));
|
||||
#endif
|
||||
|
||||
BX_MEM(0)->readPhysicalPage(BX_CPU_THIS, 0x826, 2, &DI);
|
||||
BX_MEM(0)->readPhysicalPage(BX_CPU_THIS, 0x828, 2, &SI);
|
||||
BX_MEM(0)->readPhysicalPage(BX_CPU_THIS, 0x82a, 2, &BP);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: protect_ctrl.cc,v 1.97 2009-12-04 16:53:12 sshwarts Exp $
|
||||
// $Id: protect_ctrl.cc,v 1.98 2010-02-15 14:04:48 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001-2009 The Bochs Project
|
||||
@ -351,8 +351,6 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::LLDT_Ew(bxInstruction_c *i)
|
||||
raw_selector = read_virtual_word(i->seg(), eaddr);
|
||||
}
|
||||
|
||||
invalidate_prefetch_q();
|
||||
|
||||
/* if selector is NULL, invalidate and done */
|
||||
if ((raw_selector & 0xfffc) == 0) {
|
||||
BX_CPU_THIS_PTR ldtr.selector.value = raw_selector;
|
||||
@ -440,8 +438,6 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::LTR_Ew(bxInstruction_c *i)
|
||||
raw_selector = read_virtual_word(i->seg(), eaddr);
|
||||
}
|
||||
|
||||
invalidate_prefetch_q();
|
||||
|
||||
/* if selector is NULL, invalidate and done */
|
||||
if ((raw_selector & BX_SELECTOR_RPL_MASK) == 0) {
|
||||
BX_ERROR(("LTR: loading with NULL selector!"));
|
||||
@ -718,8 +714,6 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::LGDT_Ms(bxInstruction_c *i)
|
||||
exception(BX_GP_EXCEPTION, 0, 0);
|
||||
}
|
||||
|
||||
invalidate_prefetch_q();
|
||||
|
||||
Bit32u eaddr = (Bit32u) BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
|
||||
|
||||
Bit16u limit_16 = read_virtual_word_32(i->seg(), eaddr);
|
||||
@ -745,8 +739,6 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::LIDT_Ms(bxInstruction_c *i)
|
||||
exception(BX_GP_EXCEPTION, 0, 0);
|
||||
}
|
||||
|
||||
invalidate_prefetch_q();
|
||||
|
||||
Bit32u eaddr = (Bit32u) BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
|
||||
|
||||
Bit32u base_32 = read_virtual_dword_32(i->seg(), eaddr + 2);
|
||||
@ -795,8 +787,6 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::LGDT64_Ms(bxInstruction_c *i)
|
||||
exception(BX_GP_EXCEPTION, 0, 0);
|
||||
}
|
||||
|
||||
invalidate_prefetch_q();
|
||||
|
||||
bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
|
||||
|
||||
Bit64u base_64 = read_virtual_qword_64(i->seg(), eaddr + 2);
|
||||
@ -819,8 +809,6 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::LIDT64_Ms(bxInstruction_c *i)
|
||||
exception(BX_GP_EXCEPTION, 0, 0);
|
||||
}
|
||||
|
||||
invalidate_prefetch_q();
|
||||
|
||||
bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));
|
||||
|
||||
Bit64u base_64 = read_virtual_qword_64(i->seg(), eaddr + 2);
|
||||
|
Loading…
Reference in New Issue
Block a user