VirtualBox

Changeset 2890 in vbox


Ignore:
Timestamp:
May 28, 2007 11:49:44 AM (18 years ago)
Author:
vboxsync
Message:

Corrected syncing of CPL.

Location:
trunk/src/recompiler
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/recompiler/VBoxREMWrapper.cpp

    r2422 r2890  
    454454
    455455/* VMM args */
     456static const REMPARMDESC g_aArgsCPUMGetGuestCpl[] =
     457{
     458    { REMPARMDESC_FLAGS_INT,        sizeof(PVM) },
     459    { REMPARMDESC_FLAGS_INT,        sizeof(PCPUMCTXORE) },
     460};
     461
    456462static const REMPARMDESC g_aArgsCPUMGetGuestCpuId[] =
    457463{
     
    938944    { "CPUMAreHiddenSelRegsValid",              (void *)(uintptr_t)&CPUMAreHiddenSelRegsValid,      &g_aArgsVM[0],                              ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(bool),       NULL },
    939945    { "CPUMGetAndClearChangedFlagsREM",         (void *)(uintptr_t)&CPUMGetAndClearChangedFlagsREM, &g_aArgsVM[0],                              ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(unsigned),   NULL },
     946    { "CPUMGetGuestCPL",                        (void *)(uintptr_t)&CPUMGetGuestCPL,                &g_aArgsCPUMGetGuestCpl[0],                 ELEMENTS(g_aArgsCPUMGetGuestCpl),                   REMFNDESC_FLAGS_RET_INT,    sizeof(unsigned),   NULL },
    940947    { "CPUMGetGuestCpuId",                      (void *)(uintptr_t)&CPUMGetGuestCpuId,              &g_aArgsCPUMGetGuestCpuId[0],               ELEMENTS(g_aArgsCPUMGetGuestCpuId),                 REMFNDESC_FLAGS_RET_VOID,   0,                  NULL },
    941948    { "CPUMGetGuestEAX",                        (void *)(uintptr_t)&CPUMGetGuestEAX,                &g_aArgsVM[0],                              ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(uint32_t),   NULL },
  • trunk/src/recompiler/VBoxRecompiler.c

    r2422 r2890  
    17011701    pVM->rem.s.Env.hflags      &= ~HF_HALTED_MASK;
    17021702
     1703    /* Set current CPL */
     1704    cpu_x86_set_cpl(&pVM->rem.s.Env, CPUMGetGuestCPL(pVM, CPUMCTX2CORE(pCtx)));
     1705
    17031706    /*
    17041707     * Replay invlpg?
     
    18311834        cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_FS, pCtx->fs, pCtx->fsHid.u32Base, pCtx->fsHid.u32Limit, (pCtx->fsHid.Attr.u << 8) & 0xFFFFFF);
    18321835        cpu_x86_load_seg_cache(&pVM->rem.s.Env, R_GS, pCtx->gs, pCtx->gsHid.u32Base, pCtx->gsHid.u32Limit, (pCtx->gsHid.Attr.u << 8) & 0xFFFFFF);
    1833 
    1834         /* Set current CPL. */
    1835         if (pCtx->eflags.Bits.u1VM == 1)
    1836             cpu_x86_set_cpl(&pVM->rem.s.Env, 3);
    1837         else
    1838             cpu_x86_set_cpl(&pVM->rem.s.Env, pCtx->ss & 3);
    18391836    }
    18401837    else
     
    18451842            Log2(("REMR3State: SS changed from %04x to %04x!\n", pVM->rem.s.Env.segs[R_SS].selector, pCtx->ss));
    18461843
    1847             cpu_x86_set_cpl(&pVM->rem.s.Env, (pCtx->eflags.Bits.u1VM) ? 3 : (pCtx->ss & 3));
    18481844            sync_seg(&pVM->rem.s.Env, R_SS, pCtx->ss);
    18491845#ifdef VBOX_WITH_STATISTICS
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