x86.h 42 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973
  1. #ifndef CAPSTONE_X86_H
  2. #define CAPSTONE_X86_H
  3. /* Capstone Disassembly Engine */
  4. /* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. #include "platform.h"
  9. /// Calculate relative address for X86-64, given cs_insn structure
  10. #define X86_REL_ADDR(insn) (((insn).detail->x86.operands[0].type == X86_OP_IMM) \
  11. ? (uint64_t)((insn).detail->x86.operands[0].imm) \
  12. : (((insn).address + (insn).size) + (uint64_t)(insn).detail->x86.disp))
  13. /// X86 registers
  14. typedef enum x86_reg {
  15. X86_REG_INVALID = 0,
  16. X86_REG_AH, X86_REG_AL, X86_REG_AX, X86_REG_BH, X86_REG_BL,
  17. X86_REG_BP, X86_REG_BPL, X86_REG_BX, X86_REG_CH, X86_REG_CL,
  18. X86_REG_CS, X86_REG_CX, X86_REG_DH, X86_REG_DI, X86_REG_DIL,
  19. X86_REG_DL, X86_REG_DS, X86_REG_DX, X86_REG_EAX, X86_REG_EBP,
  20. X86_REG_EBX, X86_REG_ECX, X86_REG_EDI, X86_REG_EDX, X86_REG_EFLAGS,
  21. X86_REG_EIP, X86_REG_EIZ, X86_REG_ES, X86_REG_ESI, X86_REG_ESP,
  22. X86_REG_FPSW, X86_REG_FS, X86_REG_GS, X86_REG_IP, X86_REG_RAX,
  23. X86_REG_RBP, X86_REG_RBX, X86_REG_RCX, X86_REG_RDI, X86_REG_RDX,
  24. X86_REG_RIP, X86_REG_RIZ, X86_REG_RSI, X86_REG_RSP, X86_REG_SI,
  25. X86_REG_SIL, X86_REG_SP, X86_REG_SPL, X86_REG_SS, X86_REG_CR0,
  26. X86_REG_CR1, X86_REG_CR2, X86_REG_CR3, X86_REG_CR4, X86_REG_CR5,
  27. X86_REG_CR6, X86_REG_CR7, X86_REG_CR8, X86_REG_CR9, X86_REG_CR10,
  28. X86_REG_CR11, X86_REG_CR12, X86_REG_CR13, X86_REG_CR14, X86_REG_CR15,
  29. X86_REG_DR0, X86_REG_DR1, X86_REG_DR2, X86_REG_DR3, X86_REG_DR4,
  30. X86_REG_DR5, X86_REG_DR6, X86_REG_DR7, X86_REG_DR8, X86_REG_DR9,
  31. X86_REG_DR10, X86_REG_DR11, X86_REG_DR12, X86_REG_DR13, X86_REG_DR14,
  32. X86_REG_DR15, X86_REG_FP0, X86_REG_FP1, X86_REG_FP2, X86_REG_FP3,
  33. X86_REG_FP4, X86_REG_FP5, X86_REG_FP6, X86_REG_FP7,
  34. X86_REG_K0, X86_REG_K1, X86_REG_K2, X86_REG_K3, X86_REG_K4,
  35. X86_REG_K5, X86_REG_K6, X86_REG_K7, X86_REG_MM0, X86_REG_MM1,
  36. X86_REG_MM2, X86_REG_MM3, X86_REG_MM4, X86_REG_MM5, X86_REG_MM6,
  37. X86_REG_MM7, X86_REG_R8, X86_REG_R9, X86_REG_R10, X86_REG_R11,
  38. X86_REG_R12, X86_REG_R13, X86_REG_R14, X86_REG_R15,
  39. X86_REG_ST0, X86_REG_ST1, X86_REG_ST2, X86_REG_ST3,
  40. X86_REG_ST4, X86_REG_ST5, X86_REG_ST6, X86_REG_ST7,
  41. X86_REG_XMM0, X86_REG_XMM1, X86_REG_XMM2, X86_REG_XMM3, X86_REG_XMM4,
  42. X86_REG_XMM5, X86_REG_XMM6, X86_REG_XMM7, X86_REG_XMM8, X86_REG_XMM9,
  43. X86_REG_XMM10, X86_REG_XMM11, X86_REG_XMM12, X86_REG_XMM13, X86_REG_XMM14,
  44. X86_REG_XMM15, X86_REG_XMM16, X86_REG_XMM17, X86_REG_XMM18, X86_REG_XMM19,
  45. X86_REG_XMM20, X86_REG_XMM21, X86_REG_XMM22, X86_REG_XMM23, X86_REG_XMM24,
  46. X86_REG_XMM25, X86_REG_XMM26, X86_REG_XMM27, X86_REG_XMM28, X86_REG_XMM29,
  47. X86_REG_XMM30, X86_REG_XMM31, X86_REG_YMM0, X86_REG_YMM1, X86_REG_YMM2,
  48. X86_REG_YMM3, X86_REG_YMM4, X86_REG_YMM5, X86_REG_YMM6, X86_REG_YMM7,
  49. X86_REG_YMM8, X86_REG_YMM9, X86_REG_YMM10, X86_REG_YMM11, X86_REG_YMM12,
  50. X86_REG_YMM13, X86_REG_YMM14, X86_REG_YMM15, X86_REG_YMM16, X86_REG_YMM17,
  51. X86_REG_YMM18, X86_REG_YMM19, X86_REG_YMM20, X86_REG_YMM21, X86_REG_YMM22,
  52. X86_REG_YMM23, X86_REG_YMM24, X86_REG_YMM25, X86_REG_YMM26, X86_REG_YMM27,
  53. X86_REG_YMM28, X86_REG_YMM29, X86_REG_YMM30, X86_REG_YMM31, X86_REG_ZMM0,
  54. X86_REG_ZMM1, X86_REG_ZMM2, X86_REG_ZMM3, X86_REG_ZMM4, X86_REG_ZMM5,
  55. X86_REG_ZMM6, X86_REG_ZMM7, X86_REG_ZMM8, X86_REG_ZMM9, X86_REG_ZMM10,
  56. X86_REG_ZMM11, X86_REG_ZMM12, X86_REG_ZMM13, X86_REG_ZMM14, X86_REG_ZMM15,
  57. X86_REG_ZMM16, X86_REG_ZMM17, X86_REG_ZMM18, X86_REG_ZMM19, X86_REG_ZMM20,
  58. X86_REG_ZMM21, X86_REG_ZMM22, X86_REG_ZMM23, X86_REG_ZMM24, X86_REG_ZMM25,
  59. X86_REG_ZMM26, X86_REG_ZMM27, X86_REG_ZMM28, X86_REG_ZMM29, X86_REG_ZMM30,
  60. X86_REG_ZMM31, X86_REG_R8B, X86_REG_R9B, X86_REG_R10B, X86_REG_R11B,
  61. X86_REG_R12B, X86_REG_R13B, X86_REG_R14B, X86_REG_R15B, X86_REG_R8D,
  62. X86_REG_R9D, X86_REG_R10D, X86_REG_R11D, X86_REG_R12D, X86_REG_R13D,
  63. X86_REG_R14D, X86_REG_R15D, X86_REG_R8W, X86_REG_R9W, X86_REG_R10W,
  64. X86_REG_R11W, X86_REG_R12W, X86_REG_R13W, X86_REG_R14W, X86_REG_R15W,
  65. X86_REG_ENDING // <-- mark the end of the list of registers
  66. } x86_reg;
  67. // Sub-flags of EFLAGS
  68. #define X86_EFLAGS_MODIFY_AF (1ULL << 0)
  69. #define X86_EFLAGS_MODIFY_CF (1ULL << 1)
  70. #define X86_EFLAGS_MODIFY_SF (1ULL << 2)
  71. #define X86_EFLAGS_MODIFY_ZF (1ULL << 3)
  72. #define X86_EFLAGS_MODIFY_PF (1ULL << 4)
  73. #define X86_EFLAGS_MODIFY_OF (1ULL << 5)
  74. #define X86_EFLAGS_MODIFY_TF (1ULL << 6)
  75. #define X86_EFLAGS_MODIFY_IF (1ULL << 7)
  76. #define X86_EFLAGS_MODIFY_DF (1ULL << 8)
  77. #define X86_EFLAGS_MODIFY_NT (1ULL << 9)
  78. #define X86_EFLAGS_MODIFY_RF (1ULL << 10)
  79. #define X86_EFLAGS_PRIOR_OF (1ULL << 11)
  80. #define X86_EFLAGS_PRIOR_SF (1ULL << 12)
  81. #define X86_EFLAGS_PRIOR_ZF (1ULL << 13)
  82. #define X86_EFLAGS_PRIOR_AF (1ULL << 14)
  83. #define X86_EFLAGS_PRIOR_PF (1ULL << 15)
  84. #define X86_EFLAGS_PRIOR_CF (1ULL << 16)
  85. #define X86_EFLAGS_PRIOR_TF (1ULL << 17)
  86. #define X86_EFLAGS_PRIOR_IF (1ULL << 18)
  87. #define X86_EFLAGS_PRIOR_DF (1ULL << 19)
  88. #define X86_EFLAGS_PRIOR_NT (1ULL << 20)
  89. #define X86_EFLAGS_RESET_OF (1ULL << 21)
  90. #define X86_EFLAGS_RESET_CF (1ULL << 22)
  91. #define X86_EFLAGS_RESET_DF (1ULL << 23)
  92. #define X86_EFLAGS_RESET_IF (1ULL << 24)
  93. #define X86_EFLAGS_RESET_SF (1ULL << 25)
  94. #define X86_EFLAGS_RESET_AF (1ULL << 26)
  95. #define X86_EFLAGS_RESET_TF (1ULL << 27)
  96. #define X86_EFLAGS_RESET_NT (1ULL << 28)
  97. #define X86_EFLAGS_RESET_PF (1ULL << 29)
  98. #define X86_EFLAGS_SET_CF (1ULL << 30)
  99. #define X86_EFLAGS_SET_DF (1ULL << 31)
  100. #define X86_EFLAGS_SET_IF (1ULL << 32)
  101. #define X86_EFLAGS_TEST_OF (1ULL << 33)
  102. #define X86_EFLAGS_TEST_SF (1ULL << 34)
  103. #define X86_EFLAGS_TEST_ZF (1ULL << 35)
  104. #define X86_EFLAGS_TEST_PF (1ULL << 36)
  105. #define X86_EFLAGS_TEST_CF (1ULL << 37)
  106. #define X86_EFLAGS_TEST_NT (1ULL << 38)
  107. #define X86_EFLAGS_TEST_DF (1ULL << 39)
  108. #define X86_EFLAGS_UNDEFINED_OF (1ULL << 40)
  109. #define X86_EFLAGS_UNDEFINED_SF (1ULL << 41)
  110. #define X86_EFLAGS_UNDEFINED_ZF (1ULL << 42)
  111. #define X86_EFLAGS_UNDEFINED_PF (1ULL << 43)
  112. #define X86_EFLAGS_UNDEFINED_AF (1ULL << 44)
  113. #define X86_EFLAGS_UNDEFINED_CF (1ULL << 45)
  114. #define X86_EFLAGS_RESET_RF (1ULL << 46)
  115. #define X86_EFLAGS_TEST_RF (1ULL << 47)
  116. #define X86_EFLAGS_TEST_IF (1ULL << 48)
  117. #define X86_EFLAGS_TEST_TF (1ULL << 49)
  118. #define X86_EFLAGS_TEST_AF (1ULL << 50)
  119. #define X86_EFLAGS_RESET_ZF (1ULL << 51)
  120. #define X86_EFLAGS_SET_OF (1ULL << 52)
  121. #define X86_EFLAGS_SET_SF (1ULL << 53)
  122. #define X86_EFLAGS_SET_ZF (1ULL << 54)
  123. #define X86_EFLAGS_SET_AF (1ULL << 55)
  124. #define X86_EFLAGS_SET_PF (1ULL << 56)
  125. #define X86_EFLAGS_RESET_0F (1ULL << 57)
  126. #define X86_EFLAGS_RESET_AC (1ULL << 58)
  127. #define X86_FPU_FLAGS_MODIFY_C0 (1ULL << 0)
  128. #define X86_FPU_FLAGS_MODIFY_C1 (1ULL << 1)
  129. #define X86_FPU_FLAGS_MODIFY_C2 (1ULL << 2)
  130. #define X86_FPU_FLAGS_MODIFY_C3 (1ULL << 3)
  131. #define X86_FPU_FLAGS_RESET_C0 (1ULL << 4)
  132. #define X86_FPU_FLAGS_RESET_C1 (1ULL << 5)
  133. #define X86_FPU_FLAGS_RESET_C2 (1ULL << 6)
  134. #define X86_FPU_FLAGS_RESET_C3 (1ULL << 7)
  135. #define X86_FPU_FLAGS_SET_C0 (1ULL << 8)
  136. #define X86_FPU_FLAGS_SET_C1 (1ULL << 9)
  137. #define X86_FPU_FLAGS_SET_C2 (1ULL << 10)
  138. #define X86_FPU_FLAGS_SET_C3 (1ULL << 11)
  139. #define X86_FPU_FLAGS_UNDEFINED_C0 (1ULL << 12)
  140. #define X86_FPU_FLAGS_UNDEFINED_C1 (1ULL << 13)
  141. #define X86_FPU_FLAGS_UNDEFINED_C2 (1ULL << 14)
  142. #define X86_FPU_FLAGS_UNDEFINED_C3 (1ULL << 15)
  143. #define X86_FPU_FLAGS_TEST_C0 (1ULL << 16)
  144. #define X86_FPU_FLAGS_TEST_C1 (1ULL << 17)
  145. #define X86_FPU_FLAGS_TEST_C2 (1ULL << 18)
  146. #define X86_FPU_FLAGS_TEST_C3 (1ULL << 19)
  147. /// Operand type for instruction's operands
  148. typedef enum x86_op_type {
  149. X86_OP_INVALID = 0, ///< = CS_OP_INVALID (Uninitialized).
  150. X86_OP_REG, ///< = CS_OP_REG (Register operand).
  151. X86_OP_IMM, ///< = CS_OP_IMM (Immediate operand).
  152. X86_OP_MEM, ///< = CS_OP_MEM (Memory operand).
  153. } x86_op_type;
  154. /// XOP Code Condition type
  155. typedef enum x86_xop_cc {
  156. X86_XOP_CC_INVALID = 0, ///< Uninitialized.
  157. X86_XOP_CC_LT,
  158. X86_XOP_CC_LE,
  159. X86_XOP_CC_GT,
  160. X86_XOP_CC_GE,
  161. X86_XOP_CC_EQ,
  162. X86_XOP_CC_NEQ,
  163. X86_XOP_CC_FALSE,
  164. X86_XOP_CC_TRUE,
  165. } x86_xop_cc;
  166. /// AVX broadcast type
  167. typedef enum x86_avx_bcast {
  168. X86_AVX_BCAST_INVALID = 0, ///< Uninitialized.
  169. X86_AVX_BCAST_2, ///< AVX512 broadcast type {1to2}
  170. X86_AVX_BCAST_4, ///< AVX512 broadcast type {1to4}
  171. X86_AVX_BCAST_8, ///< AVX512 broadcast type {1to8}
  172. X86_AVX_BCAST_16, ///< AVX512 broadcast type {1to16}
  173. } x86_avx_bcast;
  174. /// SSE Code Condition type
  175. typedef enum x86_sse_cc {
  176. X86_SSE_CC_INVALID = 0, ///< Uninitialized.
  177. X86_SSE_CC_EQ,
  178. X86_SSE_CC_LT,
  179. X86_SSE_CC_LE,
  180. X86_SSE_CC_UNORD,
  181. X86_SSE_CC_NEQ,
  182. X86_SSE_CC_NLT,
  183. X86_SSE_CC_NLE,
  184. X86_SSE_CC_ORD,
  185. } x86_sse_cc;
  186. /// AVX Code Condition type
  187. typedef enum x86_avx_cc {
  188. X86_AVX_CC_INVALID = 0, ///< Uninitialized.
  189. X86_AVX_CC_EQ,
  190. X86_AVX_CC_LT,
  191. X86_AVX_CC_LE,
  192. X86_AVX_CC_UNORD,
  193. X86_AVX_CC_NEQ,
  194. X86_AVX_CC_NLT,
  195. X86_AVX_CC_NLE,
  196. X86_AVX_CC_ORD,
  197. X86_AVX_CC_EQ_UQ,
  198. X86_AVX_CC_NGE,
  199. X86_AVX_CC_NGT,
  200. X86_AVX_CC_FALSE,
  201. X86_AVX_CC_NEQ_OQ,
  202. X86_AVX_CC_GE,
  203. X86_AVX_CC_GT,
  204. X86_AVX_CC_TRUE,
  205. X86_AVX_CC_EQ_OS,
  206. X86_AVX_CC_LT_OQ,
  207. X86_AVX_CC_LE_OQ,
  208. X86_AVX_CC_UNORD_S,
  209. X86_AVX_CC_NEQ_US,
  210. X86_AVX_CC_NLT_UQ,
  211. X86_AVX_CC_NLE_UQ,
  212. X86_AVX_CC_ORD_S,
  213. X86_AVX_CC_EQ_US,
  214. X86_AVX_CC_NGE_UQ,
  215. X86_AVX_CC_NGT_UQ,
  216. X86_AVX_CC_FALSE_OS,
  217. X86_AVX_CC_NEQ_OS,
  218. X86_AVX_CC_GE_OQ,
  219. X86_AVX_CC_GT_OQ,
  220. X86_AVX_CC_TRUE_US,
  221. } x86_avx_cc;
  222. /// AVX static rounding mode type
  223. typedef enum x86_avx_rm {
  224. X86_AVX_RM_INVALID = 0, ///< Uninitialized.
  225. X86_AVX_RM_RN, ///< Round to nearest
  226. X86_AVX_RM_RD, ///< Round down
  227. X86_AVX_RM_RU, ///< Round up
  228. X86_AVX_RM_RZ, ///< Round toward zero
  229. } x86_avx_rm;
  230. /// Instruction prefixes - to be used in cs_x86.prefix[]
  231. typedef enum x86_prefix {
  232. X86_PREFIX_LOCK = 0xf0, ///< lock (cs_x86.prefix[0]
  233. X86_PREFIX_REP = 0xf3, ///< rep (cs_x86.prefix[0]
  234. X86_PREFIX_REPE = 0xf3, ///< repe/repz (cs_x86.prefix[0]
  235. X86_PREFIX_REPNE = 0xf2, ///< repne/repnz (cs_x86.prefix[0]
  236. X86_PREFIX_CS = 0x2e, ///< segment override CS (cs_x86.prefix[1]
  237. X86_PREFIX_SS = 0x36, ///< segment override SS (cs_x86.prefix[1]
  238. X86_PREFIX_DS = 0x3e, ///< segment override DS (cs_x86.prefix[1]
  239. X86_PREFIX_ES = 0x26, ///< segment override ES (cs_x86.prefix[1]
  240. X86_PREFIX_FS = 0x64, ///< segment override FS (cs_x86.prefix[1]
  241. X86_PREFIX_GS = 0x65, ///< segment override GS (cs_x86.prefix[1]
  242. X86_PREFIX_OPSIZE = 0x66, ///< operand-size override (cs_x86.prefix[2]
  243. X86_PREFIX_ADDRSIZE = 0x67, ///< address-size override (cs_x86.prefix[3]
  244. } x86_prefix;
  245. /// Instruction's operand referring to memory
  246. /// This is associated with X86_OP_MEM operand type above
  247. typedef struct x86_op_mem {
  248. x86_reg segment; ///< segment register (or X86_REG_INVALID if irrelevant)
  249. x86_reg base; ///< base register (or X86_REG_INVALID if irrelevant)
  250. x86_reg index; ///< index register (or X86_REG_INVALID if irrelevant)
  251. int scale; ///< scale for index register
  252. int64_t disp; ///< displacement value
  253. } x86_op_mem;
  254. /// Instruction operand
  255. typedef struct cs_x86_op {
  256. x86_op_type type; ///< operand type
  257. union {
  258. x86_reg reg; ///< register value for REG operand
  259. int64_t imm; ///< immediate value for IMM operand
  260. x86_op_mem mem; ///< base/index/scale/disp value for MEM operand
  261. };
  262. /// size of this operand (in bytes).
  263. uint8_t size;
  264. /// How is this operand accessed? (READ, WRITE or READ|WRITE)
  265. /// This field is combined of cs_ac_type.
  266. /// NOTE: this field is irrelevant if engine is compiled in DIET mode.
  267. uint8_t access;
  268. /// AVX broadcast type, or 0 if irrelevant
  269. x86_avx_bcast avx_bcast;
  270. /// AVX zero opmask {z}
  271. bool avx_zero_opmask;
  272. } cs_x86_op;
  273. typedef struct cs_x86_encoding {
  274. /// ModR/M offset, or 0 when irrelevant
  275. uint8_t modrm_offset;
  276. /// Displacement offset, or 0 when irrelevant.
  277. uint8_t disp_offset;
  278. uint8_t disp_size;
  279. /// Immediate offset, or 0 when irrelevant.
  280. uint8_t imm_offset;
  281. uint8_t imm_size;
  282. } cs_x86_encoding;
  283. /// Instruction structure
  284. typedef struct cs_x86 {
  285. /// Instruction prefix, which can be up to 4 bytes.
  286. /// A prefix byte gets value 0 when irrelevant.
  287. /// prefix[0] indicates REP/REPNE/LOCK prefix (See X86_PREFIX_REP/REPNE/LOCK above)
  288. /// prefix[1] indicates segment override (irrelevant for x86_64):
  289. /// See X86_PREFIX_CS/SS/DS/ES/FS/GS above.
  290. /// prefix[2] indicates operand-size override (X86_PREFIX_OPSIZE)
  291. /// prefix[3] indicates address-size override (X86_PREFIX_ADDRSIZE)
  292. uint8_t prefix[4];
  293. /// Instruction opcode, which can be from 1 to 4 bytes in size.
  294. /// This contains VEX opcode as well.
  295. /// An trailing opcode byte gets value 0 when irrelevant.
  296. uint8_t opcode[4];
  297. /// REX prefix: only a non-zero value is relevant for x86_64
  298. uint8_t rex;
  299. /// Address size, which can be overridden with above prefix[5].
  300. uint8_t addr_size;
  301. /// ModR/M byte
  302. uint8_t modrm;
  303. /// SIB value, or 0 when irrelevant.
  304. uint8_t sib;
  305. /// Displacement value, valid if encoding.disp_offset != 0
  306. int64_t disp;
  307. /// SIB index register, or X86_REG_INVALID when irrelevant.
  308. x86_reg sib_index;
  309. /// SIB scale, only applicable if sib_index is valid.
  310. int8_t sib_scale;
  311. /// SIB base register, or X86_REG_INVALID when irrelevant.
  312. x86_reg sib_base;
  313. /// XOP Code Condition
  314. x86_xop_cc xop_cc;
  315. /// SSE Code Condition
  316. x86_sse_cc sse_cc;
  317. /// AVX Code Condition
  318. x86_avx_cc avx_cc;
  319. /// AVX Suppress all Exception
  320. bool avx_sae;
  321. /// AVX static rounding mode
  322. x86_avx_rm avx_rm;
  323. union {
  324. /// EFLAGS updated by this instruction.
  325. /// This can be formed from OR combination of X86_EFLAGS_* symbols in x86.h
  326. uint64_t eflags;
  327. /// FPU_FLAGS updated by this instruction.
  328. /// This can be formed from OR combination of X86_FPU_FLAGS_* symbols in x86.h
  329. uint64_t fpu_flags;
  330. };
  331. /// Number of operands of this instruction,
  332. /// or 0 when instruction has no operand.
  333. uint8_t op_count;
  334. cs_x86_op operands[8]; ///< operands for this instruction.
  335. cs_x86_encoding encoding; ///< encoding information
  336. } cs_x86;
  337. /// X86 instructions
  338. typedef enum x86_insn {
  339. X86_INS_INVALID = 0,
  340. X86_INS_AAA,
  341. X86_INS_AAD,
  342. X86_INS_AAM,
  343. X86_INS_AAS,
  344. X86_INS_FABS,
  345. X86_INS_ADC,
  346. X86_INS_ADCX,
  347. X86_INS_ADD,
  348. X86_INS_ADDPD,
  349. X86_INS_ADDPS,
  350. X86_INS_ADDSD,
  351. X86_INS_ADDSS,
  352. X86_INS_ADDSUBPD,
  353. X86_INS_ADDSUBPS,
  354. X86_INS_FADD,
  355. X86_INS_FIADD,
  356. X86_INS_FADDP,
  357. X86_INS_ADOX,
  358. X86_INS_AESDECLAST,
  359. X86_INS_AESDEC,
  360. X86_INS_AESENCLAST,
  361. X86_INS_AESENC,
  362. X86_INS_AESIMC,
  363. X86_INS_AESKEYGENASSIST,
  364. X86_INS_AND,
  365. X86_INS_ANDN,
  366. X86_INS_ANDNPD,
  367. X86_INS_ANDNPS,
  368. X86_INS_ANDPD,
  369. X86_INS_ANDPS,
  370. X86_INS_ARPL,
  371. X86_INS_BEXTR,
  372. X86_INS_BLCFILL,
  373. X86_INS_BLCI,
  374. X86_INS_BLCIC,
  375. X86_INS_BLCMSK,
  376. X86_INS_BLCS,
  377. X86_INS_BLENDPD,
  378. X86_INS_BLENDPS,
  379. X86_INS_BLENDVPD,
  380. X86_INS_BLENDVPS,
  381. X86_INS_BLSFILL,
  382. X86_INS_BLSI,
  383. X86_INS_BLSIC,
  384. X86_INS_BLSMSK,
  385. X86_INS_BLSR,
  386. X86_INS_BOUND,
  387. X86_INS_BSF,
  388. X86_INS_BSR,
  389. X86_INS_BSWAP,
  390. X86_INS_BT,
  391. X86_INS_BTC,
  392. X86_INS_BTR,
  393. X86_INS_BTS,
  394. X86_INS_BZHI,
  395. X86_INS_CALL,
  396. X86_INS_CBW,
  397. X86_INS_CDQ,
  398. X86_INS_CDQE,
  399. X86_INS_FCHS,
  400. X86_INS_CLAC,
  401. X86_INS_CLC,
  402. X86_INS_CLD,
  403. X86_INS_CLFLUSH,
  404. X86_INS_CLFLUSHOPT,
  405. X86_INS_CLGI,
  406. X86_INS_CLI,
  407. X86_INS_CLTS,
  408. X86_INS_CLWB,
  409. X86_INS_CMC,
  410. X86_INS_CMOVA,
  411. X86_INS_CMOVAE,
  412. X86_INS_CMOVB,
  413. X86_INS_CMOVBE,
  414. X86_INS_FCMOVBE,
  415. X86_INS_FCMOVB,
  416. X86_INS_CMOVE,
  417. X86_INS_FCMOVE,
  418. X86_INS_CMOVG,
  419. X86_INS_CMOVGE,
  420. X86_INS_CMOVL,
  421. X86_INS_CMOVLE,
  422. X86_INS_FCMOVNBE,
  423. X86_INS_FCMOVNB,
  424. X86_INS_CMOVNE,
  425. X86_INS_FCMOVNE,
  426. X86_INS_CMOVNO,
  427. X86_INS_CMOVNP,
  428. X86_INS_FCMOVNU,
  429. X86_INS_CMOVNS,
  430. X86_INS_CMOVO,
  431. X86_INS_CMOVP,
  432. X86_INS_FCMOVU,
  433. X86_INS_CMOVS,
  434. X86_INS_CMP,
  435. X86_INS_CMPSB,
  436. X86_INS_CMPSQ,
  437. X86_INS_CMPSW,
  438. X86_INS_CMPXCHG16B,
  439. X86_INS_CMPXCHG,
  440. X86_INS_CMPXCHG8B,
  441. X86_INS_COMISD,
  442. X86_INS_COMISS,
  443. X86_INS_FCOMP,
  444. X86_INS_FCOMIP,
  445. X86_INS_FCOMI,
  446. X86_INS_FCOM,
  447. X86_INS_FCOS,
  448. X86_INS_CPUID,
  449. X86_INS_CQO,
  450. X86_INS_CRC32,
  451. X86_INS_CVTDQ2PD,
  452. X86_INS_CVTDQ2PS,
  453. X86_INS_CVTPD2DQ,
  454. X86_INS_CVTPD2PS,
  455. X86_INS_CVTPS2DQ,
  456. X86_INS_CVTPS2PD,
  457. X86_INS_CVTSD2SI,
  458. X86_INS_CVTSD2SS,
  459. X86_INS_CVTSI2SD,
  460. X86_INS_CVTSI2SS,
  461. X86_INS_CVTSS2SD,
  462. X86_INS_CVTSS2SI,
  463. X86_INS_CVTTPD2DQ,
  464. X86_INS_CVTTPS2DQ,
  465. X86_INS_CVTTSD2SI,
  466. X86_INS_CVTTSS2SI,
  467. X86_INS_CWD,
  468. X86_INS_CWDE,
  469. X86_INS_DAA,
  470. X86_INS_DAS,
  471. X86_INS_DATA16,
  472. X86_INS_DEC,
  473. X86_INS_DIV,
  474. X86_INS_DIVPD,
  475. X86_INS_DIVPS,
  476. X86_INS_FDIVR,
  477. X86_INS_FIDIVR,
  478. X86_INS_FDIVRP,
  479. X86_INS_DIVSD,
  480. X86_INS_DIVSS,
  481. X86_INS_FDIV,
  482. X86_INS_FIDIV,
  483. X86_INS_FDIVP,
  484. X86_INS_DPPD,
  485. X86_INS_DPPS,
  486. X86_INS_RET,
  487. X86_INS_ENCLS,
  488. X86_INS_ENCLU,
  489. X86_INS_ENTER,
  490. X86_INS_EXTRACTPS,
  491. X86_INS_EXTRQ,
  492. X86_INS_F2XM1,
  493. X86_INS_LCALL,
  494. X86_INS_LJMP,
  495. X86_INS_FBLD,
  496. X86_INS_FBSTP,
  497. X86_INS_FCOMPP,
  498. X86_INS_FDECSTP,
  499. X86_INS_FEMMS,
  500. X86_INS_FFREE,
  501. X86_INS_FICOM,
  502. X86_INS_FICOMP,
  503. X86_INS_FINCSTP,
  504. X86_INS_FLDCW,
  505. X86_INS_FLDENV,
  506. X86_INS_FLDL2E,
  507. X86_INS_FLDL2T,
  508. X86_INS_FLDLG2,
  509. X86_INS_FLDLN2,
  510. X86_INS_FLDPI,
  511. X86_INS_FNCLEX,
  512. X86_INS_FNINIT,
  513. X86_INS_FNOP,
  514. X86_INS_FNSTCW,
  515. X86_INS_FNSTSW,
  516. X86_INS_FPATAN,
  517. X86_INS_FPREM,
  518. X86_INS_FPREM1,
  519. X86_INS_FPTAN,
  520. X86_INS_FFREEP,
  521. X86_INS_FRNDINT,
  522. X86_INS_FRSTOR,
  523. X86_INS_FNSAVE,
  524. X86_INS_FSCALE,
  525. X86_INS_FSETPM,
  526. X86_INS_FSINCOS,
  527. X86_INS_FNSTENV,
  528. X86_INS_FXAM,
  529. X86_INS_FXRSTOR,
  530. X86_INS_FXRSTOR64,
  531. X86_INS_FXSAVE,
  532. X86_INS_FXSAVE64,
  533. X86_INS_FXTRACT,
  534. X86_INS_FYL2X,
  535. X86_INS_FYL2XP1,
  536. X86_INS_MOVAPD,
  537. X86_INS_MOVAPS,
  538. X86_INS_ORPD,
  539. X86_INS_ORPS,
  540. X86_INS_VMOVAPD,
  541. X86_INS_VMOVAPS,
  542. X86_INS_XORPD,
  543. X86_INS_XORPS,
  544. X86_INS_GETSEC,
  545. X86_INS_HADDPD,
  546. X86_INS_HADDPS,
  547. X86_INS_HLT,
  548. X86_INS_HSUBPD,
  549. X86_INS_HSUBPS,
  550. X86_INS_IDIV,
  551. X86_INS_FILD,
  552. X86_INS_IMUL,
  553. X86_INS_IN,
  554. X86_INS_INC,
  555. X86_INS_INSB,
  556. X86_INS_INSERTPS,
  557. X86_INS_INSERTQ,
  558. X86_INS_INSD,
  559. X86_INS_INSW,
  560. X86_INS_INT,
  561. X86_INS_INT1,
  562. X86_INS_INT3,
  563. X86_INS_INTO,
  564. X86_INS_INVD,
  565. X86_INS_INVEPT,
  566. X86_INS_INVLPG,
  567. X86_INS_INVLPGA,
  568. X86_INS_INVPCID,
  569. X86_INS_INVVPID,
  570. X86_INS_IRET,
  571. X86_INS_IRETD,
  572. X86_INS_IRETQ,
  573. X86_INS_FISTTP,
  574. X86_INS_FIST,
  575. X86_INS_FISTP,
  576. X86_INS_UCOMISD,
  577. X86_INS_UCOMISS,
  578. X86_INS_VCOMISD,
  579. X86_INS_VCOMISS,
  580. X86_INS_VCVTSD2SS,
  581. X86_INS_VCVTSI2SD,
  582. X86_INS_VCVTSI2SS,
  583. X86_INS_VCVTSS2SD,
  584. X86_INS_VCVTTSD2SI,
  585. X86_INS_VCVTTSD2USI,
  586. X86_INS_VCVTTSS2SI,
  587. X86_INS_VCVTTSS2USI,
  588. X86_INS_VCVTUSI2SD,
  589. X86_INS_VCVTUSI2SS,
  590. X86_INS_VUCOMISD,
  591. X86_INS_VUCOMISS,
  592. X86_INS_JAE,
  593. X86_INS_JA,
  594. X86_INS_JBE,
  595. X86_INS_JB,
  596. X86_INS_JCXZ,
  597. X86_INS_JECXZ,
  598. X86_INS_JE,
  599. X86_INS_JGE,
  600. X86_INS_JG,
  601. X86_INS_JLE,
  602. X86_INS_JL,
  603. X86_INS_JMP,
  604. X86_INS_JNE,
  605. X86_INS_JNO,
  606. X86_INS_JNP,
  607. X86_INS_JNS,
  608. X86_INS_JO,
  609. X86_INS_JP,
  610. X86_INS_JRCXZ,
  611. X86_INS_JS,
  612. X86_INS_KANDB,
  613. X86_INS_KANDD,
  614. X86_INS_KANDNB,
  615. X86_INS_KANDND,
  616. X86_INS_KANDNQ,
  617. X86_INS_KANDNW,
  618. X86_INS_KANDQ,
  619. X86_INS_KANDW,
  620. X86_INS_KMOVB,
  621. X86_INS_KMOVD,
  622. X86_INS_KMOVQ,
  623. X86_INS_KMOVW,
  624. X86_INS_KNOTB,
  625. X86_INS_KNOTD,
  626. X86_INS_KNOTQ,
  627. X86_INS_KNOTW,
  628. X86_INS_KORB,
  629. X86_INS_KORD,
  630. X86_INS_KORQ,
  631. X86_INS_KORTESTB,
  632. X86_INS_KORTESTD,
  633. X86_INS_KORTESTQ,
  634. X86_INS_KORTESTW,
  635. X86_INS_KORW,
  636. X86_INS_KSHIFTLB,
  637. X86_INS_KSHIFTLD,
  638. X86_INS_KSHIFTLQ,
  639. X86_INS_KSHIFTLW,
  640. X86_INS_KSHIFTRB,
  641. X86_INS_KSHIFTRD,
  642. X86_INS_KSHIFTRQ,
  643. X86_INS_KSHIFTRW,
  644. X86_INS_KUNPCKBW,
  645. X86_INS_KXNORB,
  646. X86_INS_KXNORD,
  647. X86_INS_KXNORQ,
  648. X86_INS_KXNORW,
  649. X86_INS_KXORB,
  650. X86_INS_KXORD,
  651. X86_INS_KXORQ,
  652. X86_INS_KXORW,
  653. X86_INS_LAHF,
  654. X86_INS_LAR,
  655. X86_INS_LDDQU,
  656. X86_INS_LDMXCSR,
  657. X86_INS_LDS,
  658. X86_INS_FLDZ,
  659. X86_INS_FLD1,
  660. X86_INS_FLD,
  661. X86_INS_LEA,
  662. X86_INS_LEAVE,
  663. X86_INS_LES,
  664. X86_INS_LFENCE,
  665. X86_INS_LFS,
  666. X86_INS_LGDT,
  667. X86_INS_LGS,
  668. X86_INS_LIDT,
  669. X86_INS_LLDT,
  670. X86_INS_LMSW,
  671. X86_INS_OR,
  672. X86_INS_SUB,
  673. X86_INS_XOR,
  674. X86_INS_LODSB,
  675. X86_INS_LODSD,
  676. X86_INS_LODSQ,
  677. X86_INS_LODSW,
  678. X86_INS_LOOP,
  679. X86_INS_LOOPE,
  680. X86_INS_LOOPNE,
  681. X86_INS_RETF,
  682. X86_INS_RETFQ,
  683. X86_INS_LSL,
  684. X86_INS_LSS,
  685. X86_INS_LTR,
  686. X86_INS_XADD,
  687. X86_INS_LZCNT,
  688. X86_INS_MASKMOVDQU,
  689. X86_INS_MAXPD,
  690. X86_INS_MAXPS,
  691. X86_INS_MAXSD,
  692. X86_INS_MAXSS,
  693. X86_INS_MFENCE,
  694. X86_INS_MINPD,
  695. X86_INS_MINPS,
  696. X86_INS_MINSD,
  697. X86_INS_MINSS,
  698. X86_INS_CVTPD2PI,
  699. X86_INS_CVTPI2PD,
  700. X86_INS_CVTPI2PS,
  701. X86_INS_CVTPS2PI,
  702. X86_INS_CVTTPD2PI,
  703. X86_INS_CVTTPS2PI,
  704. X86_INS_EMMS,
  705. X86_INS_MASKMOVQ,
  706. X86_INS_MOVD,
  707. X86_INS_MOVDQ2Q,
  708. X86_INS_MOVNTQ,
  709. X86_INS_MOVQ2DQ,
  710. X86_INS_MOVQ,
  711. X86_INS_PABSB,
  712. X86_INS_PABSD,
  713. X86_INS_PABSW,
  714. X86_INS_PACKSSDW,
  715. X86_INS_PACKSSWB,
  716. X86_INS_PACKUSWB,
  717. X86_INS_PADDB,
  718. X86_INS_PADDD,
  719. X86_INS_PADDQ,
  720. X86_INS_PADDSB,
  721. X86_INS_PADDSW,
  722. X86_INS_PADDUSB,
  723. X86_INS_PADDUSW,
  724. X86_INS_PADDW,
  725. X86_INS_PALIGNR,
  726. X86_INS_PANDN,
  727. X86_INS_PAND,
  728. X86_INS_PAVGB,
  729. X86_INS_PAVGW,
  730. X86_INS_PCMPEQB,
  731. X86_INS_PCMPEQD,
  732. X86_INS_PCMPEQW,
  733. X86_INS_PCMPGTB,
  734. X86_INS_PCMPGTD,
  735. X86_INS_PCMPGTW,
  736. X86_INS_PEXTRW,
  737. X86_INS_PHADDSW,
  738. X86_INS_PHADDW,
  739. X86_INS_PHADDD,
  740. X86_INS_PHSUBD,
  741. X86_INS_PHSUBSW,
  742. X86_INS_PHSUBW,
  743. X86_INS_PINSRW,
  744. X86_INS_PMADDUBSW,
  745. X86_INS_PMADDWD,
  746. X86_INS_PMAXSW,
  747. X86_INS_PMAXUB,
  748. X86_INS_PMINSW,
  749. X86_INS_PMINUB,
  750. X86_INS_PMOVMSKB,
  751. X86_INS_PMULHRSW,
  752. X86_INS_PMULHUW,
  753. X86_INS_PMULHW,
  754. X86_INS_PMULLW,
  755. X86_INS_PMULUDQ,
  756. X86_INS_POR,
  757. X86_INS_PSADBW,
  758. X86_INS_PSHUFB,
  759. X86_INS_PSHUFW,
  760. X86_INS_PSIGNB,
  761. X86_INS_PSIGND,
  762. X86_INS_PSIGNW,
  763. X86_INS_PSLLD,
  764. X86_INS_PSLLQ,
  765. X86_INS_PSLLW,
  766. X86_INS_PSRAD,
  767. X86_INS_PSRAW,
  768. X86_INS_PSRLD,
  769. X86_INS_PSRLQ,
  770. X86_INS_PSRLW,
  771. X86_INS_PSUBB,
  772. X86_INS_PSUBD,
  773. X86_INS_PSUBQ,
  774. X86_INS_PSUBSB,
  775. X86_INS_PSUBSW,
  776. X86_INS_PSUBUSB,
  777. X86_INS_PSUBUSW,
  778. X86_INS_PSUBW,
  779. X86_INS_PUNPCKHBW,
  780. X86_INS_PUNPCKHDQ,
  781. X86_INS_PUNPCKHWD,
  782. X86_INS_PUNPCKLBW,
  783. X86_INS_PUNPCKLDQ,
  784. X86_INS_PUNPCKLWD,
  785. X86_INS_PXOR,
  786. X86_INS_MONITOR,
  787. X86_INS_MONTMUL,
  788. X86_INS_MOV,
  789. X86_INS_MOVABS,
  790. X86_INS_MOVBE,
  791. X86_INS_MOVDDUP,
  792. X86_INS_MOVDQA,
  793. X86_INS_MOVDQU,
  794. X86_INS_MOVHLPS,
  795. X86_INS_MOVHPD,
  796. X86_INS_MOVHPS,
  797. X86_INS_MOVLHPS,
  798. X86_INS_MOVLPD,
  799. X86_INS_MOVLPS,
  800. X86_INS_MOVMSKPD,
  801. X86_INS_MOVMSKPS,
  802. X86_INS_MOVNTDQA,
  803. X86_INS_MOVNTDQ,
  804. X86_INS_MOVNTI,
  805. X86_INS_MOVNTPD,
  806. X86_INS_MOVNTPS,
  807. X86_INS_MOVNTSD,
  808. X86_INS_MOVNTSS,
  809. X86_INS_MOVSB,
  810. X86_INS_MOVSD,
  811. X86_INS_MOVSHDUP,
  812. X86_INS_MOVSLDUP,
  813. X86_INS_MOVSQ,
  814. X86_INS_MOVSS,
  815. X86_INS_MOVSW,
  816. X86_INS_MOVSX,
  817. X86_INS_MOVSXD,
  818. X86_INS_MOVUPD,
  819. X86_INS_MOVUPS,
  820. X86_INS_MOVZX,
  821. X86_INS_MPSADBW,
  822. X86_INS_MUL,
  823. X86_INS_MULPD,
  824. X86_INS_MULPS,
  825. X86_INS_MULSD,
  826. X86_INS_MULSS,
  827. X86_INS_MULX,
  828. X86_INS_FMUL,
  829. X86_INS_FIMUL,
  830. X86_INS_FMULP,
  831. X86_INS_MWAIT,
  832. X86_INS_NEG,
  833. X86_INS_NOP,
  834. X86_INS_NOT,
  835. X86_INS_OUT,
  836. X86_INS_OUTSB,
  837. X86_INS_OUTSD,
  838. X86_INS_OUTSW,
  839. X86_INS_PACKUSDW,
  840. X86_INS_PAUSE,
  841. X86_INS_PAVGUSB,
  842. X86_INS_PBLENDVB,
  843. X86_INS_PBLENDW,
  844. X86_INS_PCLMULQDQ,
  845. X86_INS_PCMPEQQ,
  846. X86_INS_PCMPESTRI,
  847. X86_INS_PCMPESTRM,
  848. X86_INS_PCMPGTQ,
  849. X86_INS_PCMPISTRI,
  850. X86_INS_PCMPISTRM,
  851. X86_INS_PCOMMIT,
  852. X86_INS_PDEP,
  853. X86_INS_PEXT,
  854. X86_INS_PEXTRB,
  855. X86_INS_PEXTRD,
  856. X86_INS_PEXTRQ,
  857. X86_INS_PF2ID,
  858. X86_INS_PF2IW,
  859. X86_INS_PFACC,
  860. X86_INS_PFADD,
  861. X86_INS_PFCMPEQ,
  862. X86_INS_PFCMPGE,
  863. X86_INS_PFCMPGT,
  864. X86_INS_PFMAX,
  865. X86_INS_PFMIN,
  866. X86_INS_PFMUL,
  867. X86_INS_PFNACC,
  868. X86_INS_PFPNACC,
  869. X86_INS_PFRCPIT1,
  870. X86_INS_PFRCPIT2,
  871. X86_INS_PFRCP,
  872. X86_INS_PFRSQIT1,
  873. X86_INS_PFRSQRT,
  874. X86_INS_PFSUBR,
  875. X86_INS_PFSUB,
  876. X86_INS_PHMINPOSUW,
  877. X86_INS_PI2FD,
  878. X86_INS_PI2FW,
  879. X86_INS_PINSRB,
  880. X86_INS_PINSRD,
  881. X86_INS_PINSRQ,
  882. X86_INS_PMAXSB,
  883. X86_INS_PMAXSD,
  884. X86_INS_PMAXUD,
  885. X86_INS_PMAXUW,
  886. X86_INS_PMINSB,
  887. X86_INS_PMINSD,
  888. X86_INS_PMINUD,
  889. X86_INS_PMINUW,
  890. X86_INS_PMOVSXBD,
  891. X86_INS_PMOVSXBQ,
  892. X86_INS_PMOVSXBW,
  893. X86_INS_PMOVSXDQ,
  894. X86_INS_PMOVSXWD,
  895. X86_INS_PMOVSXWQ,
  896. X86_INS_PMOVZXBD,
  897. X86_INS_PMOVZXBQ,
  898. X86_INS_PMOVZXBW,
  899. X86_INS_PMOVZXDQ,
  900. X86_INS_PMOVZXWD,
  901. X86_INS_PMOVZXWQ,
  902. X86_INS_PMULDQ,
  903. X86_INS_PMULHRW,
  904. X86_INS_PMULLD,
  905. X86_INS_POP,
  906. X86_INS_POPAW,
  907. X86_INS_POPAL,
  908. X86_INS_POPCNT,
  909. X86_INS_POPF,
  910. X86_INS_POPFD,
  911. X86_INS_POPFQ,
  912. X86_INS_PREFETCH,
  913. X86_INS_PREFETCHNTA,
  914. X86_INS_PREFETCHT0,
  915. X86_INS_PREFETCHT1,
  916. X86_INS_PREFETCHT2,
  917. X86_INS_PREFETCHW,
  918. X86_INS_PSHUFD,
  919. X86_INS_PSHUFHW,
  920. X86_INS_PSHUFLW,
  921. X86_INS_PSLLDQ,
  922. X86_INS_PSRLDQ,
  923. X86_INS_PSWAPD,
  924. X86_INS_PTEST,
  925. X86_INS_PUNPCKHQDQ,
  926. X86_INS_PUNPCKLQDQ,
  927. X86_INS_PUSH,
  928. X86_INS_PUSHAW,
  929. X86_INS_PUSHAL,
  930. X86_INS_PUSHF,
  931. X86_INS_PUSHFD,
  932. X86_INS_PUSHFQ,
  933. X86_INS_RCL,
  934. X86_INS_RCPPS,
  935. X86_INS_RCPSS,
  936. X86_INS_RCR,
  937. X86_INS_RDFSBASE,
  938. X86_INS_RDGSBASE,
  939. X86_INS_RDMSR,
  940. X86_INS_RDPMC,
  941. X86_INS_RDRAND,
  942. X86_INS_RDSEED,
  943. X86_INS_RDTSC,
  944. X86_INS_RDTSCP,
  945. X86_INS_ROL,
  946. X86_INS_ROR,
  947. X86_INS_RORX,
  948. X86_INS_ROUNDPD,
  949. X86_INS_ROUNDPS,
  950. X86_INS_ROUNDSD,
  951. X86_INS_ROUNDSS,
  952. X86_INS_RSM,
  953. X86_INS_RSQRTPS,
  954. X86_INS_RSQRTSS,
  955. X86_INS_SAHF,
  956. X86_INS_SAL,
  957. X86_INS_SALC,
  958. X86_INS_SAR,
  959. X86_INS_SARX,
  960. X86_INS_SBB,
  961. X86_INS_SCASB,
  962. X86_INS_SCASD,
  963. X86_INS_SCASQ,
  964. X86_INS_SCASW,
  965. X86_INS_SETAE,
  966. X86_INS_SETA,
  967. X86_INS_SETBE,
  968. X86_INS_SETB,
  969. X86_INS_SETE,
  970. X86_INS_SETGE,
  971. X86_INS_SETG,
  972. X86_INS_SETLE,
  973. X86_INS_SETL,
  974. X86_INS_SETNE,
  975. X86_INS_SETNO,
  976. X86_INS_SETNP,
  977. X86_INS_SETNS,
  978. X86_INS_SETO,
  979. X86_INS_SETP,
  980. X86_INS_SETS,
  981. X86_INS_SFENCE,
  982. X86_INS_SGDT,
  983. X86_INS_SHA1MSG1,
  984. X86_INS_SHA1MSG2,
  985. X86_INS_SHA1NEXTE,
  986. X86_INS_SHA1RNDS4,
  987. X86_INS_SHA256MSG1,
  988. X86_INS_SHA256MSG2,
  989. X86_INS_SHA256RNDS2,
  990. X86_INS_SHL,
  991. X86_INS_SHLD,
  992. X86_INS_SHLX,
  993. X86_INS_SHR,
  994. X86_INS_SHRD,
  995. X86_INS_SHRX,
  996. X86_INS_SHUFPD,
  997. X86_INS_SHUFPS,
  998. X86_INS_SIDT,
  999. X86_INS_FSIN,
  1000. X86_INS_SKINIT,
  1001. X86_INS_SLDT,
  1002. X86_INS_SMSW,
  1003. X86_INS_SQRTPD,
  1004. X86_INS_SQRTPS,
  1005. X86_INS_SQRTSD,
  1006. X86_INS_SQRTSS,
  1007. X86_INS_FSQRT,
  1008. X86_INS_STAC,
  1009. X86_INS_STC,
  1010. X86_INS_STD,
  1011. X86_INS_STGI,
  1012. X86_INS_STI,
  1013. X86_INS_STMXCSR,
  1014. X86_INS_STOSB,
  1015. X86_INS_STOSD,
  1016. X86_INS_STOSQ,
  1017. X86_INS_STOSW,
  1018. X86_INS_STR,
  1019. X86_INS_FST,
  1020. X86_INS_FSTP,
  1021. X86_INS_FSTPNCE,
  1022. X86_INS_FXCH,
  1023. X86_INS_SUBPD,
  1024. X86_INS_SUBPS,
  1025. X86_INS_FSUBR,
  1026. X86_INS_FISUBR,
  1027. X86_INS_FSUBRP,
  1028. X86_INS_SUBSD,
  1029. X86_INS_SUBSS,
  1030. X86_INS_FSUB,
  1031. X86_INS_FISUB,
  1032. X86_INS_FSUBP,
  1033. X86_INS_SWAPGS,
  1034. X86_INS_SYSCALL,
  1035. X86_INS_SYSENTER,
  1036. X86_INS_SYSEXIT,
  1037. X86_INS_SYSRET,
  1038. X86_INS_T1MSKC,
  1039. X86_INS_TEST,
  1040. X86_INS_UD2,
  1041. X86_INS_FTST,
  1042. X86_INS_TZCNT,
  1043. X86_INS_TZMSK,
  1044. X86_INS_FUCOMIP,
  1045. X86_INS_FUCOMI,
  1046. X86_INS_FUCOMPP,
  1047. X86_INS_FUCOMP,
  1048. X86_INS_FUCOM,
  1049. X86_INS_UD2B,
  1050. X86_INS_UNPCKHPD,
  1051. X86_INS_UNPCKHPS,
  1052. X86_INS_UNPCKLPD,
  1053. X86_INS_UNPCKLPS,
  1054. X86_INS_VADDPD,
  1055. X86_INS_VADDPS,
  1056. X86_INS_VADDSD,
  1057. X86_INS_VADDSS,
  1058. X86_INS_VADDSUBPD,
  1059. X86_INS_VADDSUBPS,
  1060. X86_INS_VAESDECLAST,
  1061. X86_INS_VAESDEC,
  1062. X86_INS_VAESENCLAST,
  1063. X86_INS_VAESENC,
  1064. X86_INS_VAESIMC,
  1065. X86_INS_VAESKEYGENASSIST,
  1066. X86_INS_VALIGND,
  1067. X86_INS_VALIGNQ,
  1068. X86_INS_VANDNPD,
  1069. X86_INS_VANDNPS,
  1070. X86_INS_VANDPD,
  1071. X86_INS_VANDPS,
  1072. X86_INS_VBLENDMPD,
  1073. X86_INS_VBLENDMPS,
  1074. X86_INS_VBLENDPD,
  1075. X86_INS_VBLENDPS,
  1076. X86_INS_VBLENDVPD,
  1077. X86_INS_VBLENDVPS,
  1078. X86_INS_VBROADCASTF128,
  1079. X86_INS_VBROADCASTI32X4,
  1080. X86_INS_VBROADCASTI64X4,
  1081. X86_INS_VBROADCASTSD,
  1082. X86_INS_VBROADCASTSS,
  1083. X86_INS_VCOMPRESSPD,
  1084. X86_INS_VCOMPRESSPS,
  1085. X86_INS_VCVTDQ2PD,
  1086. X86_INS_VCVTDQ2PS,
  1087. X86_INS_VCVTPD2DQX,
  1088. X86_INS_VCVTPD2DQ,
  1089. X86_INS_VCVTPD2PSX,
  1090. X86_INS_VCVTPD2PS,
  1091. X86_INS_VCVTPD2UDQ,
  1092. X86_INS_VCVTPH2PS,
  1093. X86_INS_VCVTPS2DQ,
  1094. X86_INS_VCVTPS2PD,
  1095. X86_INS_VCVTPS2PH,
  1096. X86_INS_VCVTPS2UDQ,
  1097. X86_INS_VCVTSD2SI,
  1098. X86_INS_VCVTSD2USI,
  1099. X86_INS_VCVTSS2SI,
  1100. X86_INS_VCVTSS2USI,
  1101. X86_INS_VCVTTPD2DQX,
  1102. X86_INS_VCVTTPD2DQ,
  1103. X86_INS_VCVTTPD2UDQ,
  1104. X86_INS_VCVTTPS2DQ,
  1105. X86_INS_VCVTTPS2UDQ,
  1106. X86_INS_VCVTUDQ2PD,
  1107. X86_INS_VCVTUDQ2PS,
  1108. X86_INS_VDIVPD,
  1109. X86_INS_VDIVPS,
  1110. X86_INS_VDIVSD,
  1111. X86_INS_VDIVSS,
  1112. X86_INS_VDPPD,
  1113. X86_INS_VDPPS,
  1114. X86_INS_VERR,
  1115. X86_INS_VERW,
  1116. X86_INS_VEXP2PD,
  1117. X86_INS_VEXP2PS,
  1118. X86_INS_VEXPANDPD,
  1119. X86_INS_VEXPANDPS,
  1120. X86_INS_VEXTRACTF128,
  1121. X86_INS_VEXTRACTF32X4,
  1122. X86_INS_VEXTRACTF64X4,
  1123. X86_INS_VEXTRACTI128,
  1124. X86_INS_VEXTRACTI32X4,
  1125. X86_INS_VEXTRACTI64X4,
  1126. X86_INS_VEXTRACTPS,
  1127. X86_INS_VFMADD132PD,
  1128. X86_INS_VFMADD132PS,
  1129. X86_INS_VFMADDPD,
  1130. X86_INS_VFMADD213PD,
  1131. X86_INS_VFMADD231PD,
  1132. X86_INS_VFMADDPS,
  1133. X86_INS_VFMADD213PS,
  1134. X86_INS_VFMADD231PS,
  1135. X86_INS_VFMADDSD,
  1136. X86_INS_VFMADD213SD,
  1137. X86_INS_VFMADD132SD,
  1138. X86_INS_VFMADD231SD,
  1139. X86_INS_VFMADDSS,
  1140. X86_INS_VFMADD213SS,
  1141. X86_INS_VFMADD132SS,
  1142. X86_INS_VFMADD231SS,
  1143. X86_INS_VFMADDSUB132PD,
  1144. X86_INS_VFMADDSUB132PS,
  1145. X86_INS_VFMADDSUBPD,
  1146. X86_INS_VFMADDSUB213PD,
  1147. X86_INS_VFMADDSUB231PD,
  1148. X86_INS_VFMADDSUBPS,
  1149. X86_INS_VFMADDSUB213PS,
  1150. X86_INS_VFMADDSUB231PS,
  1151. X86_INS_VFMSUB132PD,
  1152. X86_INS_VFMSUB132PS,
  1153. X86_INS_VFMSUBADD132PD,
  1154. X86_INS_VFMSUBADD132PS,
  1155. X86_INS_VFMSUBADDPD,
  1156. X86_INS_VFMSUBADD213PD,
  1157. X86_INS_VFMSUBADD231PD,
  1158. X86_INS_VFMSUBADDPS,
  1159. X86_INS_VFMSUBADD213PS,
  1160. X86_INS_VFMSUBADD231PS,
  1161. X86_INS_VFMSUBPD,
  1162. X86_INS_VFMSUB213PD,
  1163. X86_INS_VFMSUB231PD,
  1164. X86_INS_VFMSUBPS,
  1165. X86_INS_VFMSUB213PS,
  1166. X86_INS_VFMSUB231PS,
  1167. X86_INS_VFMSUBSD,
  1168. X86_INS_VFMSUB213SD,
  1169. X86_INS_VFMSUB132SD,
  1170. X86_INS_VFMSUB231SD,
  1171. X86_INS_VFMSUBSS,
  1172. X86_INS_VFMSUB213SS,
  1173. X86_INS_VFMSUB132SS,
  1174. X86_INS_VFMSUB231SS,
  1175. X86_INS_VFNMADD132PD,
  1176. X86_INS_VFNMADD132PS,
  1177. X86_INS_VFNMADDPD,
  1178. X86_INS_VFNMADD213PD,
  1179. X86_INS_VFNMADD231PD,
  1180. X86_INS_VFNMADDPS,
  1181. X86_INS_VFNMADD213PS,
  1182. X86_INS_VFNMADD231PS,
  1183. X86_INS_VFNMADDSD,
  1184. X86_INS_VFNMADD213SD,
  1185. X86_INS_VFNMADD132SD,
  1186. X86_INS_VFNMADD231SD,
  1187. X86_INS_VFNMADDSS,
  1188. X86_INS_VFNMADD213SS,
  1189. X86_INS_VFNMADD132SS,
  1190. X86_INS_VFNMADD231SS,
  1191. X86_INS_VFNMSUB132PD,
  1192. X86_INS_VFNMSUB132PS,
  1193. X86_INS_VFNMSUBPD,
  1194. X86_INS_VFNMSUB213PD,
  1195. X86_INS_VFNMSUB231PD,
  1196. X86_INS_VFNMSUBPS,
  1197. X86_INS_VFNMSUB213PS,
  1198. X86_INS_VFNMSUB231PS,
  1199. X86_INS_VFNMSUBSD,
  1200. X86_INS_VFNMSUB213SD,
  1201. X86_INS_VFNMSUB132SD,
  1202. X86_INS_VFNMSUB231SD,
  1203. X86_INS_VFNMSUBSS,
  1204. X86_INS_VFNMSUB213SS,
  1205. X86_INS_VFNMSUB132SS,
  1206. X86_INS_VFNMSUB231SS,
  1207. X86_INS_VFRCZPD,
  1208. X86_INS_VFRCZPS,
  1209. X86_INS_VFRCZSD,
  1210. X86_INS_VFRCZSS,
  1211. X86_INS_VORPD,
  1212. X86_INS_VORPS,
  1213. X86_INS_VXORPD,
  1214. X86_INS_VXORPS,
  1215. X86_INS_VGATHERDPD,
  1216. X86_INS_VGATHERDPS,
  1217. X86_INS_VGATHERPF0DPD,
  1218. X86_INS_VGATHERPF0DPS,
  1219. X86_INS_VGATHERPF0QPD,
  1220. X86_INS_VGATHERPF0QPS,
  1221. X86_INS_VGATHERPF1DPD,
  1222. X86_INS_VGATHERPF1DPS,
  1223. X86_INS_VGATHERPF1QPD,
  1224. X86_INS_VGATHERPF1QPS,
  1225. X86_INS_VGATHERQPD,
  1226. X86_INS_VGATHERQPS,
  1227. X86_INS_VHADDPD,
  1228. X86_INS_VHADDPS,
  1229. X86_INS_VHSUBPD,
  1230. X86_INS_VHSUBPS,
  1231. X86_INS_VINSERTF128,
  1232. X86_INS_VINSERTF32X4,
  1233. X86_INS_VINSERTF32X8,
  1234. X86_INS_VINSERTF64X2,
  1235. X86_INS_VINSERTF64X4,
  1236. X86_INS_VINSERTI128,
  1237. X86_INS_VINSERTI32X4,
  1238. X86_INS_VINSERTI32X8,
  1239. X86_INS_VINSERTI64X2,
  1240. X86_INS_VINSERTI64X4,
  1241. X86_INS_VINSERTPS,
  1242. X86_INS_VLDDQU,
  1243. X86_INS_VLDMXCSR,
  1244. X86_INS_VMASKMOVDQU,
  1245. X86_INS_VMASKMOVPD,
  1246. X86_INS_VMASKMOVPS,
  1247. X86_INS_VMAXPD,
  1248. X86_INS_VMAXPS,
  1249. X86_INS_VMAXSD,
  1250. X86_INS_VMAXSS,
  1251. X86_INS_VMCALL,
  1252. X86_INS_VMCLEAR,
  1253. X86_INS_VMFUNC,
  1254. X86_INS_VMINPD,
  1255. X86_INS_VMINPS,
  1256. X86_INS_VMINSD,
  1257. X86_INS_VMINSS,
  1258. X86_INS_VMLAUNCH,
  1259. X86_INS_VMLOAD,
  1260. X86_INS_VMMCALL,
  1261. X86_INS_VMOVQ,
  1262. X86_INS_VMOVDDUP,
  1263. X86_INS_VMOVD,
  1264. X86_INS_VMOVDQA32,
  1265. X86_INS_VMOVDQA64,
  1266. X86_INS_VMOVDQA,
  1267. X86_INS_VMOVDQU16,
  1268. X86_INS_VMOVDQU32,
  1269. X86_INS_VMOVDQU64,
  1270. X86_INS_VMOVDQU8,
  1271. X86_INS_VMOVDQU,
  1272. X86_INS_VMOVHLPS,
  1273. X86_INS_VMOVHPD,
  1274. X86_INS_VMOVHPS,
  1275. X86_INS_VMOVLHPS,
  1276. X86_INS_VMOVLPD,
  1277. X86_INS_VMOVLPS,
  1278. X86_INS_VMOVMSKPD,
  1279. X86_INS_VMOVMSKPS,
  1280. X86_INS_VMOVNTDQA,
  1281. X86_INS_VMOVNTDQ,
  1282. X86_INS_VMOVNTPD,
  1283. X86_INS_VMOVNTPS,
  1284. X86_INS_VMOVSD,
  1285. X86_INS_VMOVSHDUP,
  1286. X86_INS_VMOVSLDUP,
  1287. X86_INS_VMOVSS,
  1288. X86_INS_VMOVUPD,
  1289. X86_INS_VMOVUPS,
  1290. X86_INS_VMPSADBW,
  1291. X86_INS_VMPTRLD,
  1292. X86_INS_VMPTRST,
  1293. X86_INS_VMREAD,
  1294. X86_INS_VMRESUME,
  1295. X86_INS_VMRUN,
  1296. X86_INS_VMSAVE,
  1297. X86_INS_VMULPD,
  1298. X86_INS_VMULPS,
  1299. X86_INS_VMULSD,
  1300. X86_INS_VMULSS,
  1301. X86_INS_VMWRITE,
  1302. X86_INS_VMXOFF,
  1303. X86_INS_VMXON,
  1304. X86_INS_VPABSB,
  1305. X86_INS_VPABSD,
  1306. X86_INS_VPABSQ,
  1307. X86_INS_VPABSW,
  1308. X86_INS_VPACKSSDW,
  1309. X86_INS_VPACKSSWB,
  1310. X86_INS_VPACKUSDW,
  1311. X86_INS_VPACKUSWB,
  1312. X86_INS_VPADDB,
  1313. X86_INS_VPADDD,
  1314. X86_INS_VPADDQ,
  1315. X86_INS_VPADDSB,
  1316. X86_INS_VPADDSW,
  1317. X86_INS_VPADDUSB,
  1318. X86_INS_VPADDUSW,
  1319. X86_INS_VPADDW,
  1320. X86_INS_VPALIGNR,
  1321. X86_INS_VPANDD,
  1322. X86_INS_VPANDND,
  1323. X86_INS_VPANDNQ,
  1324. X86_INS_VPANDN,
  1325. X86_INS_VPANDQ,
  1326. X86_INS_VPAND,
  1327. X86_INS_VPAVGB,
  1328. X86_INS_VPAVGW,
  1329. X86_INS_VPBLENDD,
  1330. X86_INS_VPBLENDMB,
  1331. X86_INS_VPBLENDMD,
  1332. X86_INS_VPBLENDMQ,
  1333. X86_INS_VPBLENDMW,
  1334. X86_INS_VPBLENDVB,
  1335. X86_INS_VPBLENDW,
  1336. X86_INS_VPBROADCASTB,
  1337. X86_INS_VPBROADCASTD,
  1338. X86_INS_VPBROADCASTMB2Q,
  1339. X86_INS_VPBROADCASTMW2D,
  1340. X86_INS_VPBROADCASTQ,
  1341. X86_INS_VPBROADCASTW,
  1342. X86_INS_VPCLMULQDQ,
  1343. X86_INS_VPCMOV,
  1344. X86_INS_VPCMPB,
  1345. X86_INS_VPCMPD,
  1346. X86_INS_VPCMPEQB,
  1347. X86_INS_VPCMPEQD,
  1348. X86_INS_VPCMPEQQ,
  1349. X86_INS_VPCMPEQW,
  1350. X86_INS_VPCMPESTRI,
  1351. X86_INS_VPCMPESTRM,
  1352. X86_INS_VPCMPGTB,
  1353. X86_INS_VPCMPGTD,
  1354. X86_INS_VPCMPGTQ,
  1355. X86_INS_VPCMPGTW,
  1356. X86_INS_VPCMPISTRI,
  1357. X86_INS_VPCMPISTRM,
  1358. X86_INS_VPCMPQ,
  1359. X86_INS_VPCMPUB,
  1360. X86_INS_VPCMPUD,
  1361. X86_INS_VPCMPUQ,
  1362. X86_INS_VPCMPUW,
  1363. X86_INS_VPCMPW,
  1364. X86_INS_VPCOMB,
  1365. X86_INS_VPCOMD,
  1366. X86_INS_VPCOMPRESSD,
  1367. X86_INS_VPCOMPRESSQ,
  1368. X86_INS_VPCOMQ,
  1369. X86_INS_VPCOMUB,
  1370. X86_INS_VPCOMUD,
  1371. X86_INS_VPCOMUQ,
  1372. X86_INS_VPCOMUW,
  1373. X86_INS_VPCOMW,
  1374. X86_INS_VPCONFLICTD,
  1375. X86_INS_VPCONFLICTQ,
  1376. X86_INS_VPERM2F128,
  1377. X86_INS_VPERM2I128,
  1378. X86_INS_VPERMD,
  1379. X86_INS_VPERMI2D,
  1380. X86_INS_VPERMI2PD,
  1381. X86_INS_VPERMI2PS,
  1382. X86_INS_VPERMI2Q,
  1383. X86_INS_VPERMIL2PD,
  1384. X86_INS_VPERMIL2PS,
  1385. X86_INS_VPERMILPD,
  1386. X86_INS_VPERMILPS,
  1387. X86_INS_VPERMPD,
  1388. X86_INS_VPERMPS,
  1389. X86_INS_VPERMQ,
  1390. X86_INS_VPERMT2D,
  1391. X86_INS_VPERMT2PD,
  1392. X86_INS_VPERMT2PS,
  1393. X86_INS_VPERMT2Q,
  1394. X86_INS_VPEXPANDD,
  1395. X86_INS_VPEXPANDQ,
  1396. X86_INS_VPEXTRB,
  1397. X86_INS_VPEXTRD,
  1398. X86_INS_VPEXTRQ,
  1399. X86_INS_VPEXTRW,
  1400. X86_INS_VPGATHERDD,
  1401. X86_INS_VPGATHERDQ,
  1402. X86_INS_VPGATHERQD,
  1403. X86_INS_VPGATHERQQ,
  1404. X86_INS_VPHADDBD,
  1405. X86_INS_VPHADDBQ,
  1406. X86_INS_VPHADDBW,
  1407. X86_INS_VPHADDDQ,
  1408. X86_INS_VPHADDD,
  1409. X86_INS_VPHADDSW,
  1410. X86_INS_VPHADDUBD,
  1411. X86_INS_VPHADDUBQ,
  1412. X86_INS_VPHADDUBW,
  1413. X86_INS_VPHADDUDQ,
  1414. X86_INS_VPHADDUWD,
  1415. X86_INS_VPHADDUWQ,
  1416. X86_INS_VPHADDWD,
  1417. X86_INS_VPHADDWQ,
  1418. X86_INS_VPHADDW,
  1419. X86_INS_VPHMINPOSUW,
  1420. X86_INS_VPHSUBBW,
  1421. X86_INS_VPHSUBDQ,
  1422. X86_INS_VPHSUBD,
  1423. X86_INS_VPHSUBSW,
  1424. X86_INS_VPHSUBWD,
  1425. X86_INS_VPHSUBW,
  1426. X86_INS_VPINSRB,
  1427. X86_INS_VPINSRD,
  1428. X86_INS_VPINSRQ,
  1429. X86_INS_VPINSRW,
  1430. X86_INS_VPLZCNTD,
  1431. X86_INS_VPLZCNTQ,
  1432. X86_INS_VPMACSDD,
  1433. X86_INS_VPMACSDQH,
  1434. X86_INS_VPMACSDQL,
  1435. X86_INS_VPMACSSDD,
  1436. X86_INS_VPMACSSDQH,
  1437. X86_INS_VPMACSSDQL,
  1438. X86_INS_VPMACSSWD,
  1439. X86_INS_VPMACSSWW,
  1440. X86_INS_VPMACSWD,
  1441. X86_INS_VPMACSWW,
  1442. X86_INS_VPMADCSSWD,
  1443. X86_INS_VPMADCSWD,
  1444. X86_INS_VPMADDUBSW,
  1445. X86_INS_VPMADDWD,
  1446. X86_INS_VPMASKMOVD,
  1447. X86_INS_VPMASKMOVQ,
  1448. X86_INS_VPMAXSB,
  1449. X86_INS_VPMAXSD,
  1450. X86_INS_VPMAXSQ,
  1451. X86_INS_VPMAXSW,
  1452. X86_INS_VPMAXUB,
  1453. X86_INS_VPMAXUD,
  1454. X86_INS_VPMAXUQ,
  1455. X86_INS_VPMAXUW,
  1456. X86_INS_VPMINSB,
  1457. X86_INS_VPMINSD,
  1458. X86_INS_VPMINSQ,
  1459. X86_INS_VPMINSW,
  1460. X86_INS_VPMINUB,
  1461. X86_INS_VPMINUD,
  1462. X86_INS_VPMINUQ,
  1463. X86_INS_VPMINUW,
  1464. X86_INS_VPMOVDB,
  1465. X86_INS_VPMOVDW,
  1466. X86_INS_VPMOVM2B,
  1467. X86_INS_VPMOVM2D,
  1468. X86_INS_VPMOVM2Q,
  1469. X86_INS_VPMOVM2W,
  1470. X86_INS_VPMOVMSKB,
  1471. X86_INS_VPMOVQB,
  1472. X86_INS_VPMOVQD,
  1473. X86_INS_VPMOVQW,
  1474. X86_INS_VPMOVSDB,
  1475. X86_INS_VPMOVSDW,
  1476. X86_INS_VPMOVSQB,
  1477. X86_INS_VPMOVSQD,
  1478. X86_INS_VPMOVSQW,
  1479. X86_INS_VPMOVSXBD,
  1480. X86_INS_VPMOVSXBQ,
  1481. X86_INS_VPMOVSXBW,
  1482. X86_INS_VPMOVSXDQ,
  1483. X86_INS_VPMOVSXWD,
  1484. X86_INS_VPMOVSXWQ,
  1485. X86_INS_VPMOVUSDB,
  1486. X86_INS_VPMOVUSDW,
  1487. X86_INS_VPMOVUSQB,
  1488. X86_INS_VPMOVUSQD,
  1489. X86_INS_VPMOVUSQW,
  1490. X86_INS_VPMOVZXBD,
  1491. X86_INS_VPMOVZXBQ,
  1492. X86_INS_VPMOVZXBW,
  1493. X86_INS_VPMOVZXDQ,
  1494. X86_INS_VPMOVZXWD,
  1495. X86_INS_VPMOVZXWQ,
  1496. X86_INS_VPMULDQ,
  1497. X86_INS_VPMULHRSW,
  1498. X86_INS_VPMULHUW,
  1499. X86_INS_VPMULHW,
  1500. X86_INS_VPMULLD,
  1501. X86_INS_VPMULLQ,
  1502. X86_INS_VPMULLW,
  1503. X86_INS_VPMULUDQ,
  1504. X86_INS_VPORD,
  1505. X86_INS_VPORQ,
  1506. X86_INS_VPOR,
  1507. X86_INS_VPPERM,
  1508. X86_INS_VPROTB,
  1509. X86_INS_VPROTD,
  1510. X86_INS_VPROTQ,
  1511. X86_INS_VPROTW,
  1512. X86_INS_VPSADBW,
  1513. X86_INS_VPSCATTERDD,
  1514. X86_INS_VPSCATTERDQ,
  1515. X86_INS_VPSCATTERQD,
  1516. X86_INS_VPSCATTERQQ,
  1517. X86_INS_VPSHAB,
  1518. X86_INS_VPSHAD,
  1519. X86_INS_VPSHAQ,
  1520. X86_INS_VPSHAW,
  1521. X86_INS_VPSHLB,
  1522. X86_INS_VPSHLD,
  1523. X86_INS_VPSHLQ,
  1524. X86_INS_VPSHLW,
  1525. X86_INS_VPSHUFB,
  1526. X86_INS_VPSHUFD,
  1527. X86_INS_VPSHUFHW,
  1528. X86_INS_VPSHUFLW,
  1529. X86_INS_VPSIGNB,
  1530. X86_INS_VPSIGND,
  1531. X86_INS_VPSIGNW,
  1532. X86_INS_VPSLLDQ,
  1533. X86_INS_VPSLLD,
  1534. X86_INS_VPSLLQ,
  1535. X86_INS_VPSLLVD,
  1536. X86_INS_VPSLLVQ,
  1537. X86_INS_VPSLLW,
  1538. X86_INS_VPSRAD,
  1539. X86_INS_VPSRAQ,
  1540. X86_INS_VPSRAVD,
  1541. X86_INS_VPSRAVQ,
  1542. X86_INS_VPSRAW,
  1543. X86_INS_VPSRLDQ,
  1544. X86_INS_VPSRLD,
  1545. X86_INS_VPSRLQ,
  1546. X86_INS_VPSRLVD,
  1547. X86_INS_VPSRLVQ,
  1548. X86_INS_VPSRLW,
  1549. X86_INS_VPSUBB,
  1550. X86_INS_VPSUBD,
  1551. X86_INS_VPSUBQ,
  1552. X86_INS_VPSUBSB,
  1553. X86_INS_VPSUBSW,
  1554. X86_INS_VPSUBUSB,
  1555. X86_INS_VPSUBUSW,
  1556. X86_INS_VPSUBW,
  1557. X86_INS_VPTESTMD,
  1558. X86_INS_VPTESTMQ,
  1559. X86_INS_VPTESTNMD,
  1560. X86_INS_VPTESTNMQ,
  1561. X86_INS_VPTEST,
  1562. X86_INS_VPUNPCKHBW,
  1563. X86_INS_VPUNPCKHDQ,
  1564. X86_INS_VPUNPCKHQDQ,
  1565. X86_INS_VPUNPCKHWD,
  1566. X86_INS_VPUNPCKLBW,
  1567. X86_INS_VPUNPCKLDQ,
  1568. X86_INS_VPUNPCKLQDQ,
  1569. X86_INS_VPUNPCKLWD,
  1570. X86_INS_VPXORD,
  1571. X86_INS_VPXORQ,
  1572. X86_INS_VPXOR,
  1573. X86_INS_VRCP14PD,
  1574. X86_INS_VRCP14PS,
  1575. X86_INS_VRCP14SD,
  1576. X86_INS_VRCP14SS,
  1577. X86_INS_VRCP28PD,
  1578. X86_INS_VRCP28PS,
  1579. X86_INS_VRCP28SD,
  1580. X86_INS_VRCP28SS,
  1581. X86_INS_VRCPPS,
  1582. X86_INS_VRCPSS,
  1583. X86_INS_VRNDSCALEPD,
  1584. X86_INS_VRNDSCALEPS,
  1585. X86_INS_VRNDSCALESD,
  1586. X86_INS_VRNDSCALESS,
  1587. X86_INS_VROUNDPD,
  1588. X86_INS_VROUNDPS,
  1589. X86_INS_VROUNDSD,
  1590. X86_INS_VROUNDSS,
  1591. X86_INS_VRSQRT14PD,
  1592. X86_INS_VRSQRT14PS,
  1593. X86_INS_VRSQRT14SD,
  1594. X86_INS_VRSQRT14SS,
  1595. X86_INS_VRSQRT28PD,
  1596. X86_INS_VRSQRT28PS,
  1597. X86_INS_VRSQRT28SD,
  1598. X86_INS_VRSQRT28SS,
  1599. X86_INS_VRSQRTPS,
  1600. X86_INS_VRSQRTSS,
  1601. X86_INS_VSCATTERDPD,
  1602. X86_INS_VSCATTERDPS,
  1603. X86_INS_VSCATTERPF0DPD,
  1604. X86_INS_VSCATTERPF0DPS,
  1605. X86_INS_VSCATTERPF0QPD,
  1606. X86_INS_VSCATTERPF0QPS,
  1607. X86_INS_VSCATTERPF1DPD,
  1608. X86_INS_VSCATTERPF1DPS,
  1609. X86_INS_VSCATTERPF1QPD,
  1610. X86_INS_VSCATTERPF1QPS,
  1611. X86_INS_VSCATTERQPD,
  1612. X86_INS_VSCATTERQPS,
  1613. X86_INS_VSHUFPD,
  1614. X86_INS_VSHUFPS,
  1615. X86_INS_VSQRTPD,
  1616. X86_INS_VSQRTPS,
  1617. X86_INS_VSQRTSD,
  1618. X86_INS_VSQRTSS,
  1619. X86_INS_VSTMXCSR,
  1620. X86_INS_VSUBPD,
  1621. X86_INS_VSUBPS,
  1622. X86_INS_VSUBSD,
  1623. X86_INS_VSUBSS,
  1624. X86_INS_VTESTPD,
  1625. X86_INS_VTESTPS,
  1626. X86_INS_VUNPCKHPD,
  1627. X86_INS_VUNPCKHPS,
  1628. X86_INS_VUNPCKLPD,
  1629. X86_INS_VUNPCKLPS,
  1630. X86_INS_VZEROALL,
  1631. X86_INS_VZEROUPPER,
  1632. X86_INS_WAIT,
  1633. X86_INS_WBINVD,
  1634. X86_INS_WRFSBASE,
  1635. X86_INS_WRGSBASE,
  1636. X86_INS_WRMSR,
  1637. X86_INS_XABORT,
  1638. X86_INS_XACQUIRE,
  1639. X86_INS_XBEGIN,
  1640. X86_INS_XCHG,
  1641. X86_INS_XCRYPTCBC,
  1642. X86_INS_XCRYPTCFB,
  1643. X86_INS_XCRYPTCTR,
  1644. X86_INS_XCRYPTECB,
  1645. X86_INS_XCRYPTOFB,
  1646. X86_INS_XEND,
  1647. X86_INS_XGETBV,
  1648. X86_INS_XLATB,
  1649. X86_INS_XRELEASE,
  1650. X86_INS_XRSTOR,
  1651. X86_INS_XRSTOR64,
  1652. X86_INS_XRSTORS,
  1653. X86_INS_XRSTORS64,
  1654. X86_INS_XSAVE,
  1655. X86_INS_XSAVE64,
  1656. X86_INS_XSAVEC,
  1657. X86_INS_XSAVEC64,
  1658. X86_INS_XSAVEOPT,
  1659. X86_INS_XSAVEOPT64,
  1660. X86_INS_XSAVES,
  1661. X86_INS_XSAVES64,
  1662. X86_INS_XSETBV,
  1663. X86_INS_XSHA1,
  1664. X86_INS_XSHA256,
  1665. X86_INS_XSTORE,
  1666. X86_INS_XTEST,
  1667. X86_INS_FDISI8087_NOP,
  1668. X86_INS_FENI8087_NOP,
  1669. // pseudo instructions
  1670. X86_INS_CMPSS,
  1671. X86_INS_CMPEQSS,
  1672. X86_INS_CMPLTSS,
  1673. X86_INS_CMPLESS,
  1674. X86_INS_CMPUNORDSS,
  1675. X86_INS_CMPNEQSS,
  1676. X86_INS_CMPNLTSS,
  1677. X86_INS_CMPNLESS,
  1678. X86_INS_CMPORDSS,
  1679. X86_INS_CMPSD,
  1680. X86_INS_CMPEQSD,
  1681. X86_INS_CMPLTSD,
  1682. X86_INS_CMPLESD,
  1683. X86_INS_CMPUNORDSD,
  1684. X86_INS_CMPNEQSD,
  1685. X86_INS_CMPNLTSD,
  1686. X86_INS_CMPNLESD,
  1687. X86_INS_CMPORDSD,
  1688. X86_INS_CMPPS,
  1689. X86_INS_CMPEQPS,
  1690. X86_INS_CMPLTPS,
  1691. X86_INS_CMPLEPS,
  1692. X86_INS_CMPUNORDPS,
  1693. X86_INS_CMPNEQPS,
  1694. X86_INS_CMPNLTPS,
  1695. X86_INS_CMPNLEPS,
  1696. X86_INS_CMPORDPS,
  1697. X86_INS_CMPPD,
  1698. X86_INS_CMPEQPD,
  1699. X86_INS_CMPLTPD,
  1700. X86_INS_CMPLEPD,
  1701. X86_INS_CMPUNORDPD,
  1702. X86_INS_CMPNEQPD,
  1703. X86_INS_CMPNLTPD,
  1704. X86_INS_CMPNLEPD,
  1705. X86_INS_CMPORDPD,
  1706. X86_INS_VCMPSS,
  1707. X86_INS_VCMPEQSS,
  1708. X86_INS_VCMPLTSS,
  1709. X86_INS_VCMPLESS,
  1710. X86_INS_VCMPUNORDSS,
  1711. X86_INS_VCMPNEQSS,
  1712. X86_INS_VCMPNLTSS,
  1713. X86_INS_VCMPNLESS,
  1714. X86_INS_VCMPORDSS,
  1715. X86_INS_VCMPEQ_UQSS,
  1716. X86_INS_VCMPNGESS,
  1717. X86_INS_VCMPNGTSS,
  1718. X86_INS_VCMPFALSESS,
  1719. X86_INS_VCMPNEQ_OQSS,
  1720. X86_INS_VCMPGESS,
  1721. X86_INS_VCMPGTSS,
  1722. X86_INS_VCMPTRUESS,
  1723. X86_INS_VCMPEQ_OSSS,
  1724. X86_INS_VCMPLT_OQSS,
  1725. X86_INS_VCMPLE_OQSS,
  1726. X86_INS_VCMPUNORD_SSS,
  1727. X86_INS_VCMPNEQ_USSS,
  1728. X86_INS_VCMPNLT_UQSS,
  1729. X86_INS_VCMPNLE_UQSS,
  1730. X86_INS_VCMPORD_SSS,
  1731. X86_INS_VCMPEQ_USSS,
  1732. X86_INS_VCMPNGE_UQSS,
  1733. X86_INS_VCMPNGT_UQSS,
  1734. X86_INS_VCMPFALSE_OSSS,
  1735. X86_INS_VCMPNEQ_OSSS,
  1736. X86_INS_VCMPGE_OQSS,
  1737. X86_INS_VCMPGT_OQSS,
  1738. X86_INS_VCMPTRUE_USSS,
  1739. X86_INS_VCMPSD,
  1740. X86_INS_VCMPEQSD,
  1741. X86_INS_VCMPLTSD,
  1742. X86_INS_VCMPLESD,
  1743. X86_INS_VCMPUNORDSD,
  1744. X86_INS_VCMPNEQSD,
  1745. X86_INS_VCMPNLTSD,
  1746. X86_INS_VCMPNLESD,
  1747. X86_INS_VCMPORDSD,
  1748. X86_INS_VCMPEQ_UQSD,
  1749. X86_INS_VCMPNGESD,
  1750. X86_INS_VCMPNGTSD,
  1751. X86_INS_VCMPFALSESD,
  1752. X86_INS_VCMPNEQ_OQSD,
  1753. X86_INS_VCMPGESD,
  1754. X86_INS_VCMPGTSD,
  1755. X86_INS_VCMPTRUESD,
  1756. X86_INS_VCMPEQ_OSSD,
  1757. X86_INS_VCMPLT_OQSD,
  1758. X86_INS_VCMPLE_OQSD,
  1759. X86_INS_VCMPUNORD_SSD,
  1760. X86_INS_VCMPNEQ_USSD,
  1761. X86_INS_VCMPNLT_UQSD,
  1762. X86_INS_VCMPNLE_UQSD,
  1763. X86_INS_VCMPORD_SSD,
  1764. X86_INS_VCMPEQ_USSD,
  1765. X86_INS_VCMPNGE_UQSD,
  1766. X86_INS_VCMPNGT_UQSD,
  1767. X86_INS_VCMPFALSE_OSSD,
  1768. X86_INS_VCMPNEQ_OSSD,
  1769. X86_INS_VCMPGE_OQSD,
  1770. X86_INS_VCMPGT_OQSD,
  1771. X86_INS_VCMPTRUE_USSD,
  1772. X86_INS_VCMPPS,
  1773. X86_INS_VCMPEQPS,
  1774. X86_INS_VCMPLTPS,
  1775. X86_INS_VCMPLEPS,
  1776. X86_INS_VCMPUNORDPS,
  1777. X86_INS_VCMPNEQPS,
  1778. X86_INS_VCMPNLTPS,
  1779. X86_INS_VCMPNLEPS,
  1780. X86_INS_VCMPORDPS,
  1781. X86_INS_VCMPEQ_UQPS,
  1782. X86_INS_VCMPNGEPS,
  1783. X86_INS_VCMPNGTPS,
  1784. X86_INS_VCMPFALSEPS,
  1785. X86_INS_VCMPNEQ_OQPS,
  1786. X86_INS_VCMPGEPS,
  1787. X86_INS_VCMPGTPS,
  1788. X86_INS_VCMPTRUEPS,
  1789. X86_INS_VCMPEQ_OSPS,
  1790. X86_INS_VCMPLT_OQPS,
  1791. X86_INS_VCMPLE_OQPS,
  1792. X86_INS_VCMPUNORD_SPS,
  1793. X86_INS_VCMPNEQ_USPS,
  1794. X86_INS_VCMPNLT_UQPS,
  1795. X86_INS_VCMPNLE_UQPS,
  1796. X86_INS_VCMPORD_SPS,
  1797. X86_INS_VCMPEQ_USPS,
  1798. X86_INS_VCMPNGE_UQPS,
  1799. X86_INS_VCMPNGT_UQPS,
  1800. X86_INS_VCMPFALSE_OSPS,
  1801. X86_INS_VCMPNEQ_OSPS,
  1802. X86_INS_VCMPGE_OQPS,
  1803. X86_INS_VCMPGT_OQPS,
  1804. X86_INS_VCMPTRUE_USPS,
  1805. X86_INS_VCMPPD,
  1806. X86_INS_VCMPEQPD,
  1807. X86_INS_VCMPLTPD,
  1808. X86_INS_VCMPLEPD,
  1809. X86_INS_VCMPUNORDPD,
  1810. X86_INS_VCMPNEQPD,
  1811. X86_INS_VCMPNLTPD,
  1812. X86_INS_VCMPNLEPD,
  1813. X86_INS_VCMPORDPD,
  1814. X86_INS_VCMPEQ_UQPD,
  1815. X86_INS_VCMPNGEPD,
  1816. X86_INS_VCMPNGTPD,
  1817. X86_INS_VCMPFALSEPD,
  1818. X86_INS_VCMPNEQ_OQPD,
  1819. X86_INS_VCMPGEPD,
  1820. X86_INS_VCMPGTPD,
  1821. X86_INS_VCMPTRUEPD,
  1822. X86_INS_VCMPEQ_OSPD,
  1823. X86_INS_VCMPLT_OQPD,
  1824. X86_INS_VCMPLE_OQPD,
  1825. X86_INS_VCMPUNORD_SPD,
  1826. X86_INS_VCMPNEQ_USPD,
  1827. X86_INS_VCMPNLT_UQPD,
  1828. X86_INS_VCMPNLE_UQPD,
  1829. X86_INS_VCMPORD_SPD,
  1830. X86_INS_VCMPEQ_USPD,
  1831. X86_INS_VCMPNGE_UQPD,
  1832. X86_INS_VCMPNGT_UQPD,
  1833. X86_INS_VCMPFALSE_OSPD,
  1834. X86_INS_VCMPNEQ_OSPD,
  1835. X86_INS_VCMPGE_OQPD,
  1836. X86_INS_VCMPGT_OQPD,
  1837. X86_INS_VCMPTRUE_USPD,
  1838. X86_INS_UD0,
  1839. X86_INS_ENDBR32,
  1840. X86_INS_ENDBR64,
  1841. X86_INS_ENDING, // mark the end of the list of insn
  1842. } x86_insn;
  1843. /// Group of X86 instructions
  1844. typedef enum x86_insn_group {
  1845. X86_GRP_INVALID = 0, ///< = CS_GRP_INVALID
  1846. // Generic groups
  1847. // all jump instructions (conditional+direct+indirect jumps)
  1848. X86_GRP_JUMP, ///< = CS_GRP_JUMP
  1849. // all call instructions
  1850. X86_GRP_CALL, ///< = CS_GRP_CALL
  1851. // all return instructions
  1852. X86_GRP_RET, ///< = CS_GRP_RET
  1853. // all interrupt instructions (int+syscall)
  1854. X86_GRP_INT, ///< = CS_GRP_INT
  1855. // all interrupt return instructions
  1856. X86_GRP_IRET, ///< = CS_GRP_IRET
  1857. // all privileged instructions
  1858. X86_GRP_PRIVILEGE, ///< = CS_GRP_PRIVILEGE
  1859. // all relative branching instructions
  1860. X86_GRP_BRANCH_RELATIVE, ///< = CS_GRP_BRANCH_RELATIVE
  1861. // Architecture-specific groups
  1862. X86_GRP_VM = 128, ///< all virtualization instructions (VT-x + AMD-V)
  1863. X86_GRP_3DNOW,
  1864. X86_GRP_AES,
  1865. X86_GRP_ADX,
  1866. X86_GRP_AVX,
  1867. X86_GRP_AVX2,
  1868. X86_GRP_AVX512,
  1869. X86_GRP_BMI,
  1870. X86_GRP_BMI2,
  1871. X86_GRP_CMOV,
  1872. X86_GRP_F16C,
  1873. X86_GRP_FMA,
  1874. X86_GRP_FMA4,
  1875. X86_GRP_FSGSBASE,
  1876. X86_GRP_HLE,
  1877. X86_GRP_MMX,
  1878. X86_GRP_MODE32,
  1879. X86_GRP_MODE64,
  1880. X86_GRP_RTM,
  1881. X86_GRP_SHA,
  1882. X86_GRP_SSE1,
  1883. X86_GRP_SSE2,
  1884. X86_GRP_SSE3,
  1885. X86_GRP_SSE41,
  1886. X86_GRP_SSE42,
  1887. X86_GRP_SSE4A,
  1888. X86_GRP_SSSE3,
  1889. X86_GRP_PCLMUL,
  1890. X86_GRP_XOP,
  1891. X86_GRP_CDI,
  1892. X86_GRP_ERI,
  1893. X86_GRP_TBM,
  1894. X86_GRP_16BITMODE,
  1895. X86_GRP_NOT64BITMODE,
  1896. X86_GRP_SGX,
  1897. X86_GRP_DQI,
  1898. X86_GRP_BWI,
  1899. X86_GRP_PFI,
  1900. X86_GRP_VLX,
  1901. X86_GRP_SMAP,
  1902. X86_GRP_NOVLX,
  1903. X86_GRP_FPU,
  1904. X86_GRP_ENDING
  1905. } x86_insn_group;
  1906. #ifdef __cplusplus
  1907. }
  1908. #endif
  1909. #endif