ms_codeview/arch/amd64/
regs.rs

1register_set! {
2    pub enum Amd64Reg;
3
4    AL       =   1,
5    CL       =   2,
6    DL       =   3,
7    BL       =   4,
8    AH       =   5,
9    CH       =   6,
10    DH       =   7,
11    BH       =   8,
12    AX       =   9,
13    CX       =  10,
14    DX       =  11,
15    BX       =  12,
16    SP       =  13,
17    BP       =  14,
18    SI       =  15,
19    DI       =  16,
20    EAX      =  17,
21    ECX      =  18,
22    EDX      =  19,
23    EBX      =  20,
24    ESP      =  21,
25    EBP      =  22,
26    ESI      =  23,
27    EDI      =  24,
28    ES       =  25,
29    CS       =  26,
30    SS       =  27,
31    DS       =  28,
32    FS       =  29,
33    GS       =  30,
34    FLAGS    =  32,
35    RIP      =  33,
36    EFLAGS   =  34,
37
38    // Control registers
39    CR0      =  80,
40    CR1      =  81,
41    CR2      =  82,
42    CR3      =  83,
43    CR4      =  84,
44    CR8      =  88,
45
46    // Debug registers
47    DR0      =  90,
48    DR1      =  91,
49    DR2      =  92,
50    DR3      =  93,
51    DR4      =  94,
52    DR5      =  95,
53    DR6      =  96,
54    DR7      =  97,
55    DR8      =  98,
56    DR9      =  99,
57    DR10     =  100,
58    DR11     =  101,
59    DR12     =  102,
60    DR13     =  103,
61    DR14     =  104,
62    DR15     =  105,
63
64    GDTR     =  110,
65    GDTL     =  111,
66    IDTR     =  112,
67    IDTL     =  113,
68    LDTR     =  114,
69    TR       =  115,
70
71    ST0      =  128,
72    ST1      =  129,
73    ST2      =  130,
74    ST3      =  131,
75    ST4      =  132,
76    ST5      =  133,
77    ST6      =  134,
78    ST7      =  135,
79    CTRL     =  136,
80    STAT     =  137,
81    TAG      =  138,
82    FPIP     =  139,
83    FPCS     =  140,
84    FPDO     =  141,
85    FPDS     =  142,
86    ISEM     =  143,
87    FPEIP    =  144,
88    FPEDO    =  145,
89
90    MM0      =  146,
91    MM1      =  147,
92    MM2      =  148,
93    MM3      =  149,
94    MM4      =  150,
95    MM5      =  151,
96    MM6      =  152,
97    MM7      =  153,
98
99    XMM0     =  154,   // KATMAI registers
100    XMM1     =  155,
101    XMM2     =  156,
102    XMM3     =  157,
103    XMM4     =  158,
104    XMM5     =  159,
105    XMM6     =  160,
106    XMM7     =  161,
107
108    XMM0_0   =  162,   // KATMAI sub-registers
109    XMM0_1   =  163,
110    XMM0_2   =  164,
111    XMM0_3   =  165,
112    XMM1_0   =  166,
113    XMM1_1   =  167,
114    XMM1_2   =  168,
115    XMM1_3   =  169,
116    XMM2_0   =  170,
117    XMM2_1   =  171,
118    XMM2_2   =  172,
119    XMM2_3   =  173,
120    XMM3_0   =  174,
121    XMM3_1   =  175,
122    XMM3_2   =  176,
123    XMM3_3   =  177,
124    XMM4_0   =  178,
125    XMM4_1   =  179,
126    XMM4_2   =  180,
127    XMM4_3   =  181,
128    XMM5_0   =  182,
129    XMM5_1   =  183,
130    XMM5_2   =  184,
131    XMM5_3   =  185,
132    XMM6_0   =  186,
133    XMM6_1   =  187,
134    XMM6_2   =  188,
135    XMM6_3   =  189,
136    XMM7_0   =  190,
137    XMM7_1   =  191,
138    XMM7_2   =  192,
139    XMM7_3   =  193,
140
141    XMM0L    =  194,
142    XMM1L    =  195,
143    XMM2L    =  196,
144    XMM3L    =  197,
145    XMM4L    =  198,
146    XMM5L    =  199,
147    XMM6L    =  200,
148    XMM7L    =  201,
149
150    XMM0H    =  202,
151    XMM1H    =  203,
152    XMM2H    =  204,
153    XMM3H    =  205,
154    XMM4H    =  206,
155    XMM5H    =  207,
156    XMM6H    =  208,
157    XMM7H    =  209,
158
159    MXCSR    =  211,   // XMM status register
160
161    EMM0L    =  220,   // XMM sub-registers (WNI integer)
162    EMM1L    =  221,
163    EMM2L    =  222,
164    EMM3L    =  223,
165    EMM4L    =  224,
166    EMM5L    =  225,
167    EMM6L    =  226,
168    EMM7L    =  227,
169
170    EMM0H    =  228,
171    EMM1H    =  229,
172    EMM2H    =  230,
173    EMM3H    =  231,
174    EMM4H    =  232,
175    EMM5H    =  233,
176    EMM6H    =  234,
177    EMM7H    =  235,
178
179    // do not change the order of these regs, first one must be even too
180    MM00     =  236,
181    MM01     =  237,
182    MM10     =  238,
183    MM11     =  239,
184    MM20     =  240,
185    MM21     =  241,
186    MM30     =  242,
187    MM31     =  243,
188    MM40     =  244,
189    MM41     =  245,
190    MM50     =  246,
191    MM51     =  247,
192    MM60     =  248,
193    MM61     =  249,
194    MM70     =  250,
195    MM71     =  251,
196
197    // Extended KATMAI registers
198    XMM8     =  252,   // KATMAI registers
199    XMM9     =  253,
200    XMM10    =  254,
201    XMM11    =  255,
202    XMM12    =  256,
203    XMM13    =  257,
204    XMM14    =  258,
205    XMM15    =  259,
206
207    XMM8_0   =  260,   // KATMAI sub-registers
208    XMM8_1   =  261,
209    XMM8_2   =  262,
210    XMM8_3   =  263,
211    XMM9_0   =  264,
212    XMM9_1   =  265,
213    XMM9_2   =  266,
214    XMM9_3   =  267,
215    XMM10_0  =  268,
216    XMM10_1  =  269,
217    XMM10_2  =  270,
218    XMM10_3  =  271,
219    XMM11_0  =  272,
220    XMM11_1  =  273,
221    XMM11_2  =  274,
222    XMM11_3  =  275,
223    XMM12_0  =  276,
224    XMM12_1  =  277,
225    XMM12_2  =  278,
226    XMM12_3  =  279,
227    XMM13_0  =  280,
228    XMM13_1  =  281,
229    XMM13_2  =  282,
230    XMM13_3  =  283,
231    XMM14_0  =  284,
232    XMM14_1  =  285,
233    XMM14_2  =  286,
234    XMM14_3  =  287,
235    XMM15_0  =  288,
236    XMM15_1  =  289,
237    XMM15_2  =  290,
238    XMM15_3  =  291,
239
240    XMM8L    =  292,
241    XMM9L    =  293,
242    XMM10L   =  294,
243    XMM11L   =  295,
244    XMM12L   =  296,
245    XMM13L   =  297,
246    XMM14L   =  298,
247    XMM15L   =  299,
248
249    XMM8H    =  300,
250    XMM9H    =  301,
251    XMM10H   =  302,
252    XMM11H   =  303,
253    XMM12H   =  304,
254    XMM13H   =  305,
255    XMM14H   =  306,
256    XMM15H   =  307,
257
258    EMM8L    =  308,   // XMM sub-registers (WNI integer)
259    EMM9L    =  309,
260    EMM10L   =  310,
261    EMM11L   =  311,
262    EMM12L   =  312,
263    EMM13L   =  313,
264    EMM14L   =  314,
265    EMM15L   =  315,
266
267    EMM8H    =  316,
268    EMM9H    =  317,
269    EMM10H   =  318,
270    EMM11H   =  319,
271    EMM12H   =  320,
272    EMM13H   =  321,
273    EMM14H   =  322,
274    EMM15H   =  323,
275
276    // Low byte forms of some standard registers
277    SIL      =  324,
278    DIL      =  325,
279    BPL      =  326,
280    SPL      =  327,
281
282    // 64-bit regular registers
283    RAX      =  328,
284    RBX      =  329,
285    RCX      =  330,
286    RDX      =  331,
287    RSI      =  332,
288    RDI      =  333,
289    RBP      =  334,
290    RSP      =  335,
291
292    // 64-bit integer registers with 8-, 16-, and 32-bit forms (B, W, and D)
293    R8       =  336,
294    R9       =  337,
295    R10      =  338,
296    R11      =  339,
297    R12      =  340,
298    R13      =  341,
299    R14      =  342,
300    R15      =  343,
301
302    R8B      =  344,
303    R9B      =  345,
304    R10B     =  346,
305    R11B     =  347,
306    R12B     =  348,
307    R13B     =  349,
308    R14B     =  350,
309    R15B     =  351,
310
311    R8W      =  352,
312    R9W      =  353,
313    R10W     =  354,
314    R11W     =  355,
315    R12W     =  356,
316    R13W     =  357,
317    R14W     =  358,
318    R15W     =  359,
319
320    R8D      =  360,
321    R9D      =  361,
322    R10D     =  362,
323    R11D     =  363,
324    R12D     =  364,
325    R13D     =  365,
326    R14D     =  366,
327    R15D     =  367,
328
329    // AVX registers 256 bits
330    YMM0     =  368,
331    YMM1     =  369,
332    YMM2     =  370,
333    YMM3     =  371,
334    YMM4     =  372,
335    YMM5     =  373,
336    YMM6     =  374,
337    YMM7     =  375,
338    YMM8     =  376,
339    YMM9     =  377,
340    YMM10    =  378,
341    YMM11    =  379,
342    YMM12    =  380,
343    YMM13    =  381,
344    YMM14    =  382,
345    YMM15    =  383,
346
347    // AVX registers upper 128 bits
348    YMM0H    =  384,
349    YMM1H    =  385,
350    YMM2H    =  386,
351    YMM3H    =  387,
352    YMM4H    =  388,
353    YMM5H    =  389,
354    YMM6H    =  390,
355    YMM7H    =  391,
356    YMM8H    =  392,
357    YMM9H    =  393,
358    YMM10H   =  394,
359    YMM11H   =  395,
360    YMM12H   =  396,
361    YMM13H   =  397,
362    YMM14H   =  398,
363    YMM15H   =  399,
364
365    //Lower/upper 8 bytes of XMM registers.  Unlike XMM<regnum><H/L>, these
366    //values reprsesent the bit patterns of the registers as 64-bit integers, not
367    //the representation of these registers as a double.
368    XMM0IL    = 400,
369    XMM1IL    = 401,
370    XMM2IL    = 402,
371    XMM3IL    = 403,
372    XMM4IL    = 404,
373    XMM5IL    = 405,
374    XMM6IL    = 406,
375    XMM7IL    = 407,
376    XMM8IL    = 408,
377    XMM9IL    = 409,
378    XMM10IL    = 410,
379    XMM11IL    = 411,
380    XMM12IL    = 412,
381    XMM13IL    = 413,
382    XMM14IL    = 414,
383    XMM15IL    = 415,
384
385    XMM0IH    = 416,
386    XMM1IH    = 417,
387    XMM2IH    = 418,
388    XMM3IH    = 419,
389    XMM4IH    = 420,
390    XMM5IH    = 421,
391    XMM6IH    = 422,
392    XMM7IH    = 423,
393    XMM8IH    = 424,
394    XMM9IH    = 425,
395    XMM10IH    = 426,
396    XMM11IH    = 427,
397    XMM12IH    = 428,
398    XMM13IH    = 429,
399    XMM14IH    = 430,
400    XMM15IH    = 431,
401
402    YMM0I0    =  432,        // AVX integer registers
403    YMM0I1    =  433,
404    YMM0I2    =  434,
405    YMM0I3    =  435,
406    YMM1I0    =  436,
407    YMM1I1    =  437,
408    YMM1I2    =  438,
409    YMM1I3    =  439,
410    YMM2I0    =  440,
411    YMM2I1    =  441,
412    YMM2I2    =  442,
413    YMM2I3    =  443,
414    YMM3I0    =  444,
415    YMM3I1    =  445,
416    YMM3I2    =  446,
417    YMM3I3    =  447,
418    YMM4I0    =  448,
419    YMM4I1    =  449,
420    YMM4I2    =  450,
421    YMM4I3    =  451,
422    YMM5I0    =  452,
423    YMM5I1    =  453,
424    YMM5I2    =  454,
425    YMM5I3    =  455,
426    YMM6I0    =  456,
427    YMM6I1    =  457,
428    YMM6I2    =  458,
429    YMM6I3    =  459,
430    YMM7I0    =  460,
431    YMM7I1    =  461,
432    YMM7I2    =  462,
433    YMM7I3    =  463,
434    YMM8I0    =  464,
435    YMM8I1    =  465,
436    YMM8I2    =  466,
437    YMM8I3    =  467,
438    YMM9I0    =  468,
439    YMM9I1    =  469,
440    YMM9I2    =  470,
441    YMM9I3    =  471,
442    YMM10I0    =  472,
443    YMM10I1    =  473,
444    YMM10I2    =  474,
445    YMM10I3    =  475,
446    YMM11I0    =  476,
447    YMM11I1    =  477,
448    YMM11I2    =  478,
449    YMM11I3    =  479,
450    YMM12I0    =  480,
451    YMM12I1    =  481,
452    YMM12I2    =  482,
453    YMM12I3    =  483,
454    YMM13I0    =  484,
455    YMM13I1    =  485,
456    YMM13I2    =  486,
457    YMM13I3    =  487,
458    YMM14I0    =  488,
459    YMM14I1    =  489,
460    YMM14I2    =  490,
461    YMM14I3    =  491,
462    YMM15I0    =  492,
463    YMM15I1    =  493,
464    YMM15I2    =  494,
465    YMM15I3    =  495,
466
467    YMM0F0    =  496,        // AVX floating-point single precise registers
468    YMM0F1    =  497,
469    YMM0F2    =  498,
470    YMM0F3    =  499,
471    YMM0F4    =  500,
472    YMM0F5    =  501,
473    YMM0F6    =  502,
474    YMM0F7    =  503,
475    YMM1F0    =  504,
476    YMM1F1    =  505,
477    YMM1F2    =  506,
478    YMM1F3    =  507,
479    YMM1F4    =  508,
480    YMM1F5    =  509,
481    YMM1F6    =  510,
482    YMM1F7    =  511,
483    YMM2F0    =  512,
484    YMM2F1    =  513,
485    YMM2F2    =  514,
486    YMM2F3    =  515,
487    YMM2F4    =  516,
488    YMM2F5    =  517,
489    YMM2F6    =  518,
490    YMM2F7    =  519,
491    YMM3F0    =  520,
492    YMM3F1    =  521,
493    YMM3F2    =  522,
494    YMM3F3    =  523,
495    YMM3F4    =  524,
496    YMM3F5    =  525,
497    YMM3F6    =  526,
498    YMM3F7    =  527,
499    YMM4F0    =  528,
500    YMM4F1    =  529,
501    YMM4F2    =  530,
502    YMM4F3    =  531,
503    YMM4F4    =  532,
504    YMM4F5    =  533,
505    YMM4F6    =  534,
506    YMM4F7    =  535,
507    YMM5F0    =  536,
508    YMM5F1    =  537,
509    YMM5F2    =  538,
510    YMM5F3    =  539,
511    YMM5F4    =  540,
512    YMM5F5    =  541,
513    YMM5F6    =  542,
514    YMM5F7    =  543,
515    YMM6F0    =  544,
516    YMM6F1    =  545,
517    YMM6F2    =  546,
518    YMM6F3    =  547,
519    YMM6F4    =  548,
520    YMM6F5    =  549,
521    YMM6F6    =  550,
522    YMM6F7    =  551,
523    YMM7F0    =  552,
524    YMM7F1    =  553,
525    YMM7F2    =  554,
526    YMM7F3    =  555,
527    YMM7F4    =  556,
528    YMM7F5    =  557,
529    YMM7F6    =  558,
530    YMM7F7    =  559,
531    YMM8F0    =  560,
532    YMM8F1    =  561,
533    YMM8F2    =  562,
534    YMM8F3    =  563,
535    YMM8F4    =  564,
536    YMM8F5    =  565,
537    YMM8F6    =  566,
538    YMM8F7    =  567,
539    YMM9F0    =  568,
540    YMM9F1    =  569,
541    YMM9F2    =  570,
542    YMM9F3    =  571,
543    YMM9F4    =  572,
544    YMM9F5    =  573,
545    YMM9F6    =  574,
546    YMM9F7    =  575,
547    YMM10F0    =  576,
548    YMM10F1    =  577,
549    YMM10F2    =  578,
550    YMM10F3    =  579,
551    YMM10F4    =  580,
552    YMM10F5    =  581,
553    YMM10F6    =  582,
554    YMM10F7    =  583,
555    YMM11F0    =  584,
556    YMM11F1    =  585,
557    YMM11F2    =  586,
558    YMM11F3    =  587,
559    YMM11F4    =  588,
560    YMM11F5    =  589,
561    YMM11F6    =  590,
562    YMM11F7    =  591,
563    YMM12F0    =  592,
564    YMM12F1    =  593,
565    YMM12F2    =  594,
566    YMM12F3    =  595,
567    YMM12F4    =  596,
568    YMM12F5    =  597,
569    YMM12F6    =  598,
570    YMM12F7    =  599,
571    YMM13F0    =  600,
572    YMM13F1    =  601,
573    YMM13F2    =  602,
574    YMM13F3    =  603,
575    YMM13F4    =  604,
576    YMM13F5    =  605,
577    YMM13F6    =  606,
578    YMM13F7    =  607,
579    YMM14F0    =  608,
580    YMM14F1    =  609,
581    YMM14F2    =  610,
582    YMM14F3    =  611,
583    YMM14F4    =  612,
584    YMM14F5    =  613,
585    YMM14F6    =  614,
586    YMM14F7    =  615,
587    YMM15F0    =  616,
588    YMM15F1    =  617,
589    YMM15F2    =  618,
590    YMM15F3    =  619,
591    YMM15F4    =  620,
592    YMM15F5    =  621,
593    YMM15F6    =  622,
594    YMM15F7    =  623,
595
596    YMM0D0    =  624,        // AVX floating-point double precise registers
597    YMM0D1    =  625,
598    YMM0D2    =  626,
599    YMM0D3    =  627,
600    YMM1D0    =  628,
601    YMM1D1    =  629,
602    YMM1D2    =  630,
603    YMM1D3    =  631,
604    YMM2D0    =  632,
605    YMM2D1    =  633,
606    YMM2D2    =  634,
607    YMM2D3    =  635,
608    YMM3D0    =  636,
609    YMM3D1    =  637,
610    YMM3D2    =  638,
611    YMM3D3    =  639,
612    YMM4D0    =  640,
613    YMM4D1    =  641,
614    YMM4D2    =  642,
615    YMM4D3    =  643,
616    YMM5D0    =  644,
617    YMM5D1    =  645,
618    YMM5D2    =  646,
619    YMM5D3    =  647,
620    YMM6D0    =  648,
621    YMM6D1    =  649,
622    YMM6D2    =  650,
623    YMM6D3    =  651,
624    YMM7D0    =  652,
625    YMM7D1    =  653,
626    YMM7D2    =  654,
627    YMM7D3    =  655,
628    YMM8D0    =  656,
629    YMM8D1    =  657,
630    YMM8D2    =  658,
631    YMM8D3    =  659,
632    YMM9D0    =  660,
633    YMM9D1    =  661,
634    YMM9D2    =  662,
635    YMM9D3    =  663,
636    YMM10D0    =  664,
637    YMM10D1    =  665,
638    YMM10D2    =  666,
639    YMM10D3    =  667,
640    YMM11D0    =  668,
641    YMM11D1    =  669,
642    YMM11D2    =  670,
643    YMM11D3    =  671,
644    YMM12D0    =  672,
645    YMM12D1    =  673,
646    YMM12D2    =  674,
647    YMM12D3    =  675,
648    YMM13D0    =  676,
649    YMM13D1    =  677,
650    YMM13D2    =  678,
651    YMM13D3    =  679,
652    YMM14D0    =  680,
653    YMM14D1    =  681,
654    YMM14D2    =  682,
655    YMM14D3    =  683,
656    YMM15D0    =  684,
657    YMM15D1    =  685,
658    YMM15D2    =  686,
659    YMM15D3    =  687,
660}