VirtualBox

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


Ignore:
Timestamp:
Sep 19, 2024 9:16:19 PM (2 months ago)
Author:
vboxsync
Message:

VMM/IEM: More native eflag stats. Added IEMNATIVE_WITH_EFLAGS_POSTPONING config option (no code). bugref:10720

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

Legend:

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

    r105877 r106101  
    23632363    /** Native recompiler: Number of times status flags calc has been skipped. */
    23642364    STAMCOUNTER             StatNativeEflSkippedArithmetic;
     2365    /** Native recompiler: Total number instructions in this category. */
     2366    STAMCOUNTER             StatNativeEflTotalArithmetic;
     2367
    23652368    /** Native recompiler: Number of times status flags calc has been skipped. */
    23662369    STAMCOUNTER             StatNativeEflSkippedLogical;
     2370    /** Native recompiler: Total number instructions in this category. */
     2371    STAMCOUNTER             StatNativeEflTotalLogical;
     2372
     2373    /** Native recompiler: Number of times status flags calc has been skipped. */
     2374    STAMCOUNTER             StatNativeEflSkippedShift;
     2375    /** Native recompiler: Total number instructions in this category. */
     2376    STAMCOUNTER             StatNativeEflTotalShift;
    23672377
    23682378    /** Native recompiler: Number of opportunities to skip EFLAGS.CF updating. */
     
    25372547
    25382548#ifdef IEM_WITH_TLB_TRACE
    2539     uint64_t                au64Padding[4];
     2549    //uint64_t                au64Padding[0];
    25402550#else
    2541     uint64_t                au64Padding[6];
     2551    uint64_t                au64Padding[2];
    25422552#endif
    25432553
  • trunk/src/VBox/VMM/include/IEMN8veRecompiler.h

    r106099 r106101  
    5050#if 1 || defined(DOXYGEN_RUNNING)
    5151# define IEMNATIVE_WITH_LIVENESS_ANALYSIS
    52 /*# define IEMLIVENESS_EXTENDED_LAYOUT*/
    5352#endif
    5453
     
    6968# define IEMNATIVE_STRICT_EFLAGS_SKIPPING
    7069#endif
     70
     71/** @def IEMNATIVE_WITH_EFLAGS_POSTPONING
     72 * Enables delaying EFLAGS calculations/updating to conditional code paths
     73 * that are (hopefully) not taken so frequently.
     74 *
     75 * This can only help with case where there is an conditional
     76 * call/exception/tbexit that needs the flag, but in the default code stream the
     77 * flag will be clobbered.  Useful for TlbMiss scenarios and sequences of memory
     78 * based instructions clobbering status flags. */
     79#if defined(IEMNATIVE_WITH_LIVENESS_ANALYSIS) || defined(DOXYGEN_RUNNING)
     80# if 0
     81#  define IEMNATIVE_WITH_EFLAGS_POSTPONING
     82# endif
     83#endif
     84
     85/** @def IEMLIVENESS_EXTENDED_LAYOUT
     86 * Enables the extended liveness data layout.  */
     87#if defined(IEMNATIVE_WITH_EFLAGS_POSTPONING) || defined(DOXYGEN_RUNNING) || 0
     88# define IEMLIVENESS_EXTENDED_LAYOUT
     89#endif
     90
    7191
    7292#ifdef VBOX_WITH_STATISTICS
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