Changeset 77475 in vbox
- Timestamp:
- Feb 27, 2019 6:44:43 AM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 129063
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h
r77459 r77475 1913 1913 iemVmxVmexitSaveGuestSegRegs(pVCpu); 1914 1914 1915 /** @todo r=ramshankar: The below hack is no longer necessary because we invoke the1916 * VM-exit after updating RIP. I'm leaving it in-place temporarily in case1917 * we need to fix missing exit information or callers still setting1918 * instruction-length field when it is not necessary. */1919 #if 01920 /*1921 * Save guest RIP, RSP and RFLAGS.1922 * See Intel spec. 27.3.3 "Saving RIP, RSP and RFLAGS".1923 *1924 * For trap-like VM-exits we must advance the RIP by the length of the instruction.1925 * Callers must pass the instruction length in the VM-exit instruction length1926 * field though it is undefined for such VM-exits. After updating RIP here, we clear1927 * the VM-exit instruction length field.1928 *1929 * See Intel spec. 27.1 "Architectural State Before A VM Exit"1930 */1931 if (HMVmxIsTrapLikeVmexit(uExitReason))1932 {1933 uint8_t const cbInstr = pVmcs->u32RoExitInstrLen;1934 AssertMsg(cbInstr >= 1 && cbInstr <= 15, ("uReason=%u cbInstr=%u\n", uExitReason, cbInstr));1935 iemRegAddToRipAndClearRF(pVCpu, cbInstr);1936 iemVmxVmcsSetExitInstrLen(pVCpu, 0 /* cbInstr */);1937 }1938 #endif1939 1940 /* We don't support enclave mode yet. */1941 1915 pVmcs->u64GuestRip.u = pVCpu->cpum.GstCtx.rip; 1942 1916 pVmcs->u64GuestRsp.u = pVCpu->cpum.GstCtx.rsp; … … 5098 5072 { 5099 5073 /* Clear bytes 2:0 of VICR_HI. No other virtualization or VM-exit must occur. */ 5100 uint32_t uIcrHi = iemVmxVirtApicReadRaw32(pVCpu, XAPIC_OFF_ICR_HI);5074 uint32_t uIcrHi = iemVmxVirtApicReadRaw32(pVCpu, XAPIC_OFF_ICR_HI); 5101 5075 uIcrHi &= UINT32_C(0xff000000); 5102 5076 iemVmxVirtApicWriteRaw32(pVCpu, XAPIC_OFF_ICR_HI, uIcrHi);
Note:
See TracChangeset
for help on using the changeset viewer.