ms-codeview 0.1.7

Definitions for use with CodeView debugging symbols
Documentation
register_set! {
    pub enum X86Reg;

    NONE     =   0,
    AL       =   1,
    CL       =   2,
    DL       =   3,
    BL       =   4,
    AH       =   5,
    CH       =   6,
    DH       =   7,
    BH       =   8,
    AX       =   9,
    CX       =  10,
    DX       =  11,
    BX       =  12,
    SP       =  13,
    BP       =  14,
    SI       =  15,
    DI       =  16,
    EAX      =  17,
    ECX      =  18,
    EDX      =  19,
    EBX      =  20,
    ESP      =  21,
    EBP      =  22,
    ESI      =  23,
    EDI      =  24,
    ES       =  25,
    CS       =  26,
    SS       =  27,
    DS       =  28,
    FS       =  29,
    GS       =  30,
    IP       =  31,
    FLAGS    =  32,
    EIP      =  33,
    EFLAGS   =  34,
    TEMP     =  40,          // PCODE Temp
    TEMPH    =  41,          // PCODE TempH
    QUOTE    =  42,          // PCODE Quote
    PCDR3    =  43,          // PCODE reserved
    PCDR4    =  44,          // PCODE reserved
    PCDR5    =  45,          // PCODE reserved
    PCDR6    =  46,          // PCODE reserved
    PCDR7    =  47,          // PCODE reserved
    CR0      =  80,          // CR0 -- control registers
    CR1      =  81,
    CR2      =  82,
    CR3      =  83,
    CR4      =  84,          // Pentium
    DR0      =  90,          // Debug register
    DR1      =  91,
    DR2      =  92,
    DR3      =  93,
    DR4      =  94,
    DR5      =  95,
    DR6      =  96,
    DR7      =  97,
    GDTR     =  110,
    GDTL     =  111,
    IDTR     =  112,
    IDTL     =  113,
    LDTR     =  114,
    TR       =  115,

    PSEUDO1  =  116,
    PSEUDO2  =  117,
    PSEUDO3  =  118,
    PSEUDO4  =  119,
    PSEUDO5  =  120,
    PSEUDO6  =  121,
    PSEUDO7  =  122,
    PSEUDO8  =  123,
    PSEUDO9  =  124,

    ST0      =  128,
    ST1      =  129,
    ST2      =  130,
    ST3      =  131,
    ST4      =  132,
    ST5      =  133,
    ST6      =  134,
    ST7      =  135,
    CTRL     =  136,
    STAT     =  137,
    TAG      =  138,
    FPIP     =  139,
    FPCS     =  140,
    FPDO     =  141,
    FPDS     =  142,
    ISEM     =  143,
    FPEIP    =  144,
    FPEDO    =  145,

    MM0      =  146,
    MM1      =  147,
    MM2      =  148,
    MM3      =  149,
    MM4      =  150,
    MM5      =  151,
    MM6      =  152,
    MM7      =  153,

    XMM0     =  154, // KATMAI registers
    XMM1     =  155,
    XMM2     =  156,
    XMM3     =  157,
    XMM4     =  158,
    XMM5     =  159,
    XMM6     =  160,
    XMM7     =  161,

    XMM00    =  162, // KATMAI sub-registers
    XMM01    =  163,
    XMM02    =  164,
    XMM03    =  165,
    XMM10    =  166,
    XMM11    =  167,
    XMM12    =  168,
    XMM13    =  169,
    XMM20    =  170,
    XMM21    =  171,
    XMM22    =  172,
    XMM23    =  173,
    XMM30    =  174,
    XMM31    =  175,
    XMM32    =  176,
    XMM33    =  177,
    XMM40    =  178,
    XMM41    =  179,
    XMM42    =  180,
    XMM43    =  181,
    XMM50    =  182,
    XMM51    =  183,
    XMM52    =  184,
    XMM53    =  185,
    XMM60    =  186,
    XMM61    =  187,
    XMM62    =  188,
    XMM63    =  189,
    XMM70    =  190,
    XMM71    =  191,
    XMM72    =  192,
    XMM73    =  193,

    XMM0L    =  194,
    XMM1L    =  195,
    XMM2L    =  196,
    XMM3L    =  197,
    XMM4L    =  198,
    XMM5L    =  199,
    XMM6L    =  200,
    XMM7L    =  201,

    XMM0H    =  202,
    XMM1H    =  203,
    XMM2H    =  204,
    XMM3H    =  205,
    XMM4H    =  206,
    XMM5H    =  207,
    XMM6H    =  208,
    XMM7H    =  209,

    MXCSR    =  211, // XMM status register

    EDXEAX   =  212, // EDX:EAX pair

    EMM0L    =  220, // XMM sub-registers (WNI integer)
    EMM1L    =  221,
    EMM2L    =  222,
    EMM3L    =  223,
    EMM4L    =  224,
    EMM5L    =  225,
    EMM6L    =  226,
    EMM7L    =  227,

    EMM0H    =  228,
    EMM1H    =  229,
    EMM2H    =  230,
    EMM3H    =  231,
    EMM4H    =  232,
    EMM5H    =  233,
    EMM6H    =  234,
    EMM7H    =  235,

    // do not change the order of these regs, first one must be even too
    MM00     =  236,
    MM01     =  237,
    MM10     =  238,
    MM11     =  239,
    MM20     =  240,
    MM21     =  241,
    MM30     =  242,
    MM31     =  243,
    MM40     =  244,
    MM41     =  245,
    MM50     =  246,
    MM51     =  247,
    MM60     =  248,
    MM61     =  249,
    MM70     =  250,
    MM71     =  251,

    YMM0     =  252, // AVX registers
    YMM1     =  253,
    YMM2     =  254,
    YMM3     =  255,
    YMM4     =  256,
    YMM5     =  257,
    YMM6     =  258,
    YMM7     =  259,

    YMM0H    =  260,
    YMM1H    =  261,
    YMM2H    =  262,
    YMM3H    =  263,
    YMM4H    =  264,
    YMM5H    =  265,
    YMM6H    =  266,
    YMM7H    =  267,

    YMM0I0     =    268,    // AVX integer registers
    YMM0I1     =    269,
    YMM0I2     =    270,
    YMM0I3     =    271,
    YMM1I0     =    272,
    YMM1I1     =    273,
    YMM1I2     =    274,
    YMM1I3     =    275,
    YMM2I0     =    276,
    YMM2I1     =    277,
    YMM2I2     =    278,
    YMM2I3     =    279,
    YMM3I0     =    280,
    YMM3I1     =    281,
    YMM3I2     =    282,
    YMM3I3     =    283,
    YMM4I0     =    284,
    YMM4I1     =    285,
    YMM4I2     =    286,
    YMM4I3     =    287,
    YMM5I0     =    288,
    YMM5I1     =    289,
    YMM5I2     =    290,
    YMM5I3     =    291,
    YMM6I0     =    292,
    YMM6I1     =    293,
    YMM6I2     =    294,
    YMM6I3     =    295,
    YMM7I0     =    296,
    YMM7I1     =    297,
    YMM7I2     =    298,
    YMM7I3     =    299,

    YMM0F0    =  300,     // AVX floating-point single precise registers
    YMM0F1    =  301,
    YMM0F2    =  302,
    YMM0F3    =  303,
    YMM0F4    =  304,
    YMM0F5    =  305,
    YMM0F6    =  306,
    YMM0F7    =  307,
    YMM1F0    =  308,
    YMM1F1    =  309,
    YMM1F2    =  310,
    YMM1F3    =  311,
    YMM1F4    =  312,
    YMM1F5    =  313,
    YMM1F6    =  314,
    YMM1F7    =  315,
    YMM2F0    =  316,
    YMM2F1    =  317,
    YMM2F2    =  318,
    YMM2F3    =  319,
    YMM2F4    =  320,
    YMM2F5    =  321,
    YMM2F6    =  322,
    YMM2F7    =  323,
    YMM3F0    =  324,
    YMM3F1    =  325,
    YMM3F2    =  326,
    YMM3F3    =  327,
    YMM3F4    =  328,
    YMM3F5    =  329,
    YMM3F6    =  330,
    YMM3F7    =  331,
    YMM4F0    =  332,
    YMM4F1    =  333,
    YMM4F2    =  334,
    YMM4F3    =  335,
    YMM4F4    =  336,
    YMM4F5    =  337,
    YMM4F6    =  338,
    YMM4F7    =  339,
    YMM5F0    =  340,
    YMM5F1    =  341,
    YMM5F2    =  342,
    YMM5F3    =  343,
    YMM5F4    =  344,
    YMM5F5    =  345,
    YMM5F6    =  346,
    YMM5F7    =  347,
    YMM6F0    =  348,
    YMM6F1    =  349,
    YMM6F2    =  350,
    YMM6F3    =  351,
    YMM6F4    =  352,
    YMM6F5    =  353,
    YMM6F6    =  354,
    YMM6F7    =  355,
    YMM7F0    =  356,
    YMM7F1    =  357,
    YMM7F2    =  358,
    YMM7F3    =  359,
    YMM7F4    =  360,
    YMM7F5    =  361,
    YMM7F6    =  362,
    YMM7F7    =  363,

    YMM0D0     =    364,    // AVX floating-point double precise registers
    YMM0D1     =    365,
    YMM0D2     =    366,
    YMM0D3     =    367,
    YMM1D0     =    368,
    YMM1D1     =    369,
    YMM1D2     =    370,
    YMM1D3     =    371,
    YMM2D0     =    372,
    YMM2D1     =    373,
    YMM2D2     =    374,
    YMM2D3     =    375,
    YMM3D0     =    376,
    YMM3D1     =    377,
    YMM3D2     =    378,
    YMM3D3     =    379,
    YMM4D0     =    380,
    YMM4D1     =    381,
    YMM4D2     =    382,
    YMM4D3     =    383,
    YMM5D0     =    384,
    YMM5D1     =    385,
    YMM5D2     =    386,
    YMM5D3     =    387,
    YMM6D0     =    388,
    YMM6D1     =    389,
    YMM6D2     =    390,
    YMM6D3     =    391,
    YMM7D0     =    392,
    YMM7D1     =    393,
    YMM7D2     =    394,
    YMM7D3     =    395,

    BND0       =    396,
    BND1       =    397,
    BND2       =    398,
    BND3       =    399,
}