From 88a58b378157300b19049f7cf349e1b7fa422ec7 Mon Sep 17 00:00:00 2001 From: Stanislav Shwartsman Date: Fri, 16 Sep 2011 20:12:36 +0000 Subject: [PATCH] fixed compilation with x86-64=0 --- bochs/cpu/crregs.h | 2 +- bochs/cpu/vmx.cc | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/bochs/cpu/crregs.h b/bochs/cpu/crregs.h index 7b2259c01..b4c05e2a1 100644 --- a/bochs/cpu/crregs.h +++ b/bochs/cpu/crregs.h @@ -114,8 +114,8 @@ struct bx_cr4_t { IMPLEMENT_CRREG_ACCESSORS(SMXE, 14); #if BX_SUPPORT_X86_64 IMPLEMENT_CRREG_ACCESSORS(FSGSBASE, 16); - IMPLEMENT_CRREG_ACCESSORS(PCIDE, 17); #endif + IMPLEMENT_CRREG_ACCESSORS(PCIDE, 17); IMPLEMENT_CRREG_ACCESSORS(OSXSAVE, 18); IMPLEMENT_CRREG_ACCESSORS(SMEP, 20); diff --git a/bochs/cpu/vmx.cc b/bochs/cpu/vmx.cc index 9c73fb91d..95872d2e4 100644 --- a/bochs/cpu/vmx.cc +++ b/bochs/cpu/vmx.cc @@ -3013,10 +3013,13 @@ BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::INVPCID(bxInstruction_c *i) } bx_address type; +#if BX_SUPPORT_X86_64 if (i->os64L()) { type = BX_READ_64BIT_REG(i->nnn()); } - else { + else +#endif + { type = BX_READ_32BIT_REG(i->nnn()); } @@ -3033,10 +3036,12 @@ BX_INSF_TYPE BX_CPP_AttrRegparmN(1) BX_CPU_C::INVPCID(bxInstruction_c *i) switch(type) { case BX_INVPCID_INDIVIDUAL_ADDRESS_NON_GLOBAL_INVALIDATION: +#if BX_SUPPORT_X86_64 if (! IsCanonical(invpcid_desc.xmm64u(1))) { BX_ERROR(("INVPCID: non canonical LADDR single context invalidation")); exception(BX_GP_EXCEPTION, 0); } +#endif if (! BX_CPU_THIS_PTR cr4.get_PCIDE() && pcid != 0) { BX_ERROR(("INVPCID: invalid PCID")); exception(BX_GP_EXCEPTION, 0);