VirtualBox

Changeset 36760 in vbox for trunk/include/VBox/x86.h


Ignore:
Timestamp:
Apr 20, 2011 4:51:05 PM (14 years ago)
Author:
vboxsync
Message:

VBox/x86.h: Added ModR/M, SIB, GREG and SREG constants. Added 64-bit views for X86DESC.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/x86.h

    r36642 r36760  
    21882188    /** 32 bit unsigned integer view. */
    21892189    uint32_t        au32[2];
     2190    /** 64 bit unsigned integer view. */
     2191    uint64_t        au64[1];
     2192    /** Unsigned integer view. */
     2193    uint64_t        u;
    21902194} X86DESC;
    21912195AssertCompileSize(X86DESC, 8);
     
    28682872#pragma pack()
    28692873
     2874
     2875/** @name ModR/M
     2876 * @{ */
     2877#define X86_MODRM_RM_MASK       UINT8_C(0x07)
     2878#define X86_MODRM_REG_MASK      UINT8_C(0x38)
     2879#define X86_MODRM_REG_SMASK     UINT8_C(0x07)
     2880#define X86_MODRM_REG_SHIFT     3
     2881#define X86_MODRM_MOD_MASK      UINT8_C(0xc0)
     2882#define X86_MODRM_MOD_SMASK     UINT8_C(0x03)
     2883#define X86_MODRM_MOD_SHIFT     6
     2884AssertCompile((X86_MODRM_RM_MASK | X86_MODRM_REG_MASK | X86_MODRM_MOD_MASK) == 0xff);
     2885AssertCompile((X86_MODRM_REG_MASK >> X86_MODRM_REG_SHIFT) == X86_MODRM_REG_SMASK);
     2886AssertCompile((X86_MODRM_MOD_MASK >> X86_MODRM_MOD_SHIFT) == X86_MODRM_MOD_SMASK);
     2887/** @} */
     2888
     2889/** @name SIB
     2890 * @{ */
     2891#define X86_SIB_BASE_MASK     UINT8_C(0x07)
     2892#define X86_SIB_INDEX_MASK    UINT8_C(0x38)
     2893#define X86_SIB_INDEX_SMASK   UINT8_C(0x07)
     2894#define X86_SIB_INDEX_SHIFT   3
     2895#define X86_SIB_SCALE_MASK    UINT8_C(0xc0)
     2896#define X86_SIB_SCALE_SMASK   UINT8_C(0x03)
     2897#define X86_SIB_SCALE_SHIFT   6
     2898AssertCompile((X86_SIB_BASE_MASK | X86_SIB_INDEX_MASK | X86_SIB_SCALE_MASK) == 0xff);
     2899AssertCompile((X86_SIB_INDEX_MASK >> X86_SIB_INDEX_SHIFT) == X86_SIB_INDEX_SMASK);
     2900AssertCompile((X86_SIB_SCALE_MASK >> X86_SIB_SCALE_SHIFT) == X86_SIB_SCALE_SMASK);
     2901/** @} */
     2902
     2903/** @name General register indexes
     2904 * @{ */
     2905#define X86_GREG_xAX            0
     2906#define X86_GREG_xCX            1
     2907#define X86_GREG_xDX            2
     2908#define X86_GREG_xBX            3
     2909#define X86_GREG_xSP            4
     2910#define X86_GREG_xBP            5
     2911#define X86_GREG_xSI            6
     2912#define X86_GREG_xDI            7
     2913#define X86_GREG_x8             8
     2914#define X86_GREG_x9             9
     2915#define X86_GREG_x10            10
     2916#define X86_GREG_x11            11
     2917#define X86_GREG_x12            12
     2918#define X86_GREG_x13            13
     2919#define X86_GREG_x14            14
     2920#define X86_GREG_x15            15
     2921/** @} */
     2922
     2923/** @name X86_SREG_XXX - Segment register indexes.
     2924 * @{ */
     2925#define X86_SREG_ES             0
     2926#define X86_SREG_CS             1
     2927#define X86_SREG_SS             2
     2928#define X86_SREG_DS             3
     2929#define X86_SREG_FS             4
     2930#define X86_SREG_GS             5
     2931/** @} */
     2932
     2933
    28702934/** @} */
    28712935
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