Changeset 65934 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Mar 3, 2017 1:35:01 PM (8 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAll.cpp
r65933 r65934 15023 15023 return iemUninitExecAndFiddleStatusAndMaybeReenter(pVCpu, rcStrict); 15024 15024 } 15025 15026 15027 /** 15028 * Interface for HM and EM to emulate the INVLPGA instruction. 15029 * 15030 * @returns Strict VBox status code. 15031 * @param pVCpu The cross context virtual CPU structure of the calling EMT. 15032 * @param cbInstr The instruction length in bytes. 15033 * @thread EMT(pVCpu) 15034 */ 15035 VMM_INT_DECL(VBOXSTRICTRC) IEMExecDecodedInvlpga(PVMCPU pVCpu, uint8_t cbInstr) 15036 { 15037 IEMEXEC_ASSERT_INSTR_LEN_RETURN(cbInstr, 3); 15038 15039 iemInitExec(pVCpu, false /*fBypassHandlers*/); 15040 VBOXSTRICTRC rcStrict = IEM_CIMPL_CALL_0(iemCImpl_invlpga); 15041 return iemUninitExecAndFiddleStatusAndMaybeReenter(pVCpu, rcStrict); 15042 } 15025 15043 #endif /* VBOX_WITH_NESTED_HWVIRT */ 15026 15044 -
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r65933 r65934 275 275 static FNSVMEXITHANDLER hmR0SvmExitVmload; 276 276 static FNSVMEXITHANDLER hmR0SvmExitVmsave; 277 static FNSVMEXITHANDLER hmR0SvmExitInvlpga; 277 278 #endif 278 279 /** @} */ … … 3656 3657 case SVM_EXIT_VMLOAD: return hmR0SvmExitVmload(pVCpu, pCtx, pSvmTransient); 3657 3658 case SVM_EXIT_VMSAVE: return hmR0SvmExitVmsave(pVCpu, pCtx, pSvmTransient); 3659 case SVM_EXIT_INVLPGA: return hmR0SvmExitInvlpga(pVCpu, pCtx, pSvmTransient); 3658 3660 #else 3659 3661 case SVM_EXIT_CLGI: … … 3661 3663 case SVM_EXIT_VMLOAD: 3662 3664 case SVM_EXIT_VMSAVE: 3665 case SVM_EXIT_INVLPGA: 3663 3666 #endif 3664 case SVM_EXIT_INVLPGA:3665 3667 case SVM_EXIT_RSM: 3666 3668 case SVM_EXIT_VMRUN: … … 5670 5672 /** @todo Stat. */ 5671 5673 /* STAM_COUNTER_INC(&pVCpu->hm.s.StatExitClgi); */ 5674 /** @todo Decode Assist. */ 5672 5675 VBOXSTRICTRC rcStrict = IEMExecDecodedClgi(pVCpu, 3); 5673 5676 return VBOXSTRICTRC_VAL(rcStrict); … … 5683 5686 /** @todo Stat. */ 5684 5687 /* STAM_COUNTER_INC(&pVCpu->hm.s.StatExitStgi); */ 5688 /** @todo Decode Assist. */ 5685 5689 VBOXSTRICTRC rcStrict = IEMExecDecodedStgi(pVCpu, 3); 5686 5690 return VBOXSTRICTRC_VAL(rcStrict); … … 5696 5700 /** @todo Stat. */ 5697 5701 /* STAM_COUNTER_INC(&pVCpu->hm.s.StatExitVmload); */ 5702 /** @todo Decode Assist. */ 5698 5703 VBOXSTRICTRC rcStrict = IEMExecDecodedVmload(pVCpu, 3); 5699 5704 return VBOXSTRICTRC_VAL(rcStrict); … … 5709 5714 /** @todo Stat. */ 5710 5715 /* STAM_COUNTER_INC(&pVCpu->hm.s.StatExitVmsave); */ 5716 /** @todo Decode Assist. */ 5711 5717 VBOXSTRICTRC rcStrict = IEMExecDecodedVmsave(pVCpu, 3); 5712 5718 return VBOXSTRICTRC_VAL(rcStrict); 5713 5719 } 5720 5721 5722 /** 5723 * \#VMEXIT handler for INVLPGA (SVM_EXIT_INVLPGA). Conditional \#VMEXIT. 5724 */ 5725 HMSVM_EXIT_DECL hmR0SvmExitInvlpga(PVMCPU pVCpu, PCPUMCTX pCtx, PSVMTRANSIENT pSvmTransient) 5726 { 5727 HMSVM_VALIDATE_EXIT_HANDLER_PARAMS(); 5728 /** @todo Stat. */ 5729 /* STAM_COUNTER_INC(&pVCpu->hm.s.StatExitInvlpga); */ 5730 /** @todo Decode Assist. */ 5731 VBOXSTRICTRC rcStrict = IEMExecDecodedInvlpga(pVCpu, 3); 5732 return VBOXSTRICTRC_VAL(rcStrict); 5733 } 5714 5734 #endif /* VBOX_WITH_NESTED_HWVIRT */ 5715 5735
Note:
See TracChangeset
for help on using the changeset viewer.