VirtualBox

vbox的更動 15899 路徑 trunk/src/recompiler_new


忽略:
時間撮記:
2009-1-12 下午03:33:49 (16 年 以前)
作者:
vboxsync
訊息:

REM: VME CLI/STI was operating on wrong flag

位置:
trunk/src/recompiler_new/target-i386
檔案:
修改 2 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/recompiler_new/target-i386/op_helper.c

    r15744 r15899  
    145145    unsigned int new_eflags = t0;
    146146
     147    assert(env->eflags & (1<<VM_SHIFT));
     148
    147149    /* if virtual interrupt pending and (virtual) interrupts will be enabled -> #GP */
    148150    /* if TF will be set -> #GP */
     
    151153        raise_exception(EXCP0D_GPF);
    152154    } else {
    153         load_eflags(new_eflags, (TF_MASK | AC_MASK | ID_MASK | NT_MASK) & 0xffff);
     155        load_eflags(new_eflags, TF_MASK | AC_MASK | ID_MASK | NT_MASK);
    154156
    155157        if (new_eflags & IF_MASK) {
     
    53675369void helper_cli_vme(void)
    53685370{
    5369     env->eflags &= ~IF_MASK;
     5371    env->eflags &= ~VIF_MASK;
    53705372}
    53715373
     
    53765378        raise_exception(EXCP0D_GPF);
    53775379    }
    5378     env->eflags |= IF_MASK;
     5380    env->eflags |= VIF_MASK;
    53795381}
    53805382#endif
  • trunk/src/recompiler_new/target-i386/translate.c

    r15861 r15899  
    145145#ifdef VBOX
    146146    int vme;    /* CR4.VME */
     147    int pvi;    /* CR4.PVI */
    147148    int record_call;    /* record calls for CSAM or not? */
    148149#endif
     
    83478348#ifdef VBOX
    83488349    dc->vme = !!(env->cr[4] & CR4_VME_MASK);
     8350    dc->pvi = !!(env->cr[4] & CR4_PVI_MASK);
    83498351#ifdef VBOX_WITH_CALL_RECORD
    83508352    if (    !(env->state & CPU_RAW_RING0)
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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