VirtualBox

Changeset 72592 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Jun 18, 2018 12:24:43 PM (7 years ago)
Author:
vboxsync
Message:

IEM: Defined IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK and IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK for IEMExecDecodedXxxx APIs. Currently only asserted for Rdtsc and Rdtscp. bugref:6973

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/iem.h

    r72590 r72592  
    179179/** The CPUMCTX_EXTRN_XXX mask required to be cleared when interpreting anything.
    180180 * IEM will ASSUME the caller of IEM APIs has ensured these are already present. */
    181 #define IEM_CPUMCTX_EXTRN_MUST_MASK    (  CPUMCTX_EXTRN_GPRS_MASK \
    182                                         | CPUMCTX_EXTRN_RIP \
    183                                         | CPUMCTX_EXTRN_RFLAGS \
    184                                         | CPUMCTX_EXTRN_SS \
    185                                         | CPUMCTX_EXTRN_CS \
    186                                         | CPUMCTX_EXTRN_CR0 \
    187                                         | CPUMCTX_EXTRN_CR3 \
    188                                         | CPUMCTX_EXTRN_CR4 \
    189                                         | CPUMCTX_EXTRN_APIC_TPR \
    190                                         | CPUMCTX_EXTRN_EFER \
    191                                         | CPUMCTX_EXTRN_DR7 )
     181#define IEM_CPUMCTX_EXTRN_MUST_MASK                (  CPUMCTX_EXTRN_GPRS_MASK \
     182                                                    | CPUMCTX_EXTRN_RIP \
     183                                                    | CPUMCTX_EXTRN_RFLAGS \
     184                                                    | CPUMCTX_EXTRN_SS \
     185                                                    | CPUMCTX_EXTRN_CS \
     186                                                    | CPUMCTX_EXTRN_CR0 \
     187                                                    | CPUMCTX_EXTRN_CR3 \
     188                                                    | CPUMCTX_EXTRN_CR4 \
     189                                                    | CPUMCTX_EXTRN_APIC_TPR \
     190                                                    | CPUMCTX_EXTRN_EFER \
     191                                                    | CPUMCTX_EXTRN_DR7 )
    192192/** The CPUMCTX_EXTRN_XXX mask needed when injecting an exception/interrupt.
    193193 * IEM will import missing bits, callers are encouraged to make these registers
    194194 * available prior to injection calls if fetching state anyway.  */
    195 #define IEM_CPUMCTX_EXTRN_XCPT_MASK    (  IEM_CPUMCTX_EXTRN_MUST_MASK \
    196                                         | CPUMCTX_EXTRN_CR2 \
    197                                         | CPUMCTX_EXTRN_SREG_MASK \
    198                                         | CPUMCTX_EXTRN_TABLE_MASK )
     195#define IEM_CPUMCTX_EXTRN_XCPT_MASK                (  IEM_CPUMCTX_EXTRN_MUST_MASK \
     196                                                    | CPUMCTX_EXTRN_CR2 \
     197                                                    | CPUMCTX_EXTRN_SREG_MASK \
     198                                                    | CPUMCTX_EXTRN_TABLE_MASK )
     199/** The CPUMCTX_EXTRN_XXX mask required to be cleared when calling any
     200 * IEMExecDecoded API not using memory.  IEM will ASSUME the caller of IEM
     201 * APIs has ensured these are already present.
     202 * @note ASSUMES execution engine has checked for instruction breakpoints
     203 *       during decoding. */
     204#define IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK (  CPUMCTX_EXTRN_RIP \
     205                                                    | CPUMCTX_EXTRN_RFLAGS \
     206                                                    | CPUMCTX_EXTRN_SS   /* for CPL */ \
     207                                                    | CPUMCTX_EXTRN_CS   /* for mode */ \
     208                                                    | CPUMCTX_EXTRN_CR0  /* for mode */ \
     209                                                    | CPUMCTX_EXTRN_EFER /* for mode */ )
     210/** The CPUMCTX_EXTRN_XXX mask required to be cleared when calling any
     211 * IEMExecDecoded API using memory.  IEM will ASSUME the caller of IEM
     212 * APIs has ensured these are already present.
     213 * @note ASSUMES execution engine has checked for instruction breakpoints
     214 *       during decoding. */
     215#define IEM_CPUMCTX_EXTRN_EXEC_DECODED_MEM_MASK    (  IEM_CPUMCTX_EXTRN_EXEC_DECODED_NO_MEM_MASK \
     216                                                    | CPUMCTX_EXTRN_CR3 /* for page tables */ \
     217                                                    | CPUMCTX_EXTRN_CR4 /* for mode paging mode */ \
     218                                                    | CPUMCTX_EXTRN_DR7 /* for memory breakpoints */ )
    199219
    200220
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