VirtualBox

Changeset 100761 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Aug 1, 2023 2:24:11 AM (20 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
158632
Message:

VMM/IEM: Check for IRQs every so often, especially after sti, popf and iret. Increased the hash table size. Disabled some debug code. bugref:10369

Location:
trunk/src/VBox/VMM/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/IEMInternal.h

    r100753 r100761  
    11661166    /** Whether to end the current TB. */
    11671167    bool                    fEndTb;
     1168    /** Number of instructions before we need emit an IRQ check call again.
     1169     * This helps making sure we don't execute too long w/o checking for
     1170     * interrupts and that we can forcedly perform IRQ checks one instruction
     1171     * after an STI and immediately following POPF, IRETF and similar. */
     1172    uint8_t                 cInstrTillIrqCheck;
    11681173    /** Spaced reserved for recompiler data / alignment. */
    1169     bool                    afRecompilerStuff1[4];
     1174    bool                    afRecompilerStuff1[3];
    11701175    /** Previous GCPhysInstrBuf value - only valid if fTbCrossedPage is set.   */
    11711176    RTGCPHYS                GCPhysInstrBufPrev;
     
    49904995IEM_DECL_IEMTHREADEDFUNC_PROTO(iemThreadedFunc_BltIn_DeferToCImpl0);
    49914996
     4997IEM_DECL_IEMTHREADEDFUNC_PROTO(iemThreadedFunc_BltIn_CheckIrq);
    49924998IEM_DECL_IEMTHREADEDFUNC_PROTO(iemThreadedFunc_BltIn_CheckMode);
    49934999IEM_DECL_IEMTHREADEDFUNC_PROTO(iemThreadedFunc_BltIn_CheckCsLim);
  • trunk/src/VBox/VMM/include/IEMMc.h

    r100731 r100761  
    12611261/** May change the status bits (X86_EFL_STATUS_BITS) in RFLAGS . */
    12621262#define IEM_CIMPL_F_STATUS_FLAGS        RT_BIT_32(7)
     1263/** May enable interrupts, so recheck IRQ immediately afterwards. */
     1264#define IEM_CIMPL_F_CHECK_IRQ           RT_BIT_32(8)
     1265/** May enable interrupts, but actual enabling may be delayed one instruction
     1266 *  to do interrupt inhibiting, so recheck IRQ after the next instruction. */
     1267#define IEM_CIMPL_F_CHECK_IRQ_DELAYED   RT_BIT_32(9)
    12631268/** May trigger a VM exit. */
    1264 #define IEM_CIMPL_F_VMEXIT              RT_BIT_32(8)
     1269#define IEM_CIMPL_F_VMEXIT              RT_BIT_32(10)
    12651270/** May modify FPU state. */
    1266 #define IEM_CIMPL_F_FPU                 RT_BIT_32(9)
     1271#define IEM_CIMPL_F_FPU                 RT_BIT_32(11)
    12671272/** REP prefixed instruction which may yield before updating PC. */
    1268 #define IEM_CIMPL_F_REP                 RT_BIT_32(10)
     1273#define IEM_CIMPL_F_REP                 RT_BIT_32(12)
    12691274/** Force end of TB after the instruction.    */
    1270 #define IEM_CIMPL_F_END_TB              RT_BIT_32(11)
     1275#define IEM_CIMPL_F_END_TB              RT_BIT_32(13)
    12711276/** Convenience: Raise exception (technically unnecessary, since it shouldn't return VINF_SUCCESS). */
    12721277#define IEM_CIMPL_F_XCPT \
Note: See TracChangeset for help on using the changeset viewer.

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