VirtualBox

Changeset 66887 in vbox


Ignore:
Timestamp:
May 15, 2017 9:55:25 AM (8 years ago)
Author:
vboxsync
Message:

VMM/IEM: int1/icebp also sets EXT error bit on nested exceptions.

File:
1 edited

Legend:

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

    r66886 r66887  
    55345534        /*
    55355535         * The 'EXT' bit is set when an exception occurs during deliver of an external
    5536          * event (such as an interrupt or earlier exception), see Intel spec. 6.13
    5537          * "Error Code".
     5536         * event (such as an interrupt or earlier exception)[1]. Privileged software
     5537         * exception (INT1) also sets the EXT bit[2]. Exceptions generated by software
     5538         * interrupts and INTO, INT3 instructions, the 'EXT' bit will not be set.
    55385539         *
    5539          * For exceptions generated by software interrupts and INTO, INT3 instructions,
    5540          * the 'EXT' bit will not be set, see Intel Instruction reference for INT n.
     5540         * [1] - Intel spec. 6.13 "Error Code"
     5541         * [2] - Intel spec. 26.5.1.1 "Details of Vectored-Event Injection".
     5542         * [3] - Intel Instruction reference for INT n.
    55415543         */
    5542         /** @todo Would INT1/ICEBP raised \#DB set the 'EXT' bit or not? Testcase... */
    5543         if (   (fPrevXcpt & (IEM_XCPT_FLAGS_T_CPU_XCPT | IEM_XCPT_FLAGS_T_EXT_INT))
     5544        if (   (fPrevXcpt & (IEM_XCPT_FLAGS_T_CPU_XCPT | IEM_XCPT_FLAGS_T_EXT_INT | IEM_XCPT_FLAGS_ICEBP_INSTR))
    55445545            && (fFlags & IEM_XCPT_FLAGS_ERR)
    55455546            && u8Vector != X86_XCPT_PF
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