VirtualBox

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


Ignore:
Timestamp:
Dec 21, 2023 1:55:07 AM (17 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
160825
Message:

VMM/IEM: Working on BODY_CHECK_PC_AFTER_BRANCH and sideeffects of it. Fixed bug in 8-bit register stores (AMD64). Fixed bug in iemNativeEmitBltInCheckOpcodes (AMD64). Added a way to inject state logging between each instruction, currently only really implemented for AMD64. Relaxed the heave flushing code, no need to set the buffer pointer to NULL. Started looking at avoiding code TLB flushing when allocating memory to replace zero pages. bugref:10371

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

Legend:

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

    r102603 r102663  
    700700#define IEM_F_MODE_X86_64BIT                UINT32_C(0x0000000a)
    701701
     702/** X86 Mode: Checks if @a a_fExec represent a FLAT mode. */
     703#define IEM_F_MODE_X86_IS_FLAT(a_fExec)     (   ((a_fExec) & IEM_F_MODE_MASK) == IEM_F_MODE_X86_64BIT \
     704                                             || ((a_fExec) & IEM_F_MODE_MASK) == IEM_F_MODE_X86_32BIT_PROT_FLAT \
     705                                             || ((a_fExec) & IEM_F_MODE_MASK) == IEM_F_MODE_X86_32BIT_FLAT)
    702706
    703707/** Bypass access handlers when set. */
     
    13911395    RTGCPHYS                GCPhysInstrBuf;                                                                 /* 0x20 */
    13921396    /** The number of bytes available at pbInstrBuf in total (for IEMExecLots).
    1393      * This takes the CS segment limit into account. */
     1397     * This takes the CS segment limit into account.
     1398     * @note Set to zero when the code TLB is flushed to trigger TLB reload. */
    13941399    uint16_t                cbInstrBufTotal;                                                                /* 0x28 */
    13951400# ifndef IEM_WITH_OPAQUE_DECODER_STATE
     
    56275632
    56285633
     5634IEM_DECL_IEMTHREADEDFUNC_PROTO(iemThreadedFunc_BltIn_Nop);
     5635IEM_DECL_IEMTHREADEDFUNC_PROTO(iemThreadedFunc_BltIn_LogCpuState);
     5636
    56295637IEM_DECL_IEMTHREADEDFUNC_PROTO(iemThreadedFunc_BltIn_DeferToCImpl0);
    56305638
  • trunk/src/VBox/VMM/include/IEMN8veRecompiler.h

    r102634 r102663  
    312312    kIemNativeLabelType_ObsoleteTb,
    313313    kIemNativeLabelType_NeedCsLimChecking,
     314    kIemNativeLabelType_CheckBranchMiss,
    314315    /* Labels with data, potentially multiple instances per TB: */
    315316    kIemNativeLabelType_FirstWithMultipleInstances,
     
    838839                                                   uint64_t uParam0, uint64_t uParam1, uint64_t uParam2);
    839840
     841IEM_DECL_IEMNATIVERECOMPFUNC_PROTO(iemNativeRecompFunc_BltIn_Nop);
     842IEM_DECL_IEMNATIVERECOMPFUNC_PROTO(iemNativeRecompFunc_BltIn_LogCpuState);
    840843IEM_DECL_IEMNATIVERECOMPFUNC_PROTO(iemNativeRecompFunc_BltIn_DeferToCImpl0);
    841844IEM_DECL_IEMNATIVERECOMPFUNC_PROTO(iemNativeRecompFunc_BltIn_CheckIrq);
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