VirtualBox

Changeset 77898 in vbox


Ignore:
Timestamp:
Mar 27, 2019 6:13:31 AM (6 years ago)
Author:
vboxsync
Message:

VMM/IEM: The EXT bit of the error code must be 1 for nested exceptions when delivering a #DB using INT1 (ICEBP).

File:
1 edited

Legend:

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

    r77897 r77898  
    47034703    uint16_t uExt;
    47044704    if (   enmTaskSwitch == IEMTASKSWITCH_INT_XCPT
    4705         && !(fFlags & IEM_XCPT_FLAGS_T_SOFT_INT))
     4705        && (   !(fFlags & IEM_XCPT_FLAGS_T_SOFT_INT)
     4706            ||  (fFlags & IEM_XCPT_FLAGS_ICEBP_INSTR)))
    47064707    {
    47074708        uExt = 1;
     
    48924893         * See Intel Instruction reference for INT.
    48934894         */
    4894         uint16_t const uExt     = (fFlags & IEM_XCPT_FLAGS_T_SOFT_INT) ? 0 : 1;
     4895        uint16_t const uExt     = (    (fFlags & IEM_XCPT_FLAGS_T_SOFT_INT)
     4896                                   && !(fFlags & IEM_XCPT_FLAGS_ICEBP_INSTR)) ? 0 : 1;
    48954897        uint16_t const uSelMask = X86_SEL_MASK_OFF_RPL;
    48964898        RTSEL          SelTSS   = Idte.Gate.u16Sel;
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