ms_codeview/arch/x86/
regs.rs

1register_set! {
2    pub enum X86Reg;
3
4    NONE     =   0,
5    AL       =   1,
6    CL       =   2,
7    DL       =   3,
8    BL       =   4,
9    AH       =   5,
10    CH       =   6,
11    DH       =   7,
12    BH       =   8,
13    AX       =   9,
14    CX       =  10,
15    DX       =  11,
16    BX       =  12,
17    SP       =  13,
18    BP       =  14,
19    SI       =  15,
20    DI       =  16,
21    EAX      =  17,
22    ECX      =  18,
23    EDX      =  19,
24    EBX      =  20,
25    ESP      =  21,
26    EBP      =  22,
27    ESI      =  23,
28    EDI      =  24,
29    ES       =  25,
30    CS       =  26,
31    SS       =  27,
32    DS       =  28,
33    FS       =  29,
34    GS       =  30,
35    IP       =  31,
36    FLAGS    =  32,
37    EIP      =  33,
38    EFLAGS   =  34,
39    TEMP     =  40,          // PCODE Temp
40    TEMPH    =  41,          // PCODE TempH
41    QUOTE    =  42,          // PCODE Quote
42    PCDR3    =  43,          // PCODE reserved
43    PCDR4    =  44,          // PCODE reserved
44    PCDR5    =  45,          // PCODE reserved
45    PCDR6    =  46,          // PCODE reserved
46    PCDR7    =  47,          // PCODE reserved
47    CR0      =  80,          // CR0 -- control registers
48    CR1      =  81,
49    CR2      =  82,
50    CR3      =  83,
51    CR4      =  84,          // Pentium
52    DR0      =  90,          // Debug register
53    DR1      =  91,
54    DR2      =  92,
55    DR3      =  93,
56    DR4      =  94,
57    DR5      =  95,
58    DR6      =  96,
59    DR7      =  97,
60    GDTR     =  110,
61    GDTL     =  111,
62    IDTR     =  112,
63    IDTL     =  113,
64    LDTR     =  114,
65    TR       =  115,
66
67    PSEUDO1  =  116,
68    PSEUDO2  =  117,
69    PSEUDO3  =  118,
70    PSEUDO4  =  119,
71    PSEUDO5  =  120,
72    PSEUDO6  =  121,
73    PSEUDO7  =  122,
74    PSEUDO8  =  123,
75    PSEUDO9  =  124,
76
77    ST0      =  128,
78    ST1      =  129,
79    ST2      =  130,
80    ST3      =  131,
81    ST4      =  132,
82    ST5      =  133,
83    ST6      =  134,
84    ST7      =  135,
85    CTRL     =  136,
86    STAT     =  137,
87    TAG      =  138,
88    FPIP     =  139,
89    FPCS     =  140,
90    FPDO     =  141,
91    FPDS     =  142,
92    ISEM     =  143,
93    FPEIP    =  144,
94    FPEDO    =  145,
95
96    MM0      =  146,
97    MM1      =  147,
98    MM2      =  148,
99    MM3      =  149,
100    MM4      =  150,
101    MM5      =  151,
102    MM6      =  152,
103    MM7      =  153,
104
105    XMM0     =  154, // KATMAI registers
106    XMM1     =  155,
107    XMM2     =  156,
108    XMM3     =  157,
109    XMM4     =  158,
110    XMM5     =  159,
111    XMM6     =  160,
112    XMM7     =  161,
113
114    XMM00    =  162, // KATMAI sub-registers
115    XMM01    =  163,
116    XMM02    =  164,
117    XMM03    =  165,
118    XMM10    =  166,
119    XMM11    =  167,
120    XMM12    =  168,
121    XMM13    =  169,
122    XMM20    =  170,
123    XMM21    =  171,
124    XMM22    =  172,
125    XMM23    =  173,
126    XMM30    =  174,
127    XMM31    =  175,
128    XMM32    =  176,
129    XMM33    =  177,
130    XMM40    =  178,
131    XMM41    =  179,
132    XMM42    =  180,
133    XMM43    =  181,
134    XMM50    =  182,
135    XMM51    =  183,
136    XMM52    =  184,
137    XMM53    =  185,
138    XMM60    =  186,
139    XMM61    =  187,
140    XMM62    =  188,
141    XMM63    =  189,
142    XMM70    =  190,
143    XMM71    =  191,
144    XMM72    =  192,
145    XMM73    =  193,
146
147    XMM0L    =  194,
148    XMM1L    =  195,
149    XMM2L    =  196,
150    XMM3L    =  197,
151    XMM4L    =  198,
152    XMM5L    =  199,
153    XMM6L    =  200,
154    XMM7L    =  201,
155
156    XMM0H    =  202,
157    XMM1H    =  203,
158    XMM2H    =  204,
159    XMM3H    =  205,
160    XMM4H    =  206,
161    XMM5H    =  207,
162    XMM6H    =  208,
163    XMM7H    =  209,
164
165    MXCSR    =  211, // XMM status register
166
167    EDXEAX   =  212, // EDX:EAX pair
168
169    EMM0L    =  220, // XMM sub-registers (WNI integer)
170    EMM1L    =  221,
171    EMM2L    =  222,
172    EMM3L    =  223,
173    EMM4L    =  224,
174    EMM5L    =  225,
175    EMM6L    =  226,
176    EMM7L    =  227,
177
178    EMM0H    =  228,
179    EMM1H    =  229,
180    EMM2H    =  230,
181    EMM3H    =  231,
182    EMM4H    =  232,
183    EMM5H    =  233,
184    EMM6H    =  234,
185    EMM7H    =  235,
186
187    // do not change the order of these regs, first one must be even too
188    MM00     =  236,
189    MM01     =  237,
190    MM10     =  238,
191    MM11     =  239,
192    MM20     =  240,
193    MM21     =  241,
194    MM30     =  242,
195    MM31     =  243,
196    MM40     =  244,
197    MM41     =  245,
198    MM50     =  246,
199    MM51     =  247,
200    MM60     =  248,
201    MM61     =  249,
202    MM70     =  250,
203    MM71     =  251,
204
205    YMM0     =  252, // AVX registers
206    YMM1     =  253,
207    YMM2     =  254,
208    YMM3     =  255,
209    YMM4     =  256,
210    YMM5     =  257,
211    YMM6     =  258,
212    YMM7     =  259,
213
214    YMM0H    =  260,
215    YMM1H    =  261,
216    YMM2H    =  262,
217    YMM3H    =  263,
218    YMM4H    =  264,
219    YMM5H    =  265,
220    YMM6H    =  266,
221    YMM7H    =  267,
222
223    YMM0I0     =    268,    // AVX integer registers
224    YMM0I1     =    269,
225    YMM0I2     =    270,
226    YMM0I3     =    271,
227    YMM1I0     =    272,
228    YMM1I1     =    273,
229    YMM1I2     =    274,
230    YMM1I3     =    275,
231    YMM2I0     =    276,
232    YMM2I1     =    277,
233    YMM2I2     =    278,
234    YMM2I3     =    279,
235    YMM3I0     =    280,
236    YMM3I1     =    281,
237    YMM3I2     =    282,
238    YMM3I3     =    283,
239    YMM4I0     =    284,
240    YMM4I1     =    285,
241    YMM4I2     =    286,
242    YMM4I3     =    287,
243    YMM5I0     =    288,
244    YMM5I1     =    289,
245    YMM5I2     =    290,
246    YMM5I3     =    291,
247    YMM6I0     =    292,
248    YMM6I1     =    293,
249    YMM6I2     =    294,
250    YMM6I3     =    295,
251    YMM7I0     =    296,
252    YMM7I1     =    297,
253    YMM7I2     =    298,
254    YMM7I3     =    299,
255
256    YMM0F0    =  300,     // AVX floating-point single precise registers
257    YMM0F1    =  301,
258    YMM0F2    =  302,
259    YMM0F3    =  303,
260    YMM0F4    =  304,
261    YMM0F5    =  305,
262    YMM0F6    =  306,
263    YMM0F7    =  307,
264    YMM1F0    =  308,
265    YMM1F1    =  309,
266    YMM1F2    =  310,
267    YMM1F3    =  311,
268    YMM1F4    =  312,
269    YMM1F5    =  313,
270    YMM1F6    =  314,
271    YMM1F7    =  315,
272    YMM2F0    =  316,
273    YMM2F1    =  317,
274    YMM2F2    =  318,
275    YMM2F3    =  319,
276    YMM2F4    =  320,
277    YMM2F5    =  321,
278    YMM2F6    =  322,
279    YMM2F7    =  323,
280    YMM3F0    =  324,
281    YMM3F1    =  325,
282    YMM3F2    =  326,
283    YMM3F3    =  327,
284    YMM3F4    =  328,
285    YMM3F5    =  329,
286    YMM3F6    =  330,
287    YMM3F7    =  331,
288    YMM4F0    =  332,
289    YMM4F1    =  333,
290    YMM4F2    =  334,
291    YMM4F3    =  335,
292    YMM4F4    =  336,
293    YMM4F5    =  337,
294    YMM4F6    =  338,
295    YMM4F7    =  339,
296    YMM5F0    =  340,
297    YMM5F1    =  341,
298    YMM5F2    =  342,
299    YMM5F3    =  343,
300    YMM5F4    =  344,
301    YMM5F5    =  345,
302    YMM5F6    =  346,
303    YMM5F7    =  347,
304    YMM6F0    =  348,
305    YMM6F1    =  349,
306    YMM6F2    =  350,
307    YMM6F3    =  351,
308    YMM6F4    =  352,
309    YMM6F5    =  353,
310    YMM6F6    =  354,
311    YMM6F7    =  355,
312    YMM7F0    =  356,
313    YMM7F1    =  357,
314    YMM7F2    =  358,
315    YMM7F3    =  359,
316    YMM7F4    =  360,
317    YMM7F5    =  361,
318    YMM7F6    =  362,
319    YMM7F7    =  363,
320
321    YMM0D0     =    364,    // AVX floating-point double precise registers
322    YMM0D1     =    365,
323    YMM0D2     =    366,
324    YMM0D3     =    367,
325    YMM1D0     =    368,
326    YMM1D1     =    369,
327    YMM1D2     =    370,
328    YMM1D3     =    371,
329    YMM2D0     =    372,
330    YMM2D1     =    373,
331    YMM2D2     =    374,
332    YMM2D3     =    375,
333    YMM3D0     =    376,
334    YMM3D1     =    377,
335    YMM3D2     =    378,
336    YMM3D3     =    379,
337    YMM4D0     =    380,
338    YMM4D1     =    381,
339    YMM4D2     =    382,
340    YMM4D3     =    383,
341    YMM5D0     =    384,
342    YMM5D1     =    385,
343    YMM5D2     =    386,
344    YMM5D3     =    387,
345    YMM6D0     =    388,
346    YMM6D1     =    389,
347    YMM6D2     =    390,
348    YMM6D3     =    391,
349    YMM7D0     =    392,
350    YMM7D1     =    393,
351    YMM7D2     =    394,
352    YMM7D3     =    395,
353
354    BND0       =    396,
355    BND1       =    397,
356    BND2       =    398,
357    BND3       =    399,
358}