VirtualBox

儲存庫 vbox 的更動 11897


忽略:
時間撮記:
2008-9-1 上午08:10:47 (16 年 以前)
作者:
vboxsync
訊息:

Resync the whole CPU state after saved state restore.

位置:
trunk
檔案:
修改 3 筆資料

圖例:

未更動
新增
刪除
  • trunk/include/VBox/cpum.h

    r11798 r11897  
    10121012#define CPUM_CHANGED_HIDDEN_SEL_REGS    RT_BIT(10)
    10131013#define CPUM_CHANGED_CPUID              RT_BIT(11)
     1014#define CPUM_CHANGED_ALL                (CPUM_CHANGED_FPU_REM|CPUM_CHANGED_CR0|CPUM_CHANGED_CR3|CPUM_CHANGED_CR4|CPUM_CHANGED_GDTR|CPUM_CHANGED_IDTR|CPUM_CHANGED_LDTR|CPUM_CHANGED_TR|CPUM_CHANGED_SYSENTER_MSR|CPUM_CHANGED_HIDDEN_SEL_REGS|CPUM_CHANGED_CPUID)
    10141015/** @} */
    10151016
  • trunk/src/recompiler/VBoxREMWrapper.cpp

    r11312 r11897  
    482482    { REMPARMDESC_FLAGS_INT,        sizeof(uint32_t *), NULL }
    483483};
     484
     485static const REMPARMDESC g_aArgsCPUMSetChangedFlags[] =
     486{
     487    { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL },
     488    { REMPARMDESC_FLAGS_INT,        sizeof(uint32_t), NULL }
     489};
     490
    484491static const REMPARMDESC g_aArgsCPUMQueryGuestCtxPtr[] =
    485492{
     
    10071014    { "CPUMAreHiddenSelRegsValid",              (void *)(uintptr_t)&CPUMAreHiddenSelRegsValid,      &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(bool),       NULL },
    10081015    { "CPUMGetAndClearChangedFlagsREM",         (void *)(uintptr_t)&CPUMGetAndClearChangedFlagsREM, &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_INT,    sizeof(unsigned),   NULL },
     1016    { "CPUMSetChangedFlags",                    (void *)(uintptr_t)&CPUMSetChangedFlags,            &g_aArgsCPUMSetChangedFlags[0],             RT_ELEMENTS(g_aArgsCPUMSetChangedFlags),               REMFNDESC_FLAGS_RET_VOID,   0,                  NULL },
    10091017    { "CPUMGetGuestCPL",                        (void *)(uintptr_t)&CPUMGetGuestCPL,                &g_aArgsCPUMGetGuestCpl[0],                 RT_ELEMENTS(g_aArgsCPUMGetGuestCpl),                   REMFNDESC_FLAGS_RET_INT,    sizeof(unsigned),   NULL },
    10101018    { "CPUMGetGuestCpuId",                      (void *)(uintptr_t)&CPUMGetGuestCpuId,              &g_aArgsCPUMGetGuestCpuId[0],               RT_ELEMENTS(g_aArgsCPUMGetGuestCpuId),                 REMFNDESC_FLAGS_RET_VOID,   0,                  NULL },
  • trunk/src/recompiler/VBoxRecompiler.c

    r11813 r11897  
    579579    pVM->rem.s.fIgnoreAll = false;
    580580
     581    /*
     582     * Sync the whole CPU state when executing code in the recompiler.
     583     */
     584    CPUMSetChangedFlags(pVM, CPUM_CHANGED_ALL);
    581585    return VINF_SUCCESS;
    582586}
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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