- 時間撮記:
- 2021-12-9 上午11:08:31 (3 年 以前)
- svn:sync-xref-src-repo-rev:
- 148771
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/VMM/VMMAll/IEMAllInstructionsThree0f38.cpp.h
r82968 r92844 303 303 304 304 /** Opcode 0x66 0x0f 0x38 0x80. */ 305 #ifdef VBOX_WITH_NESTED_HWVIRT_VMX_EPT 306 FNIEMOP_DEF(iemOp_invept_Gy_Mdq) 307 { 308 IEMOP_MNEMONIC(invept, "invept Gy,Mdq"); 309 IEMOP_HLP_DONE_DECODING_NO_LOCK_PREFIX(); 310 IEMOP_HLP_IN_VMX_OPERATION("invept", kVmxVDiag_Invept); 311 IEMOP_HLP_VMX_INSTR("invept", kVmxVDiag_Invept); 312 uint8_t bRm; IEM_OPCODE_GET_NEXT_U8(&bRm); 313 if ((bRm & X86_MODRM_MOD_MASK) != (3 << X86_MODRM_MOD_SHIFT)) 314 { 315 /* Register, memory. */ 316 if (pVCpu->iem.s.enmEffOpSize == IEMMODE_64BIT) 317 { 318 IEM_MC_BEGIN(3, 0); 319 IEM_MC_ARG(uint8_t, iEffSeg, 0); 320 IEM_MC_ARG(RTGCPTR, GCPtrInveptDesc, 1); 321 IEM_MC_ARG(uint64_t, uInveptType, 2); 322 IEM_MC_FETCH_GREG_U64(uInveptType, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg); 323 IEM_MC_CALC_RM_EFF_ADDR(GCPtrInveptDesc, bRm, 0); 324 IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg); 325 IEM_MC_CALL_CIMPL_3(iemCImpl_invept, iEffSeg, GCPtrInveptDesc, uInveptType); 326 IEM_MC_END(); 327 } 328 else 329 { 330 IEM_MC_BEGIN(3, 0); 331 IEM_MC_ARG(uint8_t, iEffSeg, 0); 332 IEM_MC_ARG(RTGCPTR, GCPtrInveptDesc, 1); 333 IEM_MC_ARG(uint32_t, uInveptType, 2); 334 IEM_MC_FETCH_GREG_U32(uInveptType, ((bRm >> X86_MODRM_REG_SHIFT) & X86_MODRM_REG_SMASK) | pVCpu->iem.s.uRexReg); 335 IEM_MC_CALC_RM_EFF_ADDR(GCPtrInveptDesc, bRm, 0); 336 IEM_MC_ASSIGN(iEffSeg, pVCpu->iem.s.iEffSeg); 337 IEM_MC_CALL_CIMPL_3(iemCImpl_invept, iEffSeg, GCPtrInveptDesc, uInveptType); 338 IEM_MC_END(); 339 } 340 } 341 Log(("iemOp_invept_Gy_Mdq: invalid encoding -> #UD\n")); 342 return IEMOP_RAISE_INVALID_OPCODE(); 343 } 344 #else 305 345 FNIEMOP_STUB(iemOp_invept_Gy_Mdq); 346 #endif 306 347 307 348 /** Opcode 0x66 0x0f 0x38 0x81. */
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器