00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00032
00033
00034
00035
00036 #if !defined(_XED_NONTERMINAL_ENUM_H_)
00037 # define _XED_NONTERMINAL_ENUM_H_
00038 #include "xed-common-hdrs.h"
00039 typedef enum {
00040 XED_NONTERMINAL_INVALID,
00041 XED_NONTERMINAL_AR10,
00042 XED_NONTERMINAL_AR11,
00043 XED_NONTERMINAL_AR12,
00044 XED_NONTERMINAL_AR13,
00045 XED_NONTERMINAL_AR14,
00046 XED_NONTERMINAL_AR15,
00047 XED_NONTERMINAL_AR8,
00048 XED_NONTERMINAL_AR9,
00049 XED_NONTERMINAL_ARAX,
00050 XED_NONTERMINAL_ARBP,
00051 XED_NONTERMINAL_ARBX,
00052 XED_NONTERMINAL_ARCX,
00053 XED_NONTERMINAL_ARDI,
00054 XED_NONTERMINAL_ARDX,
00055 XED_NONTERMINAL_ARSI,
00056 XED_NONTERMINAL_ARSP,
00057 XED_NONTERMINAL_ASZ_NONTERM,
00058 XED_NONTERMINAL_AVX512_ROUND,
00059 XED_NONTERMINAL_AVX_INSTRUCTIONS,
00060 XED_NONTERMINAL_AVX_SPLITTER,
00061 XED_NONTERMINAL_BND_B,
00062 XED_NONTERMINAL_BND_B_CHECK,
00063 XED_NONTERMINAL_BND_R,
00064 XED_NONTERMINAL_BND_R_CHECK,
00065 XED_NONTERMINAL_BRANCH_HINT,
00066 XED_NONTERMINAL_BRDISP32,
00067 XED_NONTERMINAL_BRDISP8,
00068 XED_NONTERMINAL_BRDISPZ,
00069 XED_NONTERMINAL_CR_B,
00070 XED_NONTERMINAL_CR_R,
00071 XED_NONTERMINAL_CR_WIDTH,
00072 XED_NONTERMINAL_DF64,
00073 XED_NONTERMINAL_DR_B,
00074 XED_NONTERMINAL_DR_R,
00075 XED_NONTERMINAL_ESIZE_128_BITS,
00076 XED_NONTERMINAL_ESIZE_16_BITS,
00077 XED_NONTERMINAL_ESIZE_1_BITS,
00078 XED_NONTERMINAL_ESIZE_2_BITS,
00079 XED_NONTERMINAL_ESIZE_32_BITS,
00080 XED_NONTERMINAL_ESIZE_4_BITS,
00081 XED_NONTERMINAL_ESIZE_64_BITS,
00082 XED_NONTERMINAL_ESIZE_8_BITS,
00083 XED_NONTERMINAL_EVEX_INSTRUCTIONS,
00084 XED_NONTERMINAL_EVEX_SPLITTER,
00085 XED_NONTERMINAL_FINAL_DSEG,
00086 XED_NONTERMINAL_FINAL_DSEG1,
00087 XED_NONTERMINAL_FINAL_DSEG1_MODE64,
00088 XED_NONTERMINAL_FINAL_DSEG1_NOT64,
00089 XED_NONTERMINAL_FINAL_DSEG_MODE64,
00090 XED_NONTERMINAL_FINAL_DSEG_NOT64,
00091 XED_NONTERMINAL_FINAL_ESEG,
00092 XED_NONTERMINAL_FINAL_ESEG1,
00093 XED_NONTERMINAL_FINAL_SSEG,
00094 XED_NONTERMINAL_FINAL_SSEG0,
00095 XED_NONTERMINAL_FINAL_SSEG1,
00096 XED_NONTERMINAL_FINAL_SSEG_MODE64,
00097 XED_NONTERMINAL_FINAL_SSEG_NOT64,
00098 XED_NONTERMINAL_FIX_ROUND_LEN128,
00099 XED_NONTERMINAL_FIX_ROUND_LEN512,
00100 XED_NONTERMINAL_FORCE64,
00101 XED_NONTERMINAL_GPR16_B,
00102 XED_NONTERMINAL_GPR16_R,
00103 XED_NONTERMINAL_GPR16_SB,
00104 XED_NONTERMINAL_GPR16_SR,
00105 XED_NONTERMINAL_GPR32_B,
00106 XED_NONTERMINAL_GPR32_R,
00107 XED_NONTERMINAL_GPR32_SB,
00108 XED_NONTERMINAL_GPR32_SR,
00109 XED_NONTERMINAL_GPR32_X,
00110 XED_NONTERMINAL_GPR64_B,
00111 XED_NONTERMINAL_GPR64_R,
00112 XED_NONTERMINAL_GPR64_SB,
00113 XED_NONTERMINAL_GPR64_SR,
00114 XED_NONTERMINAL_GPR64_X,
00115 XED_NONTERMINAL_GPR8_B,
00116 XED_NONTERMINAL_GPR8_R,
00117 XED_NONTERMINAL_GPR8_SB,
00118 XED_NONTERMINAL_GPR8_SR,
00119 XED_NONTERMINAL_GPRM_B,
00120 XED_NONTERMINAL_GPRM_R,
00121 XED_NONTERMINAL_GPRV_B,
00122 XED_NONTERMINAL_GPRV_R,
00123 XED_NONTERMINAL_GPRV_SB,
00124 XED_NONTERMINAL_GPRV_SR,
00125 XED_NONTERMINAL_GPRY_B,
00126 XED_NONTERMINAL_GPRY_N,
00127 XED_NONTERMINAL_GPRY_R,
00128 XED_NONTERMINAL_GPRZ_B,
00129 XED_NONTERMINAL_GPRZ_R,
00130 XED_NONTERMINAL_IGNORE66,
00131 XED_NONTERMINAL_IMMUNE66,
00132 XED_NONTERMINAL_IMMUNE66_LOOP64,
00133 XED_NONTERMINAL_IMMUNE_REXW,
00134 XED_NONTERMINAL_INSTRUCTIONS,
00135 XED_NONTERMINAL_ISA,
00136 XED_NONTERMINAL_MASK1,
00137 XED_NONTERMINAL_MASK_B,
00138 XED_NONTERMINAL_MASK_I3,
00139 XED_NONTERMINAL_MASK_N,
00140 XED_NONTERMINAL_MASK_R,
00141 XED_NONTERMINAL_MEMDISP,
00142 XED_NONTERMINAL_MEMDISP16,
00143 XED_NONTERMINAL_MEMDISP32,
00144 XED_NONTERMINAL_MEMDISP8,
00145 XED_NONTERMINAL_MEMDISPV,
00146 XED_NONTERMINAL_MMX_B,
00147 XED_NONTERMINAL_MMX_R,
00148 XED_NONTERMINAL_MODRM,
00149 XED_NONTERMINAL_MODRM16,
00150 XED_NONTERMINAL_MODRM32,
00151 XED_NONTERMINAL_MODRM64ALT32,
00152 XED_NONTERMINAL_NELEM_EIGHTHMEM,
00153 XED_NONTERMINAL_NELEM_FULL,
00154 XED_NONTERMINAL_NELEM_FULLMEM,
00155 XED_NONTERMINAL_NELEM_GPR_READER,
00156 XED_NONTERMINAL_NELEM_GPR_READER_BYTE,
00157 XED_NONTERMINAL_NELEM_GPR_READER_SUBDWORD,
00158 XED_NONTERMINAL_NELEM_GPR_READER_WORD,
00159 XED_NONTERMINAL_NELEM_GPR_WRITER_LDOP,
00160 XED_NONTERMINAL_NELEM_GPR_WRITER_LDOP_D,
00161 XED_NONTERMINAL_NELEM_GPR_WRITER_LDOP_Q,
00162 XED_NONTERMINAL_NELEM_GPR_WRITER_STORE,
00163 XED_NONTERMINAL_NELEM_GPR_WRITER_STORE_BYTE,
00164 XED_NONTERMINAL_NELEM_GPR_WRITER_STORE_SUBDWORD,
00165 XED_NONTERMINAL_NELEM_GPR_WRITER_STORE_WORD,
00166 XED_NONTERMINAL_NELEM_GSCAT,
00167 XED_NONTERMINAL_NELEM_HALF,
00168 XED_NONTERMINAL_NELEM_HALFMEM,
00169 XED_NONTERMINAL_NELEM_MEM128,
00170 XED_NONTERMINAL_NELEM_MOVDDUP,
00171 XED_NONTERMINAL_NELEM_QUARTERMEM,
00172 XED_NONTERMINAL_NELEM_SCALAR,
00173 XED_NONTERMINAL_NELEM_TUPLE1,
00174 XED_NONTERMINAL_NELEM_TUPLE1_BYTE,
00175 XED_NONTERMINAL_NELEM_TUPLE1_SUBDWORD,
00176 XED_NONTERMINAL_NELEM_TUPLE1_WORD,
00177 XED_NONTERMINAL_NELEM_TUPLE2,
00178 XED_NONTERMINAL_NELEM_TUPLE4,
00179 XED_NONTERMINAL_NELEM_TUPLE8,
00180 XED_NONTERMINAL_OEAX,
00181 XED_NONTERMINAL_ONE,
00182 XED_NONTERMINAL_ORAX,
00183 XED_NONTERMINAL_ORBP,
00184 XED_NONTERMINAL_ORDX,
00185 XED_NONTERMINAL_ORSP,
00186 XED_NONTERMINAL_OSZ_NONTERM,
00187 XED_NONTERMINAL_OVERRIDE_SEG0,
00188 XED_NONTERMINAL_OVERRIDE_SEG1,
00189 XED_NONTERMINAL_PREFIXES,
00190 XED_NONTERMINAL_REFINING66,
00191 XED_NONTERMINAL_REMOVE_SEGMENT,
00192 XED_NONTERMINAL_RFLAGS,
00193 XED_NONTERMINAL_RIP,
00194 XED_NONTERMINAL_SAE,
00195 XED_NONTERMINAL_SEG,
00196 XED_NONTERMINAL_SE_IMM8,
00197 XED_NONTERMINAL_SIB,
00198 XED_NONTERMINAL_SIB_BASE0,
00199 XED_NONTERMINAL_SIMM8,
00200 XED_NONTERMINAL_SIMMZ,
00201 XED_NONTERMINAL_SRBP,
00202 XED_NONTERMINAL_SRSP,
00203 XED_NONTERMINAL_UIMM16,
00204 XED_NONTERMINAL_UIMM32,
00205 XED_NONTERMINAL_UIMM8,
00206 XED_NONTERMINAL_UIMM8_1,
00207 XED_NONTERMINAL_UIMMV,
00208 XED_NONTERMINAL_UISA_SE_IMM8,
00209 XED_NONTERMINAL_UISA_VMODRM_XMM,
00210 XED_NONTERMINAL_UISA_VMODRM_YMM,
00211 XED_NONTERMINAL_UISA_VMODRM_ZMM,
00212 XED_NONTERMINAL_UISA_VSIB_BASE,
00213 XED_NONTERMINAL_UISA_VSIB_INDEX_XMM,
00214 XED_NONTERMINAL_UISA_VSIB_INDEX_YMM,
00215 XED_NONTERMINAL_UISA_VSIB_INDEX_ZMM,
00216 XED_NONTERMINAL_UISA_VSIB_XMM,
00217 XED_NONTERMINAL_UISA_VSIB_YMM,
00218 XED_NONTERMINAL_UISA_VSIB_ZMM,
00219 XED_NONTERMINAL_VGPR32_B,
00220 XED_NONTERMINAL_VGPR32_B_32,
00221 XED_NONTERMINAL_VGPR32_B_64,
00222 XED_NONTERMINAL_VGPR32_N,
00223 XED_NONTERMINAL_VGPR32_N_32,
00224 XED_NONTERMINAL_VGPR32_N_64,
00225 XED_NONTERMINAL_VGPR32_R,
00226 XED_NONTERMINAL_VGPR32_R_32,
00227 XED_NONTERMINAL_VGPR32_R_64,
00228 XED_NONTERMINAL_VGPR64_B,
00229 XED_NONTERMINAL_VGPR64_N,
00230 XED_NONTERMINAL_VGPR64_R,
00231 XED_NONTERMINAL_VGPRV_N,
00232 XED_NONTERMINAL_VMODRM_XMM,
00233 XED_NONTERMINAL_VMODRM_YMM,
00234 XED_NONTERMINAL_VSIB_BASE,
00235 XED_NONTERMINAL_VSIB_INDEX_XMM,
00236 XED_NONTERMINAL_VSIB_INDEX_YMM,
00237 XED_NONTERMINAL_VSIB_XMM,
00238 XED_NONTERMINAL_VSIB_YMM,
00239 XED_NONTERMINAL_X87,
00240 XED_NONTERMINAL_XMM_B,
00241 XED_NONTERMINAL_XMM_B3,
00242 XED_NONTERMINAL_XMM_B_32,
00243 XED_NONTERMINAL_XMM_B_64,
00244 XED_NONTERMINAL_XMM_I3,
00245 XED_NONTERMINAL_XMM_N,
00246 XED_NONTERMINAL_XMM_N3,
00247 XED_NONTERMINAL_XMM_N3_32,
00248 XED_NONTERMINAL_XMM_N3_64,
00249 XED_NONTERMINAL_XMM_N_32,
00250 XED_NONTERMINAL_XMM_N_64,
00251 XED_NONTERMINAL_XMM_R,
00252 XED_NONTERMINAL_XMM_R3,
00253 XED_NONTERMINAL_XMM_R3_32,
00254 XED_NONTERMINAL_XMM_R3_64,
00255 XED_NONTERMINAL_XMM_R_32,
00256 XED_NONTERMINAL_XMM_R_64,
00257 XED_NONTERMINAL_XMM_SE,
00258 XED_NONTERMINAL_XMM_SE32,
00259 XED_NONTERMINAL_XMM_SE64,
00260 XED_NONTERMINAL_XOP_INSTRUCTIONS,
00261 XED_NONTERMINAL_YMM_B,
00262 XED_NONTERMINAL_YMM_B3,
00263 XED_NONTERMINAL_YMM_B_32,
00264 XED_NONTERMINAL_YMM_B_64,
00265 XED_NONTERMINAL_YMM_I3,
00266 XED_NONTERMINAL_YMM_N,
00267 XED_NONTERMINAL_YMM_N3,
00268 XED_NONTERMINAL_YMM_N3_32,
00269 XED_NONTERMINAL_YMM_N3_64,
00270 XED_NONTERMINAL_YMM_N_32,
00271 XED_NONTERMINAL_YMM_N_64,
00272 XED_NONTERMINAL_YMM_R,
00273 XED_NONTERMINAL_YMM_R3,
00274 XED_NONTERMINAL_YMM_R3_32,
00275 XED_NONTERMINAL_YMM_R3_64,
00276 XED_NONTERMINAL_YMM_R_32,
00277 XED_NONTERMINAL_YMM_R_64,
00278 XED_NONTERMINAL_YMM_SE,
00279 XED_NONTERMINAL_YMM_SE32,
00280 XED_NONTERMINAL_YMM_SE64,
00281 XED_NONTERMINAL_ZMM_B3,
00282 XED_NONTERMINAL_ZMM_B3_32,
00283 XED_NONTERMINAL_ZMM_B3_64,
00284 XED_NONTERMINAL_ZMM_I3,
00285 XED_NONTERMINAL_ZMM_N3,
00286 XED_NONTERMINAL_ZMM_N3_32,
00287 XED_NONTERMINAL_ZMM_N3_64,
00288 XED_NONTERMINAL_ZMM_R3,
00289 XED_NONTERMINAL_ZMM_R3_32,
00290 XED_NONTERMINAL_ZMM_R3_64,
00291 XED_NONTERMINAL_LAST
00292 } xed_nonterminal_enum_t;
00293
00298 XED_DLL_EXPORT xed_nonterminal_enum_t str2xed_nonterminal_enum_t(const char* s);
00303 XED_DLL_EXPORT const char* xed_nonterminal_enum_t2str(const xed_nonterminal_enum_t p);
00304
00308 XED_DLL_EXPORT xed_nonterminal_enum_t xed_nonterminal_enum_t_last(void);
00309 #endif