VirtualBox

Changeset 74307 in vbox for trunk


Ignore:
Timestamp:
Sep 17, 2018 12:41:15 PM (6 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: Use a macro while importing guest-state from VM-exit handlers. Could be useful for debugging missed state synchronization between IEM and VMX R0 code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r74225 r74307  
    160160                                                              ("fExtrn=%#RX64 fExtrnMbz=%#RX64\n", \
    161161                                                              (a_pVCpu)->cpum.GstCtx.fExtrn, (a_fExtrnMbz)))
     162
     163/** Macro for importing guest state from the VMCS back into CPUMCTX (intended to be
     164 *  used only from VM-exit handlers). */
     165#define HMVMX_CPUMCTX_IMPORT_STATE(a_pVCpu, a_fWhat)        (hmR0VmxImportGuestState((a_pVCpu), (a_fWhat)))
    162166
    163167/** Helper macro for VM-exit handlers called unexpectedly. */
     
    1127211276                        Assert(CPUMIsGuestInRealModeEx(&pVCpu->cpum.GstCtx));
    1127311277
    11274                         rc  = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CR0);
     11278                        rc  = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_CR0);
    1127511279                        rc |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    1127611280                        rc |= hmR0VmxReadExitIntErrorCodeVmcs(pVmxTransient);
     
    1138911393     */
    1139011394    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    11391     rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK);
     11395    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK);
    1139211396    AssertRCReturn(rc, rc);
    1139311397
     
    1141511419         * Frequent exit or something needing probing.  Get state and call EMHistoryExec.
    1141611420         */
    11417         int rc2 = hmR0VmxImportGuestState(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
     11421        int rc2 = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
    1141811422        AssertRCReturn(rc2, rc2);
    1141911423
     
    1143811442{
    1143911443    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pVmxTransient);
    11440     int rc  = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CR4);
     11444    int rc  = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_CR4);
    1144111445    AssertRCReturn(rc, rc);
    1144211446
     
    1145511459{
    1145611460    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pVmxTransient);
    11457     int rc = hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
     11461    int rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
    1145811462    rc    |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    1145911463    AssertRCReturn(rc, rc);
     
    1148311487{
    1148411488    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pVmxTransient);
    11485     int rc = hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_TSC_AUX);
     11489    int rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_TSC_AUX);
    1148611490    rc    |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    1148711491    AssertRCReturn(rc, rc);
     
    1151111515{
    1151211516    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pVmxTransient);
    11513     int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CR4 | CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_SS);
     11517    int rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_CR4 | CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_SS);
    1151411518    AssertRCReturn(rc, rc);
    1151511519
     
    1154111545    if (EMAreHypercallInstructionsEnabled(pVCpu))
    1154211546    {
    11543         int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_RIP | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_SS
    11544                                               | CPUMCTX_EXTRN_CS  | CPUMCTX_EXTRN_EFER);
     11547        int rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_RIP | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_CR0
     11548                                                 | CPUMCTX_EXTRN_SS  | CPUMCTX_EXTRN_CS     | CPUMCTX_EXTRN_EFER);
    1154511549        AssertRCReturn(rc, rc);
    1154611550
     
    1158411588    int rc = hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
    1158511589    rc    |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    11586     rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
     11590    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
    1158711591    AssertRCReturn(rc, rc);
    1158811592
     
    1160911613{
    1161011614    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pVmxTransient);
    11611     int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_SS);
     11615    int rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_SS);
    1161211616    AssertRCReturn(rc, rc);
    1161311617
     
    1163311637{
    1163411638    HMVMX_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pVmxTransient);
    11635     int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_SS);
     11639    int rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_RFLAGS | CPUMCTX_EXTRN_SS);
    1163611640    AssertRCReturn(rc, rc);
    1163711641
     
    1176711771
    1176811772    int rc = hmR0VmxAdvanceGuestRip(pVCpu, pVmxTransient);
    11769     rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_RFLAGS);
     11773    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_RFLAGS);
    1177011774    AssertRCReturn(rc, rc);
    1177111775
     
    1182011824
    1182111825    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    11822     rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_CR4);
     11826    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_CR4);
    1182311827    AssertRCReturn(rc, rc);
    1182411828
     
    1185111855HMVMX_EXIT_NSRC_DECL hmR0VmxExitErrInvalidGuestState(PVMCPU pVCpu, PVMXTRANSIENT pVmxTransient)
    1185211856{
    11853     int rc = hmR0VmxImportGuestState(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
     11857    int rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
    1185411858    AssertRCReturn(rc, rc);
    1185511859    rc = hmR0VmxCheckVmcsCtls(pVCpu);
     
    1198011984    uint32_t const idMsr = pVCpu->cpum.GstCtx.ecx;  NOREF(idMsr); /* Save it. */
    1198111985    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    11982     rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK | CPUMCTX_EXTRN_ALL_MSRS);
     11986    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK | CPUMCTX_EXTRN_ALL_MSRS);
    1198311987    AssertRCReturn(rc, rc);
    1198411988
     
    1203912043    uint32_t const idMsr = pVCpu->cpum.GstCtx.ecx; /* Save it. */
    1204012044    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    12041     rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK | CPUMCTX_EXTRN_ALL_MSRS);
     12045    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK | CPUMCTX_EXTRN_ALL_MSRS);
    1204212046    AssertRCReturn(rc, rc);
    1204312047
     
    1220212206    int rc = hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
    1220312207    rc    |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    12204     rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
     12208    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
    1220512209    AssertRCReturn(rc, rc);
    1220612210
     
    1238612390    int rc = hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
    1238712391    rc    |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    12388     rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_SREG_MASK | CPUMCTX_EXTRN_EFER);
     12392    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_SREG_MASK | CPUMCTX_EXTRN_EFER);
    1238912393    /* EFER also required for longmode checks in EMInterpretDisasCurrent(), but it's always up-to-date. */
    1239012394    AssertRCReturn(rc, rc);
     
    1252612530             * Note that the I/O breakpoint type is undefined if CR4.DE is 0.
    1252712531             */
    12528             rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_DR7);
     12532            rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_DR7);
    1252912533            AssertRCReturn(rc, rc);
    1253012534
     
    1259812602         * Frequent exit or something needing probing.  Get state and call EMHistoryExec.
    1259912603         */
    12600         int rc2 = hmR0VmxImportGuestState(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
     12604        int rc2 = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
    1260112605        AssertRCReturn(rc2, rc2);
    1260212606        STAM_COUNTER_INC(!fIOString ? fIOWrite ? &pVCpu->hm.s.StatExitIOWrite : &pVCpu->hm.s.StatExitIORead
     
    1271612720
    1271712721    /* IOMMIOPhysHandler() below may call into IEM, save the necessary state. */
    12718     int rc  = hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
     12722    int rc  = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
    1271912723    rc     |= hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
    1272012724    AssertRCReturn(rc, rc);
     
    1282212826    PCPUMCTX pCtx = &pVCpu->cpum.GstCtx;
    1282312827    int rc = hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
    12824     rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_SREG_MASK | CPUMCTX_EXTRN_DR7);
     12828    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_SREG_MASK | CPUMCTX_EXTRN_DR7);
    1282512829    AssertRCReturn(rc, rc);
    1282612830    Log4Func(("CS:RIP=%04x:%08RX64\n", pCtx->cs.Sel, pCtx->rip));
     
    1288812892    RTGCPHYS GCPhys;
    1288912893    int rc = VMXReadVmcs64(VMX_VMCS64_RO_GUEST_PHYS_ADDR_FULL, &GCPhys);
    12890     rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
     12894    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
    1289112895    AssertRCReturn(rc, rc);
    1289212896
     
    1292312927         * Frequent exit or something needing probing.  Get state and call EMHistoryExec.
    1292412928         */
    12925         int rc2 = hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
     12929        int rc2 = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
    1292612930        AssertRCReturn(rc2, rc2);
    1292712931
     
    1296712971    int rc  = VMXReadVmcs64(VMX_VMCS64_RO_GUEST_PHYS_ADDR_FULL, &GCPhys);
    1296812972    rc     |= hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
    12969     rc     |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
     12973    rc     |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
    1297012974    AssertRCReturn(rc, rc);
    1297112975
     
    1302613030    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestMF);
    1302713031
    13028     int rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CR0);
     13032    int rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_CR0);
    1302913033    AssertRCReturn(rc, rc);
    1303013034
     
    1305613060    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestBP);
    1305713061
    13058     int rc = hmR0VmxImportGuestState(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
     13062    int rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
    1305913063    AssertRCReturn(rc, rc);
    1306013064
     
    1313713141        VMMRZCallRing3Enable(pVCpu);
    1313813142
    13139         rc = hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_DR7);
     13143        rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_DR7);
    1314013144        AssertRCReturn(rc, rc);
    1314113145
     
    1320413208        rc     |= hmR0VmxReadExitIntErrorCodeVmcs(pVmxTransient);
    1320513209        rc     |= hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    13206         rc     |= hmR0VmxImportGuestState(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
     13210        rc     |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
    1320713211        AssertRCReturn(rc, rc);
    1320813212        Log4Func(("Gst: CS:RIP %04x:%08RX64 ErrorCode=%#x CR0=%#RX64 CPL=%u TR=%#04x\n", pCtx->cs.Sel, pCtx->rip,
     
    1321613220    Assert(!pVCpu->CTX_SUFF(pVM)->hm.s.vmx.fUnrestrictedGuest);
    1321713221
    13218     int rc = hmR0VmxImportGuestState(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
     13222    int rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
    1321913223    AssertRCReturn(rc, rc);
    1322013224
     
    1327613280
    1327713281#ifdef DEBUG_ramshankar
    13278     rc |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_CS | CPUMCTX_EXTRN_RIP);
     13282    rc |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_CS | CPUMCTX_EXTRN_RIP);
    1327913283    uint8_t uVector = VMX_EXIT_INT_INFO_VECTOR(pVmxTransient->uExitIntInfo);
    1328013284    Log(("hmR0VmxExitXcptGeneric: Reinjecting Xcpt. uVector=%#x cs:rip=%#04x:%#RX64\n", uVector, pCtx->cs.Sel, pCtx->rip));
     
    1333113335
    1333213336    PCPUMCTX pCtx = &pVCpu->cpum.GstCtx;
    13333     rc = hmR0VmxImportGuestState(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
     13337    rc = HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, HMVMX_CPUMCTX_EXTRN_ALL);
    1333413338    AssertRCReturn(rc, rc);
    1333513339
     
    1340013404
    1340113405    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    13402     rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
    13403                                           | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
     13406    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
     13407                                             | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
    1340413408    rc    |= hmR0VmxReadExitInstrInfoVmcs(pVmxTransient);
    1340513409    rc    |= hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
     
    1344913453
    1345013454    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    13451     rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
    13452                                           | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
     13455    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
     13456                                             | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
    1345313457    rc    |= hmR0VmxReadExitInstrInfoVmcs(pVmxTransient);
    1345413458    rc    |= hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
     
    1348513489
    1348613490    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    13487     rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
    13488                                           | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
     13491    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
     13492                                             | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
    1348913493    rc    |= hmR0VmxReadExitInstrInfoVmcs(pVmxTransient);
    1349013494    rc    |= hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
     
    1352113525
    1352213526    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    13523     rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
    13524                                           | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
     13527    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
     13528                                             | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
    1352513529    rc    |= hmR0VmxReadExitInstrInfoVmcs(pVmxTransient);
    1352613530    rc    |= hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
     
    1357113575
    1357213576    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    13573     rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
    13574                                           | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
     13577    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
     13578                                             | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
    1357513579    rc    |= hmR0VmxReadExitInstrInfoVmcs(pVmxTransient);
    1357613580    rc    |= hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
     
    1360813612
    1360913613    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    13610     rc    |= hmR0VmxImportGuestState(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK);
     13614    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK);
    1361113615    AssertRCReturn(rc, rc);
    1361213616
     
    1363613640
    1363713641    int rc = hmR0VmxReadExitInstrLenVmcs(pVmxTransient);
    13638     rc    |= hmR0VmxImportGuestState(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
    13639                                           | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
     13642    rc    |= HMVMX_CPUMCTX_IMPORT_STATE(pVCpu, CPUMCTX_EXTRN_RSP | CPUMCTX_EXTRN_SREG_MASK
     13643                                             | IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK);
    1364013644    rc    |= hmR0VmxReadExitInstrInfoVmcs(pVmxTransient);
    1364113645    rc    |= hmR0VmxReadExitQualVmcs(pVCpu, pVmxTransient);
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