1 /// @file xed-reg-class-enum.c
2 
3 // This file was automatically generated.
4 // Do not edit this file.
5 
6 #include <string.h>
7 #include <assert.h>
8 #include "xed-reg-class-enum.h"
9 
10 typedef struct {
11     const char* name;
12     xed_reg_class_enum_t value;
13 } name_table_xed_reg_class_enum_t;
14 static const name_table_xed_reg_class_enum_t name_array_xed_reg_class_enum_t[] = {
15 {"INVALID", XED_REG_CLASS_INVALID},
16 {"BNDCFG", XED_REG_CLASS_BNDCFG},
17 {"BNDSTAT", XED_REG_CLASS_BNDSTAT},
18 {"BOUND", XED_REG_CLASS_BOUND},
19 {"CR", XED_REG_CLASS_CR},
20 {"DR", XED_REG_CLASS_DR},
21 {"FLAGS", XED_REG_CLASS_FLAGS},
22 {"GPR", XED_REG_CLASS_GPR},
23 {"GPR16", XED_REG_CLASS_GPR16},
24 {"GPR32", XED_REG_CLASS_GPR32},
25 {"GPR64", XED_REG_CLASS_GPR64},
26 {"GPR8", XED_REG_CLASS_GPR8},
27 {"IP", XED_REG_CLASS_IP},
28 {"MASK", XED_REG_CLASS_MASK},
29 {"MMX", XED_REG_CLASS_MMX},
30 {"MSR", XED_REG_CLASS_MSR},
31 {"MXCSR", XED_REG_CLASS_MXCSR},
32 {"PSEUDO", XED_REG_CLASS_PSEUDO},
33 {"PSEUDOX87", XED_REG_CLASS_PSEUDOX87},
34 {"SR", XED_REG_CLASS_SR},
35 {"TMP", XED_REG_CLASS_TMP},
36 {"X87", XED_REG_CLASS_X87},
37 {"XCR", XED_REG_CLASS_XCR},
38 {"XMM", XED_REG_CLASS_XMM},
39 {"YMM", XED_REG_CLASS_YMM},
40 {"ZMM", XED_REG_CLASS_ZMM},
41 {"LAST", XED_REG_CLASS_LAST},
42 {0, XED_REG_CLASS_LAST},
43 };
44 
45 
str2xed_reg_class_enum_t(const char * s)46 xed_reg_class_enum_t str2xed_reg_class_enum_t(const char* s)
47 {
48    const name_table_xed_reg_class_enum_t* p = name_array_xed_reg_class_enum_t;
49    while( p->name ) {
50      if (strcmp(p->name,s) == 0) {
51       return p->value;
52      }
53      p++;
54    }
55 
56 
57    return XED_REG_CLASS_INVALID;
58 }
59 
60 
xed_reg_class_enum_t2str(const xed_reg_class_enum_t p)61 const char* xed_reg_class_enum_t2str(const xed_reg_class_enum_t p)
62 {
63    xed_reg_class_enum_t type_idx = p;
64    if ( p > XED_REG_CLASS_LAST) type_idx = XED_REG_CLASS_LAST;
65    return name_array_xed_reg_class_enum_t[type_idx].name;
66 }
67 
xed_reg_class_enum_t_last(void)68 xed_reg_class_enum_t xed_reg_class_enum_t_last(void) {
69     return XED_REG_CLASS_LAST;
70 }
71 
72 /*
73 
74 Here is a skeleton switch statement embedded in a comment
75 
76 
77   switch(p) {
78   case XED_REG_CLASS_INVALID:
79   case XED_REG_CLASS_BNDCFG:
80   case XED_REG_CLASS_BNDSTAT:
81   case XED_REG_CLASS_BOUND:
82   case XED_REG_CLASS_CR:
83   case XED_REG_CLASS_DR:
84   case XED_REG_CLASS_FLAGS:
85   case XED_REG_CLASS_GPR:
86   case XED_REG_CLASS_GPR16:
87   case XED_REG_CLASS_GPR32:
88   case XED_REG_CLASS_GPR64:
89   case XED_REG_CLASS_GPR8:
90   case XED_REG_CLASS_IP:
91   case XED_REG_CLASS_MASK:
92   case XED_REG_CLASS_MMX:
93   case XED_REG_CLASS_MSR:
94   case XED_REG_CLASS_MXCSR:
95   case XED_REG_CLASS_PSEUDO:
96   case XED_REG_CLASS_PSEUDOX87:
97   case XED_REG_CLASS_SR:
98   case XED_REG_CLASS_TMP:
99   case XED_REG_CLASS_X87:
100   case XED_REG_CLASS_XCR:
101   case XED_REG_CLASS_XMM:
102   case XED_REG_CLASS_YMM:
103   case XED_REG_CLASS_ZMM:
104   case XED_REG_CLASS_LAST:
105   default:
106      xed_assert(0);
107   }
108 */
109