Changeset 74338 in vbox for trunk/src/VBox
- Timestamp:
- Sep 18, 2018 10:02:32 AM (6 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r74336 r74338 12539 12539 * 64-bit code segment when in long mode (applicable to all VMX instructions 12540 12540 * except VMCALL). 12541 *12542 * @note Update IEM_VMX_INSTR_CHECKS() if changes are made here.12543 12541 */ 12544 12542 #define IEMOP_HLP_VMX_INSTR(a_szInstr, a_InsDiagPrefix) \ -
trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h
r74337 r74338 389 389 { \ 390 390 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.GCPhysVmcs = NIL_RTGCPHYS; \ 391 } while (0)392 393 /** Check the common VMX instruction preconditions.394 * @note Any changes here, also check if IEMOP_HLP_VMX_INSTR needs updating.395 */396 #define IEM_VMX_INSTR_CHECKS(a_pVCpu, a_szInstr, a_InsDiagPrefix) \397 do { \398 if ( !IEM_IS_REAL_OR_V86_MODE(a_pVCpu) \399 && ( !IEM_IS_LONG_MODE(a_pVCpu) \400 || IEM_IS_64BIT_CODE(a_pVCpu))) \401 { /* likely */ } \402 else \403 { \404 if (IEM_IS_REAL_OR_V86_MODE(a_pVCpu)) \405 { \406 Log((a_szInstr ": Real or v8086 mode -> #UD\n")); \407 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.enmDiag = a_InsDiagPrefix##_RealOrV86Mode; \408 return iemRaiseUndefinedOpcode(a_pVCpu); \409 } \410 if (IEM_IS_LONG_MODE(a_pVCpu) && !IEM_IS_64BIT_CODE(a_pVCpu)) \411 { \412 Log((a_szInstr ": Long mode without 64-bit code segment -> #UD\n")); \413 (a_pVCpu)->cpum.GstCtx.hwvirt.vmx.enmDiag = a_InsDiagPrefix##_LongModeCS; \414 return iemRaiseUndefinedOpcode(a_pVCpu); \415 } \416 } \417 391 } while (0) 418 392
Note:
See TracChangeset
for help on using the changeset viewer.