VirtualBox

Changeset 73961 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Aug 29, 2018 3:41:08 PM (6 years ago)
Author:
vboxsync
Message:

VMM/IEM: Nested VMX: bugref:9180 Added IEMExecDecodedVmwrite.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAll.cpp

    r73959 r73961  
    1554015540
    1554115541/**
     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 */
     15553VMM_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/**
    1554215572 * Interface for HM and EM to emulate the VMPTRLD instruction.
    1554315573 *
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette