VirtualBox

Changeset 39948 in vbox for trunk


Ignore:
Timestamp:
Feb 2, 2012 1:37:32 AM (13 years ago)
Author:
vboxsync
Message:

two int xxh bugfixes (32-bit prot mode).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAll.cpp

    r39945 r39948  
    18811881        if (fFlags & IEM_XCPT_FLAGS_ERR)
    18821882            *uStackFrame.pu32++ = uErr;
    1883         uStackFrame.pu32[0] = pCtx->eip;
     1883        uStackFrame.pu32[0] = (fFlags & (IEM_XCPT_FLAGS_T_SOFT_INT | IEM_XCPT_FLAGS_BP_INSTR)) == IEM_XCPT_FLAGS_T_SOFT_INT
     1884                            ? pCtx->eip + cbInstr : pCtx->eip;
    18841885        uStackFrame.pu32[1] = (pCtx->cs & ~X86_SEL_RPL) | pIemCpu->uCpl;
    18851886        uStackFrame.pu32[2] = pCtx->eflags.u;
     
    19351936        if (fFlags & IEM_XCPT_FLAGS_ERR)
    19361937            *uStackFrame.pu32++ = uErr;
    1937         uStackFrame.pu32[0] = pCtx->eip;
     1938        uStackFrame.pu32[0] = (fFlags & (IEM_XCPT_FLAGS_T_SOFT_INT | IEM_XCPT_FLAGS_BP_INSTR)) == IEM_XCPT_FLAGS_T_SOFT_INT
     1939                            ? pCtx->eip + cbInstr : pCtx->eip;
    19381940        uStackFrame.pu32[1] = (pCtx->cs & ~X86_SEL_RPL) | pIemCpu->uCpl;
    19391941        uStackFrame.pu32[2] = pCtx->eflags.u;
     
    48364838    }
    48374839
    4838     return iemMemCommitAndUnmap(pIemCpu, (void *)pu32, IEM_ACCESS_DATA_RW);
     4840    return iemMemCommitAndUnmap(pIemCpu, (void *)pu32, IEM_ACCESS_SYS_RW);
    48394841}
    48404842
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