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