Changeset 73961 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Aug 29, 2018 3:41:08 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r73959 r73961 15540 15540 15541 15541 /** 15542 * Interface for HM and EM to emulate the VMWRITE instruction. 15543 * 15544 * @returns Strict VBox status code. 15545 * @param pVCpu The cross context virtual CPU structure of the calling EMT. 15546 * @param cbInstr The instruction length in bytes. 15547 * @param u64Val The value to write or guest linear address of the value 15548 * to write. 15549 * @param uFieldEnc The VMCS field encoding. 15550 * @param pExitInfo Pointer to the VM-exit information struct. 15551 * @thread EMT(pVCpu) 15552 */ 15553 VMM_INT_DECL(VBOXSTRICTRC) IEMExecDecodedVmwrite(PVMCPU pVCpu, uint8_t cbInstr, uint64_t u64Val, uint32_t uFieldEnc, 15554 PCVMXVEXITINFO pExitInfo) 15555 { 15556 IEMEXEC_ASSERT_INSTR_LEN_RETURN(cbInstr, 3); 15557 IEM_CTX_ASSERT(pVCpu, CPUMCTX_EXTRN_HWVIRT); 15558 Assert(pExitInfo); 15559 15560 uint8_t const iEffSeg = pExitInfo->ExitInstrInfo.VmreadVmwrite.iSegReg; 15561 IEMMODE const enmEffAddrMode = (IEMMODE)pExitInfo->ExitInstrInfo.VmreadVmwrite.u3AddrSize; 15562 15563 iemInitExec(pVCpu, false /*fBypassHandlers*/); 15564 VBOXSTRICTRC rcStrict = iemVmxVmwrite(pVCpu, cbInstr, iEffSeg, enmEffAddrMode, u64Val, uFieldEnc, pExitInfo); 15565 if (pVCpu->iem.s.cActiveMappings) 15566 iemMemRollback(pVCpu); 15567 return iemExecStatusCodeFiddling(pVCpu, rcStrict); 15568 } 15569 15570 15571 /** 15542 15572 * Interface for HM and EM to emulate the VMPTRLD instruction. 15543 15573 *
Note:
See TracChangeset
for help on using the changeset viewer.