diff --git a/libr/anal/t/test_anal.c b/libr/anal/t/test_anal.c index b57d415ec1..eedb313745 100644 --- a/libr/anal/t/test_anal.c +++ b/libr/anal/t/test_anal.c @@ -14,16 +14,38 @@ static int usage() { } static int analyze(RAnal *anal, RAnalOp *aop, ut64 offset, ut8* buf, int len) { + char *stackop = NULL; int ret; ret = r_anal_aop (anal, aop, offset, buf, len); if (ret) { + switch (aop->stackop) { + case R_ANAL_STACK_NULL: + stackop = strdup ("null"); + break; + case R_ANAL_STACK_NOP: + stackop = strdup ("nop"); + break; + case R_ANAL_STACK_INCSTACK: + stackop = strdup ("incstack"); + break; + case R_ANAL_STACK_GET: + stackop = strdup ("get"); + break; + case R_ANAL_STACK_SET: + stackop = strdup ("set"); + break; + + } eprintf ("jump: 0x%08"PFMT64x"\n" "fail: 0x%08"PFMT64x"\n" "ref: 0x%08"PFMT64x"\n" "value: 0x%08"PFMT64x"\n" + "stackop: %s\n" "stackptr: %"PFMT64d"\n", - aop->jump, aop->fail, aop->ref, aop->value, aop->stackptr); + aop->jump, aop->fail, aop->ref, aop->value, + stackop?stackop:"unk", aop->stackptr); + free (stackop); } return ret; } diff --git a/libr/asm/arch/x86/udis86/LICENSE b/libr/asm/arch/x86/udis86/LICENSE deleted file mode 100644 index 6cc1b783de..0000000000 --- a/libr/asm/arch/x86/udis86/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2002, 2003, 2004, 2005, 2006 -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/libr/asm/arch/x86/udis86/README b/libr/asm/arch/x86/udis86/README deleted file mode 100644 index 91375ec9c9..0000000000 --- a/libr/asm/arch/x86/udis86/README +++ /dev/null @@ -1,40 +0,0 @@ -Udis86 Disassembler for x86 and x86-64 (AMD64) -============================================== -(http://udis86.sourceforge.net/) - -Udis86 is an easy-to-use minimalistic disassembler library (libudis86) for the -x86 and x86-64 (AMD64) range of instruction set architectures. The primary -intent of the design and development of udis86 is to aid software development -projects that entail binary code analysis. - -Salient features of libudis86: - - * Full support for the x86 and x86-64 (AMD64) ISAs. - * Includes support for all MMX, SSE, FPU(x87), and AMD 3Dnow! Instructions - * Supports 16/32/64 Bits disassembly modes. - * Capable of generating output in AT&T or INTEL assembly language syntax. - * Supports different types of inputs - File, Buffered, and Hooks. - * Thread-safe and Re-entrant. - -You can reach the author at vivek[at]sig9[dot]com. - -Building Udis86 -=============== - -On Unix(-like) Systems: - - $ ./configure - $ make - $ sudo make install - -This will build the library as well as a simple command line front end (udcli). - -Using libudis86 -=============== - -See docs/doc.html - -Using udcli -=========== - -See docs/doc.html diff --git a/libr/asm/arch/x86/udis86/decode.c b/libr/asm/arch/x86/udis86/decode.c index 846a6b4fdd..4c38b87bff 100644 --- a/libr/asm/arch/x86/udis86/decode.c +++ b/libr/asm/arch/x86/udis86/decode.c @@ -1,25 +1,62 @@ -/* ----------------------------------------------------------------------------- - * decode.c - * - * Copyright (c) 2005, 2006, Vivek Mohan - * All rights reserved. See LICENSE - * ----------------------------------------------------------------------------- +/* udis86 - libudis86/decode.c + * + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include -#include +#ifdef HAVE_CONFIG_H +# include +#endif /* HAVE_CONFIG_H */ + +#ifndef HAVE_ASSERT_H +# define assert(x) +#else /* !HAVE_ASSERT_H */ +# include +#endif /* HAVE_ASSERT_H */ #include "types.h" -#include "itab.h" #include "input.h" #include "decode.h" +#define dbg(x, n...) +/* #define dbg printf */ + +#ifndef __UD_STANDALONE__ +# include +#endif /* __UD_STANDALONE__ */ + /* The max number of prefixes to an instruction */ #define MAX_PREFIXES 15 -static struct ud_itab_entry ie_invalid = { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }; -static struct ud_itab_entry ie_pause = { UD_Ipause, O_NONE, O_NONE, O_NONE, P_none }; -static struct ud_itab_entry ie_nop = { UD_Inop, O_NONE, O_NONE, O_NONE, P_none }; +/* instruction aliases and special cases */ +static struct ud_itab_entry s_ie__invalid = + { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }; + +static struct ud_itab_entry s_ie__pause = + { UD_Ipause, O_NONE, O_NONE, O_NONE, P_none }; + +static struct ud_itab_entry s_ie__nop = + { UD_Inop, O_NONE, O_NONE, O_NONE, P_none }; /* Looks up mnemonic code in the mnemonic string table @@ -27,9 +64,7 @@ static struct ud_itab_entry ie_nop = { UD_Inop, O_NONE, O_NONE, O_NONE, */ const char * ud_lookup_mnemonic( enum ud_mnemonic_code c ) { - if ( c < UD_Id3vil ) - return ud_mnemonics_str[ c ]; - return NULL; + return ud_mnemonics_str[ c ]; } @@ -154,176 +189,149 @@ static int get_prefixes( struct ud* u ) } +static inline unsigned int modrm( struct ud * u ) +{ + if ( !u->have_modrm ) { + u->modrm = inp_next( u ); + u->have_modrm = 1; + } + return u->modrm; +} + /* Searches the instruction tables for the right entry. */ static int search_itab( struct ud * u ) { - struct ud_itab_entry * e = NULL; - enum ud_itab_index table; - uint8_t peek; - uint8_t did_peek = 0; - uint8_t curr; - uint8_t index; + extern uint16_t ud_itab__0[]; + uint16_t ptr; - /* if in state of error, return */ + inp_next( u ); if ( u->error ) return -1; + ptr = ud_itab__0[ inp_curr( u ) ]; - /* get first byte of opcode. */ - inp_next(u); - if ( u->error ) - return -1; - curr = inp_curr(u); - - /* resolve xchg, nop, pause crazyness */ - if ( 0x90 == curr ) { + /* special case: nop */ + if ( inp_curr( u ) == 0x90 ) { if ( !( u->dis_mode == 64 && REX_B( u->pfx_rex ) ) ) { if ( u->pfx_rep ) { u->pfx_rep = 0; - e = & ie_pause; + u->itab_entry = & s_ie__pause; } else { - e = & ie_nop; + u->itab_entry = & s_ie__nop; } - goto found_entry; + u->mnemonic = u->itab_entry->mnemonic; + return 0; } } - /* get top-level table */ - if ( 0x0F == curr ) { - table = ITAB__0F; - curr = inp_next(u); - if ( u->error ) - return -1; + while ( 0x8000 & ptr ) { + uint8_t idx = 0; - /* 2byte opcodes can be modified by 0x66, F3, and F2 prefixes */ - if ( 0x66 == u->pfx_insn ) { - if ( ud_itab_list[ ITAB__PFX_SSE66__0F ][ curr ].mnemonic != UD_Iinvalid ) { - table = ITAB__PFX_SSE66__0F; - u->pfx_opr = 0; - } - } else if ( 0xF2 == u->pfx_insn ) { - if ( ud_itab_list[ ITAB__PFX_SSEF2__0F ][ curr ].mnemonic != UD_Iinvalid ) { - table = ITAB__PFX_SSEF2__0F; - u->pfx_repne = 0; - } - } else if ( 0xF3 == u->pfx_insn ) { - if ( ud_itab_list[ ITAB__PFX_SSEF3__0F ][ curr ].mnemonic != UD_Iinvalid ) { - table = ITAB__PFX_SSEF3__0F; - u->pfx_repe = 0; - u->pfx_rep = 0; - } + u->le = &ud_lookup_table_list[ ( ~0x8000 & ptr ) ]; + + switch ( u->le->type ) { + case UD_TAB__OPC_TABLE: + idx = inp_curr( u ); + break; + case UD_TAB__OPC_3BYTE: + inp_next( u ); + if ( u->error ) + return -1; + idx = inp_curr( u ); + break; + case UD_TAB__OPC_2BYTE: + /* 00 = 0 + * f2 = 1 + * f3 = 2 + * 66 = 3 + */ + idx = ( ( u->pfx_insn & 0xf ) + 1 ) / 2; + + inp_next( u ); + if ( ud_lookup_table_list[ u->le->table[ idx ] & ~0x8000 ].table[ inp_curr( u ) ] == 0 ) { + idx = 0; + } else { + switch ( u->pfx_insn ) { + case 0xf2: + u->pfx_repne = 0; + break; + case 0xf3: + u->pfx_rep = 0; + u->pfx_repe = 0; + break; + case 0x66: + u->pfx_opr = 0; + /* recalculate operand mode */ + if ( u->dis_mode == 64 ) { + u->opr_mode = REX_W( u->pfx_rex ) ? 64 : 32; + } else { + u->opr_mode = u->dis_mode; + } + break; + } + } + break; + case UD_TAB__OPC_MOD: + /* !11 = 0 + * 11 = 1 + */ + idx = ( MODRM_MOD( modrm( u ) ) + 1 ) / 4; + break; + case UD_TAB__OPC_MODE: + /* 16 = 0 + * 32 = 1 + * 64 = 2 + */ + idx = ( u->dis_mode / 32 ); + break; + case UD_TAB__OPC_OSIZE: + /* 16 = 0 + * 32 = 1 + * 64 = 2 + */ + idx = ( u->opr_mode / 32 ); + break; + case UD_TAB__OPC_ASIZE: + /* 16 = 0 + * 32 = 1 + * 64 = 2 + */ + idx = ( u->adr_mode / 32 ); + break; + case UD_TAB__OPC_X87: + idx = modrm( u ) - 0xC0; + break; + case UD_TAB__OPC_VENDOR: + if ( u->vendor == UD_VENDOR_ANY ) { + /* choose a valid entry */ + if ( u->le->table[ idx ] != 0 ) + idx = 0; + else + idx = 1; + } else if ( u->vendor == UD_VENDOR_AMD ) { + idx = 0; + } else { + idx = 1; + } + break; + case UD_TAB__OPC_RM: + idx = MODRM_RM( modrm( u ) ); + break; + case UD_TAB__OPC_REG: + idx = MODRM_REG( modrm( u ) ); + break; + default: + idx = 0; + assert( !"Invalid table type" ); } - /* pick an instruction from the 1byte table */ - } else { - table = ITAB__1BYTE; - } - - index = curr; - -search: - - e = & ud_itab_list[ table ][ index ]; - - /* if mnemonic constant is a standard instruction constant - * our search is over. - */ - - if ( e->mnemonic < UD_Id3vil ) { - if ( e->mnemonic == UD_Iinvalid ) { - if ( did_peek ) { - inp_next( u ); if ( u->error ) return -1; - } - goto found_entry; - } - goto found_entry; - } - - table = e->prefix; - - switch ( e->mnemonic ) - { - case UD_Igrp_reg: - peek = inp_peek( u ); - did_peek = 1; - index = MODRM_REG( peek ); - break; - - case UD_Igrp_mod: - peek = inp_peek( u ); - did_peek = 1; - index = MODRM_MOD( peek ); - if ( index == 3 ) - index = ITAB__MOD_INDX__11; - else - index = ITAB__MOD_INDX__NOT_11; - break; - - case UD_Igrp_rm: - curr = inp_next( u ); - did_peek = 0; - if ( u->error ) + + if ( u->error ) return -1; - index = MODRM_RM( curr ); - break; - case UD_Igrp_x87: - curr = inp_next( u ); - did_peek = 0; - if ( u->error ) - return -1; - index = curr - 0xC0; - break; - - case UD_Igrp_osize: - if ( u->opr_mode == 64 ) - index = ITAB__MODE_INDX__64; - else if ( u->opr_mode == 32 ) - index = ITAB__MODE_INDX__32; - else - index = ITAB__MODE_INDX__16; - break; - - case UD_Igrp_asize: - if ( u->adr_mode == 64 ) - index = ITAB__MODE_INDX__64; - else if ( u->adr_mode == 32 ) - index = ITAB__MODE_INDX__32; - else - index = ITAB__MODE_INDX__16; - break; - - case UD_Igrp_mode: - if ( u->dis_mode == 64 ) - index = ITAB__MODE_INDX__64; - else if ( u->dis_mode == 32 ) - index = ITAB__MODE_INDX__32; - else - index = ITAB__MODE_INDX__16; - break; - - case UD_Igrp_vendor: - if ( u->vendor == UD_VENDOR_INTEL ) - index = ITAB__VENDOR_INDX__INTEL; - else if ( u->vendor == UD_VENDOR_AMD ) - index = ITAB__VENDOR_INDX__AMD; - else - assert( !"unrecognized vendor id" ); - break; - - case UD_Id3vil: - assert( !"invalid instruction mnemonic constant Id3vil" ); - break; - - default: - assert( !"invalid instruction mnemonic constant" ); - break; + ptr = u->le->table[ idx ]; } - goto search; - -found_entry: - - u->itab_entry = e; + u->itab_entry = &ud_itab[ ptr ]; u->mnemonic = u->itab_entry->mnemonic; return 0; @@ -357,12 +365,12 @@ static int resolve_mnemonic( struct ud* u ) u->br_near = 0; /* readjust operand sizes for call/jmp instrcutions */ if ( u->mnemonic == UD_Icall || u->mnemonic == UD_Ijmp ) { - /* WP: 16bit pointer */ + /* WP: 16:16 pointer */ if ( u->operand[ 0 ].size == SZ_WP ) { u->operand[ 0 ].size = 16; u->br_far = 1; u->br_near= 0; - /* DP: 32bit pointer */ + /* DP: 32:32 pointer */ } else if ( u->operand[ 0 ].size == SZ_DP ) { u->operand[ 0 ].size = 32; u->br_far = 1; @@ -373,7 +381,7 @@ static int resolve_mnemonic( struct ud* u ) } /* resolve 3dnow weirdness. */ } else if ( u->mnemonic == UD_I3dnow ) { - u->mnemonic = ud_itab_list[ ITAB__3DNOW ][ inp_curr( u ) ].mnemonic; + u->mnemonic = ud_itab[ u->le->table[ inp_curr( u ) ] ].mnemonic; } /* SWAPGS is only valid in 64bits mode */ if ( u->mnemonic == UD_Iswapgs && u->dis_mode != 64 ) { @@ -441,19 +449,23 @@ decode_gpr(register struct ud* u, unsigned int s, unsigned char rm) * ----------------------------------------------------------------------------- */ static enum ud_type -resolve_gpr64(struct ud* u, enum ud_operand_code gpr_op) +resolve_gpr64(struct ud* u, enum ud_operand_code gpr_op, enum ud_operand_size * size) { if (gpr_op >= OP_rAXr8 && gpr_op <= OP_rDIr15) gpr_op = (gpr_op - OP_rAXr8) | (REX_B(u->pfx_rex) << 3); else gpr_op = (gpr_op - OP_rAX); - if (u->opr_mode == 16) + if (u->opr_mode == 16) { + *size = 16; return gpr_op + UD_R_AX; + } if (u->dis_mode == 32 || (u->opr_mode == 32 && ! (REX_W(u->pfx_rex) || u->default64))) { + *size = 32; return gpr_op + UD_R_EAX; } + *size = 64; return gpr_op + UD_R_RAX; } @@ -520,12 +532,10 @@ decode_modrm(struct ud* u, struct ud_operand *op, unsigned int s, { unsigned char mod, rm, reg; - inp_next(u); - /* get mod, r/m and reg fields */ - mod = MODRM_MOD(inp_curr(u)); - rm = (REX_B(u->pfx_rex) << 3) | MODRM_RM(inp_curr(u)); - reg = (REX_R(u->pfx_rex) << 3) | MODRM_REG(inp_curr(u)); + mod = MODRM_MOD(modrm(u)); + rm = (REX_B(u->pfx_rex) << 3) | MODRM_RM(modrm(u)); + reg = (REX_R(u->pfx_rex) << 3) | MODRM_REG(modrm(u)); op->size = resolve_operand_size(u, s); @@ -708,17 +718,28 @@ static int disasm_operands(register struct ud* u) unsigned int mop3s = u->itab_entry->operand3.size; /* iop = instruction operand */ - register struct ud_operand* iop = u->operand; - + struct ud_operand* iop = u->operand; + switch(mop1t) { case OP_A : decode_a(u, &(iop[0])); break; + + case OP_MR: + if ( MODRM_MOD( modrm( u ) ) == 3 ) { + decode_modrm( u, &(iop[0]), SZ_V, T_GPR, NULL, 0, T_NONE ); + } else { + if ( mop1s == SZ_WV ) + decode_modrm( u, &(iop[0]), SZ_W, T_GPR, NULL, 0, T_NONE ); + else if ( mop1s == SZ_BV ) + decode_modrm( u, &(iop[0]), SZ_B, T_GPR, NULL, 0, T_NONE ); + } + break; /* M[b] ... */ case OP_M : - if (MODRM_MOD(inp_peek(u)) == 3) + if (MODRM_MOD(modrm(u)) == 3) u->error= 1; /* E, G/P/V/I/CL/1/S */ case OP_E : @@ -734,9 +755,12 @@ static int disasm_operands(register struct ud* u) } else if (mop2t == OP_P) decode_modrm(u, &(iop[0]), mop1s, T_GPR, &(iop[1]), mop2s, T_MMX); - else if (mop2t == OP_V) + else if (mop2t == OP_V) { decode_modrm(u, &(iop[0]), mop1s, T_GPR, &(iop[1]), mop2s, T_XMM); - else if (mop2t == OP_S) + if (mop3t == OP_I) { + decode_imm(u, mop3s, &(iop[2])); + } + } else if (mop2t == OP_S) decode_modrm(u, &(iop[0]), mop1s, T_GPR, &(iop[1]), mop2s, T_SEG); else { decode_modrm(u, &(iop[0]), mop1s, T_GPR, NULL, 0, T_NONE); @@ -756,7 +780,7 @@ static int disasm_operands(register struct ud* u) /* G, E/PR[,I]/VR */ case OP_G : if (mop2t == OP_M) { - if (MODRM_MOD(inp_peek(u)) == 3) + if (MODRM_MOD(modrm( u )) == 3) u->error= 1; decode_modrm(u, &(iop[1]), mop2s, T_GPR, &(iop[0]), mop1s, T_GPR); } else if (mop2t == OP_E) { @@ -768,9 +792,11 @@ static int disasm_operands(register struct ud* u) if (mop3t == OP_I) decode_imm(u, mop3s, &(iop[2])); } else if (mop2t == OP_VR) { - if (MODRM_MOD(inp_peek(u)) != 3) + if (MODRM_MOD(modrm(u)) != 3) u->error = 1; decode_modrm(u, &(iop[1]), mop2s, T_XMM, &(iop[0]), mop1s, T_GPR); + if (mop3t == OP_I) + decode_imm(u, mop3s, &(iop[2])); } else if (mop2t == OP_W) decode_modrm(u, &(iop[1]), mop2s, T_XMM, &(iop[0]), mop1s, T_GPR); break; @@ -801,13 +827,13 @@ static int disasm_operands(register struct ud* u) case OP_rSP : case OP_rBP : case OP_rSI : case OP_rDI : iop[0].type = UD_OP_REG; - iop[0].base = resolve_gpr64(u, mop1t); + iop[0].base = resolve_gpr64(u, mop1t, &(iop[0].size)); if (mop2t == OP_I) decode_imm(u, mop2s, &(iop[1])); else if (mop2t >= OP_rAX && mop2t <= OP_rDI) { iop[1].type = UD_OP_REG; - iop[1].base = resolve_gpr64(u, mop2t); + iop[1].base = resolve_gpr64(u, mop2t, &(iop[1].size)); } else if (mop2t == OP_O) { decode_o(u, mop2s, &(iop[1])); @@ -835,6 +861,7 @@ static int disasm_operands(register struct ud* u) case OP_eSP : case OP_eBP : case OP_eSI : case OP_eDI : iop[0].type = UD_OP_REG; iop[0].base = resolve_gpr32(u, mop1t); + iop[0].size = u->opr_mode == 16 ? 16 : 32; if (mop2t == OP_DX) { iop[1].type = UD_OP_REG; iop[1].base = UD_R_DX; @@ -865,7 +892,7 @@ static int disasm_operands(register struct ud* u) /* PR, I */ case OP_PR: - if (MODRM_MOD(inp_peek(u)) != 3) + if (MODRM_MOD(modrm(u)) != 3) u->error = 1; decode_modrm(u, &(iop[0]), mop1s, T_MMX, NULL, 0, T_NONE); if (mop2t == OP_I) @@ -874,7 +901,7 @@ static int disasm_operands(register struct ud* u) /* VR, I */ case OP_VR: - if (MODRM_MOD(inp_peek(u)) != 3) + if (MODRM_MOD(modrm(u)) != 3) u->error = 1; decode_modrm(u, &(iop[0]), mop1s, T_XMM, NULL, 0, T_NONE); if (mop2t == OP_I) @@ -890,7 +917,7 @@ static int disasm_operands(register struct ud* u) } else if (mop2t == OP_W) { decode_modrm(u, &(iop[1]), mop2s, T_XMM, &(iop[0]), mop1s, T_MMX); } else if (mop2t == OP_VR) { - if (MODRM_MOD(inp_peek(u)) != 3) + if (MODRM_MOD(modrm(u)) != 3) u->error = 1; decode_modrm(u, &(iop[1]), mop2s, T_XMM, &(iop[0]), mop1s, T_MMX); } else if (mop2t == OP_E) { @@ -936,27 +963,23 @@ static int disasm_operands(register struct ud* u) /* V, W[,I]/Q/M/E */ case OP_V : if (mop2t == OP_W) { - /* special cases for movlps and movhps */ - if (MODRM_MOD(inp_peek(u)) == 3) { - if (u->mnemonic == UD_Imovlps) - u->mnemonic = UD_Imovhlps; - else - if (u->mnemonic == UD_Imovhps) - u->mnemonic = UD_Imovlhps; - } decode_modrm(u, &(iop[1]), mop2s, T_XMM, &(iop[0]), mop1s, T_XMM); if (mop3t == OP_I) decode_imm(u, mop3s, &(iop[2])); } else if (mop2t == OP_Q) decode_modrm(u, &(iop[1]), mop2s, T_MMX, &(iop[0]), mop1s, T_XMM); else if (mop2t == OP_M) { - if (MODRM_MOD(inp_peek(u)) == 3) + if (MODRM_MOD(modrm(u)) == 3) u->error= 1; decode_modrm(u, &(iop[1]), mop2s, T_GPR, &(iop[0]), mop1s, T_XMM); } else if (mop2t == OP_E) { decode_modrm(u, &(iop[1]), mop2s, T_GPR, &(iop[0]), mop1s, T_XMM); } else if (mop2t == OP_PR) { + if (MODRM_MOD(modrm(u)) != 3) u->error = 1; decode_modrm(u, &(iop[1]), mop2s, T_MMX, &(iop[0]), mop1s, T_XMM); + } else if (mop2t == OP_VR) { + if (MODRM_MOD(modrm(u)) != 3) u->error = 1; + decode_modrm(u, &(iop[1]), mop2s, T_XMM, &(iop[0]), mop1s, T_XMM); } break; @@ -1002,7 +1025,7 @@ static int disasm_operands(register struct ud* u) else if (mop2t == OP_eAX) iop[1].base = resolve_gpr32(u, mop2t); else if (mop2t == OP_rAX) - iop[1].base = resolve_gpr64(u, mop2t); + iop[1].base = resolve_gpr64(u, mop2t, &(iop[1].size)); break; /* 3 */ @@ -1055,11 +1078,11 @@ static int clear_insn(register struct ud* u) u->pfx_repne = 0; u->pfx_rep = 0; u->pfx_repe = 0; - u->pfx_seg = 0; u->pfx_rex = 0; u->pfx_insn = 0; u->mnemonic = UD_Inone; u->itab_entry = NULL; + u->have_modrm = 0; memset( &u->operand[ 0 ], 0, sizeof( struct ud_operand ) ); memset( &u->operand[ 1 ], 0, sizeof( struct ud_operand ) ); @@ -1168,15 +1191,23 @@ unsigned int ud_decode( struct ud* u ) ; /* error */ } - /* Plugin decode error. */ + /* Handle decode error. */ if ( u->error ) { /* clear out the decode data. */ clear_insn( u ); /* mark the sequence of bytes as invalid. */ - u->itab_entry = & ie_invalid; + u->itab_entry = & s_ie__invalid; u->mnemonic = u->itab_entry->mnemonic; } + /* maybe this stray segment override byte + * should be spewed out? + */ + if ( !P_SEG( u->itab_entry->prefix ) && + u->operand[0].type != UD_OP_MEM && + u->operand[1].type != UD_OP_MEM ) + u->pfx_seg = 0; + u->insn_offset = u->pc; /* set offset of instruction */ u->insn_fill = 0; /* set translation buffer index to 0 */ u->pc += u->inp_ctr; /* move program counter by bytes decoded */ diff --git a/libr/asm/arch/x86/udis86/decode.h b/libr/asm/arch/x86/udis86/decode.h index 3d620963a9..a3b7db00f1 100644 --- a/libr/asm/arch/x86/udis86/decode.h +++ b/libr/asm/arch/x86/udis86/decode.h @@ -1,6 +1,34 @@ +/* udis86 - libudis86/decode.h + * + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ #ifndef UD_DECODE_H #define UD_DECODE_H +#include "types.h" +#include "itab.h" + #define MAX_INSN_LENGTH 15 /* register classes */ @@ -14,6 +42,8 @@ /* itab prefix bits */ #define P_none ( 0 ) +#define P_cast ( 1 << 0 ) +#define P_CAST(n) ( ( n >> 0 ) & 1 ) #define P_c1 ( 1 << 0 ) #define P_C1(n) ( ( n >> 0 ) & 1 ) #define P_rexb ( 1 << 1 ) @@ -40,6 +70,10 @@ #define P_REXX(n) ( ( n >> 11 ) & 1 ) #define P_ImpAddr ( 1 << 12 ) #define P_IMPADDR(n) ( ( n >> 12 ) & 1 ) +#define P_seg ( 1 << 13 ) +#define P_SEG(n) ( ( n >> 13 ) & 1 ) +#define P_sext ( 1 << 14 ) +#define P_SEXT(n) ( ( n >> 14 ) & 1 ) /* rex prefix bits */ #define REX_W(r) ( ( 0xF & ( r ) ) >> 3 ) @@ -99,8 +133,10 @@ enum ud_operand_code { OP_V, OP_W, OP_Q, OP_P, - OP_R, OP_C, OP_D, OP_VR, OP_PR -}; + OP_R, OP_C, OP_D, OP_VR, OP_PR, + + OP_MR +} UD_ATTR_PACKED; /* operand size constants */ @@ -124,122 +160,12 @@ enum ud_operand_size { SZ_D = 32, SZ_Q = 64, SZ_T = 80, -}; + SZ_O = 128, -/* itab entry operand definitions */ + SZ_WV = 17, + SZ_BV = 18, -#define O_rSPr12 { OP_rSPr12, SZ_NA } -#define O_BL { OP_BL, SZ_NA } -#define O_BH { OP_BH, SZ_NA } -#define O_BP { OP_BP, SZ_NA } -#define O_AHr12b { OP_AHr12b, SZ_NA } -#define O_BX { OP_BX, SZ_NA } -#define O_Jz { OP_J, SZ_Z } -#define O_Jv { OP_J, SZ_V } -#define O_Jb { OP_J, SZ_B } -#define O_rSIr14 { OP_rSIr14, SZ_NA } -#define O_GS { OP_GS, SZ_NA } -#define O_D { OP_D, SZ_NA } -#define O_rBPr13 { OP_rBPr13, SZ_NA } -#define O_Ob { OP_O, SZ_B } -#define O_P { OP_P, SZ_NA } -#define O_Ow { OP_O, SZ_W } -#define O_Ov { OP_O, SZ_V } -#define O_Gw { OP_G, SZ_W } -#define O_Gv { OP_G, SZ_V } -#define O_rDX { OP_rDX, SZ_NA } -#define O_Gx { OP_G, SZ_MDQ } -#define O_Gd { OP_G, SZ_D } -#define O_Gb { OP_G, SZ_B } -#define O_rBXr11 { OP_rBXr11, SZ_NA } -#define O_rDI { OP_rDI, SZ_NA } -#define O_rSI { OP_rSI, SZ_NA } -#define O_ALr8b { OP_ALr8b, SZ_NA } -#define O_eDI { OP_eDI, SZ_NA } -#define O_Gz { OP_G, SZ_Z } -#define O_eDX { OP_eDX, SZ_NA } -#define O_DHr14b { OP_DHr14b, SZ_NA } -#define O_rSP { OP_rSP, SZ_NA } -#define O_PR { OP_PR, SZ_NA } -#define O_NONE { OP_NONE, SZ_NA } -#define O_rCX { OP_rCX, SZ_NA } -#define O_jWP { OP_J, SZ_WP } -#define O_rDXr10 { OP_rDXr10, SZ_NA } -#define O_Md { OP_M, SZ_D } -#define O_C { OP_C, SZ_NA } -#define O_G { OP_G, SZ_NA } -#define O_Mb { OP_M, SZ_B } -#define O_Mt { OP_M, SZ_T } -#define O_S { OP_S, SZ_NA } -#define O_Mq { OP_M, SZ_Q } -#define O_W { OP_W, SZ_NA } -#define O_ES { OP_ES, SZ_NA } -#define O_rBX { OP_rBX, SZ_NA } -#define O_Ed { OP_E, SZ_D } -#define O_DLr10b { OP_DLr10b, SZ_NA } -#define O_Mw { OP_M, SZ_W } -#define O_Eb { OP_E, SZ_B } -#define O_Ex { OP_E, SZ_MDQ } -#define O_Ez { OP_E, SZ_Z } -#define O_Ew { OP_E, SZ_W } -#define O_Ev { OP_E, SZ_V } -#define O_Ep { OP_E, SZ_P } -#define O_FS { OP_FS, SZ_NA } -#define O_Ms { OP_M, SZ_W } -#define O_rAXr8 { OP_rAXr8, SZ_NA } -#define O_eBP { OP_eBP, SZ_NA } -#define O_Isb { OP_I, SZ_SB } -#define O_eBX { OP_eBX, SZ_NA } -#define O_rCXr9 { OP_rCXr9, SZ_NA } -#define O_jDP { OP_J, SZ_DP } -#define O_CH { OP_CH, SZ_NA } -#define O_CL { OP_CL, SZ_NA } -#define O_R { OP_R, SZ_RDQ } -#define O_V { OP_V, SZ_NA } -#define O_CS { OP_CS, SZ_NA } -#define O_CHr13b { OP_CHr13b, SZ_NA } -#define O_eCX { OP_eCX, SZ_NA } -#define O_eSP { OP_eSP, SZ_NA } -#define O_SS { OP_SS, SZ_NA } -#define O_SP { OP_SP, SZ_NA } -#define O_BLr11b { OP_BLr11b, SZ_NA } -#define O_SI { OP_SI, SZ_NA } -#define O_eSI { OP_eSI, SZ_NA } -#define O_DL { OP_DL, SZ_NA } -#define O_DH { OP_DH, SZ_NA } -#define O_DI { OP_DI, SZ_NA } -#define O_DX { OP_DX, SZ_NA } -#define O_rBP { OP_rBP, SZ_NA } -#define O_Gvw { OP_G, SZ_MDQ } -#define O_I1 { OP_I1, SZ_NA } -#define O_I3 { OP_I3, SZ_NA } -#define O_DS { OP_DS, SZ_NA } -#define O_ST4 { OP_ST4, SZ_NA } -#define O_ST5 { OP_ST5, SZ_NA } -#define O_ST6 { OP_ST6, SZ_NA } -#define O_ST7 { OP_ST7, SZ_NA } -#define O_ST0 { OP_ST0, SZ_NA } -#define O_ST1 { OP_ST1, SZ_NA } -#define O_ST2 { OP_ST2, SZ_NA } -#define O_ST3 { OP_ST3, SZ_NA } -#define O_E { OP_E, SZ_NA } -#define O_AH { OP_AH, SZ_NA } -#define O_M { OP_M, SZ_NA } -#define O_AL { OP_AL, SZ_NA } -#define O_CLr9b { OP_CLr9b, SZ_NA } -#define O_Q { OP_Q, SZ_NA } -#define O_eAX { OP_eAX, SZ_NA } -#define O_VR { OP_VR, SZ_NA } -#define O_AX { OP_AX, SZ_NA } -#define O_rAX { OP_rAX, SZ_NA } -#define O_Iz { OP_I, SZ_Z } -#define O_rDIr15 { OP_rDIr15, SZ_NA } -#define O_Iw { OP_I, SZ_W } -#define O_Iv { OP_I, SZ_V } -#define O_Ap { OP_A, SZ_P } -#define O_CX { OP_CX, SZ_NA } -#define O_Ib { OP_I, SZ_B } -#define O_BHr15b { OP_BHr15b, SZ_NA } +} UD_ATTR_PACKED; /* A single operand of an entry in the instruction table. @@ -264,8 +190,66 @@ struct ud_itab_entry uint32_t prefix; }; +struct ud_lookup_table_list_entry { + const uint16_t *table; + enum ud_table_type type; + const char *meta; +}; + + extern const char * ud_lookup_mnemonic( enum ud_mnemonic_code c ); +static inline unsigned int sse_pfx_idx( const unsigned int pfx ) +{ + /* 00 = 0 + * f2 = 1 + * f3 = 2 + * 66 = 3 + */ + return ( ( pfx & 0xf ) + 1 ) / 2; +} + +static inline unsigned int mode_idx( const unsigned int mode ) +{ + /* 16 = 0 + * 32 = 1 + * 64 = 2 + */ + return ( mode / 32 ); +} + +static inline unsigned int modrm_mod_idx( const unsigned int mod ) +{ + /* !11 = 0 + * 11 = 1 + */ + return ( mod + 1 ) / 4; +} + +static inline unsigned int vendor_idx( const unsigned int vendor ) +{ + switch ( vendor ) { + case UD_VENDOR_AMD: return 0; + case UD_VENDOR_INTEL: return 1; + case UD_VENDOR_ANY: return 2; + default: return 2; + } +} + +static inline unsigned int is_group_ptr( uint16_t ptr ) +{ + return ( 0x8000 & ptr ); +} + +static inline unsigned int group_idx( uint16_t ptr ) +{ + return ( ~0x8000 & ptr ); +} + + +extern struct ud_itab_entry ud_itab[]; +extern struct ud_lookup_table_list_entry ud_lookup_table_list[]; + #endif /* UD_DECODE_H */ /* vim:cindent diff --git a/libr/asm/arch/x86/udis86/extern.h b/libr/asm/arch/x86/udis86/extern.h index c33baf5e4f..e99720cab4 100644 --- a/libr/asm/arch/x86/udis86/extern.h +++ b/libr/asm/arch/x86/udis86/extern.h @@ -1,9 +1,27 @@ -/* ----------------------------------------------------------------------------- - * extern.h +/* udis86 - libudis86/extern.h * - * Copyright (c) 2004, 2005, 2006, Vivek Mohan - * All rights reserved. See LICENSE - * ----------------------------------------------------------------------------- + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef UD_EXTERN_H #define UD_EXTERN_H @@ -12,7 +30,6 @@ extern "C" { #endif -#include #include "types.h" /* ============================= PUBLIC API ================================= */ @@ -59,6 +76,10 @@ extern unsigned int ud_insn_len(struct ud* u); extern const char* ud_lookup_mnemonic(enum ud_mnemonic_code c); +extern void ud_set_user_opaque_data(struct ud*, void*); + +extern void *ud_get_user_opaque_data(struct ud*); + /* ========================================================================== */ #ifdef __cplusplus diff --git a/libr/asm/arch/x86/udis86/input.c b/libr/asm/arch/x86/udis86/input.c index cab612b18b..ae53eb034a 100644 --- a/libr/asm/arch/x86/udis86/input.c +++ b/libr/asm/arch/x86/udis86/input.c @@ -1,9 +1,27 @@ -/* ----------------------------------------------------------------------------- - * input.c +/* udis86 - libudis86/input.c * - * Copyright (c) 2004, 2005, 2006, Vivek Mohan - * All rights reserved. See LICENSE - * ----------------------------------------------------------------------------- + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "extern.h" #include "types.h" @@ -44,6 +62,18 @@ ud_set_input_hook(register struct ud* u, int (*hook)(struct ud*)) inp_init(u); } +extern void +ud_set_user_opaque_data( struct ud * u, void * opaque ) +{ + u->user_opaque_data = opaque; +} + +extern void * +ud_get_user_opaque_data( struct ud * u ) +{ + return u->user_opaque_data; +} + /* ============================================================================= * ud_inp_set_buffer() - Set buffer as input. * ============================================================================= diff --git a/libr/asm/arch/x86/udis86/input.h b/libr/asm/arch/x86/udis86/input.h index 217e768e36..3471fa34c6 100644 --- a/libr/asm/arch/x86/udis86/input.h +++ b/libr/asm/arch/x86/udis86/input.h @@ -1,9 +1,27 @@ -/* ----------------------------------------------------------------------------- - * input.h +/* udis86 - libudis86/input.h * - * Copyright (c) 2006, Vivek Mohan - * All rights reserved. See LICENSE - * ----------------------------------------------------------------------------- + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef UD_INPUT_H #define UD_INPUT_H diff --git a/libr/asm/arch/x86/udis86/itab.c b/libr/asm/arch/x86/udis86/itab.c index 52dc57754c..04dca23dba 100644 --- a/libr/asm/arch/x86/udis86/itab.c +++ b/libr/asm/arch/x86/udis86/itab.c @@ -1,3668 +1,3323 @@ - -/* itab.c -- auto generated by opgen.py, do not edit. */ - -#include "types.h" +/* itab.c -- generated by itab.py, do no edit */ #include "decode.h" -#include "itab.h" + + +static const uint16_t ud_itab__3[] = { + /* 0 */ 16, 17, 18, 19, + /* 4 */ 20, 21, 0, 0, +}; + +static const uint16_t ud_itab__7[] = { + /* 0 */ 0, 23, 0, +}; + +static const uint16_t ud_itab__8[] = { + /* 0 */ 0, 24, 0, +}; + +static const uint16_t ud_itab__9[] = { + /* 0 */ 0, 25, 0, +}; + +static const uint16_t ud_itab__10[] = { + /* 0 */ 0, 26, 0, +}; + +static const uint16_t ud_itab__6[] = { + /* 0 */ 0, 32775, 32776, 32777, + /* 4 */ 32778, 0, 0, 0, +}; + +static const uint16_t ud_itab__5[] = { + /* 0 */ 22, 32774, +}; + +static const uint16_t ud_itab__12[] = { + /* 0 */ 28, 29, 0, 0, + /* 4 */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__11[] = { + /* 0 */ 27, 32780, +}; + +static const uint16_t ud_itab__13[] = { + /* 0 */ 30, 0, +}; + +static const uint16_t ud_itab__16[] = { + /* 0 */ 32, 0, 0, +}; + +static const uint16_t ud_itab__17[] = { + /* 0 */ 33, 0, 0, +}; + +static const uint16_t ud_itab__18[] = { + /* 0 */ 34, 0, 0, +}; + +static const uint16_t ud_itab__19[] = { + /* 0 */ 35, 0, 0, +}; + +static const uint16_t ud_itab__20[] = { + /* 0 */ 36, 0, 0, +}; + +static const uint16_t ud_itab__21[] = { + /* 0 */ 37, 0, 0, +}; + +static const uint16_t ud_itab__22[] = { + /* 0 */ 38, 0, 0, +}; + +static const uint16_t ud_itab__23[] = { + /* 0 */ 39, 0, 0, +}; + +static const uint16_t ud_itab__15[] = { + /* 0 */ 32784, 32785, 32786, 32787, + /* 4 */ 32788, 32789, 32790, 32791, +}; + +static const uint16_t ud_itab__14[] = { + /* 0 */ 31, 32783, +}; + +static const uint16_t ud_itab__24[] = { + /* 0 */ 40, 0, +}; + +static const uint16_t ud_itab__25[] = { + /* 0 */ 41, 0, +}; + +static const uint16_t ud_itab__28[] = { + /* 0 */ 44, 0, 0, +}; + +static const uint16_t ud_itab__27[] = { + /* 0 */ 43, 32796, 0, 0, + /* 4 */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__26[] = { + /* 0 */ 42, 32795, +}; + +static const uint16_t ud_itab__4[] = { + /* 0 */ 32773, 32779, 32781, 32782, + /* 4 */ 32792, 0, 32793, 32794, +}; + +static const uint16_t ud_itab__29[] = { + /* 0 */ 53, 54, 55, 56, + /* 4 */ 57, 58, 59, 60, +}; + +static const uint16_t ud_itab__30[] = { + /* 0 */ 0, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, + /* 8 */ 0, 0, 0, 0, + /* c */ 62, 63, 0, 0, + /* 10 */ 0, 0, 0, 0, + /* 14 */ 0, 0, 0, 0, + /* 18 */ 0, 0, 0, 0, + /* 1c */ 64, 65, 0, 0, + /* 20 */ 0, 0, 0, 0, + /* 24 */ 0, 0, 0, 0, + /* 28 */ 0, 0, 0, 0, + /* 2c */ 0, 0, 0, 0, + /* 30 */ 0, 0, 0, 0, + /* 34 */ 0, 0, 0, 0, + /* 38 */ 0, 0, 0, 0, + /* 3c */ 0, 0, 0, 0, + /* 40 */ 0, 0, 0, 0, + /* 44 */ 0, 0, 0, 0, + /* 48 */ 0, 0, 0, 0, + /* 4c */ 0, 0, 0, 0, + /* 50 */ 0, 0, 0, 0, + /* 54 */ 0, 0, 0, 0, + /* 58 */ 0, 0, 0, 0, + /* 5c */ 0, 0, 0, 0, + /* 60 */ 0, 0, 0, 0, + /* 64 */ 0, 0, 0, 0, + /* 68 */ 0, 0, 0, 0, + /* 6c */ 0, 0, 0, 0, + /* 70 */ 0, 0, 0, 0, + /* 74 */ 0, 0, 0, 0, + /* 78 */ 0, 0, 0, 0, + /* 7c */ 0, 0, 0, 0, + /* 80 */ 0, 0, 0, 0, + /* 84 */ 0, 0, 0, 0, + /* 88 */ 0, 0, 66, 0, + /* 8c */ 0, 0, 67, 0, + /* 90 */ 68, 0, 0, 0, + /* 94 */ 69, 0, 70, 71, + /* 98 */ 0, 0, 72, 0, + /* 9c */ 0, 0, 73, 0, + /* a0 */ 74, 0, 0, 0, + /* a4 */ 75, 0, 76, 77, + /* a8 */ 0, 0, 78, 0, + /* ac */ 0, 0, 79, 0, + /* b0 */ 80, 0, 0, 0, + /* b4 */ 81, 0, 82, 83, + /* b8 */ 0, 0, 0, 84, + /* bc */ 0, 0, 0, 85, + /* c0 */ 0, 0, 0, 0, + /* c4 */ 0, 0, 0, 0, + /* c8 */ 0, 0, 0, 0, + /* cc */ 0, 0, 0, 0, + /* d0 */ 0, 0, 0, 0, + /* d4 */ 0, 0, 0, 0, + /* d8 */ 0, 0, 0, 0, + /* dc */ 0, 0, 0, 0, + /* e0 */ 0, 0, 0, 0, + /* e4 */ 0, 0, 0, 0, + /* e8 */ 0, 0, 0, 0, + /* ec */ 0, 0, 0, 0, + /* f0 */ 0, 0, 0, 0, + /* f4 */ 0, 0, 0, 0, + /* f8 */ 0, 0, 0, 0, + /* fc */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__31[] = { + /* 0 */ 88, 89, +}; + +static const uint16_t ud_itab__32[] = { + /* 0 */ 93, 94, +}; + +static const uint16_t ud_itab__33[] = { + /* 0 */ 96, 97, 98, 99, + /* 4 */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__34[] = { + /* 0 */ 0, 0, 172, 0, + /* 4 */ 173, 0, 174, 0, +}; + +static const uint16_t ud_itab__35[] = { + /* 0 */ 0, 0, 175, 0, + /* 4 */ 176, 0, 177, 0, +}; + +static const uint16_t ud_itab__36[] = { + /* 0 */ 0, 0, 178, 0, + /* 4 */ 0, 0, 179, 0, +}; + +static const uint16_t ud_itab__38[] = { + /* 0 */ 0, 184, 0, +}; + +static const uint16_t ud_itab__39[] = { + /* 0 */ 0, 185, 0, +}; + +static const uint16_t ud_itab__40[] = { + /* 0 */ 0, 186, 0, +}; + +static const uint16_t ud_itab__37[] = { + /* 0 */ 32806, 32807, 32808, +}; + +static const uint16_t ud_itab__42[] = { + /* 0 */ 0, 187, 0, +}; + +static const uint16_t ud_itab__43[] = { + /* 0 */ 0, 188, 0, +}; + +static const uint16_t ud_itab__44[] = { + /* 0 */ 0, 189, 0, +}; + +static const uint16_t ud_itab__41[] = { + /* 0 */ 32810, 32811, 32812, +}; + +static const uint16_t ud_itab__47[] = { + /* 0 */ 230, 231, 232, 0, + /* 4 */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__46[] = { + /* 0 */ 32815, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__45[] = { + /* 0 */ 0, 32814, +}; + +static const uint16_t ud_itab__50[] = { + /* 0 */ 233, 234, 235, 236, + /* 4 */ 237, 238, 0, 0, +}; + +static const uint16_t ud_itab__49[] = { + /* 0 */ 32818, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__48[] = { + /* 0 */ 0, 32817, +}; + +static const uint16_t ud_itab__53[] = { + /* 0 */ 249, 250, 251, 252, + /* 4 */ 253, 254, 255, 256, +}; + +static const uint16_t ud_itab__52[] = { + /* 0 */ 0, 32821, +}; + +static const uint16_t ud_itab__55[] = { + /* 0 */ 257, 258, 259, 260, + /* 4 */ 261, 262, 263, 264, +}; + +static const uint16_t ud_itab__54[] = { + /* 0 */ 0, 32823, +}; + +static const uint16_t ud_itab__57[] = { + /* 0 */ 266, 267, 268, 269, + /* 4 */ 270, 271, 272, 273, +}; + +static const uint16_t ud_itab__56[] = { + /* 0 */ 265, 32825, +}; + +static const uint16_t ud_itab__51[] = { + /* 0 */ 245, 246, 247, 248, + /* 4 */ 0, 32820, 32822, 32824, +}; + +static const uint16_t ud_itab__58[] = { + /* 0 */ 0, 0, 0, 0, + /* 4 */ 283, 284, 285, 286, +}; + +static const uint16_t ud_itab__60[] = { + /* 0 */ 0, 300, 0, +}; + +static const uint16_t ud_itab__61[] = { + /* 0 */ 0, 301, 0, +}; + +static const uint16_t ud_itab__59[] = { + /* 0 */ 0, 299, 0, 0, + /* 4 */ 0, 0, 32828, 32829, +}; + +static const uint16_t ud_itab__2[] = { + /* 0 */ 32771, 32772, 45, 46, + /* 4 */ 0, 47, 48, 49, + /* 8 */ 50, 51, 0, 52, + /* c */ 0, 32797, 61, 32798, + /* 10 */ 86, 87, 32799, 90, + /* 14 */ 91, 92, 32800, 95, + /* 18 */ 32801, 100, 101, 102, + /* 1c */ 103, 104, 105, 106, + /* 20 */ 107, 108, 109, 110, + /* 24 */ 0, 0, 0, 0, + /* 28 */ 111, 112, 113, 114, + /* 2c */ 115, 116, 117, 118, + /* 30 */ 119, 120, 121, 122, + /* 34 */ 123, 124, 0, 0, + /* 38 */ 0, 0, 0, 0, + /* 3c */ 0, 0, 0, 0, + /* 40 */ 125, 126, 127, 128, + /* 44 */ 129, 130, 131, 132, + /* 48 */ 133, 134, 135, 136, + /* 4c */ 137, 138, 139, 140, + /* 50 */ 141, 142, 143, 144, + /* 54 */ 145, 146, 147, 148, + /* 58 */ 149, 150, 151, 152, + /* 5c */ 153, 154, 155, 156, + /* 60 */ 157, 158, 159, 160, + /* 64 */ 161, 162, 163, 164, + /* 68 */ 165, 166, 167, 168, + /* 6c */ 0, 0, 169, 170, + /* 70 */ 171, 32802, 32803, 32804, + /* 74 */ 180, 181, 182, 183, + /* 78 */ 32805, 32809, 0, 0, + /* 7c */ 0, 0, 190, 191, + /* 80 */ 192, 193, 194, 195, + /* 84 */ 196, 197, 198, 199, + /* 88 */ 200, 201, 202, 203, + /* 8c */ 204, 205, 206, 207, + /* 90 */ 208, 209, 210, 211, + /* 94 */ 212, 213, 214, 215, + /* 98 */ 216, 217, 218, 219, + /* 9c */ 220, 221, 222, 223, + /* a0 */ 224, 225, 226, 227, + /* a4 */ 228, 229, 32813, 32816, + /* a8 */ 239, 240, 241, 242, + /* ac */ 243, 244, 32819, 274, + /* b0 */ 275, 276, 277, 278, + /* b4 */ 279, 280, 281, 282, + /* b8 */ 0, 0, 32826, 287, + /* bc */ 288, 289, 290, 291, + /* c0 */ 292, 293, 294, 295, + /* c4 */ 296, 297, 298, 32827, + /* c8 */ 302, 303, 304, 305, + /* cc */ 306, 307, 308, 309, + /* d0 */ 0, 310, 311, 312, + /* d4 */ 313, 314, 0, 315, + /* d8 */ 316, 317, 318, 319, + /* dc */ 320, 321, 322, 323, + /* e0 */ 324, 325, 326, 327, + /* e4 */ 328, 329, 0, 330, + /* e8 */ 331, 332, 333, 334, + /* ec */ 335, 336, 337, 338, + /* f0 */ 0, 339, 340, 341, + /* f4 */ 342, 343, 344, 345, + /* f8 */ 346, 347, 348, 349, + /* fc */ 350, 351, 352, 0, +}; + +static const uint16_t ud_itab__62[] = { + /* 0 */ 0, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, + /* 8 */ 0, 0, 0, 0, + /* c */ 0, 0, 0, 0, + /* 10 */ 353, 354, 355, 0, + /* 14 */ 0, 0, 0, 0, + /* 18 */ 0, 0, 0, 0, + /* 1c */ 0, 0, 0, 0, + /* 20 */ 0, 0, 0, 0, + /* 24 */ 0, 0, 0, 0, + /* 28 */ 0, 0, 356, 0, + /* 2c */ 357, 358, 0, 0, + /* 30 */ 0, 0, 0, 0, + /* 34 */ 0, 0, 0, 0, + /* 38 */ 0, 0, 0, 0, + /* 3c */ 0, 0, 0, 0, + /* 40 */ 0, 0, 0, 0, + /* 44 */ 0, 0, 0, 0, + /* 48 */ 0, 0, 0, 0, + /* 4c */ 0, 0, 0, 0, + /* 50 */ 0, 359, 0, 0, + /* 54 */ 0, 0, 0, 0, + /* 58 */ 360, 361, 362, 0, + /* 5c */ 363, 364, 365, 366, + /* 60 */ 0, 0, 0, 0, + /* 64 */ 0, 0, 0, 0, + /* 68 */ 0, 0, 0, 0, + /* 6c */ 0, 0, 0, 0, + /* 70 */ 367, 0, 0, 0, + /* 74 */ 0, 0, 0, 0, + /* 78 */ 0, 0, 0, 0, + /* 7c */ 368, 369, 0, 0, + /* 80 */ 0, 0, 0, 0, + /* 84 */ 0, 0, 0, 0, + /* 88 */ 0, 0, 0, 0, + /* 8c */ 0, 0, 0, 0, + /* 90 */ 0, 0, 0, 0, + /* 94 */ 0, 0, 0, 0, + /* 98 */ 0, 0, 0, 0, + /* 9c */ 0, 0, 0, 0, + /* a0 */ 0, 0, 0, 0, + /* a4 */ 0, 0, 0, 0, + /* a8 */ 0, 0, 0, 0, + /* ac */ 0, 0, 0, 0, + /* b0 */ 0, 0, 0, 0, + /* b4 */ 0, 0, 0, 0, + /* b8 */ 0, 0, 0, 0, + /* bc */ 0, 0, 0, 0, + /* c0 */ 370, 371, 372, 0, + /* c4 */ 0, 0, 0, 0, + /* c8 */ 0, 0, 0, 0, + /* cc */ 0, 0, 0, 0, + /* d0 */ 373, 0, 0, 0, + /* d4 */ 0, 0, 374, 0, + /* d8 */ 0, 0, 0, 0, + /* dc */ 0, 0, 0, 0, + /* e0 */ 0, 0, 0, 0, + /* e4 */ 0, 0, 375, 0, + /* e8 */ 0, 0, 0, 0, + /* ec */ 0, 0, 0, 0, + /* f0 */ 376, 0, 0, 0, + /* f4 */ 0, 0, 0, 0, + /* f8 */ 0, 0, 0, 0, + /* fc */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__65[] = { + /* 0 */ 0, 402, 0, +}; + +static const uint16_t ud_itab__64[] = { + /* 0 */ 0, 0, 0, 0, + /* 4 */ 0, 0, 32833, 0, +}; + +static const uint16_t ud_itab__63[] = { + /* 0 */ 0, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, + /* 8 */ 0, 0, 0, 0, + /* c */ 0, 0, 0, 0, + /* 10 */ 377, 378, 379, 0, + /* 14 */ 0, 0, 380, 0, + /* 18 */ 0, 0, 0, 0, + /* 1c */ 0, 0, 0, 0, + /* 20 */ 0, 0, 0, 0, + /* 24 */ 0, 0, 0, 0, + /* 28 */ 0, 0, 381, 0, + /* 2c */ 382, 383, 0, 0, + /* 30 */ 0, 0, 0, 0, + /* 34 */ 0, 0, 0, 0, + /* 38 */ 0, 0, 0, 0, + /* 3c */ 0, 0, 0, 0, + /* 40 */ 0, 0, 0, 0, + /* 44 */ 0, 0, 0, 0, + /* 48 */ 0, 0, 0, 0, + /* 4c */ 0, 0, 0, 0, + /* 50 */ 0, 384, 385, 386, + /* 54 */ 0, 0, 0, 0, + /* 58 */ 387, 388, 389, 390, + /* 5c */ 391, 392, 393, 394, + /* 60 */ 0, 0, 0, 0, + /* 64 */ 0, 0, 0, 0, + /* 68 */ 0, 0, 0, 0, + /* 6c */ 0, 0, 0, 395, + /* 70 */ 396, 0, 0, 0, + /* 74 */ 0, 0, 0, 0, + /* 78 */ 0, 0, 0, 0, + /* 7c */ 0, 0, 397, 398, + /* 80 */ 0, 0, 0, 0, + /* 84 */ 0, 0, 0, 0, + /* 88 */ 0, 0, 0, 0, + /* 8c */ 0, 0, 0, 0, + /* 90 */ 0, 0, 0, 0, + /* 94 */ 0, 0, 0, 0, + /* 98 */ 0, 0, 0, 0, + /* 9c */ 0, 0, 0, 0, + /* a0 */ 0, 0, 0, 0, + /* a4 */ 0, 0, 0, 0, + /* a8 */ 0, 0, 0, 0, + /* ac */ 0, 0, 0, 0, + /* b0 */ 0, 0, 0, 0, + /* b4 */ 0, 0, 0, 0, + /* b8 */ 0, 0, 0, 0, + /* bc */ 0, 0, 0, 0, + /* c0 */ 399, 400, 401, 0, + /* c4 */ 0, 0, 0, 32832, + /* c8 */ 0, 0, 0, 0, + /* cc */ 0, 0, 0, 0, + /* d0 */ 0, 0, 0, 0, + /* d4 */ 0, 0, 403, 0, + /* d8 */ 0, 0, 0, 0, + /* dc */ 0, 0, 0, 0, + /* e0 */ 0, 0, 0, 0, + /* e4 */ 0, 0, 404, 0, + /* e8 */ 0, 0, 0, 0, + /* ec */ 0, 0, 0, 0, + /* f0 */ 0, 0, 0, 0, + /* f4 */ 0, 0, 0, 0, + /* f8 */ 0, 0, 0, 0, + /* fc */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__69[] = { + /* 0 */ 0, 421, 0, +}; + +static const uint16_t ud_itab__70[] = { + /* 0 */ 0, 422, 0, +}; + +static const uint16_t ud_itab__68[] = { + /* 0 */ 0, 32837, 32838, +}; + +static const uint16_t ud_itab__72[] = { + /* 0 */ 0, 423, 0, +}; + +static const uint16_t ud_itab__73[] = { + /* 0 */ 0, 424, 0, +}; + +static const uint16_t ud_itab__71[] = { + /* 0 */ 0, 32840, 32841, +}; + +static const uint16_t ud_itab__67[] = { + /* 0 */ 0, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, + /* 8 */ 0, 0, 0, 0, + /* c */ 0, 0, 0, 0, + /* 10 */ 0, 0, 0, 0, + /* 14 */ 0, 0, 0, 0, + /* 18 */ 0, 0, 0, 0, + /* 1c */ 0, 0, 0, 0, + /* 20 */ 0, 0, 0, 0, + /* 24 */ 0, 0, 0, 0, + /* 28 */ 0, 0, 0, 0, + /* 2c */ 0, 0, 0, 0, + /* 30 */ 0, 0, 0, 0, + /* 34 */ 0, 0, 0, 0, + /* 38 */ 0, 0, 0, 0, + /* 3c */ 0, 0, 0, 0, + /* 40 */ 0, 0, 0, 0, + /* 44 */ 0, 0, 0, 0, + /* 48 */ 0, 0, 0, 0, + /* 4c */ 0, 0, 0, 0, + /* 50 */ 0, 0, 0, 0, + /* 54 */ 0, 0, 0, 0, + /* 58 */ 0, 0, 0, 0, + /* 5c */ 0, 0, 0, 0, + /* 60 */ 0, 0, 0, 0, + /* 64 */ 0, 0, 0, 0, + /* 68 */ 0, 0, 0, 0, + /* 6c */ 0, 0, 0, 0, + /* 70 */ 0, 0, 0, 0, + /* 74 */ 0, 0, 0, 0, + /* 78 */ 0, 0, 0, 0, + /* 7c */ 0, 0, 0, 0, + /* 80 */ 32836, 32839, 0, 0, + /* 84 */ 0, 0, 0, 0, + /* 88 */ 0, 0, 0, 0, + /* 8c */ 0, 0, 0, 0, + /* 90 */ 0, 0, 0, 0, + /* 94 */ 0, 0, 0, 0, + /* 98 */ 0, 0, 0, 0, + /* 9c */ 0, 0, 0, 0, + /* a0 */ 0, 0, 0, 0, + /* a4 */ 0, 0, 0, 0, + /* a8 */ 0, 0, 0, 0, + /* ac */ 0, 0, 0, 0, + /* b0 */ 0, 0, 0, 0, + /* b4 */ 0, 0, 0, 0, + /* b8 */ 0, 0, 0, 0, + /* bc */ 0, 0, 0, 0, + /* c0 */ 0, 0, 0, 0, + /* c4 */ 0, 0, 0, 0, + /* c8 */ 0, 0, 0, 0, + /* cc */ 0, 0, 0, 0, + /* d0 */ 0, 0, 0, 0, + /* d4 */ 0, 0, 0, 0, + /* d8 */ 0, 0, 0, 0, + /* dc */ 0, 0, 0, 0, + /* e0 */ 0, 0, 0, 0, + /* e4 */ 0, 0, 0, 0, + /* e8 */ 0, 0, 0, 0, + /* ec */ 0, 0, 0, 0, + /* f0 */ 0, 0, 0, 0, + /* f4 */ 0, 0, 0, 0, + /* f8 */ 0, 0, 0, 0, + /* fc */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__75[] = { + /* 0 */ 0, 426, 427, +}; + +static const uint16_t ud_itab__74[] = { + /* 0 */ 0, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, + /* 8 */ 0, 0, 0, 0, + /* c */ 0, 0, 0, 0, + /* 10 */ 0, 0, 0, 0, + /* 14 */ 425, 0, 32843, 0, + /* 18 */ 0, 0, 0, 0, + /* 1c */ 0, 0, 0, 0, + /* 20 */ 0, 0, 0, 0, + /* 24 */ 0, 0, 0, 0, + /* 28 */ 0, 0, 0, 0, + /* 2c */ 0, 0, 0, 0, + /* 30 */ 0, 0, 0, 0, + /* 34 */ 0, 0, 0, 0, + /* 38 */ 0, 0, 0, 0, + /* 3c */ 0, 0, 0, 0, + /* 40 */ 0, 0, 0, 0, + /* 44 */ 0, 0, 0, 0, + /* 48 */ 0, 0, 0, 0, + /* 4c */ 0, 0, 0, 0, + /* 50 */ 0, 0, 0, 0, + /* 54 */ 0, 0, 0, 0, + /* 58 */ 0, 0, 0, 0, + /* 5c */ 0, 0, 0, 0, + /* 60 */ 0, 0, 0, 0, + /* 64 */ 0, 0, 0, 0, + /* 68 */ 0, 0, 0, 0, + /* 6c */ 0, 0, 0, 0, + /* 70 */ 0, 0, 0, 0, + /* 74 */ 0, 0, 0, 0, + /* 78 */ 0, 0, 0, 0, + /* 7c */ 0, 0, 0, 0, + /* 80 */ 0, 0, 0, 0, + /* 84 */ 0, 0, 0, 0, + /* 88 */ 0, 0, 0, 0, + /* 8c */ 0, 0, 0, 0, + /* 90 */ 0, 0, 0, 0, + /* 94 */ 0, 0, 0, 0, + /* 98 */ 0, 0, 0, 0, + /* 9c */ 0, 0, 0, 0, + /* a0 */ 0, 0, 0, 0, + /* a4 */ 0, 0, 0, 0, + /* a8 */ 0, 0, 0, 0, + /* ac */ 0, 0, 0, 0, + /* b0 */ 0, 0, 0, 0, + /* b4 */ 0, 0, 0, 0, + /* b8 */ 0, 0, 0, 0, + /* bc */ 0, 0, 0, 0, + /* c0 */ 0, 0, 0, 0, + /* c4 */ 0, 0, 0, 0, + /* c8 */ 0, 0, 0, 0, + /* cc */ 0, 0, 0, 0, + /* d0 */ 0, 0, 0, 0, + /* d4 */ 0, 0, 0, 0, + /* d8 */ 0, 0, 0, 0, + /* dc */ 0, 0, 0, 0, + /* e0 */ 0, 0, 0, 0, + /* e4 */ 0, 0, 0, 0, + /* e8 */ 0, 0, 0, 0, + /* ec */ 0, 0, 0, 0, + /* f0 */ 0, 0, 0, 0, + /* f4 */ 0, 0, 0, 0, + /* f8 */ 0, 0, 0, 0, + /* fc */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__76[] = { + /* 0 */ 0, 0, 459, 0, + /* 4 */ 460, 0, 461, 0, +}; + +static const uint16_t ud_itab__77[] = { + /* 0 */ 0, 0, 462, 0, + /* 4 */ 463, 0, 464, 0, +}; + +static const uint16_t ud_itab__78[] = { + /* 0 */ 0, 0, 465, 466, + /* 4 */ 0, 0, 467, 468, +}; + +static const uint16_t ud_itab__80[] = { + /* 0 */ 0, 482, 0, +}; + +static const uint16_t ud_itab__79[] = { + /* 0 */ 0, 0, 0, 0, + /* 4 */ 0, 0, 32848, 0, +}; + +static const uint16_t ud_itab__66[] = { + /* 0 */ 0, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, + /* 8 */ 0, 0, 0, 0, + /* c */ 0, 0, 0, 0, + /* 10 */ 405, 406, 407, 408, + /* 14 */ 409, 410, 411, 412, + /* 18 */ 0, 0, 0, 0, + /* 1c */ 0, 0, 0, 0, + /* 20 */ 0, 0, 0, 0, + /* 24 */ 0, 0, 0, 0, + /* 28 */ 413, 414, 415, 416, + /* 2c */ 417, 418, 419, 420, + /* 30 */ 0, 0, 0, 0, + /* 34 */ 0, 0, 0, 0, + /* 38 */ 32835, 0, 32842, 0, + /* 3c */ 0, 0, 0, 0, + /* 40 */ 0, 0, 0, 0, + /* 44 */ 0, 0, 0, 0, + /* 48 */ 0, 0, 0, 0, + /* 4c */ 0, 0, 0, 0, + /* 50 */ 428, 429, 0, 0, + /* 54 */ 430, 431, 432, 433, + /* 58 */ 434, 435, 436, 437, + /* 5c */ 438, 439, 440, 441, + /* 60 */ 442, 443, 444, 445, + /* 64 */ 446, 447, 448, 449, + /* 68 */ 450, 451, 452, 453, + /* 6c */ 454, 455, 456, 457, + /* 70 */ 458, 32844, 32845, 32846, + /* 74 */ 469, 470, 471, 0, + /* 78 */ 0, 0, 0, 0, + /* 7c */ 472, 473, 474, 475, + /* 80 */ 0, 0, 0, 0, + /* 84 */ 0, 0, 0, 0, + /* 88 */ 0, 0, 0, 0, + /* 8c */ 0, 0, 0, 0, + /* 90 */ 0, 0, 0, 0, + /* 94 */ 0, 0, 0, 0, + /* 98 */ 0, 0, 0, 0, + /* 9c */ 0, 0, 0, 0, + /* a0 */ 0, 0, 0, 0, + /* a4 */ 0, 0, 0, 0, + /* a8 */ 0, 0, 0, 0, + /* ac */ 0, 0, 0, 0, + /* b0 */ 0, 0, 0, 0, + /* b4 */ 0, 0, 0, 0, + /* b8 */ 0, 0, 0, 0, + /* bc */ 0, 0, 0, 0, + /* c0 */ 476, 477, 478, 0, + /* c4 */ 479, 480, 481, 32847, + /* c8 */ 0, 0, 0, 0, + /* cc */ 0, 0, 0, 0, + /* d0 */ 483, 484, 485, 486, + /* d4 */ 487, 488, 489, 490, + /* d8 */ 491, 492, 493, 494, + /* dc */ 495, 496, 497, 498, + /* e0 */ 499, 500, 501, 502, + /* e4 */ 503, 504, 505, 506, + /* e8 */ 507, 508, 509, 510, + /* ec */ 511, 512, 513, 514, + /* f0 */ 0, 515, 516, 517, + /* f4 */ 518, 519, 520, 0, + /* f8 */ 521, 522, 523, 524, + /* fc */ 525, 526, 527, 0, +}; + +static const uint16_t ud_itab__1[] = { + /* 0 */ 32770, 32830, 32831, 32834, +}; + +static const uint16_t ud_itab__81[] = { + /* 0 */ 604, 605, 0, +}; + +static const uint16_t ud_itab__82[] = { + /* 0 */ 606, 607, 0, +}; + +static const uint16_t ud_itab__83[] = { + /* 0 */ 609, 610, 611, +}; + +static const uint16_t ud_itab__84[] = { + /* 0 */ 617, 618, 0, +}; + +static const uint16_t ud_itab__85[] = { + /* 0 */ 620, 621, 622, +}; + +static const uint16_t ud_itab__86[] = { + /* 0 */ 639, 640, 641, 642, + /* 4 */ 643, 644, 645, 646, +}; + +static const uint16_t ud_itab__87[] = { + /* 0 */ 647, 648, 649, 650, + /* 4 */ 651, 652, 653, 654, +}; + +static const uint16_t ud_itab__88[] = { + /* 0 */ 655, 656, 657, 658, + /* 4 */ 659, 660, 661, 662, +}; + +static const uint16_t ud_itab__89[] = { + /* 0 */ 663, 664, 665, 666, + /* 4 */ 667, 668, 669, 670, +}; + +static const uint16_t ud_itab__90[] = { + /* 0 */ 682, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__91[] = { + /* 0 */ 691, 692, 693, +}; + +static const uint16_t ud_itab__92[] = { + /* 0 */ 694, 695, 696, +}; + +static const uint16_t ud_itab__94[] = { + /* 0 */ 699, 700, 0, +}; + +static const uint16_t ud_itab__95[] = { + /* 0 */ 701, 702, 0, +}; + +static const uint16_t ud_itab__96[] = { + /* 0 */ 703, 704, 705, +}; + +static const uint16_t ud_itab__93[] = { + /* 0 */ 32862, 32863, 32864, +}; + +static const uint16_t ud_itab__98[] = { + /* 0 */ 706, 707, 0, +}; + +static const uint16_t ud_itab__99[] = { + /* 0 */ 708, 709, 0, +}; + +static const uint16_t ud_itab__97[] = { + /* 0 */ 32866, 32867, 710, +}; + +static const uint16_t ud_itab__100[] = { + /* 0 */ 718, 719, 720, +}; + +static const uint16_t ud_itab__101[] = { + /* 0 */ 722, 723, 724, +}; + +static const uint16_t ud_itab__102[] = { + /* 0 */ 728, 729, 730, +}; + +static const uint16_t ud_itab__103[] = { + /* 0 */ 732, 733, 734, +}; + +static const uint16_t ud_itab__104[] = { + /* 0 */ 736, 737, 738, +}; + +static const uint16_t ud_itab__105[] = { + /* 0 */ 755, 756, 757, 758, + /* 4 */ 759, 760, 761, 762, +}; + +static const uint16_t ud_itab__106[] = { + /* 0 */ 763, 764, 765, 766, + /* 4 */ 767, 768, 769, 770, +}; + +static const uint16_t ud_itab__107[] = { + /* 0 */ 775, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__108[] = { + /* 0 */ 776, 0, 0, 0, + /* 4 */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__109[] = { + /* 0 */ 784, 785, 786, +}; + +static const uint16_t ud_itab__110[] = { + /* 0 */ 787, 788, 789, 790, + /* 4 */ 791, 792, 793, 794, +}; + +static const uint16_t ud_itab__111[] = { + /* 0 */ 795, 796, 797, 798, + /* 4 */ 799, 800, 801, 802, +}; + +static const uint16_t ud_itab__112[] = { + /* 0 */ 803, 804, 805, 806, + /* 4 */ 807, 808, 809, 810, +}; + +static const uint16_t ud_itab__113[] = { + /* 0 */ 811, 812, 813, 814, + /* 4 */ 815, 816, 817, 818, +}; + +static const uint16_t ud_itab__115[] = { + /* 0 */ 823, 824, 825, 826, + /* 4 */ 827, 828, 829, 830, +}; + +static const uint16_t ud_itab__116[] = { + /* 0 */ 831, 832, 833, 834, + /* 4 */ 835, 836, 837, 838, + /* 8 */ 839, 840, 841, 842, + /* c */ 843, 844, 845, 846, + /* 10 */ 847, 848, 849, 850, + /* 14 */ 851, 852, 853, 854, + /* 18 */ 855, 856, 857, 858, + /* 1c */ 859, 860, 861, 862, + /* 20 */ 863, 864, 865, 866, + /* 24 */ 867, 868, 869, 870, + /* 28 */ 871, 872, 873, 874, + /* 2c */ 875, 876, 877, 878, + /* 30 */ 879, 880, 881, 882, + /* 34 */ 883, 884, 885, 886, + /* 38 */ 887, 888, 889, 890, + /* 3c */ 891, 892, 893, 894, +}; + +static const uint16_t ud_itab__114[] = { + /* 0 */ 32883, 32884, +}; + +static const uint16_t ud_itab__118[] = { + /* 0 */ 895, 0, 896, 897, + /* 4 */ 898, 899, 900, 901, +}; + +static const uint16_t ud_itab__119[] = { + /* 0 */ 902, 903, 904, 905, + /* 4 */ 906, 907, 908, 909, + /* 8 */ 910, 911, 912, 913, + /* c */ 914, 915, 916, 917, + /* 10 */ 918, 0, 0, 0, + /* 14 */ 0, 0, 0, 0, + /* 18 */ 919, 920, 921, 922, + /* 1c */ 923, 924, 925, 926, + /* 20 */ 927, 928, 0, 0, + /* 24 */ 929, 930, 0, 0, + /* 28 */ 931, 932, 933, 934, + /* 2c */ 935, 936, 937, 0, + /* 30 */ 938, 939, 940, 941, + /* 34 */ 942, 943, 944, 945, + /* 38 */ 946, 947, 948, 949, + /* 3c */ 950, 951, 952, 953, +}; + +static const uint16_t ud_itab__117[] = { + /* 0 */ 32886, 32887, +}; + +static const uint16_t ud_itab__121[] = { + /* 0 */ 954, 955, 956, 957, + /* 4 */ 958, 959, 960, 961, +}; + +static const uint16_t ud_itab__122[] = { + /* 0 */ 962, 963, 964, 965, + /* 4 */ 966, 967, 968, 969, + /* 8 */ 970, 971, 972, 973, + /* c */ 974, 975, 976, 977, + /* 10 */ 978, 979, 980, 981, + /* 14 */ 982, 983, 984, 985, + /* 18 */ 986, 987, 988, 989, + /* 1c */ 990, 991, 992, 993, + /* 20 */ 0, 0, 0, 0, + /* 24 */ 0, 0, 0, 0, + /* 28 */ 0, 994, 0, 0, + /* 2c */ 0, 0, 0, 0, + /* 30 */ 0, 0, 0, 0, + /* 34 */ 0, 0, 0, 0, + /* 38 */ 0, 0, 0, 0, + /* 3c */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__120[] = { + /* 0 */ 32889, 32890, +}; + +static const uint16_t ud_itab__124[] = { + /* 0 */ 995, 996, 997, 998, + /* 4 */ 0, 999, 0, 1000, +}; + +static const uint16_t ud_itab__125[] = { + /* 0 */ 1001, 1002, 1003, 1004, + /* 4 */ 1005, 1006, 1007, 1008, + /* 8 */ 1009, 1010, 1011, 1012, + /* c */ 1013, 1014, 1015, 1016, + /* 10 */ 1017, 1018, 1019, 1020, + /* 14 */ 1021, 1022, 1023, 1024, + /* 18 */ 1025, 1026, 1027, 1028, + /* 1c */ 1029, 1030, 1031, 1032, + /* 20 */ 0, 0, 1033, 1034, + /* 24 */ 0, 0, 0, 0, + /* 28 */ 1035, 1036, 1037, 1038, + /* 2c */ 1039, 1040, 1041, 1042, + /* 30 */ 1043, 1044, 1045, 1046, + /* 34 */ 1047, 1048, 1049, 1050, + /* 38 */ 0, 0, 0, 0, + /* 3c */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__123[] = { + /* 0 */ 32892, 32893, +}; + +static const uint16_t ud_itab__127[] = { + /* 0 */ 1051, 1052, 1053, 1054, + /* 4 */ 1055, 1056, 1057, 1058, +}; + +static const uint16_t ud_itab__128[] = { + /* 0 */ 1059, 1060, 1061, 1062, + /* 4 */ 1063, 1064, 1065, 1066, + /* 8 */ 1067, 1068, 1069, 1070, + /* c */ 1071, 1072, 1073, 1074, + /* 10 */ 1075, 1076, 1077, 1078, + /* 14 */ 1079, 1080, 1081, 1082, + /* 18 */ 1083, 1084, 1085, 1086, + /* 1c */ 1087, 1088, 1089, 1090, + /* 20 */ 1091, 1092, 1093, 1094, + /* 24 */ 1095, 1096, 1097, 1098, + /* 28 */ 1099, 1100, 1101, 1102, + /* 2c */ 1103, 1104, 1105, 1106, + /* 30 */ 1107, 1108, 1109, 1110, + /* 34 */ 1111, 1112, 1113, 1114, + /* 38 */ 1115, 1116, 1117, 1118, + /* 3c */ 1119, 1120, 1121, 1122, +}; + +static const uint16_t ud_itab__126[] = { + /* 0 */ 32895, 32896, +}; + +static const uint16_t ud_itab__130[] = { + /* 0 */ 1123, 1124, 1125, 1126, + /* 4 */ 1127, 0, 1128, 1129, +}; + +static const uint16_t ud_itab__131[] = { + /* 0 */ 1130, 1131, 1132, 1133, + /* 4 */ 1134, 1135, 1136, 1137, + /* 8 */ 1138, 1139, 1140, 1141, + /* c */ 1142, 1143, 1144, 1145, + /* 10 */ 1146, 1147, 1148, 1149, + /* 14 */ 1150, 1151, 1152, 1153, + /* 18 */ 1154, 1155, 1156, 1157, + /* 1c */ 1158, 1159, 1160, 1161, + /* 20 */ 1162, 1163, 1164, 1165, + /* 24 */ 1166, 1167, 1168, 1169, + /* 28 */ 1170, 1171, 1172, 1173, + /* 2c */ 1174, 1175, 1176, 1177, + /* 30 */ 0, 0, 0, 0, + /* 34 */ 0, 0, 0, 0, + /* 38 */ 0, 0, 0, 0, + /* 3c */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__129[] = { + /* 0 */ 32898, 32899, +}; + +static const uint16_t ud_itab__133[] = { + /* 0 */ 1178, 1179, 1180, 1181, + /* 4 */ 1182, 1183, 1184, 1185, +}; + +static const uint16_t ud_itab__134[] = { + /* 0 */ 1186, 1187, 1188, 1189, + /* 4 */ 1190, 1191, 1192, 1193, + /* 8 */ 1194, 1195, 1196, 1197, + /* c */ 1198, 1199, 1200, 1201, + /* 10 */ 1202, 1203, 1204, 1205, + /* 14 */ 1206, 1207, 1208, 1209, + /* 18 */ 0, 1210, 0, 0, + /* 1c */ 0, 0, 0, 0, + /* 20 */ 1211, 1212, 1213, 1214, + /* 24 */ 1215, 1216, 1217, 1218, + /* 28 */ 1219, 1220, 1221, 1222, + /* 2c */ 1223, 1224, 1225, 1226, + /* 30 */ 1227, 1228, 1229, 1230, + /* 34 */ 1231, 1232, 1233, 1234, + /* 38 */ 1235, 1236, 1237, 1238, + /* 3c */ 1239, 1240, 1241, 1242, +}; + +static const uint16_t ud_itab__132[] = { + /* 0 */ 32901, 32902, +}; + +static const uint16_t ud_itab__136[] = { + /* 0 */ 1243, 1244, 1245, 1246, + /* 4 */ 1247, 1248, 1249, 1250, +}; + +static const uint16_t ud_itab__137[] = { + /* 0 */ 1251, 1252, 1253, 1254, + /* 4 */ 1255, 1256, 1257, 1258, + /* 8 */ 1259, 1260, 1261, 1262, + /* c */ 1263, 1264, 1265, 1266, + /* 10 */ 1267, 1268, 1269, 1270, + /* 14 */ 1271, 1272, 1273, 1274, + /* 18 */ 1275, 1276, 1277, 1278, + /* 1c */ 1279, 1280, 1281, 1282, + /* 20 */ 1283, 0, 0, 0, + /* 24 */ 0, 0, 0, 0, + /* 28 */ 1284, 1285, 1286, 1287, + /* 2c */ 1288, 1289, 1290, 1291, + /* 30 */ 1292, 1293, 1294, 1295, + /* 34 */ 1296, 1297, 1298, 1299, + /* 38 */ 0, 0, 0, 0, + /* 3c */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__135[] = { + /* 0 */ 32904, 32905, +}; + +static const uint16_t ud_itab__138[] = { + /* 0 */ 1303, 1304, 1305, +}; + +static const uint16_t ud_itab__139[] = { + /* 0 */ 1324, 1325, 1326, 1327, + /* 4 */ 1328, 1329, 1330, 1331, +}; + +static const uint16_t ud_itab__140[] = { + /* 0 */ 1332, 1333, 1334, 1335, + /* 4 */ 1336, 1337, 1338, 1339, +}; + +static const uint16_t ud_itab__141[] = { + /* 0 */ 1346, 1347, 0, 0, + /* 4 */ 0, 0, 0, 0, +}; + +static const uint16_t ud_itab__142[] = { + /* 0 */ 1348, 1349, 1350, 1351, + /* 4 */ 1352, 1353, 1354, 0, +}; + +const uint16_t ud_itab__0[] = { + /* 0 */ 1, 2, 3, 4, + /* 4 */ 5, 6, 7, 8, + /* 8 */ 9, 10, 11, 12, + /* c */ 13, 14, 15, 32769, + /* 10 */ 528, 529, 530, 531, + /* 14 */ 532, 533, 534, 535, + /* 18 */ 536, 537, 538, 539, + /* 1c */ 540, 541, 542, 543, + /* 20 */ 544, 545, 546, 547, + /* 24 */ 548, 549, 0, 550, + /* 28 */ 551, 552, 553, 554, + /* 2c */ 555, 556, 0, 557, + /* 30 */ 558, 559, 560, 561, + /* 34 */ 562, 563, 0, 564, + /* 38 */ 565, 566, 567, 568, + /* 3c */ 569, 570, 0, 571, + /* 40 */ 572, 573, 574, 575, + /* 44 */ 576, 577, 578, 579, + /* 48 */ 580, 581, 582, 583, + /* 4c */ 584, 585, 586, 587, + /* 50 */ 588, 589, 590, 591, + /* 54 */ 592, 593, 594, 595, + /* 58 */ 596, 597, 598, 599, + /* 5c */ 600, 601, 602, 603, + /* 60 */ 32849, 32850, 608, 32851, + /* 64 */ 0, 0, 0, 0, + /* 68 */ 612, 613, 614, 615, + /* 6c */ 616, 32852, 619, 32853, + /* 70 */ 623, 624, 625, 626, + /* 74 */ 627, 628, 629, 630, + /* 78 */ 631, 632, 633, 634, + /* 7c */ 635, 636, 637, 638, + /* 80 */ 32854, 32855, 32856, 32857, + /* 84 */ 671, 672, 673, 674, + /* 88 */ 675, 676, 677, 678, + /* 8c */ 679, 680, 681, 32858, + /* 90 */ 683, 684, 685, 686, + /* 94 */ 687, 688, 689, 690, + /* 98 */ 32859, 32860, 697, 698, + /* 9c */ 32861, 32865, 711, 712, + /* a0 */ 713, 714, 715, 716, + /* a4 */ 717, 32868, 721, 32869, + /* a8 */ 725, 726, 727, 32870, + /* ac */ 731, 32871, 735, 32872, + /* b0 */ 739, 740, 741, 742, + /* b4 */ 743, 744, 745, 746, + /* b8 */ 747, 748, 749, 750, + /* bc */ 751, 752, 753, 754, + /* c0 */ 32873, 32874, 771, 772, + /* c4 */ 773, 774, 32875, 32876, + /* c8 */ 777, 778, 779, 780, + /* cc */ 781, 782, 783, 32877, + /* d0 */ 32878, 32879, 32880, 32881, + /* d4 */ 819, 820, 821, 822, + /* d8 */ 32882, 32885, 32888, 32891, + /* dc */ 32894, 32897, 32900, 32903, + /* e0 */ 1300, 1301, 1302, 32906, + /* e4 */ 1306, 1307, 1308, 1309, + /* e8 */ 1310, 1311, 1312, 1313, + /* ec */ 1314, 1315, 1316, 1317, + /* f0 */ 1318, 1319, 1320, 1321, + /* f4 */ 1322, 1323, 32907, 32908, + /* f8 */ 1340, 1341, 1342, 1343, + /* fc */ 1344, 1345, 32909, 32910, +}; + + +struct ud_lookup_table_list_entry ud_lookup_table_list[] = { + /* 000 */ { ud_itab__0, UD_TAB__OPC_TABLE, "table0" }, + /* 001 */ { ud_itab__1, UD_TAB__OPC_2BYTE, "0f" }, + /* 002 */ { ud_itab__2, UD_TAB__OPC_TABLE, "none" }, + /* 003 */ { ud_itab__3, UD_TAB__OPC_REG, "/reg" }, + /* 004 */ { ud_itab__4, UD_TAB__OPC_REG, "/reg" }, + /* 005 */ { ud_itab__5, UD_TAB__OPC_MOD, "/mod" }, + /* 006 */ { ud_itab__6, UD_TAB__OPC_RM, "/rm" }, + /* 007 */ { ud_itab__7, UD_TAB__OPC_VENDOR, "intel" }, + /* 008 */ { ud_itab__8, UD_TAB__OPC_VENDOR, "intel" }, + /* 009 */ { ud_itab__9, UD_TAB__OPC_VENDOR, "intel" }, + /* 010 */ { ud_itab__10, UD_TAB__OPC_VENDOR, "intel" }, + /* 011 */ { ud_itab__11, UD_TAB__OPC_MOD, "/mod" }, + /* 012 */ { ud_itab__12, UD_TAB__OPC_RM, "/rm" }, + /* 013 */ { ud_itab__13, UD_TAB__OPC_MOD, "/mod" }, + /* 014 */ { ud_itab__14, UD_TAB__OPC_MOD, "/mod" }, + /* 015 */ { ud_itab__15, UD_TAB__OPC_RM, "/rm" }, + /* 016 */ { ud_itab__16, UD_TAB__OPC_VENDOR, "amd" }, + /* 017 */ { ud_itab__17, UD_TAB__OPC_VENDOR, "amd" }, + /* 018 */ { ud_itab__18, UD_TAB__OPC_VENDOR, "amd" }, + /* 019 */ { ud_itab__19, UD_TAB__OPC_VENDOR, "amd" }, + /* 020 */ { ud_itab__20, UD_TAB__OPC_VENDOR, "amd" }, + /* 021 */ { ud_itab__21, UD_TAB__OPC_VENDOR, "amd" }, + /* 022 */ { ud_itab__22, UD_TAB__OPC_VENDOR, "amd" }, + /* 023 */ { ud_itab__23, UD_TAB__OPC_VENDOR, "amd" }, + /* 024 */ { ud_itab__24, UD_TAB__OPC_MOD, "/mod" }, + /* 025 */ { ud_itab__25, UD_TAB__OPC_MOD, "/mod" }, + /* 026 */ { ud_itab__26, UD_TAB__OPC_MOD, "/mod" }, + /* 027 */ { ud_itab__27, UD_TAB__OPC_RM, "/rm" }, + /* 028 */ { ud_itab__28, UD_TAB__OPC_VENDOR, "amd" }, + /* 029 */ { ud_itab__29, UD_TAB__OPC_REG, "/reg" }, + /* 030 */ { ud_itab__30, UD_TAB__OPC_3DNOW, "/3dnow" }, + /* 031 */ { ud_itab__31, UD_TAB__OPC_MOD, "/mod" }, + /* 032 */ { ud_itab__32, UD_TAB__OPC_MOD, "/mod" }, + /* 033 */ { ud_itab__33, UD_TAB__OPC_REG, "/reg" }, + /* 034 */ { ud_itab__34, UD_TAB__OPC_REG, "/reg" }, + /* 035 */ { ud_itab__35, UD_TAB__OPC_REG, "/reg" }, + /* 036 */ { ud_itab__36, UD_TAB__OPC_REG, "/reg" }, + /* 037 */ { ud_itab__37, UD_TAB__OPC_MODE, "/m" }, + /* 038 */ { ud_itab__38, UD_TAB__OPC_VENDOR, "intel" }, + /* 039 */ { ud_itab__39, UD_TAB__OPC_VENDOR, "intel" }, + /* 040 */ { ud_itab__40, UD_TAB__OPC_VENDOR, "intel" }, + /* 041 */ { ud_itab__41, UD_TAB__OPC_MODE, "/m" }, + /* 042 */ { ud_itab__42, UD_TAB__OPC_VENDOR, "intel" }, + /* 043 */ { ud_itab__43, UD_TAB__OPC_VENDOR, "intel" }, + /* 044 */ { ud_itab__44, UD_TAB__OPC_VENDOR, "intel" }, + /* 045 */ { ud_itab__45, UD_TAB__OPC_MOD, "/mod" }, + /* 046 */ { ud_itab__46, UD_TAB__OPC_RM, "/rm" }, + /* 047 */ { ud_itab__47, UD_TAB__OPC_REG, "/reg" }, + /* 048 */ { ud_itab__48, UD_TAB__OPC_MOD, "/mod" }, + /* 049 */ { ud_itab__49, UD_TAB__OPC_RM, "/rm" }, + /* 050 */ { ud_itab__50, UD_TAB__OPC_REG, "/reg" }, + /* 051 */ { ud_itab__51, UD_TAB__OPC_REG, "/reg" }, + /* 052 */ { ud_itab__52, UD_TAB__OPC_MOD, "/mod" }, + /* 053 */ { ud_itab__53, UD_TAB__OPC_RM, "/rm" }, + /* 054 */ { ud_itab__54, UD_TAB__OPC_MOD, "/mod" }, + /* 055 */ { ud_itab__55, UD_TAB__OPC_RM, "/rm" }, + /* 056 */ { ud_itab__56, UD_TAB__OPC_MOD, "/mod" }, + /* 057 */ { ud_itab__57, UD_TAB__OPC_RM, "/rm" }, + /* 058 */ { ud_itab__58, UD_TAB__OPC_REG, "/reg" }, + /* 059 */ { ud_itab__59, UD_TAB__OPC_REG, "/reg" }, + /* 060 */ { ud_itab__60, UD_TAB__OPC_VENDOR, "intel" }, + /* 061 */ { ud_itab__61, UD_TAB__OPC_VENDOR, "intel" }, + /* 062 */ { ud_itab__62, UD_TAB__OPC_TABLE, "ssef2" }, + /* 063 */ { ud_itab__63, UD_TAB__OPC_TABLE, "ssef3" }, + /* 064 */ { ud_itab__64, UD_TAB__OPC_REG, "/reg" }, + /* 065 */ { ud_itab__65, UD_TAB__OPC_VENDOR, "intel" }, + /* 066 */ { ud_itab__66, UD_TAB__OPC_TABLE, "sse66" }, + /* 067 */ { ud_itab__67, UD_TAB__OPC_3BYTE, "38" }, + /* 068 */ { ud_itab__68, UD_TAB__OPC_MODE, "/m" }, + /* 069 */ { ud_itab__69, UD_TAB__OPC_VENDOR, "intel" }, + /* 070 */ { ud_itab__70, UD_TAB__OPC_VENDOR, "intel" }, + /* 071 */ { ud_itab__71, UD_TAB__OPC_MODE, "/m" }, + /* 072 */ { ud_itab__72, UD_TAB__OPC_VENDOR, "intel" }, + /* 073 */ { ud_itab__73, UD_TAB__OPC_VENDOR, "intel" }, + /* 074 */ { ud_itab__74, UD_TAB__OPC_3BYTE, "3a" }, + /* 075 */ { ud_itab__75, UD_TAB__OPC_OSIZE, "/o" }, + /* 076 */ { ud_itab__76, UD_TAB__OPC_REG, "/reg" }, + /* 077 */ { ud_itab__77, UD_TAB__OPC_REG, "/reg" }, + /* 078 */ { ud_itab__78, UD_TAB__OPC_REG, "/reg" }, + /* 079 */ { ud_itab__79, UD_TAB__OPC_REG, "/reg" }, + /* 080 */ { ud_itab__80, UD_TAB__OPC_VENDOR, "intel" }, + /* 081 */ { ud_itab__81, UD_TAB__OPC_OSIZE, "/o" }, + /* 082 */ { ud_itab__82, UD_TAB__OPC_OSIZE, "/o" }, + /* 083 */ { ud_itab__83, UD_TAB__OPC_MODE, "/m" }, + /* 084 */ { ud_itab__84, UD_TAB__OPC_OSIZE, "/o" }, + /* 085 */ { ud_itab__85, UD_TAB__OPC_OSIZE, "/o" }, + /* 086 */ { ud_itab__86, UD_TAB__OPC_REG, "/reg" }, + /* 087 */ { ud_itab__87, UD_TAB__OPC_REG, "/reg" }, + /* 088 */ { ud_itab__88, UD_TAB__OPC_REG, "/reg" }, + /* 089 */ { ud_itab__89, UD_TAB__OPC_REG, "/reg" }, + /* 090 */ { ud_itab__90, UD_TAB__OPC_REG, "/reg" }, + /* 091 */ { ud_itab__91, UD_TAB__OPC_OSIZE, "/o" }, + /* 092 */ { ud_itab__92, UD_TAB__OPC_OSIZE, "/o" }, + /* 093 */ { ud_itab__93, UD_TAB__OPC_MODE, "/m" }, + /* 094 */ { ud_itab__94, UD_TAB__OPC_OSIZE, "/o" }, + /* 095 */ { ud_itab__95, UD_TAB__OPC_OSIZE, "/o" }, + /* 096 */ { ud_itab__96, UD_TAB__OPC_OSIZE, "/o" }, + /* 097 */ { ud_itab__97, UD_TAB__OPC_MODE, "/m" }, + /* 098 */ { ud_itab__98, UD_TAB__OPC_OSIZE, "/o" }, + /* 099 */ { ud_itab__99, UD_TAB__OPC_OSIZE, "/o" }, + /* 100 */ { ud_itab__100, UD_TAB__OPC_OSIZE, "/o" }, + /* 101 */ { ud_itab__101, UD_TAB__OPC_OSIZE, "/o" }, + /* 102 */ { ud_itab__102, UD_TAB__OPC_OSIZE, "/o" }, + /* 103 */ { ud_itab__103, UD_TAB__OPC_OSIZE, "/o" }, + /* 104 */ { ud_itab__104, UD_TAB__OPC_OSIZE, "/o" }, + /* 105 */ { ud_itab__105, UD_TAB__OPC_REG, "/reg" }, + /* 106 */ { ud_itab__106, UD_TAB__OPC_REG, "/reg" }, + /* 107 */ { ud_itab__107, UD_TAB__OPC_REG, "/reg" }, + /* 108 */ { ud_itab__108, UD_TAB__OPC_REG, "/reg" }, + /* 109 */ { ud_itab__109, UD_TAB__OPC_OSIZE, "/o" }, + /* 110 */ { ud_itab__110, UD_TAB__OPC_REG, "/reg" }, + /* 111 */ { ud_itab__111, UD_TAB__OPC_REG, "/reg" }, + /* 112 */ { ud_itab__112, UD_TAB__OPC_REG, "/reg" }, + /* 113 */ { ud_itab__113, UD_TAB__OPC_REG, "/reg" }, + /* 114 */ { ud_itab__114, UD_TAB__OPC_MOD, "/mod" }, + /* 115 */ { ud_itab__115, UD_TAB__OPC_REG, "/reg" }, + /* 116 */ { ud_itab__116, UD_TAB__OPC_X87, "/x87" }, + /* 117 */ { ud_itab__117, UD_TAB__OPC_MOD, "/mod" }, + /* 118 */ { ud_itab__118, UD_TAB__OPC_REG, "/reg" }, + /* 119 */ { ud_itab__119, UD_TAB__OPC_X87, "/x87" }, + /* 120 */ { ud_itab__120, UD_TAB__OPC_MOD, "/mod" }, + /* 121 */ { ud_itab__121, UD_TAB__OPC_REG, "/reg" }, + /* 122 */ { ud_itab__122, UD_TAB__OPC_X87, "/x87" }, + /* 123 */ { ud_itab__123, UD_TAB__OPC_MOD, "/mod" }, + /* 124 */ { ud_itab__124, UD_TAB__OPC_REG, "/reg" }, + /* 125 */ { ud_itab__125, UD_TAB__OPC_X87, "/x87" }, + /* 126 */ { ud_itab__126, UD_TAB__OPC_MOD, "/mod" }, + /* 127 */ { ud_itab__127, UD_TAB__OPC_REG, "/reg" }, + /* 128 */ { ud_itab__128, UD_TAB__OPC_X87, "/x87" }, + /* 129 */ { ud_itab__129, UD_TAB__OPC_MOD, "/mod" }, + /* 130 */ { ud_itab__130, UD_TAB__OPC_REG, "/reg" }, + /* 131 */ { ud_itab__131, UD_TAB__OPC_X87, "/x87" }, + /* 132 */ { ud_itab__132, UD_TAB__OPC_MOD, "/mod" }, + /* 133 */ { ud_itab__133, UD_TAB__OPC_REG, "/reg" }, + /* 134 */ { ud_itab__134, UD_TAB__OPC_X87, "/x87" }, + /* 135 */ { ud_itab__135, UD_TAB__OPC_MOD, "/mod" }, + /* 136 */ { ud_itab__136, UD_TAB__OPC_REG, "/reg" }, + /* 137 */ { ud_itab__137, UD_TAB__OPC_X87, "/x87" }, + /* 138 */ { ud_itab__138, UD_TAB__OPC_ASIZE, "/a" }, + /* 139 */ { ud_itab__139, UD_TAB__OPC_REG, "/reg" }, + /* 140 */ { ud_itab__140, UD_TAB__OPC_REG, "/reg" }, + /* 141 */ { ud_itab__141, UD_TAB__OPC_REG, "/reg" }, + /* 142 */ { ud_itab__142, UD_TAB__OPC_REG, "/reg" }, +};struct ud_itab_entry ud_itab[] = { + /* 0000 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, + /* 0001 */ { UD_Iadd, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0002 */ { UD_Iadd, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0003 */ { UD_Iadd, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0004 */ { UD_Iadd, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0005 */ { UD_Iadd, O_AL, O_Ib, O_NONE, P_none }, + /* 0006 */ { UD_Iadd, O_rAX, O_Iz, O_NONE, P_oso|P_rexw|P_sext }, + /* 0007 */ { UD_Ipush, O_ES, O_NONE, O_NONE, P_inv64 }, + /* 0008 */ { UD_Ipop, O_ES, O_NONE, O_NONE, P_inv64 }, + /* 0009 */ { UD_Ior, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0010 */ { UD_Ior, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0011 */ { UD_Ior, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0012 */ { UD_Ior, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0013 */ { UD_Ior, O_AL, O_Ib, O_NONE, P_none }, + /* 0014 */ { UD_Ior, O_rAX, O_Iz, O_NONE, P_oso|P_rexw|P_sext }, + /* 0015 */ { UD_Ipush, O_CS, O_NONE, O_NONE, P_inv64 }, + /* 0016 */ { UD_Isldt, O_MwRv, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, + /* 0017 */ { UD_Istr, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, + /* 0018 */ { UD_Illdt, O_Ew, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0019 */ { UD_Iltr, O_Ew, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0020 */ { UD_Iverr, O_Ew, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0021 */ { UD_Iverw, O_Ew, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0022 */ { UD_Isgdt, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0023 */ { UD_Ivmcall, O_NONE, O_NONE, O_NONE, P_none }, + /* 0024 */ { UD_Ivmlaunch, O_NONE, O_NONE, O_NONE, P_none }, + /* 0025 */ { UD_Ivmresume, O_NONE, O_NONE, O_NONE, P_none }, + /* 0026 */ { UD_Ivmxoff, O_NONE, O_NONE, O_NONE, P_none }, + /* 0027 */ { UD_Isidt, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0028 */ { UD_Imonitor, O_NONE, O_NONE, O_NONE, P_none }, + /* 0029 */ { UD_Imwait, O_NONE, O_NONE, O_NONE, P_none }, + /* 0030 */ { UD_Ilgdt, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0031 */ { UD_Ilidt, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0032 */ { UD_Ivmrun, O_NONE, O_NONE, O_NONE, P_none }, + /* 0033 */ { UD_Ivmmcall, O_NONE, O_NONE, O_NONE, P_none }, + /* 0034 */ { UD_Ivmload, O_NONE, O_NONE, O_NONE, P_none }, + /* 0035 */ { UD_Ivmsave, O_NONE, O_NONE, O_NONE, P_none }, + /* 0036 */ { UD_Istgi, O_NONE, O_NONE, O_NONE, P_none }, + /* 0037 */ { UD_Iclgi, O_NONE, O_NONE, O_NONE, P_none }, + /* 0038 */ { UD_Iskinit, O_NONE, O_NONE, O_NONE, P_none }, + /* 0039 */ { UD_Iinvlpga, O_NONE, O_NONE, O_NONE, P_none }, + /* 0040 */ { UD_Ismsw, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0041 */ { UD_Ilmsw, O_Ew, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0042 */ { UD_Iinvlpg, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0043 */ { UD_Iswapgs, O_NONE, O_NONE, O_NONE, P_none }, + /* 0044 */ { UD_Irdtscp, O_NONE, O_NONE, O_NONE, P_none }, + /* 0045 */ { UD_Ilar, O_Gv, O_Ew, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0046 */ { UD_Ilsl, O_Gv, O_Ew, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0047 */ { UD_Isyscall, O_NONE, O_NONE, O_NONE, P_none }, + /* 0048 */ { UD_Iclts, O_NONE, O_NONE, O_NONE, P_none }, + /* 0049 */ { UD_Isysret, O_NONE, O_NONE, O_NONE, P_none }, + /* 0050 */ { UD_Iinvd, O_NONE, O_NONE, O_NONE, P_none }, + /* 0051 */ { UD_Iwbinvd, O_NONE, O_NONE, O_NONE, P_none }, + /* 0052 */ { UD_Iud2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0053 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0054 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0055 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0056 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0057 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0058 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0059 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0060 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0061 */ { UD_Ifemms, O_NONE, O_NONE, O_NONE, P_none }, + /* 0062 */ { UD_Ipi2fw, O_P, O_Q, O_NONE, P_none }, + /* 0063 */ { UD_Ipi2fd, O_P, O_Q, O_NONE, P_none }, + /* 0064 */ { UD_Ipf2iw, O_P, O_Q, O_NONE, P_none }, + /* 0065 */ { UD_Ipf2id, O_P, O_Q, O_NONE, P_none }, + /* 0066 */ { UD_Ipfnacc, O_P, O_Q, O_NONE, P_none }, + /* 0067 */ { UD_Ipfpnacc, O_P, O_Q, O_NONE, P_none }, + /* 0068 */ { UD_Ipfcmpge, O_P, O_Q, O_NONE, P_none }, + /* 0069 */ { UD_Ipfmin, O_P, O_Q, O_NONE, P_none }, + /* 0070 */ { UD_Ipfrcp, O_P, O_Q, O_NONE, P_none }, + /* 0071 */ { UD_Ipfrsqrt, O_P, O_Q, O_NONE, P_none }, + /* 0072 */ { UD_Ipfsub, O_P, O_Q, O_NONE, P_none }, + /* 0073 */ { UD_Ipfadd, O_P, O_Q, O_NONE, P_none }, + /* 0074 */ { UD_Ipfcmpgt, O_P, O_Q, O_NONE, P_none }, + /* 0075 */ { UD_Ipfmax, O_P, O_Q, O_NONE, P_none }, + /* 0076 */ { UD_Ipfrcpit1, O_P, O_Q, O_NONE, P_none }, + /* 0077 */ { UD_Ipfrspit1, O_P, O_Q, O_NONE, P_none }, + /* 0078 */ { UD_Ipfsubr, O_P, O_Q, O_NONE, P_none }, + /* 0079 */ { UD_Ipfacc, O_P, O_Q, O_NONE, P_none }, + /* 0080 */ { UD_Ipfcmpeq, O_P, O_Q, O_NONE, P_none }, + /* 0081 */ { UD_Ipfmul, O_P, O_Q, O_NONE, P_none }, + /* 0082 */ { UD_Ipfrcpit2, O_P, O_Q, O_NONE, P_none }, + /* 0083 */ { UD_Ipmulhrw, O_P, O_Q, O_NONE, P_none }, + /* 0084 */ { UD_Ipswapd, O_P, O_Q, O_NONE, P_none }, + /* 0085 */ { UD_Ipavgusb, O_P, O_Q, O_NONE, P_none }, + /* 0086 */ { UD_Imovups, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0087 */ { UD_Imovups, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0088 */ { UD_Imovlps, O_V, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0089 */ { UD_Imovhlps, O_V, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0090 */ { UD_Imovlps, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0091 */ { UD_Iunpcklps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0092 */ { UD_Iunpckhps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0093 */ { UD_Imovhps, O_V, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0094 */ { UD_Imovlhps, O_V, O_VR, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0095 */ { UD_Imovhps, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0096 */ { UD_Iprefetchnta, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0097 */ { UD_Iprefetcht0, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0098 */ { UD_Iprefetcht1, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0099 */ { UD_Iprefetcht2, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0100 */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0101 */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0102 */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0103 */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0104 */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0105 */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0106 */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0107 */ { UD_Imov, O_R, O_C, O_NONE, P_rexr }, + /* 0108 */ { UD_Imov, O_R, O_D, O_NONE, P_rexr }, + /* 0109 */ { UD_Imov, O_C, O_R, O_NONE, P_rexr }, + /* 0110 */ { UD_Imov, O_D, O_R, O_NONE, P_rexr }, + /* 0111 */ { UD_Imovaps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0112 */ { UD_Imovaps, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0113 */ { UD_Icvtpi2ps, O_V, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0114 */ { UD_Imovntps, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0115 */ { UD_Icvttps2pi, O_P, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0116 */ { UD_Icvtps2pi, O_P, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0117 */ { UD_Iucomiss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0118 */ { UD_Icomiss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0119 */ { UD_Iwrmsr, O_NONE, O_NONE, O_NONE, P_none }, + /* 0120 */ { UD_Irdtsc, O_NONE, O_NONE, O_NONE, P_none }, + /* 0121 */ { UD_Irdmsr, O_NONE, O_NONE, O_NONE, P_none }, + /* 0122 */ { UD_Irdpmc, O_NONE, O_NONE, O_NONE, P_none }, + /* 0123 */ { UD_Isysenter, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 0124 */ { UD_Isysexit, O_NONE, O_NONE, O_NONE, P_none }, + /* 0125 */ { UD_Icmovo, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0126 */ { UD_Icmovno, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0127 */ { UD_Icmovb, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0128 */ { UD_Icmovae, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0129 */ { UD_Icmovz, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0130 */ { UD_Icmovnz, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0131 */ { UD_Icmovbe, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0132 */ { UD_Icmova, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0133 */ { UD_Icmovs, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0134 */ { UD_Icmovns, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0135 */ { UD_Icmovp, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0136 */ { UD_Icmovnp, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0137 */ { UD_Icmovl, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0138 */ { UD_Icmovge, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0139 */ { UD_Icmovle, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0140 */ { UD_Icmovg, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0141 */ { UD_Imovmskps, O_Gd, O_VR, O_NONE, P_oso|P_rexr|P_rexb }, + /* 0142 */ { UD_Isqrtps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0143 */ { UD_Irsqrtps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0144 */ { UD_Ircpps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0145 */ { UD_Iandps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0146 */ { UD_Iandnps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0147 */ { UD_Iorps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0148 */ { UD_Ixorps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0149 */ { UD_Iaddps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0150 */ { UD_Imulps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0151 */ { UD_Icvtps2pd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0152 */ { UD_Icvtdq2ps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0153 */ { UD_Isubps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0154 */ { UD_Iminps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0155 */ { UD_Idivps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0156 */ { UD_Imaxps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0157 */ { UD_Ipunpcklbw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0158 */ { UD_Ipunpcklwd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0159 */ { UD_Ipunpckldq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0160 */ { UD_Ipacksswb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0161 */ { UD_Ipcmpgtb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0162 */ { UD_Ipcmpgtw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0163 */ { UD_Ipcmpgtd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0164 */ { UD_Ipackuswb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0165 */ { UD_Ipunpckhbw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0166 */ { UD_Ipunpckhwd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0167 */ { UD_Ipunpckhdq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0168 */ { UD_Ipackssdw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0169 */ { UD_Imovd, O_P, O_Ex, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0170 */ { UD_Imovq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0171 */ { UD_Ipshufw, O_P, O_Q, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0172 */ { UD_Ipsrlw, O_PR, O_Ib, O_NONE, P_none }, + /* 0173 */ { UD_Ipsraw, O_PR, O_Ib, O_NONE, P_none }, + /* 0174 */ { UD_Ipsllw, O_PR, O_Ib, O_NONE, P_none }, + /* 0175 */ { UD_Ipsrld, O_PR, O_Ib, O_NONE, P_none }, + /* 0176 */ { UD_Ipsrad, O_PR, O_Ib, O_NONE, P_none }, + /* 0177 */ { UD_Ipslld, O_PR, O_Ib, O_NONE, P_none }, + /* 0178 */ { UD_Ipsrlq, O_PR, O_Ib, O_NONE, P_none }, + /* 0179 */ { UD_Ipsllq, O_PR, O_Ib, O_NONE, P_none }, + /* 0180 */ { UD_Ipcmpeqb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0181 */ { UD_Ipcmpeqw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0182 */ { UD_Ipcmpeqd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0183 */ { UD_Iemms, O_NONE, O_NONE, O_NONE, P_none }, + /* 0184 */ { UD_Ivmread, O_Ed, O_Gd, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 0185 */ { UD_Ivmread, O_Ed, O_Gd, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 0186 */ { UD_Ivmread, O_Eq, O_Gq, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 0187 */ { UD_Ivmwrite, O_Gd, O_Ed, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 0188 */ { UD_Ivmwrite, O_Gd, O_Ed, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 0189 */ { UD_Ivmwrite, O_Gq, O_Eq, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 0190 */ { UD_Imovd, O_Ex, O_P, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0191 */ { UD_Imovq, O_Q, O_P, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0192 */ { UD_Ijo, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0193 */ { UD_Ijno, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0194 */ { UD_Ijb, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0195 */ { UD_Ijae, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0196 */ { UD_Ijz, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0197 */ { UD_Ijnz, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0198 */ { UD_Ijbe, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0199 */ { UD_Ija, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0200 */ { UD_Ijs, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0201 */ { UD_Ijns, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0202 */ { UD_Ijp, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0203 */ { UD_Ijnp, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0204 */ { UD_Ijl, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0205 */ { UD_Ijge, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0206 */ { UD_Ijle, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0207 */ { UD_Ijg, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0208 */ { UD_Iseto, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0209 */ { UD_Isetno, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0210 */ { UD_Isetb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0211 */ { UD_Isetnb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0212 */ { UD_Isetz, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0213 */ { UD_Isetnz, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0214 */ { UD_Isetbe, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0215 */ { UD_Iseta, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0216 */ { UD_Isets, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0217 */ { UD_Isetns, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0218 */ { UD_Isetp, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0219 */ { UD_Isetnp, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0220 */ { UD_Isetl, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0221 */ { UD_Isetge, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0222 */ { UD_Isetle, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0223 */ { UD_Isetg, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0224 */ { UD_Ipush, O_FS, O_NONE, O_NONE, P_none }, + /* 0225 */ { UD_Ipop, O_FS, O_NONE, O_NONE, P_none }, + /* 0226 */ { UD_Icpuid, O_NONE, O_NONE, O_NONE, P_none }, + /* 0227 */ { UD_Ibt, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0228 */ { UD_Ishld, O_Ev, O_Gv, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0229 */ { UD_Ishld, O_Ev, O_Gv, O_CL, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0230 */ { UD_Imontmul, O_NONE, O_NONE, O_NONE, P_none }, + /* 0231 */ { UD_Ixsha1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0232 */ { UD_Ixsha256, O_NONE, O_NONE, O_NONE, P_none }, + /* 0233 */ { UD_Ixstore, O_NONE, O_NONE, O_NONE, P_none }, + /* 0234 */ { UD_Ixcryptecb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0235 */ { UD_Ixcryptcbc, O_NONE, O_NONE, O_NONE, P_none }, + /* 0236 */ { UD_Ixcryptctr, O_NONE, O_NONE, O_NONE, P_none }, + /* 0237 */ { UD_Ixcryptcfb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0238 */ { UD_Ixcryptofb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0239 */ { UD_Ipush, O_GS, O_NONE, O_NONE, P_none }, + /* 0240 */ { UD_Ipop, O_GS, O_NONE, O_NONE, P_none }, + /* 0241 */ { UD_Irsm, O_NONE, O_NONE, O_NONE, P_none }, + /* 0242 */ { UD_Ibts, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0243 */ { UD_Ishrd, O_Ev, O_Gv, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0244 */ { UD_Ishrd, O_Ev, O_Gv, O_CL, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0245 */ { UD_Ifxsave, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0246 */ { UD_Ifxrstor, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0247 */ { UD_Ildmxcsr, O_Md, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0248 */ { UD_Istmxcsr, O_Md, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0249 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0250 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0251 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0252 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0253 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0254 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0255 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0256 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0257 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0258 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0259 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0260 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0261 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0262 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0263 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0264 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0265 */ { UD_Iclflush, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0266 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0267 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0268 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0269 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0270 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0271 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0272 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0273 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, + /* 0274 */ { UD_Iimul, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0275 */ { UD_Icmpxchg, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0276 */ { UD_Icmpxchg, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0277 */ { UD_Ilss, O_Gz, O_M, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0278 */ { UD_Ibtr, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0279 */ { UD_Ilfs, O_Gz, O_M, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0280 */ { UD_Ilgs, O_Gz, O_M, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0281 */ { UD_Imovzx, O_Gv, O_Eb, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0282 */ { UD_Imovzx, O_Gv, O_Ew, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0283 */ { UD_Ibt, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0284 */ { UD_Ibts, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0285 */ { UD_Ibtr, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0286 */ { UD_Ibtc, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0287 */ { UD_Ibtc, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0288 */ { UD_Ibsf, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0289 */ { UD_Ibsr, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0290 */ { UD_Imovsx, O_Gv, O_Eb, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0291 */ { UD_Imovsx, O_Gv, O_Ew, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0292 */ { UD_Ixadd, O_Eb, O_Gb, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, + /* 0293 */ { UD_Ixadd, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0294 */ { UD_Icmpps, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0295 */ { UD_Imovnti, O_M, O_Gvw, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0296 */ { UD_Ipinsrw, O_P, O_Ew, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0297 */ { UD_Ipextrw, O_Gd, O_PR, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0298 */ { UD_Ishufps, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0299 */ { UD_Icmpxchg8b, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0300 */ { UD_Ivmptrld, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0301 */ { UD_Ivmptrst, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0302 */ { UD_Ibswap, O_rAXr8, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0303 */ { UD_Ibswap, O_rCXr9, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0304 */ { UD_Ibswap, O_rDXr10, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0305 */ { UD_Ibswap, O_rBXr11, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0306 */ { UD_Ibswap, O_rSPr12, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0307 */ { UD_Ibswap, O_rBPr13, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0308 */ { UD_Ibswap, O_rSIr14, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0309 */ { UD_Ibswap, O_rDIr15, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0310 */ { UD_Ipsrlw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0311 */ { UD_Ipsrld, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0312 */ { UD_Ipsrlq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0313 */ { UD_Ipaddq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0314 */ { UD_Ipmullw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0315 */ { UD_Ipmovmskb, O_Gd, O_PR, O_NONE, P_oso|P_rexr|P_rexb }, + /* 0316 */ { UD_Ipsubusb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0317 */ { UD_Ipsubusw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0318 */ { UD_Ipminub, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0319 */ { UD_Ipand, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0320 */ { UD_Ipaddusb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0321 */ { UD_Ipaddusw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0322 */ { UD_Ipmaxub, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0323 */ { UD_Ipandn, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0324 */ { UD_Ipavgb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0325 */ { UD_Ipsraw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0326 */ { UD_Ipsrad, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0327 */ { UD_Ipavgw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0328 */ { UD_Ipmulhuw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0329 */ { UD_Ipmulhw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0330 */ { UD_Imovntq, O_M, O_P, O_NONE, P_none }, + /* 0331 */ { UD_Ipsubsb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0332 */ { UD_Ipsubsw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0333 */ { UD_Ipminsw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0334 */ { UD_Ipor, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0335 */ { UD_Ipaddsb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0336 */ { UD_Ipaddsw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0337 */ { UD_Ipmaxsw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0338 */ { UD_Ipxor, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0339 */ { UD_Ipsllw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0340 */ { UD_Ipslld, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0341 */ { UD_Ipsllq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0342 */ { UD_Ipmuludq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0343 */ { UD_Ipmaddwd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0344 */ { UD_Ipsadbw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0345 */ { UD_Imaskmovq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0346 */ { UD_Ipsubb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0347 */ { UD_Ipsubw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0348 */ { UD_Ipsubd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0349 */ { UD_Ipsubq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0350 */ { UD_Ipaddb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0351 */ { UD_Ipaddw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0352 */ { UD_Ipaddd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0353 */ { UD_Imovsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0354 */ { UD_Imovsd, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0355 */ { UD_Imovddup, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0356 */ { UD_Icvtsi2sd, O_V, O_Ex, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0357 */ { UD_Icvttsd2si, O_Gvw, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0358 */ { UD_Icvtsd2si, O_Gvw, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0359 */ { UD_Isqrtsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0360 */ { UD_Iaddsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0361 */ { UD_Imulsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0362 */ { UD_Icvtsd2ss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0363 */ { UD_Isubsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0364 */ { UD_Iminsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0365 */ { UD_Idivsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0366 */ { UD_Imaxsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0367 */ { UD_Ipshuflw, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0368 */ { UD_Ihaddps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0369 */ { UD_Ihsubps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0370 */ { UD_Ixadd, O_Eb, O_Gb, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0371 */ { UD_Ixadd, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, + /* 0372 */ { UD_Icmpsd, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0373 */ { UD_Iaddsubps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0374 */ { UD_Imovdq2q, O_P, O_VR, O_NONE, P_aso|P_rexb }, + /* 0375 */ { UD_Icvtpd2dq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0376 */ { UD_Ilddqu, O_V, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0377 */ { UD_Imovss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0378 */ { UD_Imovss, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0379 */ { UD_Imovsldup, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0380 */ { UD_Imovshdup, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0381 */ { UD_Icvtsi2ss, O_V, O_Ex, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0382 */ { UD_Icvttss2si, O_Gvw, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0383 */ { UD_Icvtss2si, O_Gvw, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0384 */ { UD_Isqrtss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0385 */ { UD_Irsqrtss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0386 */ { UD_Ircpss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0387 */ { UD_Iaddss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0388 */ { UD_Imulss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0389 */ { UD_Icvtss2sd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0390 */ { UD_Icvttps2dq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0391 */ { UD_Isubss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0392 */ { UD_Iminss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0393 */ { UD_Idivss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0394 */ { UD_Imaxss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0395 */ { UD_Imovdqu, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0396 */ { UD_Ipshufhw, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0397 */ { UD_Imovq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0398 */ { UD_Imovdqu, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0399 */ { UD_Ixadd, O_Eb, O_Gb, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0400 */ { UD_Ixadd, O_Ev, O_Gv, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0401 */ { UD_Icmpss, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0402 */ { UD_Ivmxon, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0403 */ { UD_Imovq2dq, O_V, O_PR, O_NONE, P_aso }, + /* 0404 */ { UD_Icvtdq2pd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0405 */ { UD_Imovupd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0406 */ { UD_Imovupd, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0407 */ { UD_Imovlpd, O_V, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0408 */ { UD_Imovlpd, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0409 */ { UD_Iunpcklpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0410 */ { UD_Iunpckhpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0411 */ { UD_Imovhpd, O_V, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0412 */ { UD_Imovhpd, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0413 */ { UD_Imovapd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0414 */ { UD_Imovapd, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0415 */ { UD_Icvtpi2pd, O_V, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0416 */ { UD_Imovntpd, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0417 */ { UD_Icvttpd2pi, O_P, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0418 */ { UD_Icvtpd2pi, O_P, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0419 */ { UD_Iucomisd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0420 */ { UD_Icomisd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0421 */ { UD_Iinvept, O_Gd, O_Mo, O_NONE, P_none }, + /* 0422 */ { UD_Iinvept, O_Gq, O_Mo, O_NONE, P_none }, + /* 0423 */ { UD_Iinvvpid, O_Gd, O_Mo, O_NONE, P_none }, + /* 0424 */ { UD_Iinvvpid, O_Gq, O_Mo, O_NONE, P_none }, + /* 0425 */ { UD_Ipextrb, O_MbRv, O_V, O_Ib, P_aso|P_rexr|P_rexb|P_def64 }, + /* 0426 */ { UD_Ipextrd, O_Ev, O_V, O_Ib, P_aso|P_rexr|P_rexw|P_rexb }, + /* 0427 */ { UD_Ipextrq, O_Ev, O_V, O_Ib, P_aso|P_rexr|P_rexw|P_rexb|P_def64 }, + /* 0428 */ { UD_Imovmskpd, O_Gd, O_VR, O_NONE, P_oso|P_rexr|P_rexb }, + /* 0429 */ { UD_Isqrtpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0430 */ { UD_Iandpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0431 */ { UD_Iandnpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0432 */ { UD_Iorpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0433 */ { UD_Ixorpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0434 */ { UD_Iaddpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0435 */ { UD_Imulpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0436 */ { UD_Icvtpd2ps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0437 */ { UD_Icvtps2dq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0438 */ { UD_Isubpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0439 */ { UD_Iminpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0440 */ { UD_Idivpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0441 */ { UD_Imaxpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0442 */ { UD_Ipunpcklbw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0443 */ { UD_Ipunpcklwd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0444 */ { UD_Ipunpckldq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0445 */ { UD_Ipacksswb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0446 */ { UD_Ipcmpgtb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0447 */ { UD_Ipcmpgtw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0448 */ { UD_Ipcmpgtd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0449 */ { UD_Ipackuswb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0450 */ { UD_Ipunpckhbw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0451 */ { UD_Ipunpckhwd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0452 */ { UD_Ipunpckhdq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0453 */ { UD_Ipackssdw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0454 */ { UD_Ipunpcklqdq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0455 */ { UD_Ipunpckhqdq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0456 */ { UD_Imovd, O_V, O_Ex, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0457 */ { UD_Imovdqa, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0458 */ { UD_Ipshufd, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0459 */ { UD_Ipsrlw, O_VR, O_Ib, O_NONE, P_rexb }, + /* 0460 */ { UD_Ipsraw, O_VR, O_Ib, O_NONE, P_rexb }, + /* 0461 */ { UD_Ipsllw, O_VR, O_Ib, O_NONE, P_rexb }, + /* 0462 */ { UD_Ipsrld, O_VR, O_Ib, O_NONE, P_rexb }, + /* 0463 */ { UD_Ipsrad, O_VR, O_Ib, O_NONE, P_rexb }, + /* 0464 */ { UD_Ipslld, O_VR, O_Ib, O_NONE, P_rexb }, + /* 0465 */ { UD_Ipsrlq, O_VR, O_Ib, O_NONE, P_rexb }, + /* 0466 */ { UD_Ipsrldq, O_VR, O_Ib, O_NONE, P_rexb }, + /* 0467 */ { UD_Ipsllq, O_VR, O_Ib, O_NONE, P_rexb }, + /* 0468 */ { UD_Ipslldq, O_VR, O_Ib, O_NONE, P_rexb }, + /* 0469 */ { UD_Ipcmpeqb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0470 */ { UD_Ipcmpeqw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0471 */ { UD_Ipcmpeqd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0472 */ { UD_Ihaddpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0473 */ { UD_Ihsubpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0474 */ { UD_Imovd, O_Ex, O_V, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0475 */ { UD_Imovdqa, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0476 */ { UD_Ixadd, O_Eb, O_Gb, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0477 */ { UD_Ixadd, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0478 */ { UD_Icmppd, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0479 */ { UD_Ipinsrw, O_V, O_Ew, O_Ib, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0480 */ { UD_Ipextrw, O_Gd, O_VR, O_Ib, P_aso|P_rexr|P_rexb }, + /* 0481 */ { UD_Ishufpd, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0482 */ { UD_Ivmclear, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0483 */ { UD_Iaddsubpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0484 */ { UD_Ipsrlw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0485 */ { UD_Ipsrld, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0486 */ { UD_Ipsrlq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0487 */ { UD_Ipaddq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0488 */ { UD_Ipmullw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0489 */ { UD_Imovq, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0490 */ { UD_Ipmovmskb, O_Gd, O_VR, O_NONE, P_rexr|P_rexb }, + /* 0491 */ { UD_Ipsubusb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0492 */ { UD_Ipsubusw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0493 */ { UD_Ipminub, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0494 */ { UD_Ipand, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0495 */ { UD_Ipsubusb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0496 */ { UD_Ipunpckhbw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0497 */ { UD_Ipmaxub, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0498 */ { UD_Ipandn, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0499 */ { UD_Ipavgb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0500 */ { UD_Ipsraw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0501 */ { UD_Ipsrad, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0502 */ { UD_Ipavgw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0503 */ { UD_Ipmulhuw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0504 */ { UD_Ipmulhw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0505 */ { UD_Icvttpd2dq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0506 */ { UD_Imovntdq, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0507 */ { UD_Ipsubsb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0508 */ { UD_Ipsubsw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0509 */ { UD_Ipminsw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0510 */ { UD_Ipor, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0511 */ { UD_Ipaddsb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0512 */ { UD_Ipaddsw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0513 */ { UD_Ipmaxsw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0514 */ { UD_Ipxor, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0515 */ { UD_Ipsllw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0516 */ { UD_Ipslld, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0517 */ { UD_Ipsllq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0518 */ { UD_Ipmuludq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0519 */ { UD_Ipmaddwd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0520 */ { UD_Ipsadbw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0521 */ { UD_Ipsubb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0522 */ { UD_Ipsubw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0523 */ { UD_Ipsubd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0524 */ { UD_Ipsubq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0525 */ { UD_Ipaddb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0526 */ { UD_Ipaddw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0527 */ { UD_Ipaddd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0528 */ { UD_Iadc, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0529 */ { UD_Iadc, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0530 */ { UD_Iadc, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0531 */ { UD_Iadc, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0532 */ { UD_Iadc, O_AL, O_Ib, O_NONE, P_none }, + /* 0533 */ { UD_Iadc, O_rAX, O_Iz, O_NONE, P_oso|P_rexw|P_sext }, + /* 0534 */ { UD_Ipush, O_SS, O_NONE, O_NONE, P_inv64 }, + /* 0535 */ { UD_Ipop, O_SS, O_NONE, O_NONE, P_inv64 }, + /* 0536 */ { UD_Isbb, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0537 */ { UD_Isbb, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0538 */ { UD_Isbb, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0539 */ { UD_Isbb, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0540 */ { UD_Isbb, O_AL, O_Ib, O_NONE, P_none }, + /* 0541 */ { UD_Isbb, O_rAX, O_Iz, O_NONE, P_oso|P_rexw|P_sext }, + /* 0542 */ { UD_Ipush, O_DS, O_NONE, O_NONE, P_inv64 }, + /* 0543 */ { UD_Ipop, O_DS, O_NONE, O_NONE, P_inv64 }, + /* 0544 */ { UD_Iand, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0545 */ { UD_Iand, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0546 */ { UD_Iand, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0547 */ { UD_Iand, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0548 */ { UD_Iand, O_AL, O_Ib, O_NONE, P_none }, + /* 0549 */ { UD_Iand, O_rAX, O_Iz, O_NONE, P_oso|P_rexw|P_sext }, + /* 0550 */ { UD_Idaa, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 0551 */ { UD_Isub, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0552 */ { UD_Isub, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0553 */ { UD_Isub, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0554 */ { UD_Isub, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0555 */ { UD_Isub, O_AL, O_Ib, O_NONE, P_none }, + /* 0556 */ { UD_Isub, O_rAX, O_Iz, O_NONE, P_oso|P_rexw|P_sext }, + /* 0557 */ { UD_Idas, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 0558 */ { UD_Ixor, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0559 */ { UD_Ixor, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0560 */ { UD_Ixor, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0561 */ { UD_Ixor, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0562 */ { UD_Ixor, O_AL, O_Ib, O_NONE, P_none }, + /* 0563 */ { UD_Ixor, O_rAX, O_Iz, O_NONE, P_oso|P_rexw|P_sext }, + /* 0564 */ { UD_Iaaa, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 0565 */ { UD_Icmp, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0566 */ { UD_Icmp, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0567 */ { UD_Icmp, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0568 */ { UD_Icmp, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0569 */ { UD_Icmp, O_AL, O_Ib, O_NONE, P_none }, + /* 0570 */ { UD_Icmp, O_rAX, O_Iz, O_NONE, P_oso|P_rexw }, + /* 0571 */ { UD_Iaas, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 0572 */ { UD_Iinc, O_eAX, O_NONE, O_NONE, P_oso }, + /* 0573 */ { UD_Iinc, O_eCX, O_NONE, O_NONE, P_oso }, + /* 0574 */ { UD_Iinc, O_eDX, O_NONE, O_NONE, P_oso }, + /* 0575 */ { UD_Iinc, O_eBX, O_NONE, O_NONE, P_oso }, + /* 0576 */ { UD_Iinc, O_eSP, O_NONE, O_NONE, P_oso }, + /* 0577 */ { UD_Iinc, O_eBP, O_NONE, O_NONE, P_oso }, + /* 0578 */ { UD_Iinc, O_eSI, O_NONE, O_NONE, P_oso }, + /* 0579 */ { UD_Iinc, O_eDI, O_NONE, O_NONE, P_oso }, + /* 0580 */ { UD_Idec, O_eAX, O_NONE, O_NONE, P_oso }, + /* 0581 */ { UD_Idec, O_eCX, O_NONE, O_NONE, P_oso }, + /* 0582 */ { UD_Idec, O_eDX, O_NONE, O_NONE, P_oso }, + /* 0583 */ { UD_Idec, O_eBX, O_NONE, O_NONE, P_oso }, + /* 0584 */ { UD_Idec, O_eSP, O_NONE, O_NONE, P_oso }, + /* 0585 */ { UD_Idec, O_eBP, O_NONE, O_NONE, P_oso }, + /* 0586 */ { UD_Idec, O_eSI, O_NONE, O_NONE, P_oso }, + /* 0587 */ { UD_Idec, O_eDI, O_NONE, O_NONE, P_oso }, + /* 0588 */ { UD_Ipush, O_rAXr8, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0589 */ { UD_Ipush, O_rCXr9, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0590 */ { UD_Ipush, O_rDXr10, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0591 */ { UD_Ipush, O_rBXr11, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0592 */ { UD_Ipush, O_rSPr12, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0593 */ { UD_Ipush, O_rBPr13, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0594 */ { UD_Ipush, O_rSIr14, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0595 */ { UD_Ipush, O_rDIr15, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0596 */ { UD_Ipop, O_rAXr8, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0597 */ { UD_Ipop, O_rCXr9, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0598 */ { UD_Ipop, O_rDXr10, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0599 */ { UD_Ipop, O_rBXr11, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0600 */ { UD_Ipop, O_rSPr12, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0601 */ { UD_Ipop, O_rBPr13, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0602 */ { UD_Ipop, O_rSIr14, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0603 */ { UD_Ipop, O_rDIr15, O_NONE, O_NONE, P_oso|P_rexb|P_def64|P_depM }, + /* 0604 */ { UD_Ipusha, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, + /* 0605 */ { UD_Ipushad, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, + /* 0606 */ { UD_Ipopa, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, + /* 0607 */ { UD_Ipopad, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, + /* 0608 */ { UD_Ibound, O_Gv, O_M, O_NONE, P_aso|P_oso|P_inv64 }, + /* 0609 */ { UD_Iarpl, O_Ew, O_Gw, O_NONE, P_aso|P_inv64 }, + /* 0610 */ { UD_Iarpl, O_Ew, O_Gw, O_NONE, P_aso|P_inv64 }, + /* 0611 */ { UD_Imovsxd, O_Gv, O_Ed, O_NONE, P_aso|P_oso|P_rexw|P_rexx|P_rexr|P_rexb }, + /* 0612 */ { UD_Ipush, O_Iz, O_NONE, O_NONE, P_oso|P_cast }, + /* 0613 */ { UD_Iimul, O_Gv, O_Ev, O_Iz, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0614 */ { UD_Ipush, O_Ib, O_NONE, O_NONE, P_sext }, + /* 0615 */ { UD_Iimul, O_Gv, O_Ev, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0616 */ { UD_Iinsb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0617 */ { UD_Iinsw, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0618 */ { UD_Iinsd, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0619 */ { UD_Ioutsb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0620 */ { UD_Ioutsw, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0621 */ { UD_Ioutsd, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0622 */ { UD_Ioutsq, O_NONE, O_NONE, O_NONE, P_oso }, + /* 0623 */ { UD_Ijo, O_Jb, O_NONE, O_NONE, P_none }, + /* 0624 */ { UD_Ijno, O_Jb, O_NONE, O_NONE, P_none }, + /* 0625 */ { UD_Ijb, O_Jb, O_NONE, O_NONE, P_none }, + /* 0626 */ { UD_Ijae, O_Jb, O_NONE, O_NONE, P_none }, + /* 0627 */ { UD_Ijz, O_Jb, O_NONE, O_NONE, P_none }, + /* 0628 */ { UD_Ijnz, O_Jb, O_NONE, O_NONE, P_none }, + /* 0629 */ { UD_Ijbe, O_Jb, O_NONE, O_NONE, P_none }, + /* 0630 */ { UD_Ija, O_Jb, O_NONE, O_NONE, P_none }, + /* 0631 */ { UD_Ijs, O_Jb, O_NONE, O_NONE, P_none }, + /* 0632 */ { UD_Ijns, O_Jb, O_NONE, O_NONE, P_none }, + /* 0633 */ { UD_Ijp, O_Jb, O_NONE, O_NONE, P_none }, + /* 0634 */ { UD_Ijnp, O_Jb, O_NONE, O_NONE, P_none }, + /* 0635 */ { UD_Ijl, O_Jb, O_NONE, O_NONE, P_none }, + /* 0636 */ { UD_Ijge, O_Jb, O_NONE, O_NONE, P_none }, + /* 0637 */ { UD_Ijle, O_Jb, O_NONE, O_NONE, P_none }, + /* 0638 */ { UD_Ijg, O_Jb, O_NONE, O_NONE, P_none }, + /* 0639 */ { UD_Iadd, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0640 */ { UD_Ior, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0641 */ { UD_Iadc, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0642 */ { UD_Isbb, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0643 */ { UD_Iand, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0644 */ { UD_Isub, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0645 */ { UD_Ixor, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0646 */ { UD_Icmp, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0647 */ { UD_Iadd, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0648 */ { UD_Ior, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0649 */ { UD_Iadc, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0650 */ { UD_Isbb, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0651 */ { UD_Iand, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0652 */ { UD_Isub, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0653 */ { UD_Ixor, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0654 */ { UD_Icmp, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0655 */ { UD_Iadd, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0656 */ { UD_Ior, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0657 */ { UD_Iadc, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0658 */ { UD_Isbb, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0659 */ { UD_Iand, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0660 */ { UD_Isub, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0661 */ { UD_Ixor, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0662 */ { UD_Icmp, O_Eb, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, + /* 0663 */ { UD_Iadd, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0664 */ { UD_Ior, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0665 */ { UD_Iadc, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0666 */ { UD_Isbb, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0667 */ { UD_Iand, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0668 */ { UD_Isub, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0669 */ { UD_Ixor, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 0670 */ { UD_Icmp, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0671 */ { UD_Itest, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0672 */ { UD_Itest, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0673 */ { UD_Ixchg, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0674 */ { UD_Ixchg, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0675 */ { UD_Imov, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0676 */ { UD_Imov, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0677 */ { UD_Imov, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0678 */ { UD_Imov, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0679 */ { UD_Imov, O_Ev, O_S, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, + /* 0680 */ { UD_Ilea, O_Gv, O_M, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0681 */ { UD_Imov, O_S, O_Ev, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, + /* 0682 */ { UD_Ipop, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64|P_depM }, + /* 0683 */ { UD_Ixchg, O_rAXr8, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0684 */ { UD_Ixchg, O_rCXr9, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0685 */ { UD_Ixchg, O_rDXr10, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0686 */ { UD_Ixchg, O_rBXr11, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0687 */ { UD_Ixchg, O_rSPr12, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0688 */ { UD_Ixchg, O_rBPr13, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0689 */ { UD_Ixchg, O_rSIr14, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0690 */ { UD_Ixchg, O_rDIr15, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0691 */ { UD_Icbw, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0692 */ { UD_Icwde, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0693 */ { UD_Icdqe, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0694 */ { UD_Icwd, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0695 */ { UD_Icdq, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0696 */ { UD_Icqo, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0697 */ { UD_Icall, O_Ap, O_NONE, O_NONE, P_oso|P_inv64 }, + /* 0698 */ { UD_Iwait, O_NONE, O_NONE, O_NONE, P_none }, + /* 0699 */ { UD_Ipushfw, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0700 */ { UD_Ipushfd, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0701 */ { UD_Ipushfw, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0702 */ { UD_Ipushfd, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, + /* 0703 */ { UD_Ipushfw, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_def64 }, + /* 0704 */ { UD_Ipushfq, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_def64 }, + /* 0705 */ { UD_Ipushfq, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_def64 }, + /* 0706 */ { UD_Ipopfw, O_NONE, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0707 */ { UD_Ipopfd, O_NONE, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0708 */ { UD_Ipopfw, O_NONE, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0709 */ { UD_Ipopfd, O_NONE, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0710 */ { UD_Ipopfq, O_NONE, O_NONE, O_NONE, P_oso|P_def64|P_depM }, + /* 0711 */ { UD_Isahf, O_NONE, O_NONE, O_NONE, P_none }, + /* 0712 */ { UD_Ilahf, O_NONE, O_NONE, O_NONE, P_none }, + /* 0713 */ { UD_Imov, O_AL, O_Ob, O_NONE, P_none }, + /* 0714 */ { UD_Imov, O_rAX, O_Ov, O_NONE, P_aso|P_oso|P_rexw }, + /* 0715 */ { UD_Imov, O_Ob, O_AL, O_NONE, P_none }, + /* 0716 */ { UD_Imov, O_Ov, O_rAX, O_NONE, P_aso|P_oso|P_rexw }, + /* 0717 */ { UD_Imovsb, O_NONE, O_NONE, O_NONE, P_seg }, + /* 0718 */ { UD_Imovsw, O_NONE, O_NONE, O_NONE, P_seg|P_oso|P_rexw }, + /* 0719 */ { UD_Imovsd, O_NONE, O_NONE, O_NONE, P_seg|P_oso|P_rexw }, + /* 0720 */ { UD_Imovsq, O_NONE, O_NONE, O_NONE, P_seg|P_oso|P_rexw }, + /* 0721 */ { UD_Icmpsb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0722 */ { UD_Icmpsw, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0723 */ { UD_Icmpsd, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0724 */ { UD_Icmpsq, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0725 */ { UD_Itest, O_AL, O_Ib, O_NONE, P_none }, + /* 0726 */ { UD_Itest, O_rAX, O_Iz, O_NONE, P_oso|P_rexw|P_sext }, + /* 0727 */ { UD_Istosb, O_NONE, O_NONE, O_NONE, P_seg }, + /* 0728 */ { UD_Istosw, O_NONE, O_NONE, O_NONE, P_seg|P_oso|P_rexw }, + /* 0729 */ { UD_Istosd, O_NONE, O_NONE, O_NONE, P_seg|P_oso|P_rexw }, + /* 0730 */ { UD_Istosq, O_NONE, O_NONE, O_NONE, P_seg|P_oso|P_rexw }, + /* 0731 */ { UD_Ilodsb, O_NONE, O_NONE, O_NONE, P_seg }, + /* 0732 */ { UD_Ilodsw, O_NONE, O_NONE, O_NONE, P_seg|P_oso|P_rexw }, + /* 0733 */ { UD_Ilodsd, O_NONE, O_NONE, O_NONE, P_seg|P_oso|P_rexw }, + /* 0734 */ { UD_Ilodsq, O_NONE, O_NONE, O_NONE, P_seg|P_oso|P_rexw }, + /* 0735 */ { UD_Iscasb, O_NONE, O_NONE, O_NONE, P_none }, + /* 0736 */ { UD_Iscasw, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0737 */ { UD_Iscasd, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0738 */ { UD_Iscasq, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0739 */ { UD_Imov, O_ALr8b, O_Ib, O_NONE, P_rexb }, + /* 0740 */ { UD_Imov, O_CLr9b, O_Ib, O_NONE, P_rexb }, + /* 0741 */ { UD_Imov, O_DLr10b, O_Ib, O_NONE, P_rexb }, + /* 0742 */ { UD_Imov, O_BLr11b, O_Ib, O_NONE, P_rexb }, + /* 0743 */ { UD_Imov, O_AHr12b, O_Ib, O_NONE, P_rexb }, + /* 0744 */ { UD_Imov, O_CHr13b, O_Ib, O_NONE, P_rexb }, + /* 0745 */ { UD_Imov, O_DHr14b, O_Ib, O_NONE, P_rexb }, + /* 0746 */ { UD_Imov, O_BHr15b, O_Ib, O_NONE, P_rexb }, + /* 0747 */ { UD_Imov, O_rAXr8, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0748 */ { UD_Imov, O_rCXr9, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0749 */ { UD_Imov, O_rDXr10, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0750 */ { UD_Imov, O_rBXr11, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0751 */ { UD_Imov, O_rSPr12, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0752 */ { UD_Imov, O_rBPr13, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0753 */ { UD_Imov, O_rSIr14, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0754 */ { UD_Imov, O_rDIr15, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, + /* 0755 */ { UD_Irol, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0756 */ { UD_Iror, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0757 */ { UD_Ircl, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0758 */ { UD_Ircr, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0759 */ { UD_Ishl, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0760 */ { UD_Ishr, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0761 */ { UD_Ishl, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0762 */ { UD_Isar, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0763 */ { UD_Irol, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0764 */ { UD_Iror, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0765 */ { UD_Ircl, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0766 */ { UD_Ircr, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0767 */ { UD_Ishl, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0768 */ { UD_Ishr, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0769 */ { UD_Ishl, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0770 */ { UD_Isar, O_Ev, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0771 */ { UD_Iret, O_Iw, O_NONE, O_NONE, P_none }, + /* 0772 */ { UD_Iret, O_NONE, O_NONE, O_NONE, P_none }, + /* 0773 */ { UD_Iles, O_Gv, O_M, O_NONE, P_aso|P_oso|P_inv64 }, + /* 0774 */ { UD_Ilds, O_Gv, O_M, O_NONE, P_aso|P_oso|P_inv64 }, + /* 0775 */ { UD_Imov, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0776 */ { UD_Imov, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0777 */ { UD_Ienter, O_Iw, O_Ib, O_NONE, P_def64|P_depM }, + /* 0778 */ { UD_Ileave, O_NONE, O_NONE, O_NONE, P_none }, + /* 0779 */ { UD_Iretf, O_Iw, O_NONE, O_NONE, P_none }, + /* 0780 */ { UD_Iretf, O_NONE, O_NONE, O_NONE, P_none }, + /* 0781 */ { UD_Iint3, O_NONE, O_NONE, O_NONE, P_none }, + /* 0782 */ { UD_Iint, O_Ib, O_NONE, O_NONE, P_none }, + /* 0783 */ { UD_Iinto, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 0784 */ { UD_Iiretw, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0785 */ { UD_Iiretd, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0786 */ { UD_Iiretq, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, + /* 0787 */ { UD_Irol, O_Eb, O_I1, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0788 */ { UD_Iror, O_Eb, O_I1, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0789 */ { UD_Ircl, O_Eb, O_I1, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0790 */ { UD_Ircr, O_Eb, O_I1, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0791 */ { UD_Ishl, O_Eb, O_I1, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0792 */ { UD_Ishr, O_Eb, O_I1, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0793 */ { UD_Ishl, O_Eb, O_I1, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0794 */ { UD_Isar, O_Eb, O_I1, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0795 */ { UD_Irol, O_Ev, O_I1, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0796 */ { UD_Iror, O_Ev, O_I1, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0797 */ { UD_Ircl, O_Ev, O_I1, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0798 */ { UD_Ircr, O_Ev, O_I1, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0799 */ { UD_Ishl, O_Ev, O_I1, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0800 */ { UD_Ishr, O_Ev, O_I1, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0801 */ { UD_Ishl, O_Ev, O_I1, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0802 */ { UD_Isar, O_Ev, O_I1, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0803 */ { UD_Irol, O_Eb, O_CL, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0804 */ { UD_Iror, O_Eb, O_CL, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0805 */ { UD_Ircl, O_Eb, O_CL, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0806 */ { UD_Ircr, O_Eb, O_CL, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0807 */ { UD_Ishl, O_Eb, O_CL, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0808 */ { UD_Ishr, O_Eb, O_CL, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0809 */ { UD_Ishl, O_Eb, O_CL, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0810 */ { UD_Isar, O_Eb, O_CL, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0811 */ { UD_Irol, O_Ev, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0812 */ { UD_Iror, O_Ev, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0813 */ { UD_Ircl, O_Ev, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0814 */ { UD_Ircr, O_Ev, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0815 */ { UD_Ishl, O_Ev, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 0816 */ { UD_Ishr, O_Ev, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0817 */ { UD_Ishl, O_Ev, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0818 */ { UD_Isar, O_Ev, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_cast }, + /* 0819 */ { UD_Iaam, O_Ib, O_NONE, O_NONE, P_inv64 }, + /* 0820 */ { UD_Iaad, O_Ib, O_NONE, O_NONE, P_inv64 }, + /* 0821 */ { UD_Isalc, O_NONE, O_NONE, O_NONE, P_inv64 }, + /* 0822 */ { UD_Ixlatb, O_NONE, O_NONE, O_NONE, P_rexw }, + /* 0823 */ { UD_Ifadd, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0824 */ { UD_Ifmul, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0825 */ { UD_Ifcom, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0826 */ { UD_Ifcomp, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0827 */ { UD_Ifsub, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0828 */ { UD_Ifsubr, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0829 */ { UD_Ifdiv, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0830 */ { UD_Ifdivr, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0831 */ { UD_Ifadd, O_ST0, O_ST0, O_NONE, P_none }, + /* 0832 */ { UD_Ifadd, O_ST0, O_ST1, O_NONE, P_none }, + /* 0833 */ { UD_Ifadd, O_ST0, O_ST2, O_NONE, P_none }, + /* 0834 */ { UD_Ifadd, O_ST0, O_ST3, O_NONE, P_none }, + /* 0835 */ { UD_Ifadd, O_ST0, O_ST4, O_NONE, P_none }, + /* 0836 */ { UD_Ifadd, O_ST0, O_ST5, O_NONE, P_none }, + /* 0837 */ { UD_Ifadd, O_ST0, O_ST6, O_NONE, P_none }, + /* 0838 */ { UD_Ifadd, O_ST0, O_ST7, O_NONE, P_none }, + /* 0839 */ { UD_Ifmul, O_ST0, O_ST0, O_NONE, P_none }, + /* 0840 */ { UD_Ifmul, O_ST0, O_ST1, O_NONE, P_none }, + /* 0841 */ { UD_Ifmul, O_ST0, O_ST2, O_NONE, P_none }, + /* 0842 */ { UD_Ifmul, O_ST0, O_ST3, O_NONE, P_none }, + /* 0843 */ { UD_Ifmul, O_ST0, O_ST4, O_NONE, P_none }, + /* 0844 */ { UD_Ifmul, O_ST0, O_ST5, O_NONE, P_none }, + /* 0845 */ { UD_Ifmul, O_ST0, O_ST6, O_NONE, P_none }, + /* 0846 */ { UD_Ifmul, O_ST0, O_ST7, O_NONE, P_none }, + /* 0847 */ { UD_Ifcom, O_ST0, O_ST0, O_NONE, P_none }, + /* 0848 */ { UD_Ifcom, O_ST0, O_ST1, O_NONE, P_none }, + /* 0849 */ { UD_Ifcom, O_ST0, O_ST2, O_NONE, P_none }, + /* 0850 */ { UD_Ifcom, O_ST0, O_ST3, O_NONE, P_none }, + /* 0851 */ { UD_Ifcom, O_ST0, O_ST4, O_NONE, P_none }, + /* 0852 */ { UD_Ifcom, O_ST0, O_ST5, O_NONE, P_none }, + /* 0853 */ { UD_Ifcom, O_ST0, O_ST6, O_NONE, P_none }, + /* 0854 */ { UD_Ifcom, O_ST0, O_ST7, O_NONE, P_none }, + /* 0855 */ { UD_Ifcomp, O_ST0, O_ST0, O_NONE, P_none }, + /* 0856 */ { UD_Ifcomp, O_ST0, O_ST1, O_NONE, P_none }, + /* 0857 */ { UD_Ifcomp, O_ST0, O_ST2, O_NONE, P_none }, + /* 0858 */ { UD_Ifcomp, O_ST0, O_ST3, O_NONE, P_none }, + /* 0859 */ { UD_Ifcomp, O_ST0, O_ST4, O_NONE, P_none }, + /* 0860 */ { UD_Ifcomp, O_ST0, O_ST5, O_NONE, P_none }, + /* 0861 */ { UD_Ifcomp, O_ST0, O_ST6, O_NONE, P_none }, + /* 0862 */ { UD_Ifcomp, O_ST0, O_ST7, O_NONE, P_none }, + /* 0863 */ { UD_Ifsub, O_ST0, O_ST0, O_NONE, P_none }, + /* 0864 */ { UD_Ifsub, O_ST0, O_ST1, O_NONE, P_none }, + /* 0865 */ { UD_Ifsub, O_ST0, O_ST2, O_NONE, P_none }, + /* 0866 */ { UD_Ifsub, O_ST0, O_ST3, O_NONE, P_none }, + /* 0867 */ { UD_Ifsub, O_ST0, O_ST4, O_NONE, P_none }, + /* 0868 */ { UD_Ifsub, O_ST0, O_ST5, O_NONE, P_none }, + /* 0869 */ { UD_Ifsub, O_ST0, O_ST6, O_NONE, P_none }, + /* 0870 */ { UD_Ifsub, O_ST0, O_ST7, O_NONE, P_none }, + /* 0871 */ { UD_Ifsubr, O_ST0, O_ST0, O_NONE, P_none }, + /* 0872 */ { UD_Ifsubr, O_ST0, O_ST1, O_NONE, P_none }, + /* 0873 */ { UD_Ifsubr, O_ST0, O_ST2, O_NONE, P_none }, + /* 0874 */ { UD_Ifsubr, O_ST0, O_ST3, O_NONE, P_none }, + /* 0875 */ { UD_Ifsubr, O_ST0, O_ST4, O_NONE, P_none }, + /* 0876 */ { UD_Ifsubr, O_ST0, O_ST5, O_NONE, P_none }, + /* 0877 */ { UD_Ifsubr, O_ST0, O_ST6, O_NONE, P_none }, + /* 0878 */ { UD_Ifsubr, O_ST0, O_ST7, O_NONE, P_none }, + /* 0879 */ { UD_Ifdiv, O_ST0, O_ST0, O_NONE, P_none }, + /* 0880 */ { UD_Ifdiv, O_ST0, O_ST1, O_NONE, P_none }, + /* 0881 */ { UD_Ifdiv, O_ST0, O_ST2, O_NONE, P_none }, + /* 0882 */ { UD_Ifdiv, O_ST0, O_ST3, O_NONE, P_none }, + /* 0883 */ { UD_Ifdiv, O_ST0, O_ST4, O_NONE, P_none }, + /* 0884 */ { UD_Ifdiv, O_ST0, O_ST5, O_NONE, P_none }, + /* 0885 */ { UD_Ifdiv, O_ST0, O_ST6, O_NONE, P_none }, + /* 0886 */ { UD_Ifdiv, O_ST0, O_ST7, O_NONE, P_none }, + /* 0887 */ { UD_Ifdivr, O_ST0, O_ST0, O_NONE, P_none }, + /* 0888 */ { UD_Ifdivr, O_ST0, O_ST1, O_NONE, P_none }, + /* 0889 */ { UD_Ifdivr, O_ST0, O_ST2, O_NONE, P_none }, + /* 0890 */ { UD_Ifdivr, O_ST0, O_ST3, O_NONE, P_none }, + /* 0891 */ { UD_Ifdivr, O_ST0, O_ST4, O_NONE, P_none }, + /* 0892 */ { UD_Ifdivr, O_ST0, O_ST5, O_NONE, P_none }, + /* 0893 */ { UD_Ifdivr, O_ST0, O_ST6, O_NONE, P_none }, + /* 0894 */ { UD_Ifdivr, O_ST0, O_ST7, O_NONE, P_none }, + /* 0895 */ { UD_Ifld, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0896 */ { UD_Ifst, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0897 */ { UD_Ifstp, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0898 */ { UD_Ifldenv, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0899 */ { UD_Ifldcw, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0900 */ { UD_Ifnstenv, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0901 */ { UD_Ifnstcw, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0902 */ { UD_Ifld, O_ST0, O_NONE, O_NONE, P_none }, + /* 0903 */ { UD_Ifld, O_ST1, O_NONE, O_NONE, P_none }, + /* 0904 */ { UD_Ifld, O_ST2, O_NONE, O_NONE, P_none }, + /* 0905 */ { UD_Ifld, O_ST3, O_NONE, O_NONE, P_none }, + /* 0906 */ { UD_Ifld, O_ST4, O_NONE, O_NONE, P_none }, + /* 0907 */ { UD_Ifld, O_ST5, O_NONE, O_NONE, P_none }, + /* 0908 */ { UD_Ifld, O_ST6, O_NONE, O_NONE, P_none }, + /* 0909 */ { UD_Ifld, O_ST7, O_NONE, O_NONE, P_none }, + /* 0910 */ { UD_Ifxch, O_ST0, O_ST0, O_NONE, P_none }, + /* 0911 */ { UD_Ifxch, O_ST0, O_ST1, O_NONE, P_none }, + /* 0912 */ { UD_Ifxch, O_ST0, O_ST2, O_NONE, P_none }, + /* 0913 */ { UD_Ifxch, O_ST0, O_ST3, O_NONE, P_none }, + /* 0914 */ { UD_Ifxch, O_ST0, O_ST4, O_NONE, P_none }, + /* 0915 */ { UD_Ifxch, O_ST0, O_ST5, O_NONE, P_none }, + /* 0916 */ { UD_Ifxch, O_ST0, O_ST6, O_NONE, P_none }, + /* 0917 */ { UD_Ifxch, O_ST0, O_ST7, O_NONE, P_none }, + /* 0918 */ { UD_Ifnop, O_NONE, O_NONE, O_NONE, P_none }, + /* 0919 */ { UD_Ifstp1, O_ST0, O_NONE, O_NONE, P_none }, + /* 0920 */ { UD_Ifstp1, O_ST1, O_NONE, O_NONE, P_none }, + /* 0921 */ { UD_Ifstp1, O_ST2, O_NONE, O_NONE, P_none }, + /* 0922 */ { UD_Ifstp1, O_ST3, O_NONE, O_NONE, P_none }, + /* 0923 */ { UD_Ifstp1, O_ST4, O_NONE, O_NONE, P_none }, + /* 0924 */ { UD_Ifstp1, O_ST5, O_NONE, O_NONE, P_none }, + /* 0925 */ { UD_Ifstp1, O_ST6, O_NONE, O_NONE, P_none }, + /* 0926 */ { UD_Ifstp1, O_ST7, O_NONE, O_NONE, P_none }, + /* 0927 */ { UD_Ifchs, O_NONE, O_NONE, O_NONE, P_none }, + /* 0928 */ { UD_Ifabs, O_NONE, O_NONE, O_NONE, P_none }, + /* 0929 */ { UD_Iftst, O_NONE, O_NONE, O_NONE, P_none }, + /* 0930 */ { UD_Ifxam, O_NONE, O_NONE, O_NONE, P_none }, + /* 0931 */ { UD_Ifld1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0932 */ { UD_Ifldl2t, O_NONE, O_NONE, O_NONE, P_none }, + /* 0933 */ { UD_Ifldl2e, O_NONE, O_NONE, O_NONE, P_none }, + /* 0934 */ { UD_Ifldlpi, O_NONE, O_NONE, O_NONE, P_none }, + /* 0935 */ { UD_Ifldlg2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0936 */ { UD_Ifldln2, O_NONE, O_NONE, O_NONE, P_none }, + /* 0937 */ { UD_Ifldz, O_NONE, O_NONE, O_NONE, P_none }, + /* 0938 */ { UD_If2xm1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0939 */ { UD_Ifyl2x, O_NONE, O_NONE, O_NONE, P_none }, + /* 0940 */ { UD_Ifptan, O_NONE, O_NONE, O_NONE, P_none }, + /* 0941 */ { UD_Ifpatan, O_NONE, O_NONE, O_NONE, P_none }, + /* 0942 */ { UD_Ifpxtract, O_NONE, O_NONE, O_NONE, P_none }, + /* 0943 */ { UD_Ifprem1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0944 */ { UD_Ifdecstp, O_NONE, O_NONE, O_NONE, P_none }, + /* 0945 */ { UD_Ifncstp, O_NONE, O_NONE, O_NONE, P_none }, + /* 0946 */ { UD_Ifprem, O_NONE, O_NONE, O_NONE, P_none }, + /* 0947 */ { UD_Ifyl2xp1, O_NONE, O_NONE, O_NONE, P_none }, + /* 0948 */ { UD_Ifsqrt, O_NONE, O_NONE, O_NONE, P_none }, + /* 0949 */ { UD_Ifsincos, O_NONE, O_NONE, O_NONE, P_none }, + /* 0950 */ { UD_Ifrndint, O_NONE, O_NONE, O_NONE, P_none }, + /* 0951 */ { UD_Ifscale, O_NONE, O_NONE, O_NONE, P_none }, + /* 0952 */ { UD_Ifsin, O_NONE, O_NONE, O_NONE, P_none }, + /* 0953 */ { UD_Ifcos, O_NONE, O_NONE, O_NONE, P_none }, + /* 0954 */ { UD_Ifiadd, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0955 */ { UD_Ifimul, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0956 */ { UD_Ificom, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0957 */ { UD_Ificomp, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0958 */ { UD_Ifisub, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0959 */ { UD_Ifisubr, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0960 */ { UD_Ifidiv, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0961 */ { UD_Ifidivr, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0962 */ { UD_Ifcmovb, O_ST0, O_ST0, O_NONE, P_none }, + /* 0963 */ { UD_Ifcmovb, O_ST0, O_ST1, O_NONE, P_none }, + /* 0964 */ { UD_Ifcmovb, O_ST0, O_ST2, O_NONE, P_none }, + /* 0965 */ { UD_Ifcmovb, O_ST0, O_ST3, O_NONE, P_none }, + /* 0966 */ { UD_Ifcmovb, O_ST0, O_ST4, O_NONE, P_none }, + /* 0967 */ { UD_Ifcmovb, O_ST0, O_ST5, O_NONE, P_none }, + /* 0968 */ { UD_Ifcmovb, O_ST0, O_ST6, O_NONE, P_none }, + /* 0969 */ { UD_Ifcmovb, O_ST0, O_ST7, O_NONE, P_none }, + /* 0970 */ { UD_Ifcmove, O_ST0, O_ST0, O_NONE, P_none }, + /* 0971 */ { UD_Ifcmove, O_ST0, O_ST1, O_NONE, P_none }, + /* 0972 */ { UD_Ifcmove, O_ST0, O_ST2, O_NONE, P_none }, + /* 0973 */ { UD_Ifcmove, O_ST0, O_ST3, O_NONE, P_none }, + /* 0974 */ { UD_Ifcmove, O_ST0, O_ST4, O_NONE, P_none }, + /* 0975 */ { UD_Ifcmove, O_ST0, O_ST5, O_NONE, P_none }, + /* 0976 */ { UD_Ifcmove, O_ST0, O_ST6, O_NONE, P_none }, + /* 0977 */ { UD_Ifcmove, O_ST0, O_ST7, O_NONE, P_none }, + /* 0978 */ { UD_Ifcmovbe, O_ST0, O_ST0, O_NONE, P_none }, + /* 0979 */ { UD_Ifcmovbe, O_ST0, O_ST1, O_NONE, P_none }, + /* 0980 */ { UD_Ifcmovbe, O_ST0, O_ST2, O_NONE, P_none }, + /* 0981 */ { UD_Ifcmovbe, O_ST0, O_ST3, O_NONE, P_none }, + /* 0982 */ { UD_Ifcmovbe, O_ST0, O_ST4, O_NONE, P_none }, + /* 0983 */ { UD_Ifcmovbe, O_ST0, O_ST5, O_NONE, P_none }, + /* 0984 */ { UD_Ifcmovbe, O_ST0, O_ST6, O_NONE, P_none }, + /* 0985 */ { UD_Ifcmovbe, O_ST0, O_ST7, O_NONE, P_none }, + /* 0986 */ { UD_Ifcmovu, O_ST0, O_ST0, O_NONE, P_none }, + /* 0987 */ { UD_Ifcmovu, O_ST0, O_ST1, O_NONE, P_none }, + /* 0988 */ { UD_Ifcmovu, O_ST0, O_ST2, O_NONE, P_none }, + /* 0989 */ { UD_Ifcmovu, O_ST0, O_ST3, O_NONE, P_none }, + /* 0990 */ { UD_Ifcmovu, O_ST0, O_ST4, O_NONE, P_none }, + /* 0991 */ { UD_Ifcmovu, O_ST0, O_ST5, O_NONE, P_none }, + /* 0992 */ { UD_Ifcmovu, O_ST0, O_ST6, O_NONE, P_none }, + /* 0993 */ { UD_Ifcmovu, O_ST0, O_ST7, O_NONE, P_none }, + /* 0994 */ { UD_Ifucompp, O_NONE, O_NONE, O_NONE, P_none }, + /* 0995 */ { UD_Ifild, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0996 */ { UD_Ifisttp, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0997 */ { UD_Ifist, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0998 */ { UD_Ifistp, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 0999 */ { UD_Ifld, O_Mt, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1000 */ { UD_Ifstp, O_Mt, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1001 */ { UD_Ifcmovnb, O_ST0, O_ST0, O_NONE, P_none }, + /* 1002 */ { UD_Ifcmovnb, O_ST0, O_ST1, O_NONE, P_none }, + /* 1003 */ { UD_Ifcmovnb, O_ST0, O_ST2, O_NONE, P_none }, + /* 1004 */ { UD_Ifcmovnb, O_ST0, O_ST3, O_NONE, P_none }, + /* 1005 */ { UD_Ifcmovnb, O_ST0, O_ST4, O_NONE, P_none }, + /* 1006 */ { UD_Ifcmovnb, O_ST0, O_ST5, O_NONE, P_none }, + /* 1007 */ { UD_Ifcmovnb, O_ST0, O_ST6, O_NONE, P_none }, + /* 1008 */ { UD_Ifcmovnb, O_ST0, O_ST7, O_NONE, P_none }, + /* 1009 */ { UD_Ifcmovne, O_ST0, O_ST0, O_NONE, P_none }, + /* 1010 */ { UD_Ifcmovne, O_ST0, O_ST1, O_NONE, P_none }, + /* 1011 */ { UD_Ifcmovne, O_ST0, O_ST2, O_NONE, P_none }, + /* 1012 */ { UD_Ifcmovne, O_ST0, O_ST3, O_NONE, P_none }, + /* 1013 */ { UD_Ifcmovne, O_ST0, O_ST4, O_NONE, P_none }, + /* 1014 */ { UD_Ifcmovne, O_ST0, O_ST5, O_NONE, P_none }, + /* 1015 */ { UD_Ifcmovne, O_ST0, O_ST6, O_NONE, P_none }, + /* 1016 */ { UD_Ifcmovne, O_ST0, O_ST7, O_NONE, P_none }, + /* 1017 */ { UD_Ifcmovnbe, O_ST0, O_ST0, O_NONE, P_none }, + /* 1018 */ { UD_Ifcmovnbe, O_ST0, O_ST1, O_NONE, P_none }, + /* 1019 */ { UD_Ifcmovnbe, O_ST0, O_ST2, O_NONE, P_none }, + /* 1020 */ { UD_Ifcmovnbe, O_ST0, O_ST3, O_NONE, P_none }, + /* 1021 */ { UD_Ifcmovnbe, O_ST0, O_ST4, O_NONE, P_none }, + /* 1022 */ { UD_Ifcmovnbe, O_ST0, O_ST5, O_NONE, P_none }, + /* 1023 */ { UD_Ifcmovnbe, O_ST0, O_ST6, O_NONE, P_none }, + /* 1024 */ { UD_Ifcmovnbe, O_ST0, O_ST7, O_NONE, P_none }, + /* 1025 */ { UD_Ifcmovnu, O_ST0, O_ST0, O_NONE, P_none }, + /* 1026 */ { UD_Ifcmovnu, O_ST0, O_ST1, O_NONE, P_none }, + /* 1027 */ { UD_Ifcmovnu, O_ST0, O_ST2, O_NONE, P_none }, + /* 1028 */ { UD_Ifcmovnu, O_ST0, O_ST3, O_NONE, P_none }, + /* 1029 */ { UD_Ifcmovnu, O_ST0, O_ST4, O_NONE, P_none }, + /* 1030 */ { UD_Ifcmovnu, O_ST0, O_ST5, O_NONE, P_none }, + /* 1031 */ { UD_Ifcmovnu, O_ST0, O_ST6, O_NONE, P_none }, + /* 1032 */ { UD_Ifcmovnu, O_ST0, O_ST7, O_NONE, P_none }, + /* 1033 */ { UD_Ifclex, O_NONE, O_NONE, O_NONE, P_none }, + /* 1034 */ { UD_Ifninit, O_NONE, O_NONE, O_NONE, P_none }, + /* 1035 */ { UD_Ifucomi, O_ST0, O_ST0, O_NONE, P_none }, + /* 1036 */ { UD_Ifucomi, O_ST0, O_ST1, O_NONE, P_none }, + /* 1037 */ { UD_Ifucomi, O_ST0, O_ST2, O_NONE, P_none }, + /* 1038 */ { UD_Ifucomi, O_ST0, O_ST3, O_NONE, P_none }, + /* 1039 */ { UD_Ifucomi, O_ST0, O_ST4, O_NONE, P_none }, + /* 1040 */ { UD_Ifucomi, O_ST0, O_ST5, O_NONE, P_none }, + /* 1041 */ { UD_Ifucomi, O_ST0, O_ST6, O_NONE, P_none }, + /* 1042 */ { UD_Ifucomi, O_ST0, O_ST7, O_NONE, P_none }, + /* 1043 */ { UD_Ifcomi, O_ST0, O_ST0, O_NONE, P_none }, + /* 1044 */ { UD_Ifcomi, O_ST0, O_ST1, O_NONE, P_none }, + /* 1045 */ { UD_Ifcomi, O_ST0, O_ST2, O_NONE, P_none }, + /* 1046 */ { UD_Ifcomi, O_ST0, O_ST3, O_NONE, P_none }, + /* 1047 */ { UD_Ifcomi, O_ST0, O_ST4, O_NONE, P_none }, + /* 1048 */ { UD_Ifcomi, O_ST0, O_ST5, O_NONE, P_none }, + /* 1049 */ { UD_Ifcomi, O_ST0, O_ST6, O_NONE, P_none }, + /* 1050 */ { UD_Ifcomi, O_ST0, O_ST7, O_NONE, P_none }, + /* 1051 */ { UD_Ifadd, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1052 */ { UD_Ifmul, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1053 */ { UD_Ifcom, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1054 */ { UD_Ifcomp, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1055 */ { UD_Ifsub, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1056 */ { UD_Ifsubr, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1057 */ { UD_Ifdiv, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1058 */ { UD_Ifdivr, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1059 */ { UD_Ifadd, O_ST0, O_ST0, O_NONE, P_none }, + /* 1060 */ { UD_Ifadd, O_ST1, O_ST0, O_NONE, P_none }, + /* 1061 */ { UD_Ifadd, O_ST2, O_ST0, O_NONE, P_none }, + /* 1062 */ { UD_Ifadd, O_ST3, O_ST0, O_NONE, P_none }, + /* 1063 */ { UD_Ifadd, O_ST4, O_ST0, O_NONE, P_none }, + /* 1064 */ { UD_Ifadd, O_ST5, O_ST0, O_NONE, P_none }, + /* 1065 */ { UD_Ifadd, O_ST6, O_ST0, O_NONE, P_none }, + /* 1066 */ { UD_Ifadd, O_ST7, O_ST0, O_NONE, P_none }, + /* 1067 */ { UD_Ifmul, O_ST0, O_ST0, O_NONE, P_none }, + /* 1068 */ { UD_Ifmul, O_ST1, O_ST0, O_NONE, P_none }, + /* 1069 */ { UD_Ifmul, O_ST2, O_ST0, O_NONE, P_none }, + /* 1070 */ { UD_Ifmul, O_ST3, O_ST0, O_NONE, P_none }, + /* 1071 */ { UD_Ifmul, O_ST4, O_ST0, O_NONE, P_none }, + /* 1072 */ { UD_Ifmul, O_ST5, O_ST0, O_NONE, P_none }, + /* 1073 */ { UD_Ifmul, O_ST6, O_ST0, O_NONE, P_none }, + /* 1074 */ { UD_Ifmul, O_ST7, O_ST0, O_NONE, P_none }, + /* 1075 */ { UD_Ifcom2, O_ST0, O_NONE, O_NONE, P_none }, + /* 1076 */ { UD_Ifcom2, O_ST1, O_NONE, O_NONE, P_none }, + /* 1077 */ { UD_Ifcom2, O_ST2, O_NONE, O_NONE, P_none }, + /* 1078 */ { UD_Ifcom2, O_ST3, O_NONE, O_NONE, P_none }, + /* 1079 */ { UD_Ifcom2, O_ST4, O_NONE, O_NONE, P_none }, + /* 1080 */ { UD_Ifcom2, O_ST5, O_NONE, O_NONE, P_none }, + /* 1081 */ { UD_Ifcom2, O_ST6, O_NONE, O_NONE, P_none }, + /* 1082 */ { UD_Ifcom2, O_ST7, O_NONE, O_NONE, P_none }, + /* 1083 */ { UD_Ifcomp3, O_ST0, O_NONE, O_NONE, P_none }, + /* 1084 */ { UD_Ifcomp3, O_ST1, O_NONE, O_NONE, P_none }, + /* 1085 */ { UD_Ifcomp3, O_ST2, O_NONE, O_NONE, P_none }, + /* 1086 */ { UD_Ifcomp3, O_ST3, O_NONE, O_NONE, P_none }, + /* 1087 */ { UD_Ifcomp3, O_ST4, O_NONE, O_NONE, P_none }, + /* 1088 */ { UD_Ifcomp3, O_ST5, O_NONE, O_NONE, P_none }, + /* 1089 */ { UD_Ifcomp3, O_ST6, O_NONE, O_NONE, P_none }, + /* 1090 */ { UD_Ifcomp3, O_ST7, O_NONE, O_NONE, P_none }, + /* 1091 */ { UD_Ifsubr, O_ST0, O_ST0, O_NONE, P_none }, + /* 1092 */ { UD_Ifsubr, O_ST1, O_ST0, O_NONE, P_none }, + /* 1093 */ { UD_Ifsubr, O_ST2, O_ST0, O_NONE, P_none }, + /* 1094 */ { UD_Ifsubr, O_ST3, O_ST0, O_NONE, P_none }, + /* 1095 */ { UD_Ifsubr, O_ST4, O_ST0, O_NONE, P_none }, + /* 1096 */ { UD_Ifsubr, O_ST5, O_ST0, O_NONE, P_none }, + /* 1097 */ { UD_Ifsubr, O_ST6, O_ST0, O_NONE, P_none }, + /* 1098 */ { UD_Ifsubr, O_ST7, O_ST0, O_NONE, P_none }, + /* 1099 */ { UD_Ifsub, O_ST0, O_ST0, O_NONE, P_none }, + /* 1100 */ { UD_Ifsub, O_ST1, O_ST0, O_NONE, P_none }, + /* 1101 */ { UD_Ifsub, O_ST2, O_ST0, O_NONE, P_none }, + /* 1102 */ { UD_Ifsub, O_ST3, O_ST0, O_NONE, P_none }, + /* 1103 */ { UD_Ifsub, O_ST4, O_ST0, O_NONE, P_none }, + /* 1104 */ { UD_Ifsub, O_ST5, O_ST0, O_NONE, P_none }, + /* 1105 */ { UD_Ifsub, O_ST6, O_ST0, O_NONE, P_none }, + /* 1106 */ { UD_Ifsub, O_ST7, O_ST0, O_NONE, P_none }, + /* 1107 */ { UD_Ifdivr, O_ST0, O_ST0, O_NONE, P_none }, + /* 1108 */ { UD_Ifdivr, O_ST1, O_ST0, O_NONE, P_none }, + /* 1109 */ { UD_Ifdivr, O_ST2, O_ST0, O_NONE, P_none }, + /* 1110 */ { UD_Ifdivr, O_ST3, O_ST0, O_NONE, P_none }, + /* 1111 */ { UD_Ifdivr, O_ST4, O_ST0, O_NONE, P_none }, + /* 1112 */ { UD_Ifdivr, O_ST5, O_ST0, O_NONE, P_none }, + /* 1113 */ { UD_Ifdivr, O_ST6, O_ST0, O_NONE, P_none }, + /* 1114 */ { UD_Ifdivr, O_ST7, O_ST0, O_NONE, P_none }, + /* 1115 */ { UD_Ifdiv, O_ST0, O_ST0, O_NONE, P_none }, + /* 1116 */ { UD_Ifdiv, O_ST1, O_ST0, O_NONE, P_none }, + /* 1117 */ { UD_Ifdiv, O_ST2, O_ST0, O_NONE, P_none }, + /* 1118 */ { UD_Ifdiv, O_ST3, O_ST0, O_NONE, P_none }, + /* 1119 */ { UD_Ifdiv, O_ST4, O_ST0, O_NONE, P_none }, + /* 1120 */ { UD_Ifdiv, O_ST5, O_ST0, O_NONE, P_none }, + /* 1121 */ { UD_Ifdiv, O_ST6, O_ST0, O_NONE, P_none }, + /* 1122 */ { UD_Ifdiv, O_ST7, O_ST0, O_NONE, P_none }, + /* 1123 */ { UD_Ifld, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1124 */ { UD_Ifisttp, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1125 */ { UD_Ifst, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1126 */ { UD_Ifstp, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1127 */ { UD_Ifrstor, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1128 */ { UD_Ifnsave, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1129 */ { UD_Ifnstsw, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1130 */ { UD_Iffree, O_ST0, O_NONE, O_NONE, P_none }, + /* 1131 */ { UD_Iffree, O_ST1, O_NONE, O_NONE, P_none }, + /* 1132 */ { UD_Iffree, O_ST2, O_NONE, O_NONE, P_none }, + /* 1133 */ { UD_Iffree, O_ST3, O_NONE, O_NONE, P_none }, + /* 1134 */ { UD_Iffree, O_ST4, O_NONE, O_NONE, P_none }, + /* 1135 */ { UD_Iffree, O_ST5, O_NONE, O_NONE, P_none }, + /* 1136 */ { UD_Iffree, O_ST6, O_NONE, O_NONE, P_none }, + /* 1137 */ { UD_Iffree, O_ST7, O_NONE, O_NONE, P_none }, + /* 1138 */ { UD_Ifxch4, O_ST0, O_NONE, O_NONE, P_none }, + /* 1139 */ { UD_Ifxch4, O_ST1, O_NONE, O_NONE, P_none }, + /* 1140 */ { UD_Ifxch4, O_ST2, O_NONE, O_NONE, P_none }, + /* 1141 */ { UD_Ifxch4, O_ST3, O_NONE, O_NONE, P_none }, + /* 1142 */ { UD_Ifxch4, O_ST4, O_NONE, O_NONE, P_none }, + /* 1143 */ { UD_Ifxch4, O_ST5, O_NONE, O_NONE, P_none }, + /* 1144 */ { UD_Ifxch4, O_ST6, O_NONE, O_NONE, P_none }, + /* 1145 */ { UD_Ifxch4, O_ST7, O_NONE, O_NONE, P_none }, + /* 1146 */ { UD_Ifst, O_ST0, O_NONE, O_NONE, P_none }, + /* 1147 */ { UD_Ifst, O_ST1, O_NONE, O_NONE, P_none }, + /* 1148 */ { UD_Ifst, O_ST2, O_NONE, O_NONE, P_none }, + /* 1149 */ { UD_Ifst, O_ST3, O_NONE, O_NONE, P_none }, + /* 1150 */ { UD_Ifst, O_ST4, O_NONE, O_NONE, P_none }, + /* 1151 */ { UD_Ifst, O_ST5, O_NONE, O_NONE, P_none }, + /* 1152 */ { UD_Ifst, O_ST6, O_NONE, O_NONE, P_none }, + /* 1153 */ { UD_Ifst, O_ST7, O_NONE, O_NONE, P_none }, + /* 1154 */ { UD_Ifstp, O_ST0, O_NONE, O_NONE, P_none }, + /* 1155 */ { UD_Ifstp, O_ST1, O_NONE, O_NONE, P_none }, + /* 1156 */ { UD_Ifstp, O_ST2, O_NONE, O_NONE, P_none }, + /* 1157 */ { UD_Ifstp, O_ST3, O_NONE, O_NONE, P_none }, + /* 1158 */ { UD_Ifstp, O_ST4, O_NONE, O_NONE, P_none }, + /* 1159 */ { UD_Ifstp, O_ST5, O_NONE, O_NONE, P_none }, + /* 1160 */ { UD_Ifstp, O_ST6, O_NONE, O_NONE, P_none }, + /* 1161 */ { UD_Ifstp, O_ST7, O_NONE, O_NONE, P_none }, + /* 1162 */ { UD_Ifucom, O_ST0, O_NONE, O_NONE, P_none }, + /* 1163 */ { UD_Ifucom, O_ST1, O_NONE, O_NONE, P_none }, + /* 1164 */ { UD_Ifucom, O_ST2, O_NONE, O_NONE, P_none }, + /* 1165 */ { UD_Ifucom, O_ST3, O_NONE, O_NONE, P_none }, + /* 1166 */ { UD_Ifucom, O_ST4, O_NONE, O_NONE, P_none }, + /* 1167 */ { UD_Ifucom, O_ST5, O_NONE, O_NONE, P_none }, + /* 1168 */ { UD_Ifucom, O_ST6, O_NONE, O_NONE, P_none }, + /* 1169 */ { UD_Ifucom, O_ST7, O_NONE, O_NONE, P_none }, + /* 1170 */ { UD_Ifucomp, O_ST0, O_NONE, O_NONE, P_none }, + /* 1171 */ { UD_Ifucomp, O_ST1, O_NONE, O_NONE, P_none }, + /* 1172 */ { UD_Ifucomp, O_ST2, O_NONE, O_NONE, P_none }, + /* 1173 */ { UD_Ifucomp, O_ST3, O_NONE, O_NONE, P_none }, + /* 1174 */ { UD_Ifucomp, O_ST4, O_NONE, O_NONE, P_none }, + /* 1175 */ { UD_Ifucomp, O_ST5, O_NONE, O_NONE, P_none }, + /* 1176 */ { UD_Ifucomp, O_ST6, O_NONE, O_NONE, P_none }, + /* 1177 */ { UD_Ifucomp, O_ST7, O_NONE, O_NONE, P_none }, + /* 1178 */ { UD_Ifiadd, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1179 */ { UD_Ifimul, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1180 */ { UD_Ificom, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1181 */ { UD_Ificomp, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1182 */ { UD_Ifisub, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1183 */ { UD_Ifisubr, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1184 */ { UD_Ifidiv, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1185 */ { UD_Ifidivr, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1186 */ { UD_Ifaddp, O_ST0, O_ST0, O_NONE, P_none }, + /* 1187 */ { UD_Ifaddp, O_ST1, O_ST0, O_NONE, P_none }, + /* 1188 */ { UD_Ifaddp, O_ST2, O_ST0, O_NONE, P_none }, + /* 1189 */ { UD_Ifaddp, O_ST3, O_ST0, O_NONE, P_none }, + /* 1190 */ { UD_Ifaddp, O_ST4, O_ST0, O_NONE, P_none }, + /* 1191 */ { UD_Ifaddp, O_ST5, O_ST0, O_NONE, P_none }, + /* 1192 */ { UD_Ifaddp, O_ST6, O_ST0, O_NONE, P_none }, + /* 1193 */ { UD_Ifaddp, O_ST7, O_ST0, O_NONE, P_none }, + /* 1194 */ { UD_Ifmulp, O_ST0, O_ST0, O_NONE, P_none }, + /* 1195 */ { UD_Ifmulp, O_ST1, O_ST0, O_NONE, P_none }, + /* 1196 */ { UD_Ifmulp, O_ST2, O_ST0, O_NONE, P_none }, + /* 1197 */ { UD_Ifmulp, O_ST3, O_ST0, O_NONE, P_none }, + /* 1198 */ { UD_Ifmulp, O_ST4, O_ST0, O_NONE, P_none }, + /* 1199 */ { UD_Ifmulp, O_ST5, O_ST0, O_NONE, P_none }, + /* 1200 */ { UD_Ifmulp, O_ST6, O_ST0, O_NONE, P_none }, + /* 1201 */ { UD_Ifmulp, O_ST7, O_ST0, O_NONE, P_none }, + /* 1202 */ { UD_Ifcomp5, O_ST0, O_NONE, O_NONE, P_none }, + /* 1203 */ { UD_Ifcomp5, O_ST1, O_NONE, O_NONE, P_none }, + /* 1204 */ { UD_Ifcomp5, O_ST2, O_NONE, O_NONE, P_none }, + /* 1205 */ { UD_Ifcomp5, O_ST3, O_NONE, O_NONE, P_none }, + /* 1206 */ { UD_Ifcomp5, O_ST4, O_NONE, O_NONE, P_none }, + /* 1207 */ { UD_Ifcomp5, O_ST5, O_NONE, O_NONE, P_none }, + /* 1208 */ { UD_Ifcomp5, O_ST6, O_NONE, O_NONE, P_none }, + /* 1209 */ { UD_Ifcomp5, O_ST7, O_NONE, O_NONE, P_none }, + /* 1210 */ { UD_Ifcompp, O_NONE, O_NONE, O_NONE, P_none }, + /* 1211 */ { UD_Ifsubrp, O_ST0, O_ST0, O_NONE, P_none }, + /* 1212 */ { UD_Ifsubrp, O_ST1, O_ST0, O_NONE, P_none }, + /* 1213 */ { UD_Ifsubrp, O_ST2, O_ST0, O_NONE, P_none }, + /* 1214 */ { UD_Ifsubrp, O_ST3, O_ST0, O_NONE, P_none }, + /* 1215 */ { UD_Ifsubrp, O_ST4, O_ST0, O_NONE, P_none }, + /* 1216 */ { UD_Ifsubrp, O_ST5, O_ST0, O_NONE, P_none }, + /* 1217 */ { UD_Ifsubrp, O_ST6, O_ST0, O_NONE, P_none }, + /* 1218 */ { UD_Ifsubrp, O_ST7, O_ST0, O_NONE, P_none }, + /* 1219 */ { UD_Ifsubp, O_ST0, O_ST0, O_NONE, P_none }, + /* 1220 */ { UD_Ifsubp, O_ST1, O_ST0, O_NONE, P_none }, + /* 1221 */ { UD_Ifsubp, O_ST2, O_ST0, O_NONE, P_none }, + /* 1222 */ { UD_Ifsubp, O_ST3, O_ST0, O_NONE, P_none }, + /* 1223 */ { UD_Ifsubp, O_ST4, O_ST0, O_NONE, P_none }, + /* 1224 */ { UD_Ifsubp, O_ST5, O_ST0, O_NONE, P_none }, + /* 1225 */ { UD_Ifsubp, O_ST6, O_ST0, O_NONE, P_none }, + /* 1226 */ { UD_Ifsubp, O_ST7, O_ST0, O_NONE, P_none }, + /* 1227 */ { UD_Ifdivrp, O_ST0, O_ST0, O_NONE, P_none }, + /* 1228 */ { UD_Ifdivrp, O_ST1, O_ST0, O_NONE, P_none }, + /* 1229 */ { UD_Ifdivrp, O_ST2, O_ST0, O_NONE, P_none }, + /* 1230 */ { UD_Ifdivrp, O_ST3, O_ST0, O_NONE, P_none }, + /* 1231 */ { UD_Ifdivrp, O_ST4, O_ST0, O_NONE, P_none }, + /* 1232 */ { UD_Ifdivrp, O_ST5, O_ST0, O_NONE, P_none }, + /* 1233 */ { UD_Ifdivrp, O_ST6, O_ST0, O_NONE, P_none }, + /* 1234 */ { UD_Ifdivrp, O_ST7, O_ST0, O_NONE, P_none }, + /* 1235 */ { UD_Ifdivp, O_ST0, O_ST0, O_NONE, P_none }, + /* 1236 */ { UD_Ifdivp, O_ST1, O_ST0, O_NONE, P_none }, + /* 1237 */ { UD_Ifdivp, O_ST2, O_ST0, O_NONE, P_none }, + /* 1238 */ { UD_Ifdivp, O_ST3, O_ST0, O_NONE, P_none }, + /* 1239 */ { UD_Ifdivp, O_ST4, O_ST0, O_NONE, P_none }, + /* 1240 */ { UD_Ifdivp, O_ST5, O_ST0, O_NONE, P_none }, + /* 1241 */ { UD_Ifdivp, O_ST6, O_ST0, O_NONE, P_none }, + /* 1242 */ { UD_Ifdivp, O_ST7, O_ST0, O_NONE, P_none }, + /* 1243 */ { UD_Ifild, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1244 */ { UD_Ifisttp, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1245 */ { UD_Ifist, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1246 */ { UD_Ifistp, O_Mw, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1247 */ { UD_Ifbld, O_Mt, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1248 */ { UD_Ifild, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1249 */ { UD_Ifbstp, O_Mt, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1250 */ { UD_Ifistp, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, + /* 1251 */ { UD_Iffreep, O_ST0, O_NONE, O_NONE, P_none }, + /* 1252 */ { UD_Iffreep, O_ST1, O_NONE, O_NONE, P_none }, + /* 1253 */ { UD_Iffreep, O_ST2, O_NONE, O_NONE, P_none }, + /* 1254 */ { UD_Iffreep, O_ST3, O_NONE, O_NONE, P_none }, + /* 1255 */ { UD_Iffreep, O_ST4, O_NONE, O_NONE, P_none }, + /* 1256 */ { UD_Iffreep, O_ST5, O_NONE, O_NONE, P_none }, + /* 1257 */ { UD_Iffreep, O_ST6, O_NONE, O_NONE, P_none }, + /* 1258 */ { UD_Iffreep, O_ST7, O_NONE, O_NONE, P_none }, + /* 1259 */ { UD_Ifxch7, O_ST0, O_NONE, O_NONE, P_none }, + /* 1260 */ { UD_Ifxch7, O_ST1, O_NONE, O_NONE, P_none }, + /* 1261 */ { UD_Ifxch7, O_ST2, O_NONE, O_NONE, P_none }, + /* 1262 */ { UD_Ifxch7, O_ST3, O_NONE, O_NONE, P_none }, + /* 1263 */ { UD_Ifxch7, O_ST4, O_NONE, O_NONE, P_none }, + /* 1264 */ { UD_Ifxch7, O_ST5, O_NONE, O_NONE, P_none }, + /* 1265 */ { UD_Ifxch7, O_ST6, O_NONE, O_NONE, P_none }, + /* 1266 */ { UD_Ifxch7, O_ST7, O_NONE, O_NONE, P_none }, + /* 1267 */ { UD_Ifstp8, O_ST0, O_NONE, O_NONE, P_none }, + /* 1268 */ { UD_Ifstp8, O_ST1, O_NONE, O_NONE, P_none }, + /* 1269 */ { UD_Ifstp8, O_ST2, O_NONE, O_NONE, P_none }, + /* 1270 */ { UD_Ifstp8, O_ST3, O_NONE, O_NONE, P_none }, + /* 1271 */ { UD_Ifstp8, O_ST4, O_NONE, O_NONE, P_none }, + /* 1272 */ { UD_Ifstp8, O_ST5, O_NONE, O_NONE, P_none }, + /* 1273 */ { UD_Ifstp8, O_ST6, O_NONE, O_NONE, P_none }, + /* 1274 */ { UD_Ifstp8, O_ST7, O_NONE, O_NONE, P_none }, + /* 1275 */ { UD_Ifstp9, O_ST0, O_NONE, O_NONE, P_none }, + /* 1276 */ { UD_Ifstp9, O_ST1, O_NONE, O_NONE, P_none }, + /* 1277 */ { UD_Ifstp9, O_ST2, O_NONE, O_NONE, P_none }, + /* 1278 */ { UD_Ifstp9, O_ST3, O_NONE, O_NONE, P_none }, + /* 1279 */ { UD_Ifstp9, O_ST4, O_NONE, O_NONE, P_none }, + /* 1280 */ { UD_Ifstp9, O_ST5, O_NONE, O_NONE, P_none }, + /* 1281 */ { UD_Ifstp9, O_ST6, O_NONE, O_NONE, P_none }, + /* 1282 */ { UD_Ifstp9, O_ST7, O_NONE, O_NONE, P_none }, + /* 1283 */ { UD_Ifnstsw, O_AX, O_NONE, O_NONE, P_none }, + /* 1284 */ { UD_Ifucomip, O_ST0, O_ST0, O_NONE, P_none }, + /* 1285 */ { UD_Ifucomip, O_ST0, O_ST1, O_NONE, P_none }, + /* 1286 */ { UD_Ifucomip, O_ST0, O_ST2, O_NONE, P_none }, + /* 1287 */ { UD_Ifucomip, O_ST0, O_ST3, O_NONE, P_none }, + /* 1288 */ { UD_Ifucomip, O_ST0, O_ST4, O_NONE, P_none }, + /* 1289 */ { UD_Ifucomip, O_ST0, O_ST5, O_NONE, P_none }, + /* 1290 */ { UD_Ifucomip, O_ST0, O_ST6, O_NONE, P_none }, + /* 1291 */ { UD_Ifucomip, O_ST0, O_ST7, O_NONE, P_none }, + /* 1292 */ { UD_Ifcomip, O_ST0, O_ST0, O_NONE, P_none }, + /* 1293 */ { UD_Ifcomip, O_ST0, O_ST1, O_NONE, P_none }, + /* 1294 */ { UD_Ifcomip, O_ST0, O_ST2, O_NONE, P_none }, + /* 1295 */ { UD_Ifcomip, O_ST0, O_ST3, O_NONE, P_none }, + /* 1296 */ { UD_Ifcomip, O_ST0, O_ST4, O_NONE, P_none }, + /* 1297 */ { UD_Ifcomip, O_ST0, O_ST5, O_NONE, P_none }, + /* 1298 */ { UD_Ifcomip, O_ST0, O_ST6, O_NONE, P_none }, + /* 1299 */ { UD_Ifcomip, O_ST0, O_ST7, O_NONE, P_none }, + /* 1300 */ { UD_Iloopnz, O_Jb, O_NONE, O_NONE, P_none }, + /* 1301 */ { UD_Iloope, O_Jb, O_NONE, O_NONE, P_none }, + /* 1302 */ { UD_Iloop, O_Jb, O_NONE, O_NONE, P_none }, + /* 1303 */ { UD_Ijcxz, O_Jb, O_NONE, O_NONE, P_aso }, + /* 1304 */ { UD_Ijecxz, O_Jb, O_NONE, O_NONE, P_aso }, + /* 1305 */ { UD_Ijrcxz, O_Jb, O_NONE, O_NONE, P_aso }, + /* 1306 */ { UD_Iin, O_AL, O_Ib, O_NONE, P_none }, + /* 1307 */ { UD_Iin, O_eAX, O_Ib, O_NONE, P_oso }, + /* 1308 */ { UD_Iout, O_Ib, O_AL, O_NONE, P_none }, + /* 1309 */ { UD_Iout, O_Ib, O_eAX, O_NONE, P_oso }, + /* 1310 */ { UD_Icall, O_Jz, O_NONE, O_NONE, P_oso|P_def64 }, + /* 1311 */ { UD_Ijmp, O_Jz, O_NONE, O_NONE, P_oso|P_def64|P_depM|P_cast }, + /* 1312 */ { UD_Ijmp, O_Ap, O_NONE, O_NONE, P_inv64 }, + /* 1313 */ { UD_Ijmp, O_Jb, O_NONE, O_NONE, P_none }, + /* 1314 */ { UD_Iin, O_AL, O_DX, O_NONE, P_none }, + /* 1315 */ { UD_Iin, O_eAX, O_DX, O_NONE, P_oso }, + /* 1316 */ { UD_Iout, O_DX, O_AL, O_NONE, P_none }, + /* 1317 */ { UD_Iout, O_DX, O_eAX, O_NONE, P_oso }, + /* 1318 */ { UD_Ilock, O_NONE, O_NONE, O_NONE, P_none }, + /* 1319 */ { UD_Iint1, O_NONE, O_NONE, O_NONE, P_none }, + /* 1320 */ { UD_Irepne, O_NONE, O_NONE, O_NONE, P_none }, + /* 1321 */ { UD_Irep, O_NONE, O_NONE, O_NONE, P_none }, + /* 1322 */ { UD_Ihlt, O_NONE, O_NONE, O_NONE, P_none }, + /* 1323 */ { UD_Icmc, O_NONE, O_NONE, O_NONE, P_none }, + /* 1324 */ { UD_Itest, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1325 */ { UD_Itest, O_Eb, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1326 */ { UD_Inot, O_Eb, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1327 */ { UD_Ineg, O_Eb, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1328 */ { UD_Imul, O_Eb, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1329 */ { UD_Iimul, O_Eb, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1330 */ { UD_Idiv, O_Eb, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1331 */ { UD_Iidiv, O_Eb, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1332 */ { UD_Itest, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 1333 */ { UD_Itest, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_sext }, + /* 1334 */ { UD_Inot, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1335 */ { UD_Ineg, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1336 */ { UD_Imul, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1337 */ { UD_Iimul, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1338 */ { UD_Idiv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1339 */ { UD_Iidiv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1340 */ { UD_Iclc, O_NONE, O_NONE, O_NONE, P_none }, + /* 1341 */ { UD_Istc, O_NONE, O_NONE, O_NONE, P_none }, + /* 1342 */ { UD_Icli, O_NONE, O_NONE, O_NONE, P_none }, + /* 1343 */ { UD_Isti, O_NONE, O_NONE, O_NONE, P_none }, + /* 1344 */ { UD_Icld, O_NONE, O_NONE, O_NONE, P_none }, + /* 1345 */ { UD_Istd, O_NONE, O_NONE, O_NONE, P_none }, + /* 1346 */ { UD_Iinc, O_Eb, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1347 */ { UD_Idec, O_Eb, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1348 */ { UD_Iinc, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1349 */ { UD_Idec, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1350 */ { UD_Icall, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, + /* 1351 */ { UD_Icall, O_Ep, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1352 */ { UD_Ijmp, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64|P_depM }, + /* 1353 */ { UD_Ijmp, O_Ep, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, + /* 1354 */ { UD_Ipush, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, +}; + const char * ud_mnemonics_str[] = { - "3dnow", - "aaa", - "aad", - "aam", - "aas", - "adc", - "add", - "addpd", - "addps", - "addsd", - "addss", - "addsubpd", - "addsubps", - "and", - "andpd", - "andps", - "andnpd", - "andnps", - "arpl", - "movsxd", - "bound", - "bsf", - "bsr", - "bswap", - "bt", - "btc", - "btr", - "bts", - "call", - "cbw", - "cwde", - "cdqe", - "clc", - "cld", - "clflush", - "clgi", - "cli", - "clts", - "cmc", - "cmovo", - "cmovno", - "cmovb", - "cmovae", - "cmovz", - "cmovnz", - "cmovbe", - "cmova", - "cmovs", - "cmovns", - "cmovp", - "cmovnp", - "cmovl", - "cmovge", - "cmovle", - "cmovg", - "cmp", - "cmppd", - "cmpps", - "cmpsb", - "cmpsw", - "cmpsd", - "cmpsq", - "cmpss", - "cmpxchg", - "cmpxchg8b", - "comisd", - "comiss", - "cpuid", - "cvtdq2pd", - "cvtdq2ps", - "cvtpd2dq", - "cvtpd2pi", - "cvtpd2ps", - "cvtpi2ps", - "cvtpi2pd", - "cvtps2dq", - "cvtps2pi", - "cvtps2pd", - "cvtsd2si", - "cvtsd2ss", - "cvtsi2ss", - "cvtss2si", - "cvtss2sd", - "cvttpd2pi", - "cvttpd2dq", - "cvttps2dq", - "cvttps2pi", - "cvttsd2si", - "cvtsi2sd", - "cvttss2si", - "cwd", - "cdq", - "cqo", - "daa", - "das", - "dec", - "div", - "divpd", - "divps", - "divsd", - "divss", - "emms", - "enter", - "f2xm1", - "fabs", - "fadd", - "faddp", - "fbld", - "fbstp", - "fchs", - "fclex", - "fcmovb", - "fcmove", - "fcmovbe", - "fcmovu", - "fcmovnb", - "fcmovne", - "fcmovnbe", - "fcmovnu", - "fucomi", - "fcom", - "fcom2", - "fcomp3", - "fcomi", - "fucomip", - "fcomip", - "fcomp", - "fcomp5", - "fcompp", - "fcos", - "fdecstp", - "fdiv", - "fdivp", - "fdivr", - "fdivrp", - "femms", - "ffree", - "ffreep", - "ficom", - "ficomp", - "fild", - "fncstp", - "fninit", - "fiadd", - "fidivr", - "fidiv", - "fisub", - "fisubr", - "fist", - "fistp", - "fisttp", - "fld", - "fld1", - "fldl2t", - "fldl2e", - "fldlpi", - "fldlg2", - "fldln2", - "fldz", - "fldcw", - "fldenv", - "fmul", - "fmulp", - "fimul", - "fnop", - "fpatan", - "fprem", - "fprem1", - "fptan", - "frndint", - "frstor", - "fnsave", - "fscale", - "fsin", - "fsincos", - "fsqrt", - "fstp", - "fstp1", - "fstp8", - "fstp9", - "fst", - "fnstcw", - "fnstenv", - "fnstsw", - "fsub", - "fsubp", - "fsubr", - "fsubrp", - "ftst", - "fucom", - "fucomp", - "fucompp", - "fxam", - "fxch", - "fxch4", - "fxch7", - "fxrstor", - "fxsave", - "fpxtract", - "fyl2x", - "fyl2xp1", - "haddpd", - "haddps", - "hlt", - "hsubpd", - "hsubps", - "idiv", - "in", - "imul", - "inc", - "insb", - "insw", - "insd", - "int1", - "int3", - "int", - "into", - "invd", - "invlpg", - "invlpga", - "iretw", - "iretd", - "iretq", - "jo", - "jno", - "jb", - "jae", - "jz", - "jnz", - "jbe", - "ja", - "js", - "jns", - "jp", - "jnp", - "jl", - "jge", - "jle", - "jg", - "jcxz", - "jecxz", - "jrcxz", - "jmp", - "lahf", - "lar", - "lddqu", - "ldmxcsr", - "lds", - "lea", - "les", - "lfs", - "lgs", - "lidt", - "lss", - "leave", - "lfence", - "lgdt", - "lldt", - "lmsw", - "lock", - "lodsb", - "lodsw", - "lodsd", - "lodsq", - "loopnz", - "loope", - "loop", - "lsl", - "ltr", - "maskmovq", - "maxpd", - "maxps", - "maxsd", - "maxss", - "mfence", - "minpd", - "minps", - "minsd", - "minss", - "monitor", - "mov", - "movapd", - "movaps", - "movd", - "movddup", - "movdqa", - "movdqu", - "movdq2q", - "movhpd", - "movhps", - "movlhps", - "movlpd", - "movlps", - "movhlps", - "movmskpd", - "movmskps", - "movntdq", - "movnti", - "movntpd", - "movntps", - "movntq", - "movq", - "movqa", - "movq2dq", - "movsb", - "movsw", - "movsd", - "movsq", - "movsldup", - "movshdup", - "movss", - "movsx", - "movupd", - "movups", - "movzx", - "mul", - "mulpd", - "mulps", - "mulsd", - "mulss", - "mwait", - "neg", - "nop", - "not", - "or", - "orpd", - "orps", - "out", - "outsb", - "outsw", - "outsd", - "outsq", - "packsswb", - "packssdw", - "packuswb", - "paddb", - "paddw", - "paddq", - "paddsb", - "paddsw", - "paddusb", - "paddusw", - "pand", - "pandn", - "pause", - "pavgb", - "pavgw", - "pcmpeqb", - "pcmpeqw", - "pcmpeqd", - "pcmpgtb", - "pcmpgtw", - "pcmpgtd", - "pextrw", - "pinsrw", - "pmaddwd", - "pmaxsw", - "pmaxub", - "pminsw", - "pminub", - "pmovmskb", - "pmulhuw", - "pmulhw", - "pmullw", - "pmuludq", - "pop", - "popa", - "popad", - "popfw", - "popfd", - "popfq", - "por", - "prefetch", - "prefetchnta", - "prefetcht0", - "prefetcht1", - "prefetcht2", - "psadbw", - "pshufd", - "pshufhw", - "pshuflw", - "pshufw", - "pslldq", - "psllw", - "pslld", - "psllq", - "psraw", - "psrad", - "psrlw", - "psrld", - "psrlq", - "psrldq", - "psubb", - "psubw", - "psubd", - "psubq", - "psubsb", - "psubsw", - "psubusb", - "psubusw", - "punpckhbw", - "punpckhwd", - "punpckhdq", - "punpckhqdq", - "punpcklbw", - "punpcklwd", - "punpckldq", - "punpcklqdq", - "pi2fw", - "pi2fd", - "pf2iw", - "pf2id", - "pfnacc", - "pfpnacc", - "pfcmpge", - "pfmin", - "pfrcp", - "pfrsqrt", - "pfsub", - "pfadd", - "pfcmpgt", - "pfmax", - "pfrcpit1", - "pfrspit1", - "pfsubr", - "pfacc", - "pfcmpeq", - "pfmul", - "pfrcpit2", - "pmulhrw", - "pswapd", - "pavgusb", - "push", - "pusha", - "pushad", - "pushfw", - "pushfd", - "pushfq", - "pxor", - "rcl", - "rcr", - "rol", - "ror", - "rcpps", - "rcpss", - "rdmsr", - "rdpmc", - "rdtsc", - "rdtscp", - "repne", - "rep", - "ret", - "retf", - "rsm", - "rsqrtps", - "rsqrtss", - "sahf", - "sal", - "salc", - "sar", - "shl", - "shr", - "sbb", - "scasb", - "scasw", - "scasd", - "scasq", - "seto", - "setno", - "setb", - "setnb", - "setz", - "setnz", - "setbe", - "seta", - "sets", - "setns", - "setp", - "setnp", - "setl", - "setge", - "setle", - "setg", - "sfence", - "sgdt", - "shld", - "shrd", - "shufpd", - "shufps", - "sidt", - "sldt", - "smsw", - "sqrtps", - "sqrtpd", - "sqrtsd", - "sqrtss", - "stc", - "std", - "stgi", - "sti", - "skinit", - "stmxcsr", - "stosb", - "stosw", - "stosd", - "stosq", - "str", - "sub", - "subpd", - "subps", - "subsd", - "subss", - "swapgs", - "syscall", - "sysenter", - "sysexit", - "sysret", - "test", - "ucomisd", - "ucomiss", - "ud2", - "unpckhpd", - "unpckhps", - "unpcklps", - "unpcklpd", - "verr", - "verw", - "vmcall", - "vmclear", - "vmxon", - "vmptrld", - "vmptrst", - "vmresume", - "vmxoff", - "vmrun", - "vmmcall", - "vmload", - "vmsave", - "wait", - "wbinvd", - "wrmsr", - "xadd", - "xchg", - "xlatb", - "xor", - "xorpd", - "xorps", - "db", - "invalid", -}; - - - -static struct ud_itab_entry itab__0f[256] = { - /* 00 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_00__REG }, - /* 01 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG }, - /* 02 */ { UD_Ilar, O_Gv, O_Ew, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ilsl, O_Gv, O_Ew, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Isyscall, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iclts, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Isysret, O_NONE, O_NONE, O_NONE, P_none }, - /* 08 */ { UD_Iinvd, O_NONE, O_NONE, O_NONE, P_none }, - /* 09 */ { UD_Iwbinvd, O_NONE, O_NONE, O_NONE, P_none }, - /* 0A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0B */ { UD_Iud2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0D */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_0D__REG }, - /* 0E */ { UD_Ifemms, O_NONE, O_NONE, O_NONE, P_none }, - /* 0F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 10 */ { UD_Imovups, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 11 */ { UD_Imovups, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 12 */ { UD_Imovlps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 13 */ { UD_Imovlps, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 14 */ { UD_Iunpcklps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 15 */ { UD_Iunpckhps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 16 */ { UD_Imovhps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 17 */ { UD_Imovhps, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 18 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_18__REG }, - /* 19 */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1A */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1B */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1C */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1D */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1E */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1F */ { UD_Inop, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 20 */ { UD_Imov, O_R, O_C, O_NONE, P_rexr }, - /* 21 */ { UD_Imov, O_R, O_D, O_NONE, P_rexr }, - /* 22 */ { UD_Imov, O_C, O_R, O_NONE, P_rexr }, - /* 23 */ { UD_Imov, O_D, O_R, O_NONE, P_rexr }, - /* 24 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Imovaps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 29 */ { UD_Imovaps, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2A */ { UD_Icvtpi2ps, O_V, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2B */ { UD_Imovntps, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2C */ { UD_Icvttps2pi, O_P, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2D */ { UD_Icvtps2pi, O_P, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2E */ { UD_Iucomiss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2F */ { UD_Icomiss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 30 */ { UD_Iwrmsr, O_NONE, O_NONE, O_NONE, P_none }, - /* 31 */ { UD_Irdtsc, O_NONE, O_NONE, O_NONE, P_none }, - /* 32 */ { UD_Irdmsr, O_NONE, O_NONE, O_NONE, P_none }, - /* 33 */ { UD_Irdpmc, O_NONE, O_NONE, O_NONE, P_none }, - /* 34 */ { UD_Isysenter, O_NONE, O_NONE, O_NONE, P_inv64|P_none }, - /* 35 */ { UD_Isysexit, O_NONE, O_NONE, O_NONE, P_none }, - /* 36 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 37 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 38 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 40 */ { UD_Icmovo, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 41 */ { UD_Icmovno, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 42 */ { UD_Icmovb, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 43 */ { UD_Icmovae, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 44 */ { UD_Icmovz, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 45 */ { UD_Icmovnz, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 46 */ { UD_Icmovbe, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 47 */ { UD_Icmova, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 48 */ { UD_Icmovs, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 49 */ { UD_Icmovns, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 4A */ { UD_Icmovp, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 4B */ { UD_Icmovnp, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 4C */ { UD_Icmovl, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 4D */ { UD_Icmovge, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 4E */ { UD_Icmovle, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 4F */ { UD_Icmovg, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 50 */ { UD_Imovmskps, O_Gd, O_VR, O_NONE, P_oso|P_rexr|P_rexb }, - /* 51 */ { UD_Isqrtps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 52 */ { UD_Irsqrtps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 53 */ { UD_Ircpps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 54 */ { UD_Iandps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 55 */ { UD_Iandnps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 56 */ { UD_Iorps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 57 */ { UD_Ixorps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 58 */ { UD_Iaddps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 59 */ { UD_Imulps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5A */ { UD_Icvtps2pd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5B */ { UD_Icvtdq2ps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5C */ { UD_Isubps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5D */ { UD_Iminps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5E */ { UD_Idivps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5F */ { UD_Imaxps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 60 */ { UD_Ipunpcklbw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 61 */ { UD_Ipunpcklwd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 62 */ { UD_Ipunpckldq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 63 */ { UD_Ipacksswb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 64 */ { UD_Ipcmpgtb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 65 */ { UD_Ipcmpgtw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 66 */ { UD_Ipcmpgtd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 67 */ { UD_Ipackuswb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 68 */ { UD_Ipunpckhbw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 69 */ { UD_Ipunpckhwd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 6A */ { UD_Ipunpckhdq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 6B */ { UD_Ipackssdw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 6C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6E */ { UD_Imovd, O_P, O_Ex, O_NONE, P_c2|P_aso|P_rexr|P_rexx|P_rexb }, - /* 6F */ { UD_Imovq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 70 */ { UD_Ipshufw, O_P, O_Q, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 71 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_71__REG }, - /* 72 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_72__REG }, - /* 73 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_73__REG }, - /* 74 */ { UD_Ipcmpeqb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 75 */ { UD_Ipcmpeqw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 76 */ { UD_Ipcmpeqd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 77 */ { UD_Iemms, O_NONE, O_NONE, O_NONE, P_none }, - /* 78 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 79 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7E */ { UD_Imovd, O_Ex, O_P, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 7F */ { UD_Imovq, O_Q, O_P, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 80 */ { UD_Ijo, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 81 */ { UD_Ijno, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 82 */ { UD_Ijb, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 83 */ { UD_Ijae, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 84 */ { UD_Ijz, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 85 */ { UD_Ijnz, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 86 */ { UD_Ijbe, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 87 */ { UD_Ija, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 88 */ { UD_Ijs, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 89 */ { UD_Ijns, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 8A */ { UD_Ijp, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 8B */ { UD_Ijnp, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 8C */ { UD_Ijl, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 8D */ { UD_Ijge, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 8E */ { UD_Ijle, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 8F */ { UD_Ijg, O_Jz, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_oso }, - /* 90 */ { UD_Iseto, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 91 */ { UD_Isetno, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 92 */ { UD_Isetb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 93 */ { UD_Isetnb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 94 */ { UD_Isetz, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 95 */ { UD_Isetnz, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 96 */ { UD_Isetbe, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 97 */ { UD_Iseta, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 98 */ { UD_Isets, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 99 */ { UD_Isetns, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 9A */ { UD_Isetp, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 9B */ { UD_Isetnp, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 9C */ { UD_Isetl, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 9D */ { UD_Isetge, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 9E */ { UD_Isetle, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 9F */ { UD_Isetg, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* A0 */ { UD_Ipush, O_FS, O_NONE, O_NONE, P_none }, - /* A1 */ { UD_Ipop, O_FS, O_NONE, O_NONE, P_none }, - /* A2 */ { UD_Icpuid, O_NONE, O_NONE, O_NONE, P_none }, - /* A3 */ { UD_Ibt, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* A4 */ { UD_Ishld, O_Ev, O_Gv, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* A5 */ { UD_Ishld, O_Ev, O_Gv, O_CL, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* A6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A8 */ { UD_Ipush, O_GS, O_NONE, O_NONE, P_none }, - /* A9 */ { UD_Ipop, O_GS, O_NONE, O_NONE, P_none }, - /* AA */ { UD_Irsm, O_NONE, O_NONE, O_NONE, P_none }, - /* AB */ { UD_Ibts, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* AC */ { UD_Ishrd, O_Ev, O_Gv, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* AD */ { UD_Ishrd, O_Ev, O_Gv, O_CL, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* AE */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_AE__REG }, - /* AF */ { UD_Iimul, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* B0 */ { UD_Icmpxchg, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* B1 */ { UD_Icmpxchg, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* B2 */ { UD_Ilss, O_Gz, O_M, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* B3 */ { UD_Ibtr, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* B4 */ { UD_Ilfs, O_Gz, O_M, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* B5 */ { UD_Ilgs, O_Gz, O_M, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* B6 */ { UD_Imovzx, O_Gv, O_Eb, O_NONE, P_c2|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* B7 */ { UD_Imovzx, O_Gv, O_Ew, O_NONE, P_c2|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* B8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BA */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_BA__REG }, - /* BB */ { UD_Ibtc, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* BC */ { UD_Ibsf, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* BD */ { UD_Ibsr, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* BE */ { UD_Imovsx, O_Gv, O_Eb, O_NONE, P_c2|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* BF */ { UD_Imovsx, O_Gv, O_Ew, O_NONE, P_c2|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C0 */ { UD_Ixadd, O_Eb, O_Gb, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, - /* C1 */ { UD_Ixadd, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C2 */ { UD_Icmpps, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* C3 */ { UD_Imovnti, O_M, O_Gvw, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C4 */ { UD_Ipinsrw, O_P, O_Ew, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C5 */ { UD_Ipextrw, O_Gd, O_PR, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C6 */ { UD_Ishufps, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* C7 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_C7__REG }, - /* C8 */ { UD_Ibswap, O_rAXr8, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* C9 */ { UD_Ibswap, O_rCXr9, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* CA */ { UD_Ibswap, O_rDXr10, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* CB */ { UD_Ibswap, O_rBXr11, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* CC */ { UD_Ibswap, O_rSPr12, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* CD */ { UD_Ibswap, O_rBPr13, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* CE */ { UD_Ibswap, O_rSIr14, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* CF */ { UD_Ibswap, O_rDIr15, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* D0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D1 */ { UD_Ipsrlw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D2 */ { UD_Ipsrld, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D3 */ { UD_Ipsrlq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D4 */ { UD_Ipaddq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D5 */ { UD_Ipmullw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D7 */ { UD_Ipmovmskb, O_Gd, O_PR, O_NONE, P_oso|P_rexr|P_rexb }, - /* D8 */ { UD_Ipsubusb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D9 */ { UD_Ipsubusw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DA */ { UD_Ipminub, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DB */ { UD_Ipand, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DC */ { UD_Ipaddusb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DD */ { UD_Ipaddusw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DE */ { UD_Ipmaxub, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DF */ { UD_Ipandn, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E0 */ { UD_Ipavgb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E1 */ { UD_Ipsraw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E2 */ { UD_Ipsrad, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E3 */ { UD_Ipavgw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E4 */ { UD_Ipmulhuw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E5 */ { UD_Ipmulhw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E7 */ { UD_Imovntq, O_M, O_P, O_NONE, P_none }, - /* E8 */ { UD_Ipsubsb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E9 */ { UD_Ipsubsw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* EA */ { UD_Ipminsw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* EB */ { UD_Ipor, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* EC */ { UD_Ipaddsb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* ED */ { UD_Ipaddsw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* EE */ { UD_Ipmaxsw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* EF */ { UD_Ipxor, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F1 */ { UD_Ipsllw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F2 */ { UD_Ipslld, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F3 */ { UD_Ipsllq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F4 */ { UD_Ipmuludq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F5 */ { UD_Ipmaddwd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F6 */ { UD_Ipsadbw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F7 */ { UD_Imaskmovq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F8 */ { UD_Ipsubb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F9 */ { UD_Ipsubw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* FA */ { UD_Ipsubd, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* FB */ { UD_Ipsubq, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* FC */ { UD_Ipaddb, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* FD */ { UD_Ipaddw, O_P, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* FE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_00__reg[8] = { - /* 00 */ { UD_Isldt, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Istr, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Illdt, O_Ew, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Iltr, O_Ew, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iverr, O_Ew, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Iverw, O_Ew, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg[8] = { - /* 00 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_00__MOD }, - /* 01 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_01__MOD }, - /* 02 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_02__MOD }, - /* 03 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_03__MOD }, - /* 04 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_04__MOD }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_06__MOD }, - /* 07 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_07__MOD }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_00__mod[2] = { - /* 00 */ { UD_Isgdt, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Igrp_rm, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_00__MOD__OP_01__RM }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_00__mod__op_01__rm[8] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_00__MOD__OP_01__RM__OP_01__VENDOR }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_00__MOD__OP_01__RM__OP_03__VENDOR }, - /* 04 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_00__MOD__OP_01__RM__OP_04__VENDOR }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_00__mod__op_01__rm__op_01__vendor[2] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Ivmcall, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_00__mod__op_01__rm__op_03__vendor[2] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Ivmresume, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_00__mod__op_01__rm__op_04__vendor[2] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Ivmxoff, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_01__mod[2] = { - /* 00 */ { UD_Isidt, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Igrp_rm, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_01__MOD__OP_01__RM }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_01__mod__op_01__rm[8] = { - /* 00 */ { UD_Imonitor, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Imwait, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_02__mod[2] = { - /* 00 */ { UD_Ilgdt, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_03__mod[2] = { - /* 00 */ { UD_Ilidt, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Igrp_rm, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_03__mod__op_01__rm[8] = { - /* 00 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_00__VENDOR }, - /* 01 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_01__VENDOR }, - /* 02 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_02__VENDOR }, - /* 03 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_03__VENDOR }, - /* 04 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_04__VENDOR }, - /* 05 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_05__VENDOR }, - /* 06 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_06__VENDOR }, - /* 07 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_07__VENDOR }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_03__mod__op_01__rm__op_00__vendor[2] = { - /* 00 */ { UD_Ivmrun, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_03__mod__op_01__rm__op_01__vendor[2] = { - /* 00 */ { UD_Ivmmcall, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_03__mod__op_01__rm__op_02__vendor[2] = { - /* 00 */ { UD_Ivmload, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_03__mod__op_01__rm__op_03__vendor[2] = { - /* 00 */ { UD_Ivmsave, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_03__mod__op_01__rm__op_04__vendor[2] = { - /* 00 */ { UD_Istgi, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_03__mod__op_01__rm__op_05__vendor[2] = { - /* 00 */ { UD_Iclgi, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_03__mod__op_01__rm__op_06__vendor[2] = { - /* 00 */ { UD_Iskinit, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_03__mod__op_01__rm__op_07__vendor[2] = { - /* 00 */ { UD_Iinvlpga, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_04__mod[2] = { - /* 00 */ { UD_Ismsw, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_06__mod[2] = { - /* 00 */ { UD_Ilmsw, O_Ew, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_07__mod[2] = { - /* 00 */ { UD_Iinvlpg, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Igrp_rm, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_07__MOD__OP_01__RM }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_07__mod__op_01__rm[8] = { - /* 00 */ { UD_Iswapgs, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_01__REG__OP_07__MOD__OP_01__RM__OP_01__VENDOR }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_01__reg__op_07__mod__op_01__rm__op_01__vendor[2] = { - /* 00 */ { UD_Irdtscp, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_0d__reg[8] = { - /* 00 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__0f__op_18__reg[8] = { - /* 00 */ { UD_Iprefetchnta, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iprefetcht0, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Iprefetcht1, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Iprefetcht2, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_71__reg[8] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Ipsrlw, O_PR, O_Ib, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Ipsraw, O_PR, O_Ib, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Ipsllw, O_PR, O_Ib, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_72__reg[8] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Ipsrld, O_PR, O_Ib, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Ipsrad, O_PR, O_Ib, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Ipslld, O_PR, O_Ib, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_73__reg[8] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Ipsrlq, O_PR, O_Ib, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Ipsllq, O_PR, O_Ib, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_ae__reg[8] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Ildmxcsr, O_Md, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Istmxcsr, O_Md, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_AE__REG__OP_05__MOD }, - /* 06 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_AE__REG__OP_06__MOD }, - /* 07 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_AE__REG__OP_07__MOD }, -}; - -static struct ud_itab_entry itab__0f__op_ae__reg__op_05__mod[2] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Igrp_rm, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_AE__REG__OP_05__MOD__OP_01__RM }, -}; - -static struct ud_itab_entry itab__0f__op_ae__reg__op_05__mod__op_01__rm[8] = { - /* 00 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_ae__reg__op_06__mod[2] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Igrp_rm, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_AE__REG__OP_06__MOD__OP_01__RM }, -}; - -static struct ud_itab_entry itab__0f__op_ae__reg__op_06__mod__op_01__rm[8] = { - /* 00 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_ae__reg__op_07__mod[2] = { - /* 00 */ { UD_Iclflush, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Igrp_rm, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_AE__REG__OP_07__MOD__OP_01__RM }, -}; - -static struct ud_itab_entry itab__0f__op_ae__reg__op_07__mod__op_01__rm[8] = { - /* 00 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__0f__op_ba__reg[8] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Ibt, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ibts, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ibtr, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Ibtc, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__0f__op_c7__reg[8] = { - /* 00 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_C7__REG__OP_00__VENDOR }, - /* 01 */ { UD_Icmpxchg8b, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_C7__REG__OP_07__VENDOR }, -}; - -static struct ud_itab_entry itab__0f__op_c7__reg__op_00__vendor[2] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Ivmptrld, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__0f__op_c7__reg__op_07__vendor[2] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Ivmptrst, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__0f__op_d9__mod[2] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Igrp_x87, O_NONE, O_NONE, O_NONE, ITAB__0F__OP_D9__MOD__OP_01__X87 }, -}; - -static struct ud_itab_entry itab__0f__op_d9__mod__op_01__x87[64] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 08 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 09 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 10 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 11 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 12 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 13 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 14 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 15 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 16 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 17 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 18 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 19 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 20 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 21 */ { UD_Ifabs, O_NONE, O_NONE, O_NONE, P_none }, - /* 22 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 23 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 24 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 29 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 30 */ { UD_If2xm1, O_NONE, O_NONE, O_NONE, P_none }, - /* 31 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 32 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 33 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 34 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 35 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 36 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 37 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 38 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte[256] = { - /* 00 */ { UD_Iadd, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iadd, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Iadd, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Iadd, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iadd, O_AL, O_Ib, O_NONE, P_none }, - /* 05 */ { UD_Iadd, O_rAX, O_Iz, O_NONE, P_oso|P_rexw }, - /* 06 */ { UD_Ipush, O_ES, O_NONE, O_NONE, P_inv64|P_none }, - /* 07 */ { UD_Ipop, O_ES, O_NONE, O_NONE, P_inv64|P_none }, - /* 08 */ { UD_Ior, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 09 */ { UD_Ior, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0A */ { UD_Ior, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0B */ { UD_Ior, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0C */ { UD_Ior, O_AL, O_Ib, O_NONE, P_none }, - /* 0D */ { UD_Ior, O_rAX, O_Iz, O_NONE, P_oso|P_rexw }, - /* 0E */ { UD_Ipush, O_CS, O_NONE, O_NONE, P_inv64|P_none }, - /* 0F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 10 */ { UD_Iadc, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 11 */ { UD_Iadc, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 12 */ { UD_Iadc, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 13 */ { UD_Iadc, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 14 */ { UD_Iadc, O_AL, O_Ib, O_NONE, P_none }, - /* 15 */ { UD_Iadc, O_rAX, O_Iz, O_NONE, P_oso|P_rexw }, - /* 16 */ { UD_Ipush, O_SS, O_NONE, O_NONE, P_inv64|P_none }, - /* 17 */ { UD_Ipop, O_SS, O_NONE, O_NONE, P_inv64|P_none }, - /* 18 */ { UD_Isbb, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 19 */ { UD_Isbb, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1A */ { UD_Isbb, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1B */ { UD_Isbb, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1C */ { UD_Isbb, O_AL, O_Ib, O_NONE, P_none }, - /* 1D */ { UD_Isbb, O_rAX, O_Iz, O_NONE, P_oso|P_rexw }, - /* 1E */ { UD_Ipush, O_DS, O_NONE, O_NONE, P_inv64|P_none }, - /* 1F */ { UD_Ipop, O_DS, O_NONE, O_NONE, P_inv64|P_none }, - /* 20 */ { UD_Iand, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 21 */ { UD_Iand, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 22 */ { UD_Iand, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 23 */ { UD_Iand, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 24 */ { UD_Iand, O_AL, O_Ib, O_NONE, P_none }, - /* 25 */ { UD_Iand, O_rAX, O_Iz, O_NONE, P_oso|P_rexw }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Idaa, O_NONE, O_NONE, O_NONE, P_inv64|P_none }, - /* 28 */ { UD_Isub, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 29 */ { UD_Isub, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 2A */ { UD_Isub, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2B */ { UD_Isub, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 2C */ { UD_Isub, O_AL, O_Ib, O_NONE, P_none }, - /* 2D */ { UD_Isub, O_rAX, O_Iz, O_NONE, P_oso|P_rexw }, - /* 2E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2F */ { UD_Idas, O_NONE, O_NONE, O_NONE, P_inv64|P_none }, - /* 30 */ { UD_Ixor, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 31 */ { UD_Ixor, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 32 */ { UD_Ixor, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 33 */ { UD_Ixor, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 34 */ { UD_Ixor, O_AL, O_Ib, O_NONE, P_none }, - /* 35 */ { UD_Ixor, O_rAX, O_Iz, O_NONE, P_oso|P_rexw }, - /* 36 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 37 */ { UD_Iaaa, O_NONE, O_NONE, O_NONE, P_inv64|P_none }, - /* 38 */ { UD_Icmp, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 39 */ { UD_Icmp, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 3A */ { UD_Icmp, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 3B */ { UD_Icmp, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 3C */ { UD_Icmp, O_AL, O_Ib, O_NONE, P_none }, - /* 3D */ { UD_Icmp, O_rAX, O_Iz, O_NONE, P_oso|P_rexw }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iaas, O_NONE, O_NONE, O_NONE, P_inv64|P_none }, - /* 40 */ { UD_Iinc, O_eAX, O_NONE, O_NONE, P_oso }, - /* 41 */ { UD_Iinc, O_eCX, O_NONE, O_NONE, P_oso }, - /* 42 */ { UD_Iinc, O_eDX, O_NONE, O_NONE, P_oso }, - /* 43 */ { UD_Iinc, O_eBX, O_NONE, O_NONE, P_oso }, - /* 44 */ { UD_Iinc, O_eSP, O_NONE, O_NONE, P_oso }, - /* 45 */ { UD_Iinc, O_eBP, O_NONE, O_NONE, P_oso }, - /* 46 */ { UD_Iinc, O_eSI, O_NONE, O_NONE, P_oso }, - /* 47 */ { UD_Iinc, O_eDI, O_NONE, O_NONE, P_oso }, - /* 48 */ { UD_Idec, O_eAX, O_NONE, O_NONE, P_oso }, - /* 49 */ { UD_Idec, O_eCX, O_NONE, O_NONE, P_oso }, - /* 4A */ { UD_Idec, O_eDX, O_NONE, O_NONE, P_oso }, - /* 4B */ { UD_Idec, O_eBX, O_NONE, O_NONE, P_oso }, - /* 4C */ { UD_Idec, O_eSP, O_NONE, O_NONE, P_oso }, - /* 4D */ { UD_Idec, O_eBP, O_NONE, O_NONE, P_oso }, - /* 4E */ { UD_Idec, O_eSI, O_NONE, O_NONE, P_oso }, - /* 4F */ { UD_Idec, O_eDI, O_NONE, O_NONE, P_oso }, - /* 50 */ { UD_Ipush, O_rAXr8, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 51 */ { UD_Ipush, O_rCXr9, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 52 */ { UD_Ipush, O_rDXr10, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 53 */ { UD_Ipush, O_rBXr11, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 54 */ { UD_Ipush, O_rSPr12, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 55 */ { UD_Ipush, O_rBPr13, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 56 */ { UD_Ipush, O_rSIr14, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 57 */ { UD_Ipush, O_rDIr15, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 58 */ { UD_Ipop, O_rAXr8, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 59 */ { UD_Ipop, O_rCXr9, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 5A */ { UD_Ipop, O_rDXr10, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 5B */ { UD_Ipop, O_rBXr11, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 5C */ { UD_Ipop, O_rSPr12, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 5D */ { UD_Ipop, O_rBPr13, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 5E */ { UD_Ipop, O_rSIr14, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 5F */ { UD_Ipop, O_rDIr15, O_NONE, O_NONE, P_def64|P_depM|P_oso|P_rexb }, - /* 60 */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_60__OSIZE }, - /* 61 */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_61__OSIZE }, - /* 62 */ { UD_Ibound, O_Gv, O_M, O_NONE, P_inv64|P_aso|P_oso }, - /* 63 */ { UD_Igrp_mode, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_63__MODE }, - /* 64 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 65 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 66 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 67 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 68 */ { UD_Ipush, O_Iz, O_NONE, O_NONE, P_c1|P_oso }, - /* 69 */ { UD_Iimul, O_Gv, O_Ev, O_Iz, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 6A */ { UD_Ipush, O_Ib, O_NONE, O_NONE, P_none }, - /* 6B */ { UD_Iimul, O_Gv, O_Ev, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 6C */ { UD_Iinsb, O_NONE, O_NONE, O_NONE, P_none }, - /* 6D */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_6D__OSIZE }, - /* 6E */ { UD_Ioutsb, O_NONE, O_NONE, O_NONE, P_none }, - /* 6F */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_6F__OSIZE }, - /* 70 */ { UD_Ijo, O_Jb, O_NONE, O_NONE, P_none }, - /* 71 */ { UD_Ijno, O_Jb, O_NONE, O_NONE, P_none }, - /* 72 */ { UD_Ijb, O_Jb, O_NONE, O_NONE, P_none }, - /* 73 */ { UD_Ijae, O_Jb, O_NONE, O_NONE, P_none }, - /* 74 */ { UD_Ijz, O_Jb, O_NONE, O_NONE, P_none }, - /* 75 */ { UD_Ijnz, O_Jb, O_NONE, O_NONE, P_none }, - /* 76 */ { UD_Ijbe, O_Jb, O_NONE, O_NONE, P_none }, - /* 77 */ { UD_Ija, O_Jb, O_NONE, O_NONE, P_none }, - /* 78 */ { UD_Ijs, O_Jb, O_NONE, O_NONE, P_none }, - /* 79 */ { UD_Ijns, O_Jb, O_NONE, O_NONE, P_none }, - /* 7A */ { UD_Ijp, O_Jb, O_NONE, O_NONE, P_none }, - /* 7B */ { UD_Ijnp, O_Jb, O_NONE, O_NONE, P_none }, - /* 7C */ { UD_Ijl, O_Jb, O_NONE, O_NONE, P_none }, - /* 7D */ { UD_Ijge, O_Jb, O_NONE, O_NONE, P_none }, - /* 7E */ { UD_Ijle, O_Jb, O_NONE, O_NONE, P_none }, - /* 7F */ { UD_Ijg, O_Jb, O_NONE, O_NONE, P_none }, - /* 80 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_80__REG }, - /* 81 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_81__REG }, - /* 82 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_82__REG }, - /* 83 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_83__REG }, - /* 84 */ { UD_Itest, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 85 */ { UD_Itest, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 86 */ { UD_Ixchg, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 87 */ { UD_Ixchg, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 88 */ { UD_Imov, O_Eb, O_Gb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 89 */ { UD_Imov, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 8A */ { UD_Imov, O_Gb, O_Eb, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 8B */ { UD_Imov, O_Gv, O_Ev, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 8C */ { UD_Imov, O_Ev, O_S, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, - /* 8D */ { UD_Ilea, O_Gv, O_M, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 8E */ { UD_Imov, O_S, O_Ev, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, - /* 8F */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_8F__REG }, - /* 90 */ { UD_Ixchg, O_rAXr8, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, - /* 91 */ { UD_Ixchg, O_rCXr9, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, - /* 92 */ { UD_Ixchg, O_rDXr10, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, - /* 93 */ { UD_Ixchg, O_rBXr11, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, - /* 94 */ { UD_Ixchg, O_rSPr12, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, - /* 95 */ { UD_Ixchg, O_rBPr13, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, - /* 96 */ { UD_Ixchg, O_rSIr14, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, - /* 97 */ { UD_Ixchg, O_rDIr15, O_rAX, O_NONE, P_oso|P_rexw|P_rexb }, - /* 98 */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_98__OSIZE }, - /* 99 */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_99__OSIZE }, - /* 9A */ { UD_Icall, O_Ap, O_NONE, O_NONE, P_inv64|P_oso }, - /* 9B */ { UD_Iwait, O_NONE, O_NONE, O_NONE, P_none }, - /* 9C */ { UD_Igrp_mode, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_9C__MODE }, - /* 9D */ { UD_Igrp_mode, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_9D__MODE }, - /* 9E */ { UD_Isahf, O_NONE, O_NONE, O_NONE, P_none }, - /* 9F */ { UD_Ilahf, O_NONE, O_NONE, O_NONE, P_none }, - /* A0 */ { UD_Imov, O_AL, O_Ob, O_NONE, P_none }, - /* A1 */ { UD_Imov, O_rAX, O_Ov, O_NONE, P_aso|P_oso|P_rexw }, - /* A2 */ { UD_Imov, O_Ob, O_AL, O_NONE, P_none }, - /* A3 */ { UD_Imov, O_Ov, O_rAX, O_NONE, P_aso|P_oso|P_rexw }, - /* A4 */ { UD_Imovsb, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_none }, - /* A5 */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_A5__OSIZE }, - /* A6 */ { UD_Icmpsb, O_NONE, O_NONE, O_NONE, P_none }, - /* A7 */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_A7__OSIZE }, - /* A8 */ { UD_Itest, O_AL, O_Ib, O_NONE, P_none }, - /* A9 */ { UD_Itest, O_rAX, O_Iz, O_NONE, P_oso|P_rexw }, - /* AA */ { UD_Istosb, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_none }, - /* AB */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_AB__OSIZE }, - /* AC */ { UD_Ilodsb, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_none }, - /* AD */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_AD__OSIZE }, - /* AE */ { UD_Iscasb, O_NONE, O_NONE, O_NONE, P_none }, - /* AF */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_AF__OSIZE }, - /* B0 */ { UD_Imov, O_ALr8b, O_Ib, O_NONE, P_rexb }, - /* B1 */ { UD_Imov, O_CLr9b, O_Ib, O_NONE, P_rexb }, - /* B2 */ { UD_Imov, O_DLr10b, O_Ib, O_NONE, P_rexb }, - /* B3 */ { UD_Imov, O_BLr11b, O_Ib, O_NONE, P_rexb }, - /* B4 */ { UD_Imov, O_AHr12b, O_Ib, O_NONE, P_rexb }, - /* B5 */ { UD_Imov, O_CHr13b, O_Ib, O_NONE, P_rexb }, - /* B6 */ { UD_Imov, O_DHr14b, O_Ib, O_NONE, P_rexb }, - /* B7 */ { UD_Imov, O_BHr15b, O_Ib, O_NONE, P_rexb }, - /* B8 */ { UD_Imov, O_rAXr8, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, - /* B9 */ { UD_Imov, O_rCXr9, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, - /* BA */ { UD_Imov, O_rDXr10, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, - /* BB */ { UD_Imov, O_rBXr11, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, - /* BC */ { UD_Imov, O_rSPr12, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, - /* BD */ { UD_Imov, O_rBPr13, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, - /* BE */ { UD_Imov, O_rSIr14, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, - /* BF */ { UD_Imov, O_rDIr15, O_Iv, O_NONE, P_oso|P_rexw|P_rexb }, - /* C0 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_C0__REG }, - /* C1 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_C1__REG }, - /* C2 */ { UD_Iret, O_Iw, O_NONE, O_NONE, P_none }, - /* C3 */ { UD_Iret, O_NONE, O_NONE, O_NONE, P_none }, - /* C4 */ { UD_Iles, O_Gv, O_M, O_NONE, P_inv64|P_aso|P_oso }, - /* C5 */ { UD_Ilds, O_Gv, O_M, O_NONE, P_inv64|P_aso|P_oso }, - /* C6 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_C6__REG }, - /* C7 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_C7__REG }, - /* C8 */ { UD_Ienter, O_Iw, O_Ib, O_NONE, P_def64|P_depM|P_none }, - /* C9 */ { UD_Ileave, O_NONE, O_NONE, O_NONE, P_none }, - /* CA */ { UD_Iretf, O_Iw, O_NONE, O_NONE, P_none }, - /* CB */ { UD_Iretf, O_NONE, O_NONE, O_NONE, P_none }, - /* CC */ { UD_Iint3, O_NONE, O_NONE, O_NONE, P_none }, - /* CD */ { UD_Iint, O_Ib, O_NONE, O_NONE, P_none }, - /* CE */ { UD_Iinto, O_NONE, O_NONE, O_NONE, P_inv64|P_none }, - /* CF */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_CF__OSIZE }, - /* D0 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_D0__REG }, - /* D1 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_D1__REG }, - /* D2 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_D2__REG }, - /* D3 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_D3__REG }, - /* D4 */ { UD_Iaam, O_Ib, O_NONE, O_NONE, P_inv64|P_none }, - /* D5 */ { UD_Iaad, O_Ib, O_NONE, O_NONE, P_inv64|P_none }, - /* D6 */ { UD_Isalc, O_NONE, O_NONE, O_NONE, P_inv64|P_none }, - /* D7 */ { UD_Ixlatb, O_NONE, O_NONE, O_NONE, P_rexw }, - /* D8 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_D8__MOD }, - /* D9 */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_D9__MOD }, - /* DA */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DA__MOD }, - /* DB */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DB__MOD }, - /* DC */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DC__MOD }, - /* DD */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DD__MOD }, - /* DE */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DE__MOD }, - /* DF */ { UD_Igrp_mod, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DF__MOD }, - /* E0 */ { UD_Iloopnz, O_Jb, O_NONE, O_NONE, P_none }, - /* E1 */ { UD_Iloope, O_Jb, O_NONE, O_NONE, P_none }, - /* E2 */ { UD_Iloop, O_Jb, O_NONE, O_NONE, P_none }, - /* E3 */ { UD_Igrp_asize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_E3__ASIZE }, - /* E4 */ { UD_Iin, O_AL, O_Ib, O_NONE, P_none }, - /* E5 */ { UD_Iin, O_eAX, O_Ib, O_NONE, P_oso }, - /* E6 */ { UD_Iout, O_Ib, O_AL, O_NONE, P_none }, - /* E7 */ { UD_Iout, O_Ib, O_eAX, O_NONE, P_oso }, - /* E8 */ { UD_Icall, O_Jz, O_NONE, O_NONE, P_def64|P_oso }, - /* E9 */ { UD_Ijmp, O_Jz, O_NONE, O_NONE, P_def64|P_depM|P_oso }, - /* EA */ { UD_Ijmp, O_Ap, O_NONE, O_NONE, P_inv64|P_none }, - /* EB */ { UD_Ijmp, O_Jb, O_NONE, O_NONE, P_none }, - /* EC */ { UD_Iin, O_AL, O_DX, O_NONE, P_none }, - /* ED */ { UD_Iin, O_eAX, O_DX, O_NONE, P_oso }, - /* EE */ { UD_Iout, O_DX, O_AL, O_NONE, P_none }, - /* EF */ { UD_Iout, O_DX, O_eAX, O_NONE, P_oso }, - /* F0 */ { UD_Ilock, O_NONE, O_NONE, O_NONE, P_none }, - /* F1 */ { UD_Iint1, O_NONE, O_NONE, O_NONE, P_none }, - /* F2 */ { UD_Irepne, O_NONE, O_NONE, O_NONE, P_none }, - /* F3 */ { UD_Irep, O_NONE, O_NONE, O_NONE, P_none }, - /* F4 */ { UD_Ihlt, O_NONE, O_NONE, O_NONE, P_none }, - /* F5 */ { UD_Icmc, O_NONE, O_NONE, O_NONE, P_none }, - /* F6 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_F6__REG }, - /* F7 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_F7__REG }, - /* F8 */ { UD_Iclc, O_NONE, O_NONE, O_NONE, P_none }, - /* F9 */ { UD_Istc, O_NONE, O_NONE, O_NONE, P_none }, - /* FA */ { UD_Icli, O_NONE, O_NONE, O_NONE, P_none }, - /* FB */ { UD_Isti, O_NONE, O_NONE, O_NONE, P_none }, - /* FC */ { UD_Icld, O_NONE, O_NONE, O_NONE, P_none }, - /* FD */ { UD_Istd, O_NONE, O_NONE, O_NONE, P_none }, - /* FE */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_FE__REG }, - /* FF */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_FF__REG }, -}; - -static struct ud_itab_entry itab__1byte__op_60__osize[3] = { - /* 00 */ { UD_Ipusha, O_NONE, O_NONE, O_NONE, P_inv64|P_oso }, - /* 01 */ { UD_Ipushad, O_NONE, O_NONE, O_NONE, P_inv64|P_oso }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_61__osize[3] = { - /* 00 */ { UD_Ipopa, O_NONE, O_NONE, O_NONE, P_inv64|P_oso }, - /* 01 */ { UD_Ipopad, O_NONE, O_NONE, O_NONE, P_inv64|P_oso }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_63__mode[3] = { - /* 00 */ { UD_Iarpl, O_Ew, O_Gw, O_NONE, P_inv64|P_aso }, - /* 01 */ { UD_Iarpl, O_Ew, O_Gw, O_NONE, P_inv64|P_aso }, - /* 02 */ { UD_Imovsxd, O_Gv, O_Ed, O_NONE, P_c2|P_aso|P_oso|P_rexw|P_rexx|P_rexr|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_6d__osize[3] = { - /* 00 */ { UD_Iinsw, O_NONE, O_NONE, O_NONE, P_oso }, - /* 01 */ { UD_Iinsd, O_NONE, O_NONE, O_NONE, P_oso }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_6f__osize[3] = { - /* 00 */ { UD_Ioutsw, O_NONE, O_NONE, O_NONE, P_oso }, - /* 01 */ { UD_Ioutsd, O_NONE, O_NONE, O_NONE, P_oso }, - /* 02 */ { UD_Ioutsq, O_NONE, O_NONE, O_NONE, P_oso }, -}; - -static struct ud_itab_entry itab__1byte__op_80__reg[8] = { - /* 00 */ { UD_Iadd, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ior, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Iadc, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Isbb, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iand, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Isub, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ixor, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Icmp, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_81__reg[8] = { - /* 00 */ { UD_Iadd, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ior, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Iadc, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Isbb, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iand, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Isub, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ixor, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Icmp, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_82__reg[8] = { - /* 00 */ { UD_Iadd, O_Eb, O_Ib, O_NONE, P_c1|P_inv64|P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ior, O_Eb, O_Ib, O_NONE, P_c1|P_inv64|P_aso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Iadc, O_Eb, O_Ib, O_NONE, P_c1|P_inv64|P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Isbb, O_Eb, O_Ib, O_NONE, P_c1|P_inv64|P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iand, O_Eb, O_Ib, O_NONE, P_c1|P_inv64|P_aso|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Isub, O_Eb, O_Ib, O_NONE, P_c1|P_inv64|P_aso|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ixor, O_Eb, O_Ib, O_NONE, P_c1|P_inv64|P_aso|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Icmp, O_Eb, O_Ib, O_NONE, P_c1|P_inv64|P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_83__reg[8] = { - /* 00 */ { UD_Iadd, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ior, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Iadc, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Isbb, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iand, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Isub, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ixor, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Icmp, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_8f__reg[8] = { - /* 00 */ { UD_Ipop, O_Ev, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_98__osize[3] = { - /* 00 */ { UD_Icbw, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 01 */ { UD_Icwde, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 02 */ { UD_Icdqe, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, -}; - -static struct ud_itab_entry itab__1byte__op_99__osize[3] = { - /* 00 */ { UD_Icwd, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 01 */ { UD_Icdq, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 02 */ { UD_Icqo, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, -}; - -static struct ud_itab_entry itab__1byte__op_9c__mode[3] = { - /* 00 */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_9C__MODE__OP_00__OSIZE }, - /* 01 */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_9C__MODE__OP_01__OSIZE }, - /* 02 */ { UD_Ipushfq, O_NONE, O_NONE, O_NONE, P_def64|P_oso|P_rexw }, -}; - -static struct ud_itab_entry itab__1byte__op_9c__mode__op_00__osize[3] = { - /* 00 */ { UD_Ipushfw, O_NONE, O_NONE, O_NONE, P_def64|P_oso }, - /* 01 */ { UD_Ipushfd, O_NONE, O_NONE, O_NONE, P_def64|P_oso }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_9c__mode__op_01__osize[3] = { - /* 00 */ { UD_Ipushfw, O_NONE, O_NONE, O_NONE, P_def64|P_oso }, - /* 01 */ { UD_Ipushfd, O_NONE, O_NONE, O_NONE, P_def64|P_oso }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_9d__mode[3] = { - /* 00 */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_9D__MODE__OP_00__OSIZE }, - /* 01 */ { UD_Igrp_osize, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_9D__MODE__OP_01__OSIZE }, - /* 02 */ { UD_Ipopfq, O_NONE, O_NONE, O_NONE, P_def64|P_depM|P_oso }, -}; - -static struct ud_itab_entry itab__1byte__op_9d__mode__op_00__osize[3] = { - /* 00 */ { UD_Ipopfw, O_NONE, O_NONE, O_NONE, P_def64|P_depM|P_oso }, - /* 01 */ { UD_Ipopfd, O_NONE, O_NONE, O_NONE, P_def64|P_depM|P_oso }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_9d__mode__op_01__osize[3] = { - /* 00 */ { UD_Ipopfw, O_NONE, O_NONE, O_NONE, P_def64|P_depM|P_oso }, - /* 01 */ { UD_Ipopfd, O_NONE, O_NONE, O_NONE, P_def64|P_depM|P_oso }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_a5__osize[3] = { - /* 00 */ { UD_Imovsw, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_oso|P_rexw }, - /* 01 */ { UD_Imovsd, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_oso|P_rexw }, - /* 02 */ { UD_Imovsq, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_oso|P_rexw }, -}; - -static struct ud_itab_entry itab__1byte__op_a7__osize[3] = { - /* 00 */ { UD_Icmpsw, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 01 */ { UD_Icmpsd, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 02 */ { UD_Icmpsq, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, -}; - -static struct ud_itab_entry itab__1byte__op_ab__osize[3] = { - /* 00 */ { UD_Istosw, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_oso|P_rexw }, - /* 01 */ { UD_Istosd, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_oso|P_rexw }, - /* 02 */ { UD_Istosq, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_oso|P_rexw }, -}; - -static struct ud_itab_entry itab__1byte__op_ad__osize[3] = { - /* 00 */ { UD_Ilodsw, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_oso|P_rexw }, - /* 01 */ { UD_Ilodsd, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_oso|P_rexw }, - /* 02 */ { UD_Ilodsq, O_NONE, O_NONE, O_NONE, P_ImpAddr|P_oso|P_rexw }, -}; - -static struct ud_itab_entry itab__1byte__op_ae__mod[2] = { - /* 00 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_AE__MOD__OP_00__REG }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_ae__mod__op_00__reg[8] = { - /* 00 */ { UD_Ifxsave, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ifxrstor, O_M, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_af__osize[3] = { - /* 00 */ { UD_Iscasw, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 01 */ { UD_Iscasd, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 02 */ { UD_Iscasq, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, -}; - -static struct ud_itab_entry itab__1byte__op_c0__reg[8] = { - /* 00 */ { UD_Irol, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iror, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ircl, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ircr, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ishl, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ishr, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ishl, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Isar, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_c1__reg[8] = { - /* 00 */ { UD_Irol, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iror, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ircl, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ircr, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ishl, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ishr, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ishl, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Isar, O_Ev, O_Ib, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_c6__reg[8] = { - /* 00 */ { UD_Imov, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_c7__reg[8] = { - /* 00 */ { UD_Imov, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_cf__osize[3] = { - /* 00 */ { UD_Iiretw, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 01 */ { UD_Iiretd, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 02 */ { UD_Iiretq, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, -}; - -static struct ud_itab_entry itab__1byte__op_d0__reg[8] = { - /* 00 */ { UD_Irol, O_Eb, O_I1, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iror, O_Eb, O_I1, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ircl, O_Eb, O_I1, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ircr, O_Eb, O_I1, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ishl, O_Eb, O_I1, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ishr, O_Eb, O_I1, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ishl, O_Eb, O_I1, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Isar, O_Eb, O_I1, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_d1__reg[8] = { - /* 00 */ { UD_Irol, O_Ev, O_I1, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iror, O_Ev, O_I1, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ircl, O_Ev, O_I1, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ircr, O_Ev, O_I1, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ishl, O_Ev, O_I1, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ishr, O_Ev, O_I1, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ishl, O_Ev, O_I1, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Isar, O_Ev, O_I1, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_d2__reg[8] = { - /* 00 */ { UD_Irol, O_Eb, O_CL, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iror, O_Eb, O_CL, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ircl, O_Eb, O_CL, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ircr, O_Eb, O_CL, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ishl, O_Eb, O_CL, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ishr, O_Eb, O_CL, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ishl, O_Eb, O_CL, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Isar, O_Eb, O_CL, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_d3__reg[8] = { - /* 00 */ { UD_Irol, O_Ev, O_CL, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iror, O_Ev, O_CL, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ircl, O_Ev, O_CL, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ircr, O_Ev, O_CL, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ishl, O_Ev, O_CL, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ishr, O_Ev, O_CL, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ishl, O_Ev, O_CL, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Isar, O_Ev, O_CL, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_d8__mod[2] = { - /* 00 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_D8__MOD__OP_00__REG }, - /* 01 */ { UD_Igrp_x87, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_D8__MOD__OP_01__X87 }, -}; - -static struct ud_itab_entry itab__1byte__op_d8__mod__op_00__reg[8] = { - /* 00 */ { UD_Ifadd, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ifmul, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ifcom, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ifcomp, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ifsub, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ifsubr, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ifdiv, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Ifdivr, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_d8__mod__op_01__x87[64] = { - /* 00 */ { UD_Ifadd, O_ST0, O_ST0, O_NONE, P_none }, - /* 01 */ { UD_Ifadd, O_ST0, O_ST1, O_NONE, P_none }, - /* 02 */ { UD_Ifadd, O_ST0, O_ST2, O_NONE, P_none }, - /* 03 */ { UD_Ifadd, O_ST0, O_ST3, O_NONE, P_none }, - /* 04 */ { UD_Ifadd, O_ST0, O_ST4, O_NONE, P_none }, - /* 05 */ { UD_Ifadd, O_ST0, O_ST5, O_NONE, P_none }, - /* 06 */ { UD_Ifadd, O_ST0, O_ST6, O_NONE, P_none }, - /* 07 */ { UD_Ifadd, O_ST0, O_ST7, O_NONE, P_none }, - /* 08 */ { UD_Ifmul, O_ST0, O_ST0, O_NONE, P_none }, - /* 09 */ { UD_Ifmul, O_ST0, O_ST1, O_NONE, P_none }, - /* 0A */ { UD_Ifmul, O_ST0, O_ST2, O_NONE, P_none }, - /* 0B */ { UD_Ifmul, O_ST0, O_ST3, O_NONE, P_none }, - /* 0C */ { UD_Ifmul, O_ST0, O_ST4, O_NONE, P_none }, - /* 0D */ { UD_Ifmul, O_ST0, O_ST5, O_NONE, P_none }, - /* 0E */ { UD_Ifmul, O_ST0, O_ST6, O_NONE, P_none }, - /* 0F */ { UD_Ifmul, O_ST0, O_ST7, O_NONE, P_none }, - /* 10 */ { UD_Ifcom, O_ST0, O_ST0, O_NONE, P_none }, - /* 11 */ { UD_Ifcom, O_ST0, O_ST1, O_NONE, P_none }, - /* 12 */ { UD_Ifcom, O_ST0, O_ST2, O_NONE, P_none }, - /* 13 */ { UD_Ifcom, O_ST0, O_ST3, O_NONE, P_none }, - /* 14 */ { UD_Ifcom, O_ST0, O_ST4, O_NONE, P_none }, - /* 15 */ { UD_Ifcom, O_ST0, O_ST5, O_NONE, P_none }, - /* 16 */ { UD_Ifcom, O_ST0, O_ST6, O_NONE, P_none }, - /* 17 */ { UD_Ifcom, O_ST0, O_ST7, O_NONE, P_none }, - /* 18 */ { UD_Ifcomp, O_ST0, O_ST0, O_NONE, P_none }, - /* 19 */ { UD_Ifcomp, O_ST0, O_ST1, O_NONE, P_none }, - /* 1A */ { UD_Ifcomp, O_ST0, O_ST2, O_NONE, P_none }, - /* 1B */ { UD_Ifcomp, O_ST0, O_ST3, O_NONE, P_none }, - /* 1C */ { UD_Ifcomp, O_ST0, O_ST4, O_NONE, P_none }, - /* 1D */ { UD_Ifcomp, O_ST0, O_ST5, O_NONE, P_none }, - /* 1E */ { UD_Ifcomp, O_ST0, O_ST6, O_NONE, P_none }, - /* 1F */ { UD_Ifcomp, O_ST0, O_ST7, O_NONE, P_none }, - /* 20 */ { UD_Ifsub, O_ST0, O_ST0, O_NONE, P_none }, - /* 21 */ { UD_Ifsub, O_ST0, O_ST1, O_NONE, P_none }, - /* 22 */ { UD_Ifsub, O_ST0, O_ST2, O_NONE, P_none }, - /* 23 */ { UD_Ifsub, O_ST0, O_ST3, O_NONE, P_none }, - /* 24 */ { UD_Ifsub, O_ST0, O_ST4, O_NONE, P_none }, - /* 25 */ { UD_Ifsub, O_ST0, O_ST5, O_NONE, P_none }, - /* 26 */ { UD_Ifsub, O_ST0, O_ST6, O_NONE, P_none }, - /* 27 */ { UD_Ifsub, O_ST0, O_ST7, O_NONE, P_none }, - /* 28 */ { UD_Ifsubr, O_ST0, O_ST0, O_NONE, P_none }, - /* 29 */ { UD_Ifsubr, O_ST0, O_ST1, O_NONE, P_none }, - /* 2A */ { UD_Ifsubr, O_ST0, O_ST2, O_NONE, P_none }, - /* 2B */ { UD_Ifsubr, O_ST0, O_ST3, O_NONE, P_none }, - /* 2C */ { UD_Ifsubr, O_ST0, O_ST4, O_NONE, P_none }, - /* 2D */ { UD_Ifsubr, O_ST0, O_ST5, O_NONE, P_none }, - /* 2E */ { UD_Ifsubr, O_ST0, O_ST6, O_NONE, P_none }, - /* 2F */ { UD_Ifsubr, O_ST0, O_ST7, O_NONE, P_none }, - /* 30 */ { UD_Ifdiv, O_ST0, O_ST0, O_NONE, P_none }, - /* 31 */ { UD_Ifdiv, O_ST0, O_ST1, O_NONE, P_none }, - /* 32 */ { UD_Ifdiv, O_ST0, O_ST2, O_NONE, P_none }, - /* 33 */ { UD_Ifdiv, O_ST0, O_ST3, O_NONE, P_none }, - /* 34 */ { UD_Ifdiv, O_ST0, O_ST4, O_NONE, P_none }, - /* 35 */ { UD_Ifdiv, O_ST0, O_ST5, O_NONE, P_none }, - /* 36 */ { UD_Ifdiv, O_ST0, O_ST6, O_NONE, P_none }, - /* 37 */ { UD_Ifdiv, O_ST0, O_ST7, O_NONE, P_none }, - /* 38 */ { UD_Ifdivr, O_ST0, O_ST0, O_NONE, P_none }, - /* 39 */ { UD_Ifdivr, O_ST0, O_ST1, O_NONE, P_none }, - /* 3A */ { UD_Ifdivr, O_ST0, O_ST2, O_NONE, P_none }, - /* 3B */ { UD_Ifdivr, O_ST0, O_ST3, O_NONE, P_none }, - /* 3C */ { UD_Ifdivr, O_ST0, O_ST4, O_NONE, P_none }, - /* 3D */ { UD_Ifdivr, O_ST0, O_ST5, O_NONE, P_none }, - /* 3E */ { UD_Ifdivr, O_ST0, O_ST6, O_NONE, P_none }, - /* 3F */ { UD_Ifdivr, O_ST0, O_ST7, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_d9__mod[2] = { - /* 00 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_D9__MOD__OP_00__REG }, - /* 01 */ { UD_Igrp_x87, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_D9__MOD__OP_01__X87 }, -}; - -static struct ud_itab_entry itab__1byte__op_d9__mod__op_00__reg[8] = { - /* 00 */ { UD_Ifld, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Ifst, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ifstp, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ifldenv, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ifldcw, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ifnstenv, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Ifnstcw, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_d9__mod__op_01__x87[64] = { - /* 00 */ { UD_Ifld, O_ST0, O_ST0, O_NONE, P_none }, - /* 01 */ { UD_Ifld, O_ST0, O_ST1, O_NONE, P_none }, - /* 02 */ { UD_Ifld, O_ST0, O_ST2, O_NONE, P_none }, - /* 03 */ { UD_Ifld, O_ST0, O_ST3, O_NONE, P_none }, - /* 04 */ { UD_Ifld, O_ST0, O_ST4, O_NONE, P_none }, - /* 05 */ { UD_Ifld, O_ST0, O_ST5, O_NONE, P_none }, - /* 06 */ { UD_Ifld, O_ST0, O_ST6, O_NONE, P_none }, - /* 07 */ { UD_Ifld, O_ST0, O_ST7, O_NONE, P_none }, - /* 08 */ { UD_Ifxch, O_ST0, O_ST0, O_NONE, P_none }, - /* 09 */ { UD_Ifxch, O_ST0, O_ST1, O_NONE, P_none }, - /* 0A */ { UD_Ifxch, O_ST0, O_ST2, O_NONE, P_none }, - /* 0B */ { UD_Ifxch, O_ST0, O_ST3, O_NONE, P_none }, - /* 0C */ { UD_Ifxch, O_ST0, O_ST4, O_NONE, P_none }, - /* 0D */ { UD_Ifxch, O_ST0, O_ST5, O_NONE, P_none }, - /* 0E */ { UD_Ifxch, O_ST0, O_ST6, O_NONE, P_none }, - /* 0F */ { UD_Ifxch, O_ST0, O_ST7, O_NONE, P_none }, - /* 10 */ { UD_Ifnop, O_NONE, O_NONE, O_NONE, P_none }, - /* 11 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 12 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 13 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 14 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 15 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 16 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 17 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 18 */ { UD_Ifstp1, O_ST0, O_NONE, O_NONE, P_none }, - /* 19 */ { UD_Ifstp1, O_ST1, O_NONE, O_NONE, P_none }, - /* 1A */ { UD_Ifstp1, O_ST2, O_NONE, O_NONE, P_none }, - /* 1B */ { UD_Ifstp1, O_ST3, O_NONE, O_NONE, P_none }, - /* 1C */ { UD_Ifstp1, O_ST4, O_NONE, O_NONE, P_none }, - /* 1D */ { UD_Ifstp1, O_ST5, O_NONE, O_NONE, P_none }, - /* 1E */ { UD_Ifstp1, O_ST6, O_NONE, O_NONE, P_none }, - /* 1F */ { UD_Ifstp1, O_ST7, O_NONE, O_NONE, P_none }, - /* 20 */ { UD_Ifchs, O_NONE, O_NONE, O_NONE, P_none }, - /* 21 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 22 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 23 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 24 */ { UD_Iftst, O_NONE, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Ifxam, O_NONE, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Ifld1, O_NONE, O_NONE, O_NONE, P_none }, - /* 29 */ { UD_Ifldl2t, O_NONE, O_NONE, O_NONE, P_none }, - /* 2A */ { UD_Ifldl2e, O_NONE, O_NONE, O_NONE, P_none }, - /* 2B */ { UD_Ifldlpi, O_NONE, O_NONE, O_NONE, P_none }, - /* 2C */ { UD_Ifldlg2, O_NONE, O_NONE, O_NONE, P_none }, - /* 2D */ { UD_Ifldln2, O_NONE, O_NONE, O_NONE, P_none }, - /* 2E */ { UD_Ifldz, O_NONE, O_NONE, O_NONE, P_none }, - /* 2F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 30 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 31 */ { UD_Ifyl2x, O_NONE, O_NONE, O_NONE, P_none }, - /* 32 */ { UD_Ifptan, O_NONE, O_NONE, O_NONE, P_none }, - /* 33 */ { UD_Ifpatan, O_NONE, O_NONE, O_NONE, P_none }, - /* 34 */ { UD_Ifpxtract, O_NONE, O_NONE, O_NONE, P_none }, - /* 35 */ { UD_Ifprem1, O_NONE, O_NONE, O_NONE, P_none }, - /* 36 */ { UD_Ifdecstp, O_NONE, O_NONE, O_NONE, P_none }, - /* 37 */ { UD_Ifncstp, O_NONE, O_NONE, O_NONE, P_none }, - /* 38 */ { UD_Ifprem, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Ifyl2xp1, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Ifsqrt, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Ifsincos, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Ifrndint, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Ifscale, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Ifsin, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Ifcos, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_da__mod[2] = { - /* 00 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DA__MOD__OP_00__REG }, - /* 01 */ { UD_Igrp_x87, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DA__MOD__OP_01__X87 }, -}; - -static struct ud_itab_entry itab__1byte__op_da__mod__op_00__reg[8] = { - /* 00 */ { UD_Ifiadd, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ifimul, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ificom, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ificomp, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ifisub, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ifisubr, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ifidiv, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Ifidivr, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_da__mod__op_01__x87[64] = { - /* 00 */ { UD_Ifcmovb, O_ST0, O_ST0, O_NONE, P_none }, - /* 01 */ { UD_Ifcmovb, O_ST0, O_ST1, O_NONE, P_none }, - /* 02 */ { UD_Ifcmovb, O_ST0, O_ST2, O_NONE, P_none }, - /* 03 */ { UD_Ifcmovb, O_ST0, O_ST3, O_NONE, P_none }, - /* 04 */ { UD_Ifcmovb, O_ST0, O_ST4, O_NONE, P_none }, - /* 05 */ { UD_Ifcmovb, O_ST0, O_ST5, O_NONE, P_none }, - /* 06 */ { UD_Ifcmovb, O_ST0, O_ST6, O_NONE, P_none }, - /* 07 */ { UD_Ifcmovb, O_ST0, O_ST7, O_NONE, P_none }, - /* 08 */ { UD_Ifcmove, O_ST0, O_ST0, O_NONE, P_none }, - /* 09 */ { UD_Ifcmove, O_ST0, O_ST1, O_NONE, P_none }, - /* 0A */ { UD_Ifcmove, O_ST0, O_ST2, O_NONE, P_none }, - /* 0B */ { UD_Ifcmove, O_ST0, O_ST3, O_NONE, P_none }, - /* 0C */ { UD_Ifcmove, O_ST0, O_ST4, O_NONE, P_none }, - /* 0D */ { UD_Ifcmove, O_ST0, O_ST5, O_NONE, P_none }, - /* 0E */ { UD_Ifcmove, O_ST0, O_ST6, O_NONE, P_none }, - /* 0F */ { UD_Ifcmove, O_ST0, O_ST7, O_NONE, P_none }, - /* 10 */ { UD_Ifcmovbe, O_ST0, O_ST0, O_NONE, P_none }, - /* 11 */ { UD_Ifcmovbe, O_ST0, O_ST1, O_NONE, P_none }, - /* 12 */ { UD_Ifcmovbe, O_ST0, O_ST2, O_NONE, P_none }, - /* 13 */ { UD_Ifcmovbe, O_ST0, O_ST3, O_NONE, P_none }, - /* 14 */ { UD_Ifcmovbe, O_ST0, O_ST4, O_NONE, P_none }, - /* 15 */ { UD_Ifcmovbe, O_ST0, O_ST5, O_NONE, P_none }, - /* 16 */ { UD_Ifcmovbe, O_ST0, O_ST6, O_NONE, P_none }, - /* 17 */ { UD_Ifcmovbe, O_ST0, O_ST7, O_NONE, P_none }, - /* 18 */ { UD_Ifcmovu, O_ST0, O_ST0, O_NONE, P_none }, - /* 19 */ { UD_Ifcmovu, O_ST0, O_ST1, O_NONE, P_none }, - /* 1A */ { UD_Ifcmovu, O_ST0, O_ST2, O_NONE, P_none }, - /* 1B */ { UD_Ifcmovu, O_ST0, O_ST3, O_NONE, P_none }, - /* 1C */ { UD_Ifcmovu, O_ST0, O_ST4, O_NONE, P_none }, - /* 1D */ { UD_Ifcmovu, O_ST0, O_ST5, O_NONE, P_none }, - /* 1E */ { UD_Ifcmovu, O_ST0, O_ST6, O_NONE, P_none }, - /* 1F */ { UD_Ifcmovu, O_ST0, O_ST7, O_NONE, P_none }, - /* 20 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 21 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 22 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 23 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 24 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 29 */ { UD_Ifucompp, O_NONE, O_NONE, O_NONE, P_none }, - /* 2A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 30 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 31 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 32 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 33 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 34 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 35 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 36 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 37 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 38 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_db__mod[2] = { - /* 00 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DB__MOD__OP_00__REG }, - /* 01 */ { UD_Igrp_x87, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DB__MOD__OP_01__X87 }, -}; - -static struct ud_itab_entry itab__1byte__op_db__mod__op_00__reg[8] = { - /* 00 */ { UD_Ifild, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ifisttp, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ifist, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ifistp, O_Md, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Ifld, O_Mt, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Ifstp, O_Mt, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_db__mod__op_01__x87[64] = { - /* 00 */ { UD_Ifcmovnb, O_ST0, O_ST0, O_NONE, P_none }, - /* 01 */ { UD_Ifcmovnb, O_ST0, O_ST1, O_NONE, P_none }, - /* 02 */ { UD_Ifcmovnb, O_ST0, O_ST2, O_NONE, P_none }, - /* 03 */ { UD_Ifcmovnb, O_ST0, O_ST3, O_NONE, P_none }, - /* 04 */ { UD_Ifcmovnb, O_ST0, O_ST4, O_NONE, P_none }, - /* 05 */ { UD_Ifcmovnb, O_ST0, O_ST5, O_NONE, P_none }, - /* 06 */ { UD_Ifcmovnb, O_ST0, O_ST6, O_NONE, P_none }, - /* 07 */ { UD_Ifcmovnb, O_ST0, O_ST7, O_NONE, P_none }, - /* 08 */ { UD_Ifcmovne, O_ST0, O_ST0, O_NONE, P_none }, - /* 09 */ { UD_Ifcmovne, O_ST0, O_ST1, O_NONE, P_none }, - /* 0A */ { UD_Ifcmovne, O_ST0, O_ST2, O_NONE, P_none }, - /* 0B */ { UD_Ifcmovne, O_ST0, O_ST3, O_NONE, P_none }, - /* 0C */ { UD_Ifcmovne, O_ST0, O_ST4, O_NONE, P_none }, - /* 0D */ { UD_Ifcmovne, O_ST0, O_ST5, O_NONE, P_none }, - /* 0E */ { UD_Ifcmovne, O_ST0, O_ST6, O_NONE, P_none }, - /* 0F */ { UD_Ifcmovne, O_ST0, O_ST7, O_NONE, P_none }, - /* 10 */ { UD_Ifcmovnbe, O_ST0, O_ST0, O_NONE, P_none }, - /* 11 */ { UD_Ifcmovnbe, O_ST0, O_ST1, O_NONE, P_none }, - /* 12 */ { UD_Ifcmovnbe, O_ST0, O_ST2, O_NONE, P_none }, - /* 13 */ { UD_Ifcmovnbe, O_ST0, O_ST3, O_NONE, P_none }, - /* 14 */ { UD_Ifcmovnbe, O_ST0, O_ST4, O_NONE, P_none }, - /* 15 */ { UD_Ifcmovnbe, O_ST0, O_ST5, O_NONE, P_none }, - /* 16 */ { UD_Ifcmovnbe, O_ST0, O_ST6, O_NONE, P_none }, - /* 17 */ { UD_Ifcmovnbe, O_ST0, O_ST7, O_NONE, P_none }, - /* 18 */ { UD_Ifcmovnu, O_ST0, O_ST0, O_NONE, P_none }, - /* 19 */ { UD_Ifcmovnu, O_ST0, O_ST1, O_NONE, P_none }, - /* 1A */ { UD_Ifcmovnu, O_ST0, O_ST2, O_NONE, P_none }, - /* 1B */ { UD_Ifcmovnu, O_ST0, O_ST3, O_NONE, P_none }, - /* 1C */ { UD_Ifcmovnu, O_ST0, O_ST4, O_NONE, P_none }, - /* 1D */ { UD_Ifcmovnu, O_ST0, O_ST5, O_NONE, P_none }, - /* 1E */ { UD_Ifcmovnu, O_ST0, O_ST6, O_NONE, P_none }, - /* 1F */ { UD_Ifcmovnu, O_ST0, O_ST7, O_NONE, P_none }, - /* 20 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 21 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 22 */ { UD_Ifclex, O_NONE, O_NONE, O_NONE, P_none }, - /* 23 */ { UD_Ifninit, O_NONE, O_NONE, O_NONE, P_none }, - /* 24 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Ifucomi, O_ST0, O_ST0, O_NONE, P_none }, - /* 29 */ { UD_Ifucomi, O_ST0, O_ST1, O_NONE, P_none }, - /* 2A */ { UD_Ifucomi, O_ST0, O_ST2, O_NONE, P_none }, - /* 2B */ { UD_Ifucomi, O_ST0, O_ST3, O_NONE, P_none }, - /* 2C */ { UD_Ifucomi, O_ST0, O_ST4, O_NONE, P_none }, - /* 2D */ { UD_Ifucomi, O_ST0, O_ST5, O_NONE, P_none }, - /* 2E */ { UD_Ifucomi, O_ST0, O_ST6, O_NONE, P_none }, - /* 2F */ { UD_Ifucomi, O_ST0, O_ST7, O_NONE, P_none }, - /* 30 */ { UD_Ifcomi, O_ST0, O_ST0, O_NONE, P_none }, - /* 31 */ { UD_Ifcomi, O_ST0, O_ST1, O_NONE, P_none }, - /* 32 */ { UD_Ifcomi, O_ST0, O_ST2, O_NONE, P_none }, - /* 33 */ { UD_Ifcomi, O_ST0, O_ST3, O_NONE, P_none }, - /* 34 */ { UD_Ifcomi, O_ST0, O_ST4, O_NONE, P_none }, - /* 35 */ { UD_Ifcomi, O_ST0, O_ST5, O_NONE, P_none }, - /* 36 */ { UD_Ifcomi, O_ST0, O_ST6, O_NONE, P_none }, - /* 37 */ { UD_Ifcomi, O_ST0, O_ST7, O_NONE, P_none }, - /* 38 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_dc__mod[2] = { - /* 00 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DC__MOD__OP_00__REG }, - /* 01 */ { UD_Igrp_x87, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DC__MOD__OP_01__X87 }, -}; - -static struct ud_itab_entry itab__1byte__op_dc__mod__op_00__reg[8] = { - /* 00 */ { UD_Ifadd, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ifmul, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ifcom, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ifcomp, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ifsub, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ifsubr, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ifdiv, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Ifdivr, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_dc__mod__op_01__x87[64] = { - /* 00 */ { UD_Ifadd, O_ST0, O_ST0, O_NONE, P_none }, - /* 01 */ { UD_Ifadd, O_ST1, O_ST0, O_NONE, P_none }, - /* 02 */ { UD_Ifadd, O_ST2, O_ST0, O_NONE, P_none }, - /* 03 */ { UD_Ifadd, O_ST3, O_ST0, O_NONE, P_none }, - /* 04 */ { UD_Ifadd, O_ST4, O_ST0, O_NONE, P_none }, - /* 05 */ { UD_Ifadd, O_ST5, O_ST0, O_NONE, P_none }, - /* 06 */ { UD_Ifadd, O_ST6, O_ST0, O_NONE, P_none }, - /* 07 */ { UD_Ifadd, O_ST7, O_ST0, O_NONE, P_none }, - /* 08 */ { UD_Ifmul, O_ST0, O_ST0, O_NONE, P_none }, - /* 09 */ { UD_Ifmul, O_ST1, O_ST0, O_NONE, P_none }, - /* 0A */ { UD_Ifmul, O_ST2, O_ST0, O_NONE, P_none }, - /* 0B */ { UD_Ifmul, O_ST3, O_ST0, O_NONE, P_none }, - /* 0C */ { UD_Ifmul, O_ST4, O_ST0, O_NONE, P_none }, - /* 0D */ { UD_Ifmul, O_ST5, O_ST0, O_NONE, P_none }, - /* 0E */ { UD_Ifmul, O_ST6, O_ST0, O_NONE, P_none }, - /* 0F */ { UD_Ifmul, O_ST7, O_ST0, O_NONE, P_none }, - /* 10 */ { UD_Ifcom2, O_ST0, O_NONE, O_NONE, P_none }, - /* 11 */ { UD_Ifcom2, O_ST1, O_NONE, O_NONE, P_none }, - /* 12 */ { UD_Ifcom2, O_ST2, O_NONE, O_NONE, P_none }, - /* 13 */ { UD_Ifcom2, O_ST3, O_NONE, O_NONE, P_none }, - /* 14 */ { UD_Ifcom2, O_ST4, O_NONE, O_NONE, P_none }, - /* 15 */ { UD_Ifcom2, O_ST5, O_NONE, O_NONE, P_none }, - /* 16 */ { UD_Ifcom2, O_ST6, O_NONE, O_NONE, P_none }, - /* 17 */ { UD_Ifcom2, O_ST7, O_NONE, O_NONE, P_none }, - /* 18 */ { UD_Ifcomp3, O_ST0, O_NONE, O_NONE, P_none }, - /* 19 */ { UD_Ifcomp3, O_ST1, O_NONE, O_NONE, P_none }, - /* 1A */ { UD_Ifcomp3, O_ST2, O_NONE, O_NONE, P_none }, - /* 1B */ { UD_Ifcomp3, O_ST3, O_NONE, O_NONE, P_none }, - /* 1C */ { UD_Ifcomp3, O_ST4, O_NONE, O_NONE, P_none }, - /* 1D */ { UD_Ifcomp3, O_ST5, O_NONE, O_NONE, P_none }, - /* 1E */ { UD_Ifcomp3, O_ST6, O_NONE, O_NONE, P_none }, - /* 1F */ { UD_Ifcomp3, O_ST7, O_NONE, O_NONE, P_none }, - /* 20 */ { UD_Ifsubr, O_ST0, O_ST0, O_NONE, P_none }, - /* 21 */ { UD_Ifsubr, O_ST1, O_ST0, O_NONE, P_none }, - /* 22 */ { UD_Ifsubr, O_ST2, O_ST0, O_NONE, P_none }, - /* 23 */ { UD_Ifsubr, O_ST3, O_ST0, O_NONE, P_none }, - /* 24 */ { UD_Ifsubr, O_ST4, O_ST0, O_NONE, P_none }, - /* 25 */ { UD_Ifsubr, O_ST5, O_ST0, O_NONE, P_none }, - /* 26 */ { UD_Ifsubr, O_ST6, O_ST0, O_NONE, P_none }, - /* 27 */ { UD_Ifsubr, O_ST7, O_ST0, O_NONE, P_none }, - /* 28 */ { UD_Ifsub, O_ST0, O_ST0, O_NONE, P_none }, - /* 29 */ { UD_Ifsub, O_ST1, O_ST0, O_NONE, P_none }, - /* 2A */ { UD_Ifsub, O_ST2, O_ST0, O_NONE, P_none }, - /* 2B */ { UD_Ifsub, O_ST3, O_ST0, O_NONE, P_none }, - /* 2C */ { UD_Ifsub, O_ST4, O_ST0, O_NONE, P_none }, - /* 2D */ { UD_Ifsub, O_ST5, O_ST0, O_NONE, P_none }, - /* 2E */ { UD_Ifsub, O_ST6, O_ST0, O_NONE, P_none }, - /* 2F */ { UD_Ifsub, O_ST7, O_ST0, O_NONE, P_none }, - /* 30 */ { UD_Ifdivr, O_ST0, O_ST0, O_NONE, P_none }, - /* 31 */ { UD_Ifdivr, O_ST1, O_ST0, O_NONE, P_none }, - /* 32 */ { UD_Ifdivr, O_ST2, O_ST0, O_NONE, P_none }, - /* 33 */ { UD_Ifdivr, O_ST3, O_ST0, O_NONE, P_none }, - /* 34 */ { UD_Ifdivr, O_ST4, O_ST0, O_NONE, P_none }, - /* 35 */ { UD_Ifdivr, O_ST5, O_ST0, O_NONE, P_none }, - /* 36 */ { UD_Ifdivr, O_ST6, O_ST0, O_NONE, P_none }, - /* 37 */ { UD_Ifdivr, O_ST7, O_ST0, O_NONE, P_none }, - /* 38 */ { UD_Ifdiv, O_ST0, O_ST0, O_NONE, P_none }, - /* 39 */ { UD_Ifdiv, O_ST1, O_ST0, O_NONE, P_none }, - /* 3A */ { UD_Ifdiv, O_ST2, O_ST0, O_NONE, P_none }, - /* 3B */ { UD_Ifdiv, O_ST3, O_ST0, O_NONE, P_none }, - /* 3C */ { UD_Ifdiv, O_ST4, O_ST0, O_NONE, P_none }, - /* 3D */ { UD_Ifdiv, O_ST5, O_ST0, O_NONE, P_none }, - /* 3E */ { UD_Ifdiv, O_ST6, O_ST0, O_NONE, P_none }, - /* 3F */ { UD_Ifdiv, O_ST7, O_ST0, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_dd__mod[2] = { - /* 00 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DD__MOD__OP_00__REG }, - /* 01 */ { UD_Igrp_x87, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DD__MOD__OP_01__X87 }, -}; - -static struct ud_itab_entry itab__1byte__op_dd__mod__op_00__reg[8] = { - /* 00 */ { UD_Ifld, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ifisttp, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ifst, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ifstp, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ifrstor, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Ifnsave, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Ifnstsw, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_dd__mod__op_01__x87[64] = { - /* 00 */ { UD_Iffree, O_ST0, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iffree, O_ST1, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iffree, O_ST2, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iffree, O_ST3, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iffree, O_ST4, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iffree, O_ST5, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iffree, O_ST6, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iffree, O_ST7, O_NONE, O_NONE, P_none }, - /* 08 */ { UD_Ifxch4, O_ST0, O_NONE, O_NONE, P_none }, - /* 09 */ { UD_Ifxch4, O_ST1, O_NONE, O_NONE, P_none }, - /* 0A */ { UD_Ifxch4, O_ST2, O_NONE, O_NONE, P_none }, - /* 0B */ { UD_Ifxch4, O_ST3, O_NONE, O_NONE, P_none }, - /* 0C */ { UD_Ifxch4, O_ST4, O_NONE, O_NONE, P_none }, - /* 0D */ { UD_Ifxch4, O_ST5, O_NONE, O_NONE, P_none }, - /* 0E */ { UD_Ifxch4, O_ST6, O_NONE, O_NONE, P_none }, - /* 0F */ { UD_Ifxch4, O_ST7, O_NONE, O_NONE, P_none }, - /* 10 */ { UD_Ifst, O_ST0, O_NONE, O_NONE, P_none }, - /* 11 */ { UD_Ifst, O_ST1, O_NONE, O_NONE, P_none }, - /* 12 */ { UD_Ifst, O_ST2, O_NONE, O_NONE, P_none }, - /* 13 */ { UD_Ifst, O_ST3, O_NONE, O_NONE, P_none }, - /* 14 */ { UD_Ifst, O_ST4, O_NONE, O_NONE, P_none }, - /* 15 */ { UD_Ifst, O_ST5, O_NONE, O_NONE, P_none }, - /* 16 */ { UD_Ifst, O_ST6, O_NONE, O_NONE, P_none }, - /* 17 */ { UD_Ifst, O_ST7, O_NONE, O_NONE, P_none }, - /* 18 */ { UD_Ifstp, O_ST0, O_NONE, O_NONE, P_none }, - /* 19 */ { UD_Ifstp, O_ST1, O_NONE, O_NONE, P_none }, - /* 1A */ { UD_Ifstp, O_ST2, O_NONE, O_NONE, P_none }, - /* 1B */ { UD_Ifstp, O_ST3, O_NONE, O_NONE, P_none }, - /* 1C */ { UD_Ifstp, O_ST4, O_NONE, O_NONE, P_none }, - /* 1D */ { UD_Ifstp, O_ST5, O_NONE, O_NONE, P_none }, - /* 1E */ { UD_Ifstp, O_ST6, O_NONE, O_NONE, P_none }, - /* 1F */ { UD_Ifstp, O_ST7, O_NONE, O_NONE, P_none }, - /* 20 */ { UD_Ifucom, O_ST0, O_NONE, O_NONE, P_none }, - /* 21 */ { UD_Ifucom, O_ST1, O_NONE, O_NONE, P_none }, - /* 22 */ { UD_Ifucom, O_ST2, O_NONE, O_NONE, P_none }, - /* 23 */ { UD_Ifucom, O_ST3, O_NONE, O_NONE, P_none }, - /* 24 */ { UD_Ifucom, O_ST4, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Ifucom, O_ST5, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Ifucom, O_ST6, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Ifucom, O_ST7, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Ifucomp, O_ST0, O_NONE, O_NONE, P_none }, - /* 29 */ { UD_Ifucomp, O_ST1, O_NONE, O_NONE, P_none }, - /* 2A */ { UD_Ifucomp, O_ST2, O_NONE, O_NONE, P_none }, - /* 2B */ { UD_Ifucomp, O_ST3, O_NONE, O_NONE, P_none }, - /* 2C */ { UD_Ifucomp, O_ST4, O_NONE, O_NONE, P_none }, - /* 2D */ { UD_Ifucomp, O_ST5, O_NONE, O_NONE, P_none }, - /* 2E */ { UD_Ifucomp, O_ST6, O_NONE, O_NONE, P_none }, - /* 2F */ { UD_Ifucomp, O_ST7, O_NONE, O_NONE, P_none }, - /* 30 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 31 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 32 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 33 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 34 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 35 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 36 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 37 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 38 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_de__mod[2] = { - /* 00 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DE__MOD__OP_00__REG }, - /* 01 */ { UD_Igrp_x87, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DE__MOD__OP_01__X87 }, -}; - -static struct ud_itab_entry itab__1byte__op_de__mod__op_00__reg[8] = { - /* 00 */ { UD_Ifiadd, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ifimul, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ificom, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ificomp, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ifisub, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ifisubr, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ifidiv, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Ifidivr, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_de__mod__op_01__x87[64] = { - /* 00 */ { UD_Ifaddp, O_ST0, O_ST0, O_NONE, P_none }, - /* 01 */ { UD_Ifaddp, O_ST1, O_ST0, O_NONE, P_none }, - /* 02 */ { UD_Ifaddp, O_ST2, O_ST0, O_NONE, P_none }, - /* 03 */ { UD_Ifaddp, O_ST3, O_ST0, O_NONE, P_none }, - /* 04 */ { UD_Ifaddp, O_ST4, O_ST0, O_NONE, P_none }, - /* 05 */ { UD_Ifaddp, O_ST5, O_ST0, O_NONE, P_none }, - /* 06 */ { UD_Ifaddp, O_ST6, O_ST0, O_NONE, P_none }, - /* 07 */ { UD_Ifaddp, O_ST7, O_ST0, O_NONE, P_none }, - /* 08 */ { UD_Ifmulp, O_ST0, O_ST0, O_NONE, P_none }, - /* 09 */ { UD_Ifmulp, O_ST1, O_ST0, O_NONE, P_none }, - /* 0A */ { UD_Ifmulp, O_ST2, O_ST0, O_NONE, P_none }, - /* 0B */ { UD_Ifmulp, O_ST3, O_ST0, O_NONE, P_none }, - /* 0C */ { UD_Ifmulp, O_ST4, O_ST0, O_NONE, P_none }, - /* 0D */ { UD_Ifmulp, O_ST5, O_ST0, O_NONE, P_none }, - /* 0E */ { UD_Ifmulp, O_ST6, O_ST0, O_NONE, P_none }, - /* 0F */ { UD_Ifmulp, O_ST7, O_ST0, O_NONE, P_none }, - /* 10 */ { UD_Ifcomp5, O_ST0, O_NONE, O_NONE, P_none }, - /* 11 */ { UD_Ifcomp5, O_ST1, O_NONE, O_NONE, P_none }, - /* 12 */ { UD_Ifcomp5, O_ST2, O_NONE, O_NONE, P_none }, - /* 13 */ { UD_Ifcomp5, O_ST3, O_NONE, O_NONE, P_none }, - /* 14 */ { UD_Ifcomp5, O_ST4, O_NONE, O_NONE, P_none }, - /* 15 */ { UD_Ifcomp5, O_ST5, O_NONE, O_NONE, P_none }, - /* 16 */ { UD_Ifcomp5, O_ST6, O_NONE, O_NONE, P_none }, - /* 17 */ { UD_Ifcomp5, O_ST7, O_NONE, O_NONE, P_none }, - /* 18 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 19 */ { UD_Ifcompp, O_NONE, O_NONE, O_NONE, P_none }, - /* 1A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 20 */ { UD_Ifsubrp, O_ST0, O_ST0, O_NONE, P_none }, - /* 21 */ { UD_Ifsubrp, O_ST1, O_ST0, O_NONE, P_none }, - /* 22 */ { UD_Ifsubrp, O_ST2, O_ST0, O_NONE, P_none }, - /* 23 */ { UD_Ifsubrp, O_ST3, O_ST0, O_NONE, P_none }, - /* 24 */ { UD_Ifsubrp, O_ST4, O_ST0, O_NONE, P_none }, - /* 25 */ { UD_Ifsubrp, O_ST5, O_ST0, O_NONE, P_none }, - /* 26 */ { UD_Ifsubrp, O_ST6, O_ST0, O_NONE, P_none }, - /* 27 */ { UD_Ifsubrp, O_ST7, O_ST0, O_NONE, P_none }, - /* 28 */ { UD_Ifsubp, O_ST0, O_ST0, O_NONE, P_none }, - /* 29 */ { UD_Ifsubp, O_ST1, O_ST0, O_NONE, P_none }, - /* 2A */ { UD_Ifsubp, O_ST2, O_ST0, O_NONE, P_none }, - /* 2B */ { UD_Ifsubp, O_ST3, O_ST0, O_NONE, P_none }, - /* 2C */ { UD_Ifsubp, O_ST4, O_ST0, O_NONE, P_none }, - /* 2D */ { UD_Ifsubp, O_ST5, O_ST0, O_NONE, P_none }, - /* 2E */ { UD_Ifsubp, O_ST6, O_ST0, O_NONE, P_none }, - /* 2F */ { UD_Ifsubp, O_ST7, O_ST0, O_NONE, P_none }, - /* 30 */ { UD_Ifdivrp, O_ST0, O_ST0, O_NONE, P_none }, - /* 31 */ { UD_Ifdivrp, O_ST1, O_ST0, O_NONE, P_none }, - /* 32 */ { UD_Ifdivrp, O_ST2, O_ST0, O_NONE, P_none }, - /* 33 */ { UD_Ifdivrp, O_ST3, O_ST0, O_NONE, P_none }, - /* 34 */ { UD_Ifdivrp, O_ST4, O_ST0, O_NONE, P_none }, - /* 35 */ { UD_Ifdivrp, O_ST5, O_ST0, O_NONE, P_none }, - /* 36 */ { UD_Ifdivrp, O_ST6, O_ST0, O_NONE, P_none }, - /* 37 */ { UD_Ifdivrp, O_ST7, O_ST0, O_NONE, P_none }, - /* 38 */ { UD_Ifdivp, O_ST0, O_ST0, O_NONE, P_none }, - /* 39 */ { UD_Ifdivp, O_ST1, O_ST0, O_NONE, P_none }, - /* 3A */ { UD_Ifdivp, O_ST2, O_ST0, O_NONE, P_none }, - /* 3B */ { UD_Ifdivp, O_ST3, O_ST0, O_NONE, P_none }, - /* 3C */ { UD_Ifdivp, O_ST4, O_ST0, O_NONE, P_none }, - /* 3D */ { UD_Ifdivp, O_ST5, O_ST0, O_NONE, P_none }, - /* 3E */ { UD_Ifdivp, O_ST6, O_ST0, O_NONE, P_none }, - /* 3F */ { UD_Ifdivp, O_ST7, O_ST0, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_df__mod[2] = { - /* 00 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DF__MOD__OP_00__REG }, - /* 01 */ { UD_Igrp_x87, O_NONE, O_NONE, O_NONE, ITAB__1BYTE__OP_DF__MOD__OP_01__X87 }, -}; - -static struct ud_itab_entry itab__1byte__op_df__mod__op_00__reg[8] = { - /* 00 */ { UD_Ifild, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Ifisttp, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Ifist, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ifistp, O_Mw, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ifbld, O_Mt, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ifild, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ifbstp, O_Mt, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Ifistp, O_Mq, O_NONE, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_df__mod__op_01__x87[64] = { - /* 00 */ { UD_Iffreep, O_ST0, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iffreep, O_ST1, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iffreep, O_ST2, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iffreep, O_ST3, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iffreep, O_ST4, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iffreep, O_ST5, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iffreep, O_ST6, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iffreep, O_ST7, O_NONE, O_NONE, P_none }, - /* 08 */ { UD_Ifxch7, O_ST0, O_NONE, O_NONE, P_none }, - /* 09 */ { UD_Ifxch7, O_ST1, O_NONE, O_NONE, P_none }, - /* 0A */ { UD_Ifxch7, O_ST2, O_NONE, O_NONE, P_none }, - /* 0B */ { UD_Ifxch7, O_ST3, O_NONE, O_NONE, P_none }, - /* 0C */ { UD_Ifxch7, O_ST4, O_NONE, O_NONE, P_none }, - /* 0D */ { UD_Ifxch7, O_ST5, O_NONE, O_NONE, P_none }, - /* 0E */ { UD_Ifxch7, O_ST6, O_NONE, O_NONE, P_none }, - /* 0F */ { UD_Ifxch7, O_ST7, O_NONE, O_NONE, P_none }, - /* 10 */ { UD_Ifstp8, O_ST0, O_NONE, O_NONE, P_none }, - /* 11 */ { UD_Ifstp8, O_ST1, O_NONE, O_NONE, P_none }, - /* 12 */ { UD_Ifstp8, O_ST2, O_NONE, O_NONE, P_none }, - /* 13 */ { UD_Ifstp8, O_ST3, O_NONE, O_NONE, P_none }, - /* 14 */ { UD_Ifstp8, O_ST4, O_NONE, O_NONE, P_none }, - /* 15 */ { UD_Ifstp8, O_ST5, O_NONE, O_NONE, P_none }, - /* 16 */ { UD_Ifstp8, O_ST6, O_NONE, O_NONE, P_none }, - /* 17 */ { UD_Ifstp8, O_ST7, O_NONE, O_NONE, P_none }, - /* 18 */ { UD_Ifstp9, O_ST0, O_NONE, O_NONE, P_none }, - /* 19 */ { UD_Ifstp9, O_ST1, O_NONE, O_NONE, P_none }, - /* 1A */ { UD_Ifstp9, O_ST2, O_NONE, O_NONE, P_none }, - /* 1B */ { UD_Ifstp9, O_ST3, O_NONE, O_NONE, P_none }, - /* 1C */ { UD_Ifstp9, O_ST4, O_NONE, O_NONE, P_none }, - /* 1D */ { UD_Ifstp9, O_ST5, O_NONE, O_NONE, P_none }, - /* 1E */ { UD_Ifstp9, O_ST6, O_NONE, O_NONE, P_none }, - /* 1F */ { UD_Ifstp9, O_ST7, O_NONE, O_NONE, P_none }, - /* 20 */ { UD_Ifnstsw, O_AX, O_NONE, O_NONE, P_none }, - /* 21 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 22 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 23 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 24 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Ifucomip, O_ST0, O_ST0, O_NONE, P_none }, - /* 29 */ { UD_Ifucomip, O_ST0, O_ST1, O_NONE, P_none }, - /* 2A */ { UD_Ifucomip, O_ST0, O_ST2, O_NONE, P_none }, - /* 2B */ { UD_Ifucomip, O_ST0, O_ST3, O_NONE, P_none }, - /* 2C */ { UD_Ifucomip, O_ST0, O_ST4, O_NONE, P_none }, - /* 2D */ { UD_Ifucomip, O_ST0, O_ST5, O_NONE, P_none }, - /* 2E */ { UD_Ifucomip, O_ST0, O_ST6, O_NONE, P_none }, - /* 2F */ { UD_Ifucomip, O_ST0, O_ST7, O_NONE, P_none }, - /* 30 */ { UD_Ifcomip, O_ST0, O_ST0, O_NONE, P_none }, - /* 31 */ { UD_Ifcomip, O_ST0, O_ST1, O_NONE, P_none }, - /* 32 */ { UD_Ifcomip, O_ST0, O_ST2, O_NONE, P_none }, - /* 33 */ { UD_Ifcomip, O_ST0, O_ST3, O_NONE, P_none }, - /* 34 */ { UD_Ifcomip, O_ST0, O_ST4, O_NONE, P_none }, - /* 35 */ { UD_Ifcomip, O_ST0, O_ST5, O_NONE, P_none }, - /* 36 */ { UD_Ifcomip, O_ST0, O_ST6, O_NONE, P_none }, - /* 37 */ { UD_Ifcomip, O_ST0, O_ST7, O_NONE, P_none }, - /* 38 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_e3__asize[3] = { - /* 00 */ { UD_Ijcxz, O_Jb, O_NONE, O_NONE, P_aso }, - /* 01 */ { UD_Ijecxz, O_Jb, O_NONE, O_NONE, P_aso }, - /* 02 */ { UD_Ijrcxz, O_Jb, O_NONE, O_NONE, P_aso }, -}; - -static struct ud_itab_entry itab__1byte__op_f6__reg[8] = { - /* 00 */ { UD_Itest, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Itest, O_Eb, O_Ib, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Inot, O_Eb, O_NONE, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ineg, O_Eb, O_NONE, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Imul, O_Eb, O_NONE, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Iimul, O_Eb, O_NONE, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Idiv, O_Eb, O_NONE, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Iidiv, O_Eb, O_NONE, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_f7__reg[8] = { - /* 00 */ { UD_Itest, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Itest, O_Ev, O_Iz, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Inot, O_Ev, O_NONE, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Ineg, O_Ev, O_NONE, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Imul, O_Ev, O_NONE, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Iimul, O_Ev, O_NONE, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Idiv, O_Ev, O_NONE, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Iidiv, O_Ev, O_NONE, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__1byte__op_fe__reg[8] = { - /* 00 */ { UD_Iinc, O_Eb, O_NONE, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Idec, O_Eb, O_NONE, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__1byte__op_ff__reg[8] = { - /* 00 */ { UD_Iinc, O_Ev, O_NONE, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 01 */ { UD_Idec, O_Ev, O_NONE, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 02 */ { UD_Icall, O_Ev, O_NONE, O_NONE, P_c1|P_def64|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 03 */ { UD_Icall, O_Ep, O_NONE, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 04 */ { UD_Ijmp, O_Ev, O_NONE, O_NONE, P_c1|P_def64|P_depM|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 05 */ { UD_Ijmp, O_Ep, O_NONE, O_NONE, P_c1|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 06 */ { UD_Ipush, O_Ev, O_NONE, O_NONE, P_c1|P_def64|P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__3dnow[256] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 08 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 09 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 10 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 11 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 12 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 13 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 14 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 15 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 16 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 17 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 18 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 19 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 20 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 21 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 22 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 23 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 24 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 29 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 30 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 31 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 32 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 33 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 34 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 35 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 36 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 37 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 38 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 40 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 41 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 42 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 43 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 44 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 45 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 46 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 47 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 48 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 49 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 50 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 51 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 52 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 53 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 54 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 55 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 56 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 57 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 58 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 59 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 5A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 5B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 5C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 5D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 5E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 5F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 60 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 61 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 62 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 63 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 64 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 65 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 66 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 67 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 68 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 69 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 70 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 71 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 72 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 73 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 74 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 75 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 76 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 77 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 78 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 79 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 80 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 81 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 82 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 83 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 84 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 85 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 86 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 87 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 88 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 89 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 90 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 91 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 92 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 93 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 94 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 95 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 96 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 97 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 98 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 99 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* ED */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__pfx_sse66__0f[256] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 08 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 09 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 10 */ { UD_Imovupd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 11 */ { UD_Imovupd, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 12 */ { UD_Imovlpd, O_V, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 13 */ { UD_Imovlpd, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 14 */ { UD_Iunpcklpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 15 */ { UD_Iunpckhpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 16 */ { UD_Imovhpd, O_V, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 17 */ { UD_Imovhpd, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 18 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 19 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 20 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 21 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 22 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 23 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 24 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Imovapd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 29 */ { UD_Imovapd, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2A */ { UD_Icvtpi2pd, O_V, O_Q, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2B */ { UD_Imovntpd, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2C */ { UD_Icvttpd2pi, O_P, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2D */ { UD_Icvtpd2pi, O_P, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2E */ { UD_Iucomisd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 2F */ { UD_Icomisd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 30 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 31 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 32 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 33 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 34 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 35 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 36 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 37 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 38 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 40 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 41 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 42 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 43 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 44 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 45 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 46 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 47 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 48 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 49 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 50 */ { UD_Imovmskpd, O_Gd, O_VR, O_NONE, P_oso|P_rexr|P_rexb }, - /* 51 */ { UD_Isqrtpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 52 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 53 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 54 */ { UD_Iandpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 55 */ { UD_Iandnpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 56 */ { UD_Iorpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 57 */ { UD_Ixorpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 58 */ { UD_Iaddpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 59 */ { UD_Imulpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5A */ { UD_Icvtpd2ps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5B */ { UD_Icvtps2dq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5C */ { UD_Isubpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5D */ { UD_Iminpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5E */ { UD_Idivpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5F */ { UD_Imaxpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 60 */ { UD_Ipunpcklbw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 61 */ { UD_Ipunpcklwd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 62 */ { UD_Ipunpckldq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 63 */ { UD_Ipacksswb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 64 */ { UD_Ipcmpgtb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 65 */ { UD_Ipcmpgtw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 66 */ { UD_Ipcmpgtd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 67 */ { UD_Ipackuswb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 68 */ { UD_Ipunpckhbw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 69 */ { UD_Ipunpckhwd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 6A */ { UD_Ipunpckhdq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 6B */ { UD_Ipackssdw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 6C */ { UD_Ipunpcklqdq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 6D */ { UD_Ipunpckhqdq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 6E */ { UD_Imovd, O_V, O_Ex, O_NONE, P_c2|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 6F */ { UD_Imovqa, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 70 */ { UD_Ipshufd, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 71 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__PFX_SSE66__0F__OP_71__REG }, - /* 72 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__PFX_SSE66__0F__OP_72__REG }, - /* 73 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__PFX_SSE66__0F__OP_73__REG }, - /* 74 */ { UD_Ipcmpeqb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 75 */ { UD_Ipcmpeqw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 76 */ { UD_Ipcmpeqd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 77 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 78 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 79 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7C */ { UD_Ihaddpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 7D */ { UD_Ihsubpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 7E */ { UD_Imovd, O_Ex, O_V, O_NONE, P_c1|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 7F */ { UD_Imovdqa, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 80 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 81 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 82 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 83 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 84 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 85 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 86 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 87 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 88 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 89 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 90 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 91 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 92 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 93 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 94 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 95 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 96 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 97 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 98 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 99 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C0 */ { UD_Ixadd, O_Eb, O_Gb, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C1 */ { UD_Ixadd, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C2 */ { UD_Icmppd, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* C3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C4 */ { UD_Ipinsrw, O_V, O_Ew, O_Ib, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C5 */ { UD_Ipextrw, O_Gd, O_VR, O_Ib, P_aso|P_rexr|P_rexb }, - /* C6 */ { UD_Ishufpd, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* C7 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__PFX_SSE66__0F__OP_C7__REG }, - /* C8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D0 */ { UD_Iaddsubpd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D1 */ { UD_Ipsrlw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D2 */ { UD_Ipsrld, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D3 */ { UD_Ipsrlq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D4 */ { UD_Ipaddq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D5 */ { UD_Ipmullw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D6 */ { UD_Imovq, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D7 */ { UD_Ipmovmskb, O_Gd, O_VR, O_NONE, P_rexr|P_rexb }, - /* D8 */ { UD_Ipsubusb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D9 */ { UD_Ipsubusw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DA */ { UD_Ipminub, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DB */ { UD_Ipand, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DC */ { UD_Ipsubusb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DD */ { UD_Ipunpckhbw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DE */ { UD_Ipmaxub, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* DF */ { UD_Ipandn, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E0 */ { UD_Ipavgb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E1 */ { UD_Ipsraw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E2 */ { UD_Ipsrad, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E3 */ { UD_Ipavgw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E4 */ { UD_Ipmulhuw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E5 */ { UD_Ipmulhw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E6 */ { UD_Icvttpd2dq, O_V, O_W, O_NONE, P_none }, - /* E7 */ { UD_Imovntdq, O_M, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E8 */ { UD_Ipsubsb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E9 */ { UD_Ipsubsw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* EA */ { UD_Ipminsw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* EB */ { UD_Ipor, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* EC */ { UD_Ipaddsb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* ED */ { UD_Ipaddsw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* EE */ { UD_Ipmaxsw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* EF */ { UD_Ipxor, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F1 */ { UD_Ipsllw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F2 */ { UD_Ipslld, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F3 */ { UD_Ipsllq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F4 */ { UD_Ipmuludq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F5 */ { UD_Ipmaddwd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F6 */ { UD_Ipsadbw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F7 */ { UD_Imaskmovq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F8 */ { UD_Ipsubb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F9 */ { UD_Ipsubw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* FA */ { UD_Ipsubd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* FB */ { UD_Ipsubq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* FC */ { UD_Ipaddb, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* FD */ { UD_Ipaddw, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* FE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__pfx_sse66__0f__op_71__reg[8] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Ipsrlw, O_VR, O_Ib, O_NONE, P_rexb }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Ipsraw, O_VR, O_Ib, O_NONE, P_rexb }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Ipsllw, O_VR, O_Ib, O_NONE, P_rexb }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__pfx_sse66__0f__op_72__reg[8] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Ipsrld, O_VR, O_Ib, O_NONE, P_rexb }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Ipsrad, O_VR, O_Ib, O_NONE, P_rexb }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Ipslld, O_VR, O_Ib, O_NONE, P_rexb }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__pfx_sse66__0f__op_73__reg[8] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Ipsrlq, O_VR, O_Ib, O_NONE, P_rexb }, - /* 03 */ { UD_Ipsrldq, O_VR, O_Ib, O_NONE, P_rexb }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Ipsllq, O_VR, O_Ib, O_NONE, P_rexb }, - /* 07 */ { UD_Ipslldq, O_VR, O_Ib, O_NONE, P_rexb }, -}; - -static struct ud_itab_entry itab__pfx_sse66__0f__op_c7__reg[8] = { - /* 00 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__PFX_SSE66__0F__OP_C7__REG__OP_00__VENDOR }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__pfx_sse66__0f__op_c7__reg__op_00__vendor[2] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Ivmclear, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, -}; - -static struct ud_itab_entry itab__pfx_ssef2__0f[256] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 08 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 09 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 10 */ { UD_Imovsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 11 */ { UD_Imovsd, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 12 */ { UD_Imovddup, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 13 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 14 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 15 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 16 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 17 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 18 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 19 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 20 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 21 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 22 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 23 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 24 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 29 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2A */ { UD_Icvtsi2sd, O_V, O_Ex, O_NONE, P_c2|P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 2B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2C */ { UD_Icvttsd2si, O_Gvw, O_W, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 2D */ { UD_Icvtsd2si, O_Gvw, O_W, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 2E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 30 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 31 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 32 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 33 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 34 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 35 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 36 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 37 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 38 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 40 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 41 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 42 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 43 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 44 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 45 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 46 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 47 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 48 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 49 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 50 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 51 */ { UD_Isqrtsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 52 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 53 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 54 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 55 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 56 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 57 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 58 */ { UD_Iaddsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 59 */ { UD_Imulsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5A */ { UD_Icvtsd2ss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 5C */ { UD_Isubsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5D */ { UD_Iminsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5E */ { UD_Idivsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5F */ { UD_Imaxsd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 60 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 61 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 62 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 63 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 64 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 65 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 66 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 67 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 68 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 69 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 70 */ { UD_Ipshuflw, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 71 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 72 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 73 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 74 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 75 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 76 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 77 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 78 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 79 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7C */ { UD_Ihaddps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 7D */ { UD_Ihsubps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 7E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 80 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 81 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 82 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 83 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 84 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 85 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 86 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 87 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 88 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 89 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 90 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 91 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 92 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 93 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 94 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 95 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 96 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 97 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 98 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 99 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C0 */ { UD_Ixadd, O_Eb, O_Gb, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C1 */ { UD_Ixadd, O_Ev, O_Gv, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, - /* C2 */ { UD_Icmpsd, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* C3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D0 */ { UD_Iaddsubps, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* D1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D6 */ { UD_Imovdq2q, O_P, O_VR, O_NONE, P_aso|P_rexb }, - /* D7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E6 */ { UD_Icvtpd2dq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* ED */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F0 */ { UD_Ilddqu, O_V, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* F1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__pfx_ssef3__0f[256] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 08 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 09 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 0F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 10 */ { UD_Imovss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 11 */ { UD_Imovss, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 12 */ { UD_Imovsldup, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 13 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 14 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 15 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 16 */ { UD_Imovshdup, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 17 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 18 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 19 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 1F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 20 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 21 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 22 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 23 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 24 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 25 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 26 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 27 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 28 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 29 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2A */ { UD_Icvtsi2ss, O_V, O_Ex, O_NONE, P_c2|P_aso|P_rexr|P_rexx|P_rexb }, - /* 2B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2C */ { UD_Icvttss2si, O_Gvw, O_W, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 2D */ { UD_Icvtss2si, O_Gvw, O_W, O_NONE, P_c1|P_aso|P_rexr|P_rexx|P_rexb }, - /* 2E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 2F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 30 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 31 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 32 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 33 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 34 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 35 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 36 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 37 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 38 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 39 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 3F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 40 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 41 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 42 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 43 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 44 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 45 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 46 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 47 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 48 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 49 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 4F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 50 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 51 */ { UD_Isqrtss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 52 */ { UD_Irsqrtss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 53 */ { UD_Ircpss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 54 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 55 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 56 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 57 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 58 */ { UD_Iaddss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 59 */ { UD_Imulss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5A */ { UD_Icvtss2sd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5B */ { UD_Icvttps2dq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5C */ { UD_Isubss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5D */ { UD_Iminss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5E */ { UD_Idivss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 5F */ { UD_Imaxss, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 60 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 61 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 62 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 63 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 64 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 65 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 66 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 67 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 68 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 69 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 6F */ { UD_Imovdqu, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 70 */ { UD_Ipshufhw, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 71 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 72 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 73 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 74 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 75 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 76 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 77 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 78 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 79 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 7E */ { UD_Imovq, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 7F */ { UD_Imovdqu, O_W, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 80 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 81 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 82 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 83 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 84 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 85 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 86 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 87 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 88 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 89 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 8F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 90 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 91 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 92 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 93 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 94 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 95 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 96 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 97 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 98 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 99 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9A */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9B */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9C */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9D */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9E */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 9F */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* A9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* AF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* B9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* BF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C0 */ { UD_Ixadd, O_Eb, O_Gb, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C1 */ { UD_Ixadd, O_Ev, O_Gv, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* C2 */ { UD_Icmpss, O_V, O_W, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* C3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C7 */ { UD_Igrp_reg, O_NONE, O_NONE, O_NONE, ITAB__PFX_SSEF3__0F__OP_C7__REG }, - /* C8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* C9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* CF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D6 */ { UD_Imovq2dq, O_V, O_PR, O_NONE, P_aso }, - /* D7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* D9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* DF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E6 */ { UD_Icvtdq2pd, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* E7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* E9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* ED */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* EF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F0 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F1 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F2 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F3 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F4 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F5 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F6 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F7 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F8 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* F9 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FA */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FB */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FC */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FD */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FE */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* FF */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, -}; - -static struct ud_itab_entry itab__pfx_ssef3__0f__op_c7__reg[8] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 02 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 03 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 04 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 05 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 06 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 07 */ { UD_Igrp_vendor, O_NONE, O_NONE, O_NONE, ITAB__PFX_SSEF3__0F__OP_C7__REG__OP_07__VENDOR }, -}; - -static struct ud_itab_entry itab__pfx_ssef3__0f__op_c7__reg__op_07__vendor[2] = { - /* 00 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, P_none }, - /* 01 */ { UD_Ivmxon, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, -}; - -/* the order of this table matches enum ud_itab_index */ -struct ud_itab_entry * ud_itab_list[] = { - itab__0f, - itab__0f__op_00__reg, - itab__0f__op_01__reg, - itab__0f__op_01__reg__op_00__mod, - itab__0f__op_01__reg__op_00__mod__op_01__rm, - itab__0f__op_01__reg__op_00__mod__op_01__rm__op_01__vendor, - itab__0f__op_01__reg__op_00__mod__op_01__rm__op_03__vendor, - itab__0f__op_01__reg__op_00__mod__op_01__rm__op_04__vendor, - itab__0f__op_01__reg__op_01__mod, - itab__0f__op_01__reg__op_01__mod__op_01__rm, - itab__0f__op_01__reg__op_02__mod, - itab__0f__op_01__reg__op_03__mod, - itab__0f__op_01__reg__op_03__mod__op_01__rm, - itab__0f__op_01__reg__op_03__mod__op_01__rm__op_00__vendor, - itab__0f__op_01__reg__op_03__mod__op_01__rm__op_01__vendor, - itab__0f__op_01__reg__op_03__mod__op_01__rm__op_02__vendor, - itab__0f__op_01__reg__op_03__mod__op_01__rm__op_03__vendor, - itab__0f__op_01__reg__op_03__mod__op_01__rm__op_04__vendor, - itab__0f__op_01__reg__op_03__mod__op_01__rm__op_05__vendor, - itab__0f__op_01__reg__op_03__mod__op_01__rm__op_06__vendor, - itab__0f__op_01__reg__op_03__mod__op_01__rm__op_07__vendor, - itab__0f__op_01__reg__op_04__mod, - itab__0f__op_01__reg__op_06__mod, - itab__0f__op_01__reg__op_07__mod, - itab__0f__op_01__reg__op_07__mod__op_01__rm, - itab__0f__op_01__reg__op_07__mod__op_01__rm__op_01__vendor, - itab__0f__op_0d__reg, - itab__0f__op_18__reg, - itab__0f__op_71__reg, - itab__0f__op_72__reg, - itab__0f__op_73__reg, - itab__0f__op_ae__reg, - itab__0f__op_ae__reg__op_05__mod, - itab__0f__op_ae__reg__op_05__mod__op_01__rm, - itab__0f__op_ae__reg__op_06__mod, - itab__0f__op_ae__reg__op_06__mod__op_01__rm, - itab__0f__op_ae__reg__op_07__mod, - itab__0f__op_ae__reg__op_07__mod__op_01__rm, - itab__0f__op_ba__reg, - itab__0f__op_c7__reg, - itab__0f__op_c7__reg__op_00__vendor, - itab__0f__op_c7__reg__op_07__vendor, - itab__0f__op_d9__mod, - itab__0f__op_d9__mod__op_01__x87, - itab__1byte, - itab__1byte__op_60__osize, - itab__1byte__op_61__osize, - itab__1byte__op_63__mode, - itab__1byte__op_6d__osize, - itab__1byte__op_6f__osize, - itab__1byte__op_80__reg, - itab__1byte__op_81__reg, - itab__1byte__op_82__reg, - itab__1byte__op_83__reg, - itab__1byte__op_8f__reg, - itab__1byte__op_98__osize, - itab__1byte__op_99__osize, - itab__1byte__op_9c__mode, - itab__1byte__op_9c__mode__op_00__osize, - itab__1byte__op_9c__mode__op_01__osize, - itab__1byte__op_9d__mode, - itab__1byte__op_9d__mode__op_00__osize, - itab__1byte__op_9d__mode__op_01__osize, - itab__1byte__op_a5__osize, - itab__1byte__op_a7__osize, - itab__1byte__op_ab__osize, - itab__1byte__op_ad__osize, - itab__1byte__op_ae__mod, - itab__1byte__op_ae__mod__op_00__reg, - itab__1byte__op_af__osize, - itab__1byte__op_c0__reg, - itab__1byte__op_c1__reg, - itab__1byte__op_c6__reg, - itab__1byte__op_c7__reg, - itab__1byte__op_cf__osize, - itab__1byte__op_d0__reg, - itab__1byte__op_d1__reg, - itab__1byte__op_d2__reg, - itab__1byte__op_d3__reg, - itab__1byte__op_d8__mod, - itab__1byte__op_d8__mod__op_00__reg, - itab__1byte__op_d8__mod__op_01__x87, - itab__1byte__op_d9__mod, - itab__1byte__op_d9__mod__op_00__reg, - itab__1byte__op_d9__mod__op_01__x87, - itab__1byte__op_da__mod, - itab__1byte__op_da__mod__op_00__reg, - itab__1byte__op_da__mod__op_01__x87, - itab__1byte__op_db__mod, - itab__1byte__op_db__mod__op_00__reg, - itab__1byte__op_db__mod__op_01__x87, - itab__1byte__op_dc__mod, - itab__1byte__op_dc__mod__op_00__reg, - itab__1byte__op_dc__mod__op_01__x87, - itab__1byte__op_dd__mod, - itab__1byte__op_dd__mod__op_00__reg, - itab__1byte__op_dd__mod__op_01__x87, - itab__1byte__op_de__mod, - itab__1byte__op_de__mod__op_00__reg, - itab__1byte__op_de__mod__op_01__x87, - itab__1byte__op_df__mod, - itab__1byte__op_df__mod__op_00__reg, - itab__1byte__op_df__mod__op_01__x87, - itab__1byte__op_e3__asize, - itab__1byte__op_f6__reg, - itab__1byte__op_f7__reg, - itab__1byte__op_fe__reg, - itab__1byte__op_ff__reg, - itab__3dnow, - itab__pfx_sse66__0f, - itab__pfx_sse66__0f__op_71__reg, - itab__pfx_sse66__0f__op_72__reg, - itab__pfx_sse66__0f__op_73__reg, - itab__pfx_sse66__0f__op_c7__reg, - itab__pfx_sse66__0f__op_c7__reg__op_00__vendor, - itab__pfx_ssef2__0f, - itab__pfx_ssef3__0f, - itab__pfx_ssef3__0f__op_c7__reg, - itab__pfx_ssef3__0f__op_c7__reg__op_07__vendor, +"invalid", + "3dnow", + "none", + "db", + "pause", + "aaa", + "aad", + "aam", + "aas", + "adc", + "add", + "addpd", + "addps", + "addsd", + "addss", + "addsubpd", + "addsubps", + "and", + "andpd", + "andps", + "andnpd", + "andnps", + "arpl", + "movsxd", + "bound", + "bsf", + "bsr", + "bswap", + "bt", + "btc", + "btr", + "bts", + "call", + "cbw", + "cwde", + "cdqe", + "clc", + "cld", + "clflush", + "clgi", + "cli", + "clts", + "cmc", + "cmovo", + "cmovno", + "cmovb", + "cmovae", + "cmovz", + "cmovnz", + "cmovbe", + "cmova", + "cmovs", + "cmovns", + "cmovp", + "cmovnp", + "cmovl", + "cmovge", + "cmovle", + "cmovg", + "cmp", + "cmppd", + "cmpps", + "cmpsb", + "cmpsw", + "cmpsd", + "cmpsq", + "cmpss", + "cmpxchg", + "cmpxchg8b", + "comisd", + "comiss", + "cpuid", + "cvtdq2pd", + "cvtdq2ps", + "cvtpd2dq", + "cvtpd2pi", + "cvtpd2ps", + "cvtpi2ps", + "cvtpi2pd", + "cvtps2dq", + "cvtps2pi", + "cvtps2pd", + "cvtsd2si", + "cvtsd2ss", + "cvtsi2ss", + "cvtss2si", + "cvtss2sd", + "cvttpd2pi", + "cvttpd2dq", + "cvttps2dq", + "cvttps2pi", + "cvttsd2si", + "cvtsi2sd", + "cvttss2si", + "cwd", + "cdq", + "cqo", + "daa", + "das", + "dec", + "div", + "divpd", + "divps", + "divsd", + "divss", + "emms", + "enter", + "f2xm1", + "fabs", + "fadd", + "faddp", + "fbld", + "fbstp", + "fchs", + "fclex", + "fcmovb", + "fcmove", + "fcmovbe", + "fcmovu", + "fcmovnb", + "fcmovne", + "fcmovnbe", + "fcmovnu", + "fucomi", + "fcom", + "fcom2", + "fcomp3", + "fcomi", + "fucomip", + "fcomip", + "fcomp", + "fcomp5", + "fcompp", + "fcos", + "fdecstp", + "fdiv", + "fdivp", + "fdivr", + "fdivrp", + "femms", + "ffree", + "ffreep", + "ficom", + "ficomp", + "fild", + "fncstp", + "fninit", + "fiadd", + "fidivr", + "fidiv", + "fisub", + "fisubr", + "fist", + "fistp", + "fisttp", + "fld", + "fld1", + "fldl2t", + "fldl2e", + "fldlpi", + "fldlg2", + "fldln2", + "fldz", + "fldcw", + "fldenv", + "fmul", + "fmulp", + "fimul", + "fnop", + "fpatan", + "fprem", + "fprem1", + "fptan", + "frndint", + "frstor", + "fnsave", + "fscale", + "fsin", + "fsincos", + "fsqrt", + "fstp", + "fstp1", + "fstp8", + "fstp9", + "fst", + "fnstcw", + "fnstenv", + "fnstsw", + "fsub", + "fsubp", + "fsubr", + "fsubrp", + "ftst", + "fucom", + "fucomp", + "fucompp", + "fxam", + "fxch", + "fxch4", + "fxch7", + "fxrstor", + "fxsave", + "fpxtract", + "fyl2x", + "fyl2xp1", + "haddpd", + "haddps", + "hlt", + "hsubpd", + "hsubps", + "idiv", + "in", + "imul", + "inc", + "insb", + "insw", + "insd", + "int1", + "int3", + "int", + "into", + "invd", + "invept", + "invlpg", + "invlpga", + "invvpid", + "iretw", + "iretd", + "iretq", + "jo", + "jno", + "jb", + "jae", + "jz", + "jnz", + "jbe", + "ja", + "js", + "jns", + "jp", + "jnp", + "jl", + "jge", + "jle", + "jg", + "jcxz", + "jecxz", + "jrcxz", + "jmp", + "lahf", + "lar", + "lddqu", + "ldmxcsr", + "lds", + "lea", + "les", + "lfs", + "lgs", + "lidt", + "lss", + "leave", + "lfence", + "lgdt", + "lldt", + "lmsw", + "lock", + "lodsb", + "lodsw", + "lodsd", + "lodsq", + "loopnz", + "loope", + "loop", + "lsl", + "ltr", + "maskmovq", + "maxpd", + "maxps", + "maxsd", + "maxss", + "mfence", + "minpd", + "minps", + "minsd", + "minss", + "monitor", + "montmul", + "mov", + "movapd", + "movaps", + "movd", + "movddup", + "movdqa", + "movdqu", + "movdq2q", + "movhpd", + "movhps", + "movlhps", + "movlpd", + "movlps", + "movhlps", + "movmskpd", + "movmskps", + "movntdq", + "movnti", + "movntpd", + "movntps", + "movntq", + "movq", + "movq2dq", + "movsb", + "movsw", + "movsd", + "movsq", + "movsldup", + "movshdup", + "movss", + "movsx", + "movupd", + "movups", + "movzx", + "mul", + "mulpd", + "mulps", + "mulsd", + "mulss", + "mwait", + "neg", + "nop", + "not", + "or", + "orpd", + "orps", + "out", + "outsb", + "outsw", + "outsd", + "outsq", + "packsswb", + "packssdw", + "packuswb", + "paddb", + "paddw", + "paddd", + "paddq", + "paddsb", + "paddsw", + "paddusb", + "paddusw", + "pand", + "pandn", + "pavgb", + "pavgw", + "pcmpeqb", + "pcmpeqw", + "pcmpeqd", + "pcmpgtb", + "pcmpgtw", + "pcmpgtd", + "pextrb", + "pextrd", + "pextrq", + "pextrw", + "pinsrw", + "pmaddwd", + "pmaxsw", + "pmaxub", + "pminsw", + "pminub", + "pmovmskb", + "pmulhuw", + "pmulhw", + "pmullw", + "pmuludq", + "pop", + "popa", + "popad", + "popfw", + "popfd", + "popfq", + "por", + "prefetch", + "prefetchnta", + "prefetcht0", + "prefetcht1", + "prefetcht2", + "psadbw", + "pshufd", + "pshufhw", + "pshuflw", + "pshufw", + "pslldq", + "psllw", + "pslld", + "psllq", + "psraw", + "psrad", + "psrlw", + "psrld", + "psrlq", + "psrldq", + "psubb", + "psubw", + "psubd", + "psubq", + "psubsb", + "psubsw", + "psubusb", + "psubusw", + "punpckhbw", + "punpckhwd", + "punpckhdq", + "punpckhqdq", + "punpcklbw", + "punpcklwd", + "punpckldq", + "punpcklqdq", + "pi2fw", + "pi2fd", + "pf2iw", + "pf2id", + "pfnacc", + "pfpnacc", + "pfcmpge", + "pfmin", + "pfrcp", + "pfrsqrt", + "pfsub", + "pfadd", + "pfcmpgt", + "pfmax", + "pfrcpit1", + "pfrspit1", + "pfsubr", + "pfacc", + "pfcmpeq", + "pfmul", + "pfrcpit2", + "pmulhrw", + "pswapd", + "pavgusb", + "push", + "pusha", + "pushad", + "pushfw", + "pushfd", + "pushfq", + "pxor", + "rcl", + "rcr", + "rol", + "ror", + "rcpps", + "rcpss", + "rdmsr", + "rdpmc", + "rdtsc", + "rdtscp", + "repne", + "rep", + "ret", + "retf", + "rsm", + "rsqrtps", + "rsqrtss", + "sahf", + "salc", + "sar", + "shl", + "shr", + "sbb", + "scasb", + "scasw", + "scasd", + "scasq", + "seto", + "setno", + "setb", + "setnb", + "setz", + "setnz", + "setbe", + "seta", + "sets", + "setns", + "setp", + "setnp", + "setl", + "setge", + "setle", + "setg", + "sfence", + "sgdt", + "shld", + "shrd", + "shufpd", + "shufps", + "sidt", + "sldt", + "smsw", + "sqrtps", + "sqrtpd", + "sqrtsd", + "sqrtss", + "stc", + "std", + "stgi", + "sti", + "skinit", + "stmxcsr", + "stosb", + "stosw", + "stosd", + "stosq", + "str", + "sub", + "subpd", + "subps", + "subsd", + "subss", + "swapgs", + "syscall", + "sysenter", + "sysexit", + "sysret", + "test", + "ucomisd", + "ucomiss", + "ud2", + "unpckhpd", + "unpckhps", + "unpcklps", + "unpcklpd", + "verr", + "verw", + "vmcall", + "vmclear", + "vmxon", + "vmptrld", + "vmptrst", + "vmlaunch", + "vmresume", + "vmxoff", + "vmread", + "vmwrite", + "vmrun", + "vmmcall", + "vmload", + "vmsave", + "wait", + "wbinvd", + "wrmsr", + "xadd", + "xchg", + "xlatb", + "xor", + "xorpd", + "xorps", + "xcryptecb", + "xcryptcbc", + "xcryptctr", + "xcryptcfb", + "xcryptofb", + "xsha1", + "xsha256", + "xstore" }; diff --git a/libr/asm/arch/x86/udis86/itab.h b/libr/asm/arch/x86/udis86/itab.h index 737112c6a3..9ced1301da 100644 --- a/libr/asm/arch/x86/udis86/itab.h +++ b/libr/asm/arch/x86/udis86/itab.h @@ -1,719 +1,713 @@ - -/* itab.h -- auto generated by opgen.py, do not edit. */ - #ifndef UD_ITAB_H #define UD_ITAB_H - - -enum ud_itab_vendor_index { - ITAB__VENDOR_INDX__AMD, - ITAB__VENDOR_INDX__INTEL, +/* ud_table_type -- lookup table types (see lookup.c) */ +enum ud_table_type { + UD_TAB__OPC_TABLE, + UD_TAB__OPC_X87, + UD_TAB__OPC_MOD, + UD_TAB__OPC_RM, + UD_TAB__OPC_VENDOR, + UD_TAB__OPC_OSIZE, + UD_TAB__OPC_MODE, + UD_TAB__OPC_3BYTE, + UD_TAB__OPC_3DNOW, + UD_TAB__OPC_REG, + UD_TAB__OPC_ASIZE, + UD_TAB__OPC_2BYTE }; - -enum ud_itab_mode_index { - ITAB__MODE_INDX__16, - ITAB__MODE_INDX__32, - ITAB__MODE_INDX__64 -}; - - -enum ud_itab_mod_index { - ITAB__MOD_INDX__NOT_11, - ITAB__MOD_INDX__11 -}; - - -enum ud_itab_index { - ITAB__0F, - ITAB__0F__OP_00__REG, - ITAB__0F__OP_01__REG, - ITAB__0F__OP_01__REG__OP_00__MOD, - ITAB__0F__OP_01__REG__OP_00__MOD__OP_01__RM, - ITAB__0F__OP_01__REG__OP_00__MOD__OP_01__RM__OP_01__VENDOR, - ITAB__0F__OP_01__REG__OP_00__MOD__OP_01__RM__OP_03__VENDOR, - ITAB__0F__OP_01__REG__OP_00__MOD__OP_01__RM__OP_04__VENDOR, - ITAB__0F__OP_01__REG__OP_01__MOD, - ITAB__0F__OP_01__REG__OP_01__MOD__OP_01__RM, - ITAB__0F__OP_01__REG__OP_02__MOD, - ITAB__0F__OP_01__REG__OP_03__MOD, - ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM, - ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_00__VENDOR, - ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_01__VENDOR, - ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_02__VENDOR, - ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_03__VENDOR, - ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_04__VENDOR, - ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_05__VENDOR, - ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_06__VENDOR, - ITAB__0F__OP_01__REG__OP_03__MOD__OP_01__RM__OP_07__VENDOR, - ITAB__0F__OP_01__REG__OP_04__MOD, - ITAB__0F__OP_01__REG__OP_06__MOD, - ITAB__0F__OP_01__REG__OP_07__MOD, - ITAB__0F__OP_01__REG__OP_07__MOD__OP_01__RM, - ITAB__0F__OP_01__REG__OP_07__MOD__OP_01__RM__OP_01__VENDOR, - ITAB__0F__OP_0D__REG, - ITAB__0F__OP_18__REG, - ITAB__0F__OP_71__REG, - ITAB__0F__OP_72__REG, - ITAB__0F__OP_73__REG, - ITAB__0F__OP_AE__REG, - ITAB__0F__OP_AE__REG__OP_05__MOD, - ITAB__0F__OP_AE__REG__OP_05__MOD__OP_01__RM, - ITAB__0F__OP_AE__REG__OP_06__MOD, - ITAB__0F__OP_AE__REG__OP_06__MOD__OP_01__RM, - ITAB__0F__OP_AE__REG__OP_07__MOD, - ITAB__0F__OP_AE__REG__OP_07__MOD__OP_01__RM, - ITAB__0F__OP_BA__REG, - ITAB__0F__OP_C7__REG, - ITAB__0F__OP_C7__REG__OP_00__VENDOR, - ITAB__0F__OP_C7__REG__OP_07__VENDOR, - ITAB__0F__OP_D9__MOD, - ITAB__0F__OP_D9__MOD__OP_01__X87, - ITAB__1BYTE, - ITAB__1BYTE__OP_60__OSIZE, - ITAB__1BYTE__OP_61__OSIZE, - ITAB__1BYTE__OP_63__MODE, - ITAB__1BYTE__OP_6D__OSIZE, - ITAB__1BYTE__OP_6F__OSIZE, - ITAB__1BYTE__OP_80__REG, - ITAB__1BYTE__OP_81__REG, - ITAB__1BYTE__OP_82__REG, - ITAB__1BYTE__OP_83__REG, - ITAB__1BYTE__OP_8F__REG, - ITAB__1BYTE__OP_98__OSIZE, - ITAB__1BYTE__OP_99__OSIZE, - ITAB__1BYTE__OP_9C__MODE, - ITAB__1BYTE__OP_9C__MODE__OP_00__OSIZE, - ITAB__1BYTE__OP_9C__MODE__OP_01__OSIZE, - ITAB__1BYTE__OP_9D__MODE, - ITAB__1BYTE__OP_9D__MODE__OP_00__OSIZE, - ITAB__1BYTE__OP_9D__MODE__OP_01__OSIZE, - ITAB__1BYTE__OP_A5__OSIZE, - ITAB__1BYTE__OP_A7__OSIZE, - ITAB__1BYTE__OP_AB__OSIZE, - ITAB__1BYTE__OP_AD__OSIZE, - ITAB__1BYTE__OP_AE__MOD, - ITAB__1BYTE__OP_AE__MOD__OP_00__REG, - ITAB__1BYTE__OP_AF__OSIZE, - ITAB__1BYTE__OP_C0__REG, - ITAB__1BYTE__OP_C1__REG, - ITAB__1BYTE__OP_C6__REG, - ITAB__1BYTE__OP_C7__REG, - ITAB__1BYTE__OP_CF__OSIZE, - ITAB__1BYTE__OP_D0__REG, - ITAB__1BYTE__OP_D1__REG, - ITAB__1BYTE__OP_D2__REG, - ITAB__1BYTE__OP_D3__REG, - ITAB__1BYTE__OP_D8__MOD, - ITAB__1BYTE__OP_D8__MOD__OP_00__REG, - ITAB__1BYTE__OP_D8__MOD__OP_01__X87, - ITAB__1BYTE__OP_D9__MOD, - ITAB__1BYTE__OP_D9__MOD__OP_00__REG, - ITAB__1BYTE__OP_D9__MOD__OP_01__X87, - ITAB__1BYTE__OP_DA__MOD, - ITAB__1BYTE__OP_DA__MOD__OP_00__REG, - ITAB__1BYTE__OP_DA__MOD__OP_01__X87, - ITAB__1BYTE__OP_DB__MOD, - ITAB__1BYTE__OP_DB__MOD__OP_00__REG, - ITAB__1BYTE__OP_DB__MOD__OP_01__X87, - ITAB__1BYTE__OP_DC__MOD, - ITAB__1BYTE__OP_DC__MOD__OP_00__REG, - ITAB__1BYTE__OP_DC__MOD__OP_01__X87, - ITAB__1BYTE__OP_DD__MOD, - ITAB__1BYTE__OP_DD__MOD__OP_00__REG, - ITAB__1BYTE__OP_DD__MOD__OP_01__X87, - ITAB__1BYTE__OP_DE__MOD, - ITAB__1BYTE__OP_DE__MOD__OP_00__REG, - ITAB__1BYTE__OP_DE__MOD__OP_01__X87, - ITAB__1BYTE__OP_DF__MOD, - ITAB__1BYTE__OP_DF__MOD__OP_00__REG, - ITAB__1BYTE__OP_DF__MOD__OP_01__X87, - ITAB__1BYTE__OP_E3__ASIZE, - ITAB__1BYTE__OP_F6__REG, - ITAB__1BYTE__OP_F7__REG, - ITAB__1BYTE__OP_FE__REG, - ITAB__1BYTE__OP_FF__REG, - ITAB__3DNOW, - ITAB__PFX_SSE66__0F, - ITAB__PFX_SSE66__0F__OP_71__REG, - ITAB__PFX_SSE66__0F__OP_72__REG, - ITAB__PFX_SSE66__0F__OP_73__REG, - ITAB__PFX_SSE66__0F__OP_C7__REG, - ITAB__PFX_SSE66__0F__OP_C7__REG__OP_00__VENDOR, - ITAB__PFX_SSEF2__0F, - ITAB__PFX_SSEF3__0F, - ITAB__PFX_SSEF3__0F__OP_C7__REG, - ITAB__PFX_SSEF3__0F__OP_C7__REG__OP_07__VENDOR, -}; - - +/* ud_mnemonic -- mnemonic constants */ enum ud_mnemonic_code { - UD_I3dnow, - UD_Iaaa, - UD_Iaad, - UD_Iaam, - UD_Iaas, - UD_Iadc, - UD_Iadd, - UD_Iaddpd, - UD_Iaddps, - UD_Iaddsd, - UD_Iaddss, - UD_Iaddsubpd, - UD_Iaddsubps, - UD_Iand, - UD_Iandpd, - UD_Iandps, - UD_Iandnpd, - UD_Iandnps, - UD_Iarpl, - UD_Imovsxd, - UD_Ibound, - UD_Ibsf, - UD_Ibsr, - UD_Ibswap, - UD_Ibt, - UD_Ibtc, - UD_Ibtr, - UD_Ibts, - UD_Icall, - UD_Icbw, - UD_Icwde, - UD_Icdqe, - UD_Iclc, - UD_Icld, - UD_Iclflush, - UD_Iclgi, - UD_Icli, - UD_Iclts, - UD_Icmc, - UD_Icmovo, - UD_Icmovno, - UD_Icmovb, - UD_Icmovae, - UD_Icmovz, - UD_Icmovnz, - UD_Icmovbe, - UD_Icmova, - UD_Icmovs, - UD_Icmovns, - UD_Icmovp, - UD_Icmovnp, - UD_Icmovl, - UD_Icmovge, - UD_Icmovle, - UD_Icmovg, - UD_Icmp, - UD_Icmppd, - UD_Icmpps, - UD_Icmpsb, - UD_Icmpsw, - UD_Icmpsd, - UD_Icmpsq, - UD_Icmpss, - UD_Icmpxchg, - UD_Icmpxchg8b, - UD_Icomisd, - UD_Icomiss, - UD_Icpuid, - UD_Icvtdq2pd, - UD_Icvtdq2ps, - UD_Icvtpd2dq, - UD_Icvtpd2pi, - UD_Icvtpd2ps, - UD_Icvtpi2ps, - UD_Icvtpi2pd, - UD_Icvtps2dq, - UD_Icvtps2pi, - UD_Icvtps2pd, - UD_Icvtsd2si, - UD_Icvtsd2ss, - UD_Icvtsi2ss, - UD_Icvtss2si, - UD_Icvtss2sd, - UD_Icvttpd2pi, - UD_Icvttpd2dq, - UD_Icvttps2dq, - UD_Icvttps2pi, - UD_Icvttsd2si, - UD_Icvtsi2sd, - UD_Icvttss2si, - UD_Icwd, - UD_Icdq, - UD_Icqo, - UD_Idaa, - UD_Idas, - UD_Idec, - UD_Idiv, - UD_Idivpd, - UD_Idivps, - UD_Idivsd, - UD_Idivss, - UD_Iemms, - UD_Ienter, - UD_If2xm1, - UD_Ifabs, - UD_Ifadd, - UD_Ifaddp, - UD_Ifbld, - UD_Ifbstp, - UD_Ifchs, - UD_Ifclex, - UD_Ifcmovb, - UD_Ifcmove, - UD_Ifcmovbe, - UD_Ifcmovu, - UD_Ifcmovnb, - UD_Ifcmovne, - UD_Ifcmovnbe, - UD_Ifcmovnu, - UD_Ifucomi, - UD_Ifcom, - UD_Ifcom2, - UD_Ifcomp3, - UD_Ifcomi, - UD_Ifucomip, - UD_Ifcomip, - UD_Ifcomp, - UD_Ifcomp5, - UD_Ifcompp, - UD_Ifcos, - UD_Ifdecstp, - UD_Ifdiv, - UD_Ifdivp, - UD_Ifdivr, - UD_Ifdivrp, - UD_Ifemms, - UD_Iffree, - UD_Iffreep, - UD_Ificom, - UD_Ificomp, - UD_Ifild, - UD_Ifncstp, - UD_Ifninit, - UD_Ifiadd, - UD_Ifidivr, - UD_Ifidiv, - UD_Ifisub, - UD_Ifisubr, - UD_Ifist, - UD_Ifistp, - UD_Ifisttp, - UD_Ifld, - UD_Ifld1, - UD_Ifldl2t, - UD_Ifldl2e, - UD_Ifldlpi, - UD_Ifldlg2, - UD_Ifldln2, - UD_Ifldz, - UD_Ifldcw, - UD_Ifldenv, - UD_Ifmul, - UD_Ifmulp, - UD_Ifimul, - UD_Ifnop, - UD_Ifpatan, - UD_Ifprem, - UD_Ifprem1, - UD_Ifptan, - UD_Ifrndint, - UD_Ifrstor, - UD_Ifnsave, - UD_Ifscale, - UD_Ifsin, - UD_Ifsincos, - UD_Ifsqrt, - UD_Ifstp, - UD_Ifstp1, - UD_Ifstp8, - UD_Ifstp9, - UD_Ifst, - UD_Ifnstcw, - UD_Ifnstenv, - UD_Ifnstsw, - UD_Ifsub, - UD_Ifsubp, - UD_Ifsubr, - UD_Ifsubrp, - UD_Iftst, - UD_Ifucom, - UD_Ifucomp, - UD_Ifucompp, - UD_Ifxam, - UD_Ifxch, - UD_Ifxch4, - UD_Ifxch7, - UD_Ifxrstor, - UD_Ifxsave, - UD_Ifpxtract, - UD_Ifyl2x, - UD_Ifyl2xp1, - UD_Ihaddpd, - UD_Ihaddps, - UD_Ihlt, - UD_Ihsubpd, - UD_Ihsubps, - UD_Iidiv, - UD_Iin, - UD_Iimul, - UD_Iinc, - UD_Iinsb, - UD_Iinsw, - UD_Iinsd, - UD_Iint1, - UD_Iint3, - UD_Iint, - UD_Iinto, - UD_Iinvd, - UD_Iinvlpg, - UD_Iinvlpga, - UD_Iiretw, - UD_Iiretd, - UD_Iiretq, - UD_Ijo, - UD_Ijno, - UD_Ijb, - UD_Ijae, - UD_Ijz, - UD_Ijnz, - UD_Ijbe, - UD_Ija, - UD_Ijs, - UD_Ijns, - UD_Ijp, - UD_Ijnp, - UD_Ijl, - UD_Ijge, - UD_Ijle, - UD_Ijg, - UD_Ijcxz, - UD_Ijecxz, - UD_Ijrcxz, - UD_Ijmp, - UD_Ilahf, - UD_Ilar, - UD_Ilddqu, - UD_Ildmxcsr, - UD_Ilds, - UD_Ilea, - UD_Iles, - UD_Ilfs, - UD_Ilgs, - UD_Ilidt, - UD_Ilss, - UD_Ileave, - UD_Ilfence, - UD_Ilgdt, - UD_Illdt, - UD_Ilmsw, - UD_Ilock, - UD_Ilodsb, - UD_Ilodsw, - UD_Ilodsd, - UD_Ilodsq, - UD_Iloopnz, - UD_Iloope, - UD_Iloop, - UD_Ilsl, - UD_Iltr, - UD_Imaskmovq, - UD_Imaxpd, - UD_Imaxps, - UD_Imaxsd, - UD_Imaxss, - UD_Imfence, - UD_Iminpd, - UD_Iminps, - UD_Iminsd, - UD_Iminss, - UD_Imonitor, - UD_Imov, - UD_Imovapd, - UD_Imovaps, - UD_Imovd, - UD_Imovddup, - UD_Imovdqa, - UD_Imovdqu, - UD_Imovdq2q, - UD_Imovhpd, - UD_Imovhps, - UD_Imovlhps, - UD_Imovlpd, - UD_Imovlps, - UD_Imovhlps, - UD_Imovmskpd, - UD_Imovmskps, - UD_Imovntdq, - UD_Imovnti, - UD_Imovntpd, - UD_Imovntps, - UD_Imovntq, - UD_Imovq, - UD_Imovqa, - UD_Imovq2dq, - UD_Imovsb, - UD_Imovsw, - UD_Imovsd, - UD_Imovsq, - UD_Imovsldup, - UD_Imovshdup, - UD_Imovss, - UD_Imovsx, - UD_Imovupd, - UD_Imovups, - UD_Imovzx, - UD_Imul, - UD_Imulpd, - UD_Imulps, - UD_Imulsd, - UD_Imulss, - UD_Imwait, - UD_Ineg, - UD_Inop, - UD_Inot, - UD_Ior, - UD_Iorpd, - UD_Iorps, - UD_Iout, - UD_Ioutsb, - UD_Ioutsw, - UD_Ioutsd, - UD_Ioutsq, - UD_Ipacksswb, - UD_Ipackssdw, - UD_Ipackuswb, - UD_Ipaddb, - UD_Ipaddw, - UD_Ipaddq, - UD_Ipaddsb, - UD_Ipaddsw, - UD_Ipaddusb, - UD_Ipaddusw, - UD_Ipand, - UD_Ipandn, - UD_Ipause, - UD_Ipavgb, - UD_Ipavgw, - UD_Ipcmpeqb, - UD_Ipcmpeqw, - UD_Ipcmpeqd, - UD_Ipcmpgtb, - UD_Ipcmpgtw, - UD_Ipcmpgtd, - UD_Ipextrw, - UD_Ipinsrw, - UD_Ipmaddwd, - UD_Ipmaxsw, - UD_Ipmaxub, - UD_Ipminsw, - UD_Ipminub, - UD_Ipmovmskb, - UD_Ipmulhuw, - UD_Ipmulhw, - UD_Ipmullw, - UD_Ipmuludq, - UD_Ipop, - UD_Ipopa, - UD_Ipopad, - UD_Ipopfw, - UD_Ipopfd, - UD_Ipopfq, - UD_Ipor, - UD_Iprefetch, - UD_Iprefetchnta, - UD_Iprefetcht0, - UD_Iprefetcht1, - UD_Iprefetcht2, - UD_Ipsadbw, - UD_Ipshufd, - UD_Ipshufhw, - UD_Ipshuflw, - UD_Ipshufw, - UD_Ipslldq, - UD_Ipsllw, - UD_Ipslld, - UD_Ipsllq, - UD_Ipsraw, - UD_Ipsrad, - UD_Ipsrlw, - UD_Ipsrld, - UD_Ipsrlq, - UD_Ipsrldq, - UD_Ipsubb, - UD_Ipsubw, - UD_Ipsubd, - UD_Ipsubq, - UD_Ipsubsb, - UD_Ipsubsw, - UD_Ipsubusb, - UD_Ipsubusw, - UD_Ipunpckhbw, - UD_Ipunpckhwd, - UD_Ipunpckhdq, - UD_Ipunpckhqdq, - UD_Ipunpcklbw, - UD_Ipunpcklwd, - UD_Ipunpckldq, - UD_Ipunpcklqdq, - UD_Ipi2fw, - UD_Ipi2fd, - UD_Ipf2iw, - UD_Ipf2id, - UD_Ipfnacc, - UD_Ipfpnacc, - UD_Ipfcmpge, - UD_Ipfmin, - UD_Ipfrcp, - UD_Ipfrsqrt, - UD_Ipfsub, - UD_Ipfadd, - UD_Ipfcmpgt, - UD_Ipfmax, - UD_Ipfrcpit1, - UD_Ipfrspit1, - UD_Ipfsubr, - UD_Ipfacc, - UD_Ipfcmpeq, - UD_Ipfmul, - UD_Ipfrcpit2, - UD_Ipmulhrw, - UD_Ipswapd, - UD_Ipavgusb, - UD_Ipush, - UD_Ipusha, - UD_Ipushad, - UD_Ipushfw, - UD_Ipushfd, - UD_Ipushfq, - UD_Ipxor, - UD_Ircl, - UD_Ircr, - UD_Irol, - UD_Iror, - UD_Ircpps, - UD_Ircpss, - UD_Irdmsr, - UD_Irdpmc, - UD_Irdtsc, - UD_Irdtscp, - UD_Irepne, - UD_Irep, - UD_Iret, - UD_Iretf, - UD_Irsm, - UD_Irsqrtps, - UD_Irsqrtss, - UD_Isahf, - UD_Isal, - UD_Isalc, - UD_Isar, - UD_Ishl, - UD_Ishr, - UD_Isbb, - UD_Iscasb, - UD_Iscasw, - UD_Iscasd, - UD_Iscasq, - UD_Iseto, - UD_Isetno, - UD_Isetb, - UD_Isetnb, - UD_Isetz, - UD_Isetnz, - UD_Isetbe, - UD_Iseta, - UD_Isets, - UD_Isetns, - UD_Isetp, - UD_Isetnp, - UD_Isetl, - UD_Isetge, - UD_Isetle, - UD_Isetg, - UD_Isfence, - UD_Isgdt, - UD_Ishld, - UD_Ishrd, - UD_Ishufpd, - UD_Ishufps, - UD_Isidt, - UD_Isldt, - UD_Ismsw, - UD_Isqrtps, - UD_Isqrtpd, - UD_Isqrtsd, - UD_Isqrtss, - UD_Istc, - UD_Istd, - UD_Istgi, - UD_Isti, - UD_Iskinit, - UD_Istmxcsr, - UD_Istosb, - UD_Istosw, - UD_Istosd, - UD_Istosq, - UD_Istr, - UD_Isub, - UD_Isubpd, - UD_Isubps, - UD_Isubsd, - UD_Isubss, - UD_Iswapgs, - UD_Isyscall, - UD_Isysenter, - UD_Isysexit, - UD_Isysret, - UD_Itest, - UD_Iucomisd, - UD_Iucomiss, - UD_Iud2, - UD_Iunpckhpd, - UD_Iunpckhps, - UD_Iunpcklps, - UD_Iunpcklpd, - UD_Iverr, - UD_Iverw, - UD_Ivmcall, - UD_Ivmclear, - UD_Ivmxon, - UD_Ivmptrld, - UD_Ivmptrst, - UD_Ivmresume, - UD_Ivmxoff, - UD_Ivmrun, - UD_Ivmmcall, - UD_Ivmload, - UD_Ivmsave, - UD_Iwait, - UD_Iwbinvd, - UD_Iwrmsr, - UD_Ixadd, - UD_Ixchg, - UD_Ixlatb, - UD_Ixor, - UD_Ixorpd, - UD_Ixorps, - UD_Idb, - UD_Iinvalid, - UD_Id3vil, - UD_Ina, - UD_Igrp_reg, - UD_Igrp_rm, - UD_Igrp_vendor, - UD_Igrp_x87, - UD_Igrp_mode, - UD_Igrp_osize, - UD_Igrp_asize, - UD_Igrp_mod, - UD_Inone, -}; + UD_Iinvalid, + UD_I3dnow, + UD_Inone, + UD_Idb, + UD_Ipause, + UD_Iaaa, + UD_Iaad, + UD_Iaam, + UD_Iaas, + UD_Iadc, + UD_Iadd, + UD_Iaddpd, + UD_Iaddps, + UD_Iaddsd, + UD_Iaddss, + UD_Iaddsubpd, + UD_Iaddsubps, + UD_Iand, + UD_Iandpd, + UD_Iandps, + UD_Iandnpd, + UD_Iandnps, + UD_Iarpl, + UD_Imovsxd, + UD_Ibound, + UD_Ibsf, + UD_Ibsr, + UD_Ibswap, + UD_Ibt, + UD_Ibtc, + UD_Ibtr, + UD_Ibts, + UD_Icall, + UD_Icbw, + UD_Icwde, + UD_Icdqe, + UD_Iclc, + UD_Icld, + UD_Iclflush, + UD_Iclgi, + UD_Icli, + UD_Iclts, + UD_Icmc, + UD_Icmovo, + UD_Icmovno, + UD_Icmovb, + UD_Icmovae, + UD_Icmovz, + UD_Icmovnz, + UD_Icmovbe, + UD_Icmova, + UD_Icmovs, + UD_Icmovns, + UD_Icmovp, + UD_Icmovnp, + UD_Icmovl, + UD_Icmovge, + UD_Icmovle, + UD_Icmovg, + UD_Icmp, + UD_Icmppd, + UD_Icmpps, + UD_Icmpsb, + UD_Icmpsw, + UD_Icmpsd, + UD_Icmpsq, + UD_Icmpss, + UD_Icmpxchg, + UD_Icmpxchg8b, + UD_Icomisd, + UD_Icomiss, + UD_Icpuid, + UD_Icvtdq2pd, + UD_Icvtdq2ps, + UD_Icvtpd2dq, + UD_Icvtpd2pi, + UD_Icvtpd2ps, + UD_Icvtpi2ps, + UD_Icvtpi2pd, + UD_Icvtps2dq, + UD_Icvtps2pi, + UD_Icvtps2pd, + UD_Icvtsd2si, + UD_Icvtsd2ss, + UD_Icvtsi2ss, + UD_Icvtss2si, + UD_Icvtss2sd, + UD_Icvttpd2pi, + UD_Icvttpd2dq, + UD_Icvttps2dq, + UD_Icvttps2pi, + UD_Icvttsd2si, + UD_Icvtsi2sd, + UD_Icvttss2si, + UD_Icwd, + UD_Icdq, + UD_Icqo, + UD_Idaa, + UD_Idas, + UD_Idec, + UD_Idiv, + UD_Idivpd, + UD_Idivps, + UD_Idivsd, + UD_Idivss, + UD_Iemms, + UD_Ienter, + UD_If2xm1, + UD_Ifabs, + UD_Ifadd, + UD_Ifaddp, + UD_Ifbld, + UD_Ifbstp, + UD_Ifchs, + UD_Ifclex, + UD_Ifcmovb, + UD_Ifcmove, + UD_Ifcmovbe, + UD_Ifcmovu, + UD_Ifcmovnb, + UD_Ifcmovne, + UD_Ifcmovnbe, + UD_Ifcmovnu, + UD_Ifucomi, + UD_Ifcom, + UD_Ifcom2, + UD_Ifcomp3, + UD_Ifcomi, + UD_Ifucomip, + UD_Ifcomip, + UD_Ifcomp, + UD_Ifcomp5, + UD_Ifcompp, + UD_Ifcos, + UD_Ifdecstp, + UD_Ifdiv, + UD_Ifdivp, + UD_Ifdivr, + UD_Ifdivrp, + UD_Ifemms, + UD_Iffree, + UD_Iffreep, + UD_Ificom, + UD_Ificomp, + UD_Ifild, + UD_Ifncstp, + UD_Ifninit, + UD_Ifiadd, + UD_Ifidivr, + UD_Ifidiv, + UD_Ifisub, + UD_Ifisubr, + UD_Ifist, + UD_Ifistp, + UD_Ifisttp, + UD_Ifld, + UD_Ifld1, + UD_Ifldl2t, + UD_Ifldl2e, + UD_Ifldlpi, + UD_Ifldlg2, + UD_Ifldln2, + UD_Ifldz, + UD_Ifldcw, + UD_Ifldenv, + UD_Ifmul, + UD_Ifmulp, + UD_Ifimul, + UD_Ifnop, + UD_Ifpatan, + UD_Ifprem, + UD_Ifprem1, + UD_Ifptan, + UD_Ifrndint, + UD_Ifrstor, + UD_Ifnsave, + UD_Ifscale, + UD_Ifsin, + UD_Ifsincos, + UD_Ifsqrt, + UD_Ifstp, + UD_Ifstp1, + UD_Ifstp8, + UD_Ifstp9, + UD_Ifst, + UD_Ifnstcw, + UD_Ifnstenv, + UD_Ifnstsw, + UD_Ifsub, + UD_Ifsubp, + UD_Ifsubr, + UD_Ifsubrp, + UD_Iftst, + UD_Ifucom, + UD_Ifucomp, + UD_Ifucompp, + UD_Ifxam, + UD_Ifxch, + UD_Ifxch4, + UD_Ifxch7, + UD_Ifxrstor, + UD_Ifxsave, + UD_Ifpxtract, + UD_Ifyl2x, + UD_Ifyl2xp1, + UD_Ihaddpd, + UD_Ihaddps, + UD_Ihlt, + UD_Ihsubpd, + UD_Ihsubps, + UD_Iidiv, + UD_Iin, + UD_Iimul, + UD_Iinc, + UD_Iinsb, + UD_Iinsw, + UD_Iinsd, + UD_Iint1, + UD_Iint3, + UD_Iint, + UD_Iinto, + UD_Iinvd, + UD_Iinvept, + UD_Iinvlpg, + UD_Iinvlpga, + UD_Iinvvpid, + UD_Iiretw, + UD_Iiretd, + UD_Iiretq, + UD_Ijo, + UD_Ijno, + UD_Ijb, + UD_Ijae, + UD_Ijz, + UD_Ijnz, + UD_Ijbe, + UD_Ija, + UD_Ijs, + UD_Ijns, + UD_Ijp, + UD_Ijnp, + UD_Ijl, + UD_Ijge, + UD_Ijle, + UD_Ijg, + UD_Ijcxz, + UD_Ijecxz, + UD_Ijrcxz, + UD_Ijmp, + UD_Ilahf, + UD_Ilar, + UD_Ilddqu, + UD_Ildmxcsr, + UD_Ilds, + UD_Ilea, + UD_Iles, + UD_Ilfs, + UD_Ilgs, + UD_Ilidt, + UD_Ilss, + UD_Ileave, + UD_Ilfence, + UD_Ilgdt, + UD_Illdt, + UD_Ilmsw, + UD_Ilock, + UD_Ilodsb, + UD_Ilodsw, + UD_Ilodsd, + UD_Ilodsq, + UD_Iloopnz, + UD_Iloope, + UD_Iloop, + UD_Ilsl, + UD_Iltr, + UD_Imaskmovq, + UD_Imaxpd, + UD_Imaxps, + UD_Imaxsd, + UD_Imaxss, + UD_Imfence, + UD_Iminpd, + UD_Iminps, + UD_Iminsd, + UD_Iminss, + UD_Imonitor, + UD_Imontmul, + UD_Imov, + UD_Imovapd, + UD_Imovaps, + UD_Imovd, + UD_Imovddup, + UD_Imovdqa, + UD_Imovdqu, + UD_Imovdq2q, + UD_Imovhpd, + UD_Imovhps, + UD_Imovlhps, + UD_Imovlpd, + UD_Imovlps, + UD_Imovhlps, + UD_Imovmskpd, + UD_Imovmskps, + UD_Imovntdq, + UD_Imovnti, + UD_Imovntpd, + UD_Imovntps, + UD_Imovntq, + UD_Imovq, + UD_Imovq2dq, + UD_Imovsb, + UD_Imovsw, + UD_Imovsd, + UD_Imovsq, + UD_Imovsldup, + UD_Imovshdup, + UD_Imovss, + UD_Imovsx, + UD_Imovupd, + UD_Imovups, + UD_Imovzx, + UD_Imul, + UD_Imulpd, + UD_Imulps, + UD_Imulsd, + UD_Imulss, + UD_Imwait, + UD_Ineg, + UD_Inop, + UD_Inot, + UD_Ior, + UD_Iorpd, + UD_Iorps, + UD_Iout, + UD_Ioutsb, + UD_Ioutsw, + UD_Ioutsd, + UD_Ioutsq, + UD_Ipacksswb, + UD_Ipackssdw, + UD_Ipackuswb, + UD_Ipaddb, + UD_Ipaddw, + UD_Ipaddd, + UD_Ipaddq, + UD_Ipaddsb, + UD_Ipaddsw, + UD_Ipaddusb, + UD_Ipaddusw, + UD_Ipand, + UD_Ipandn, + UD_Ipavgb, + UD_Ipavgw, + UD_Ipcmpeqb, + UD_Ipcmpeqw, + UD_Ipcmpeqd, + UD_Ipcmpgtb, + UD_Ipcmpgtw, + UD_Ipcmpgtd, + UD_Ipextrb, + UD_Ipextrd, + UD_Ipextrq, + UD_Ipextrw, + UD_Ipinsrw, + UD_Ipmaddwd, + UD_Ipmaxsw, + UD_Ipmaxub, + UD_Ipminsw, + UD_Ipminub, + UD_Ipmovmskb, + UD_Ipmulhuw, + UD_Ipmulhw, + UD_Ipmullw, + UD_Ipmuludq, + UD_Ipop, + UD_Ipopa, + UD_Ipopad, + UD_Ipopfw, + UD_Ipopfd, + UD_Ipopfq, + UD_Ipor, + UD_Iprefetch, + UD_Iprefetchnta, + UD_Iprefetcht0, + UD_Iprefetcht1, + UD_Iprefetcht2, + UD_Ipsadbw, + UD_Ipshufd, + UD_Ipshufhw, + UD_Ipshuflw, + UD_Ipshufw, + UD_Ipslldq, + UD_Ipsllw, + UD_Ipslld, + UD_Ipsllq, + UD_Ipsraw, + UD_Ipsrad, + UD_Ipsrlw, + UD_Ipsrld, + UD_Ipsrlq, + UD_Ipsrldq, + UD_Ipsubb, + UD_Ipsubw, + UD_Ipsubd, + UD_Ipsubq, + UD_Ipsubsb, + UD_Ipsubsw, + UD_Ipsubusb, + UD_Ipsubusw, + UD_Ipunpckhbw, + UD_Ipunpckhwd, + UD_Ipunpckhdq, + UD_Ipunpckhqdq, + UD_Ipunpcklbw, + UD_Ipunpcklwd, + UD_Ipunpckldq, + UD_Ipunpcklqdq, + UD_Ipi2fw, + UD_Ipi2fd, + UD_Ipf2iw, + UD_Ipf2id, + UD_Ipfnacc, + UD_Ipfpnacc, + UD_Ipfcmpge, + UD_Ipfmin, + UD_Ipfrcp, + UD_Ipfrsqrt, + UD_Ipfsub, + UD_Ipfadd, + UD_Ipfcmpgt, + UD_Ipfmax, + UD_Ipfrcpit1, + UD_Ipfrspit1, + UD_Ipfsubr, + UD_Ipfacc, + UD_Ipfcmpeq, + UD_Ipfmul, + UD_Ipfrcpit2, + UD_Ipmulhrw, + UD_Ipswapd, + UD_Ipavgusb, + UD_Ipush, + UD_Ipusha, + UD_Ipushad, + UD_Ipushfw, + UD_Ipushfd, + UD_Ipushfq, + UD_Ipxor, + UD_Ircl, + UD_Ircr, + UD_Irol, + UD_Iror, + UD_Ircpps, + UD_Ircpss, + UD_Irdmsr, + UD_Irdpmc, + UD_Irdtsc, + UD_Irdtscp, + UD_Irepne, + UD_Irep, + UD_Iret, + UD_Iretf, + UD_Irsm, + UD_Irsqrtps, + UD_Irsqrtss, + UD_Isahf, + UD_Isalc, + UD_Isar, + UD_Ishl, + UD_Ishr, + UD_Isbb, + UD_Iscasb, + UD_Iscasw, + UD_Iscasd, + UD_Iscasq, + UD_Iseto, + UD_Isetno, + UD_Isetb, + UD_Isetnb, + UD_Isetz, + UD_Isetnz, + UD_Isetbe, + UD_Iseta, + UD_Isets, + UD_Isetns, + UD_Isetp, + UD_Isetnp, + UD_Isetl, + UD_Isetge, + UD_Isetle, + UD_Isetg, + UD_Isfence, + UD_Isgdt, + UD_Ishld, + UD_Ishrd, + UD_Ishufpd, + UD_Ishufps, + UD_Isidt, + UD_Isldt, + UD_Ismsw, + UD_Isqrtps, + UD_Isqrtpd, + UD_Isqrtsd, + UD_Isqrtss, + UD_Istc, + UD_Istd, + UD_Istgi, + UD_Isti, + UD_Iskinit, + UD_Istmxcsr, + UD_Istosb, + UD_Istosw, + UD_Istosd, + UD_Istosq, + UD_Istr, + UD_Isub, + UD_Isubpd, + UD_Isubps, + UD_Isubsd, + UD_Isubss, + UD_Iswapgs, + UD_Isyscall, + UD_Isysenter, + UD_Isysexit, + UD_Isysret, + UD_Itest, + UD_Iucomisd, + UD_Iucomiss, + UD_Iud2, + UD_Iunpckhpd, + UD_Iunpckhps, + UD_Iunpcklps, + UD_Iunpcklpd, + UD_Iverr, + UD_Iverw, + UD_Ivmcall, + UD_Ivmclear, + UD_Ivmxon, + UD_Ivmptrld, + UD_Ivmptrst, + UD_Ivmlaunch, + UD_Ivmresume, + UD_Ivmxoff, + UD_Ivmread, + UD_Ivmwrite, + UD_Ivmrun, + UD_Ivmmcall, + UD_Ivmload, + UD_Ivmsave, + UD_Iwait, + UD_Iwbinvd, + UD_Iwrmsr, + UD_Ixadd, + UD_Ixchg, + UD_Ixlatb, + UD_Ixor, + UD_Ixorpd, + UD_Ixorps, + UD_Ixcryptecb, + UD_Ixcryptcbc, + UD_Ixcryptctr, + UD_Ixcryptcfb, + UD_Ixcryptofb, + UD_Ixsha1, + UD_Ixsha256, + UD_Ixstore +} UD_ATTR_PACKED; +/* itab entry operand definitions */ +#define O_AH { OP_AH, SZ_NA } +#define O_AHr12b { OP_AHr12b, SZ_NA } +#define O_AL { OP_AL, SZ_NA } +#define O_ALr8b { OP_ALr8b, SZ_NA } +#define O_AX { OP_AX, SZ_NA } +#define O_Ap { OP_A, SZ_P } +#define O_BH { OP_BH, SZ_NA } +#define O_BHr15b { OP_BHr15b, SZ_NA } +#define O_BL { OP_BL, SZ_NA } +#define O_BLr11b { OP_BLr11b, SZ_NA } +#define O_BP { OP_BP, SZ_NA } +#define O_BX { OP_BX, SZ_NA } +#define O_C { OP_C, SZ_NA } +#define O_CH { OP_CH, SZ_NA } +#define O_CHr13b { OP_CHr13b, SZ_NA } +#define O_CL { OP_CL, SZ_NA } +#define O_CLr9b { OP_CLr9b, SZ_NA } +#define O_CS { OP_CS, SZ_NA } +#define O_CX { OP_CX, SZ_NA } +#define O_D { OP_D, SZ_NA } +#define O_DH { OP_DH, SZ_NA } +#define O_DHr14b { OP_DHr14b, SZ_NA } +#define O_DI { OP_DI, SZ_NA } +#define O_DL { OP_DL, SZ_NA } +#define O_DLr10b { OP_DLr10b, SZ_NA } +#define O_DS { OP_DS, SZ_NA } +#define O_DX { OP_DX, SZ_NA } +#define O_E { OP_E, SZ_NA } +#define O_ES { OP_ES, SZ_NA } +#define O_Eb { OP_E, SZ_B } +#define O_Ed { OP_E, SZ_D } +#define O_Ep { OP_E, SZ_P } +#define O_Eq { OP_E, SZ_Q } +#define O_Ev { OP_E, SZ_V } +#define O_Ew { OP_E, SZ_W } +#define O_Ex { OP_E, SZ_MDQ } +#define O_Ez { OP_E, SZ_Z } +#define O_FS { OP_FS, SZ_NA } +#define O_G { OP_G, SZ_NA } +#define O_GS { OP_GS, SZ_NA } +#define O_Gb { OP_G, SZ_B } +#define O_Gd { OP_G, SZ_D } +#define O_Gq { OP_G, SZ_Q } +#define O_Gv { OP_G, SZ_V } +#define O_Gvw { OP_G, SZ_MDQ } +#define O_Gw { OP_G, SZ_W } +#define O_Gx { OP_G, SZ_MDQ } +#define O_Gz { OP_G, SZ_Z } +#define O_I1 { OP_I1, SZ_NA } +#define O_I3 { OP_I3, SZ_NA } +#define O_Ib { OP_I, SZ_B } +#define O_Isb { OP_I, SZ_SB } +#define O_Iv { OP_I, SZ_V } +#define O_Iw { OP_I, SZ_W } +#define O_Iz { OP_I, SZ_Z } +#define O_Jb { OP_J, SZ_B } +#define O_Jv { OP_J, SZ_V } +#define O_Jz { OP_J, SZ_Z } +#define O_M { OP_M, SZ_NA } +#define O_Mb { OP_M, SZ_B } +#define O_MbRv { OP_MR, SZ_BV } +#define O_Md { OP_M, SZ_D } +#define O_Mo { OP_M, SZ_O } +#define O_Mq { OP_M, SZ_Q } +#define O_Ms { OP_M, SZ_W } +#define O_Mt { OP_M, SZ_T } +#define O_Mw { OP_M, SZ_W } +#define O_MwRv { OP_MR, SZ_WV } +#define O_NONE { OP_NONE, SZ_NA } +#define O_Ob { OP_O, SZ_B } +#define O_Ov { OP_O, SZ_V } +#define O_Ow { OP_O, SZ_W } +#define O_P { OP_P, SZ_Q } +#define O_PR { OP_PR, SZ_Q } +#define O_Q { OP_Q, SZ_Q } +#define O_R { OP_R, SZ_RDQ } +#define O_S { OP_S, SZ_NA } +#define O_SI { OP_SI, SZ_NA } +#define O_SP { OP_SP, SZ_NA } +#define O_SS { OP_SS, SZ_NA } +#define O_ST0 { OP_ST0, SZ_NA } +#define O_ST1 { OP_ST1, SZ_NA } +#define O_ST2 { OP_ST2, SZ_NA } +#define O_ST3 { OP_ST3, SZ_NA } +#define O_ST4 { OP_ST4, SZ_NA } +#define O_ST5 { OP_ST5, SZ_NA } +#define O_ST6 { OP_ST6, SZ_NA } +#define O_ST7 { OP_ST7, SZ_NA } +#define O_V { OP_V, SZ_O } +#define O_VR { OP_VR, SZ_O } +#define O_W { OP_W, SZ_O } +#define O_eAX { OP_eAX, SZ_NA } +#define O_eBP { OP_eBP, SZ_NA } +#define O_eBX { OP_eBX, SZ_NA } +#define O_eCX { OP_eCX, SZ_NA } +#define O_eDI { OP_eDI, SZ_NA } +#define O_eDX { OP_eDX, SZ_NA } +#define O_eSI { OP_eSI, SZ_NA } +#define O_eSP { OP_eSP, SZ_NA } +#define O_jDP { OP_J, SZ_DP } +#define O_jWP { OP_J, SZ_WP } +#define O_rAX { OP_rAX, SZ_NA } +#define O_rAXr8 { OP_rAXr8, SZ_NA } +#define O_rBP { OP_rBP, SZ_NA } +#define O_rBPr13 { OP_rBPr13, SZ_NA } +#define O_rBX { OP_rBX, SZ_NA } +#define O_rBXr11 { OP_rBXr11, SZ_NA } +#define O_rCX { OP_rCX, SZ_NA } +#define O_rCXr9 { OP_rCXr9, SZ_NA } +#define O_rDI { OP_rDI, SZ_NA } +#define O_rDIr15 { OP_rDIr15, SZ_NA } +#define O_rDX { OP_rDX, SZ_NA } +#define O_rDXr10 { OP_rDXr10, SZ_NA } +#define O_rSI { OP_rSI, SZ_NA } +#define O_rSIr14 { OP_rSIr14, SZ_NA } +#define O_rSP { OP_rSP, SZ_NA } +#define O_rSPr12 { OP_rSPr12, SZ_NA } -extern const char* ud_mnemonics_str[];; -extern struct ud_itab_entry* ud_itab_list[]; -#endif +extern const char * ud_mnemonics_str[]; + +#endif /* UD_ITAB_H */ diff --git a/libr/asm/arch/x86/udis86/syn-att.c b/libr/asm/arch/x86/udis86/syn-att.c index 588878a506..7a7fc7cfc8 100644 --- a/libr/asm/arch/x86/udis86/syn-att.c +++ b/libr/asm/arch/x86/udis86/syn-att.c @@ -1,11 +1,28 @@ -/* ----------------------------------------------------------------------------- - * syn-att.c +/* udis86 - libudis86/syn-att.c * - * Copyright (c) 2004, 2005, 2006 Vivek Mohan - * All rights reserved. See (LICENSE) - * ----------------------------------------------------------------------------- + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - #include "types.h" #include "extern.h" #include "decode.h" @@ -33,7 +50,6 @@ opr_cast(struct ud* u, struct ud_operand* op) static void gen_operand(struct ud* u, struct ud_operand* op) { - int op_f = op->base; switch(op->type) { case UD_OP_REG: mkasm(u, "%%%s", ud_reg_tab[op->base - UD_R_AL]); @@ -48,27 +64,12 @@ gen_operand(struct ud* u, struct ud_operand* op) mkasm(u, "-0x%x", (-op->lval.sbyte) & 0xff); else mkasm(u, "0x%x", op->lval.sbyte); } - else if (op->offset == 16) { - if (op->lval.sbyte < 0) - mkasm(u, "-0x%x", -op->lval.uword); - else if (op->lval.sbyte > 0) - mkasm(u, "%s0x%x", (op_f) ? "+" : "", op->lval.uword); - } else if (op->offset == 32) { - if (u->adr_mode == 64) { - if (op->lval.sdword < 0) - mkasm(u, "-0x%x", -op->lval.sdword); - else if (op->lval.sdword > 0) - mkasm(u, "%s0x%x", (op_f) ? "+" : "", op->lval.sdword); - } else { - if (op->lval.sdword < 0) - mkasm(u, "-0x%lx", -op->lval.udword); - else if (op->lval.sdword > 0) - mkasm(u, "%s0x%lx", (op_f)?"+":"",op->lval.udword); - } - } else if (op->offset == 64) { - // TODO: Implement 64 bit negative offsets + else if (op->offset == 16) + mkasm(u, "0x%x", op->lval.uword); + else if (op->offset == 32) + mkasm(u, "0x%lx", op->lval.udword); + else if (op->offset == 64) mkasm(u, "0x" FMT64 "x", op->lval.uqword); - } if (op->base) mkasm(u, "(%%%s", ud_reg_tab[op->base - UD_R_AL]); @@ -84,15 +85,29 @@ gen_operand(struct ud* u, struct ud_operand* op) mkasm(u, ")"); break; - case UD_OP_IMM: - switch (op->size) { - case 8: mkasm(u, "$0x%x", op->lval.ubyte); break; - case 16: mkasm(u, "$0x%x", op->lval.uword); break; - case 32: mkasm(u, "$0x%lx", op->lval.udword); break; - case 64: mkasm(u, "$0x" FMT64 "x", op->lval.uqword); break; - default: break; - } + case UD_OP_IMM: { + int64_t imm = 0; + uint64_t sext_mask = 0xffffffffffffffffull; + unsigned sext_size = op->size; + + switch (op->size) { + case 8: imm = op->lval.sbyte; break; + case 16: imm = op->lval.sword; break; + case 32: imm = op->lval.sdword; break; + case 64: imm = op->lval.sqword; break; + } + if ( P_SEXT( u->itab_entry->prefix ) ) { + sext_size = u->operand[ 0 ].size; + if ( u->mnemonic == UD_Ipush ) + /* push sign-extends to operand size */ + sext_size = u->opr_mode; + } + if ( sext_size < 64 ) + sext_mask = ( 1ull << sext_size ) - 1; + mkasm( u, "0x" FMT64 "x", imm & sext_mask ); + break; + } case UD_OP_JIMM: switch (op->size) { @@ -100,10 +115,10 @@ gen_operand(struct ud* u, struct ud_operand* op) mkasm(u, "0x" FMT64 "x", u->pc + op->lval.sbyte); break; case 16: - mkasm(u, "0x" FMT64 "x", u->pc + op->lval.sword); + mkasm(u, "0x" FMT64 "x", ( u->pc + op->lval.sword ) & 0xffff ); break; case 32: - mkasm(u, "0x" FMT64 "x", u->pc + op->lval.sdword); + mkasm(u, "0x" FMT64 "x", ( u->pc + op->lval.sdword ) & 0xfffffffful ); break; default:break; } diff --git a/libr/asm/arch/x86/udis86/syn-intel.c b/libr/asm/arch/x86/udis86/syn-intel.c index 633499b55b..5efc0f30d5 100644 --- a/libr/asm/arch/x86/udis86/syn-intel.c +++ b/libr/asm/arch/x86/udis86/syn-intel.c @@ -1,11 +1,28 @@ -/* ----------------------------------------------------------------------------- - * syn-intel.c +/* udis86 - libudis86/syn-intel.c * - * Copyright (c) 2002, 2003, 2004 Vivek Mohan - * All rights reserved. See (LICENSE) - * ----------------------------------------------------------------------------- + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - #include "types.h" #include "extern.h" #include "decode.h" @@ -29,8 +46,6 @@ opr_cast(struct ud* u, struct ud_operand* op) } if (u->br_far) mkasm(u, "far "); - else if (u->br_near) - mkasm(u, "near "); } /* ----------------------------------------------------------------------------- @@ -74,44 +89,51 @@ static void gen_operand(struct ud* u, struct ud_operand* op, int syn_cast) if (op->offset == 8) { if (op->lval.sbyte < 0) mkasm(u, "-0x%x", -op->lval.sbyte); - else if (op->lval.sbyte > 0) - mkasm(u, "%s0x%x", (op_f) ? "+" : "", op->lval.sbyte); - } else if (op->offset == 16) { - if (op->lval.sbyte < 0) - mkasm(u, "-0x%x", -op->lval.uword); - else if (op->lval.sbyte > 0) - mkasm(u, "%s0x%x", (op_f) ? "+" : "", op->lval.uword); - } else if (op->offset == 32) { + else mkasm(u, "%s0x%x", (op_f) ? "+" : "", op->lval.sbyte); + } + else if (op->offset == 16) + mkasm(u, "%s0x%x", (op_f) ? "+" : "", op->lval.uword); + else if (op->offset == 32) { if (u->adr_mode == 64) { if (op->lval.sdword < 0) mkasm(u, "-0x%x", -op->lval.sdword); - else if (op->lval.sdword > 0) - mkasm(u, "%s0x%x", (op_f) ? "+" : "", op->lval.sdword); - } else { - if (op->lval.sdword < 0) - mkasm(u, "-0x%lx", -op->lval.udword); - else if (op->lval.sdword > 0) - mkasm(u, "%s0x%lx", (op_f)?"+":"",op->lval.udword); - } - } else if (op->offset == 64) { - // TODO: Implement 64 bit negative offsets - mkasm(u, "%s0x" FMT64 "x", (op_f) ? "+" : "", op->lval.uqword); + else mkasm(u, "%s0x%x", (op_f) ? "+" : "", op->lval.sdword); + } + else mkasm(u, "%s0x%lx", (op_f) ? "+" : "", op->lval.udword); } + else if (op->offset == 64) + mkasm(u, "%s0x" FMT64 "x", (op_f) ? "+" : "", op->lval.uqword); mkasm(u, "]"); break; } - case UD_OP_IMM: - if (syn_cast) opr_cast(u, op); - switch (op->size) { - case 8: mkasm(u, "0x%x", op->lval.ubyte); break; - case 16: mkasm(u, "0x%x", op->lval.uword); break; - case 32: mkasm(u, "0x%lx", op->lval.udword); break; - case 64: mkasm(u, "0x" FMT64 "x", op->lval.uqword); break; - default: break; - } + case UD_OP_IMM: { + int64_t imm = 0; + uint64_t sext_mask = 0xffffffffffffffffull; + unsigned sext_size = op->size; + + if (syn_cast) + opr_cast(u, op); + switch (op->size) { + case 8: imm = op->lval.sbyte; break; + case 16: imm = op->lval.sword; break; + case 32: imm = op->lval.sdword; break; + case 64: imm = op->lval.sqword; break; + } + if ( P_SEXT( u->itab_entry->prefix ) ) { + sext_size = u->operand[ 0 ].size; + if ( u->mnemonic == UD_Ipush ) + /* push sign-extends to operand size */ + sext_size = u->opr_mode; + } + if ( sext_size < 64 ) + sext_mask = ( 1ull << sext_size ) - 1; + mkasm( u, "0x" FMT64 "x", imm & sext_mask ); + break; + } + case UD_OP_JIMM: if (syn_cast) opr_cast(u, op); @@ -120,10 +142,10 @@ static void gen_operand(struct ud* u, struct ud_operand* op, int syn_cast) mkasm(u, "0x" FMT64 "x", u->pc + op->lval.sbyte); break; case 16: - mkasm(u, "0x" FMT64 "x", u->pc + op->lval.sword); + mkasm(u, "0x" FMT64 "x", ( u->pc + op->lval.sword ) & 0xffff ); break; case 32: - mkasm(u, "0x" FMT64 "x", u->pc + op->lval.sdword); + mkasm(u, "0x" FMT64 "x", ( u->pc + op->lval.sdword ) & 0xfffffffful ); break; default:break; } @@ -187,26 +209,58 @@ extern void ud_translate_intel(struct ud* u) } } + if ( u->pfx_seg && + u->operand[0].type != UD_OP_MEM && + u->operand[1].type != UD_OP_MEM ) { + mkasm(u, "%s ", ud_reg_tab[u->pfx_seg - UD_R_AL]); + } if (u->pfx_lock) mkasm(u, "lock "); if (u->pfx_rep) mkasm(u, "rep "); if (u->pfx_repne) mkasm(u, "repne "); - if (u->implicit_addr && u->pfx_seg) - mkasm(u, "%s ", ud_reg_tab[u->pfx_seg - UD_R_AL]); /* print the instruction mnemonic */ mkasm(u, "%s ", ud_lookup_mnemonic(u->mnemonic)); /* operand 1 */ if (u->operand[0].type != UD_NONE) { - gen_operand(u, &u->operand[0], u->c1); + int cast = 0; + if ( u->operand[0].type == UD_OP_IMM && + u->operand[1].type == UD_NONE ) + cast = u->c1; + if ( u->operand[0].type == UD_OP_MEM ) { + cast = u->c1; + if ( u->operand[1].type == UD_OP_IMM || + u->operand[1].type == UD_OP_CONST ) + cast = 1; + if ( u->operand[1].type == UD_NONE ) + cast = 1; + if ( ( u->operand[0].size != u->operand[1].size ) && u->operand[1].size ) + cast = 1; + } else if ( u->operand[ 0 ].type == UD_OP_JIMM ) { + if ( u->operand[ 0 ].size > 8 ) cast = 1; + } + gen_operand(u, &u->operand[0], cast); } /* operand 2 */ if (u->operand[1].type != UD_NONE) { + int cast = 0; mkasm(u, ", "); - gen_operand(u, &u->operand[1], u->c2); + if ( u->operand[1].type == UD_OP_MEM ) { + cast = u->c1; + + if ( u->operand[0].type != UD_OP_REG ) + cast = 1; + if ( u->operand[0].size != u->operand[1].size && u->operand[1].size ) + cast = 1; + if ( u->operand[0].type == UD_OP_REG && + u->operand[0].base >= UD_R_ES && + u->operand[0].base <= UD_R_GS ) + cast = 0; + } + gen_operand(u, &u->operand[1], cast ); } /* operand 3 */ diff --git a/libr/asm/arch/x86/udis86/syn.c b/libr/asm/arch/x86/udis86/syn.c index 8019a1193d..0d109777bd 100644 --- a/libr/asm/arch/x86/udis86/syn.c +++ b/libr/asm/arch/x86/udis86/syn.c @@ -1,9 +1,27 @@ -/* ----------------------------------------------------------------------------- - * syn.c +/* udis86 - libudis86/syn.c * - * Copyright (c) 2002, 2003, 2004 Vivek Mohan - * All rights reserved. See (LICENSE) - * ----------------------------------------------------------------------------- + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* ----------------------------------------------------------------------------- diff --git a/libr/asm/arch/x86/udis86/syn.h b/libr/asm/arch/x86/udis86/syn.h index 7e6206630c..30ee19165e 100644 --- a/libr/asm/arch/x86/udis86/syn.h +++ b/libr/asm/arch/x86/udis86/syn.h @@ -1,3 +1,28 @@ +/* udis86 - libudis86/syn.h + * + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ /* ----------------------------------------------------------------------------- * syn.h * @@ -8,9 +33,10 @@ #ifndef UD_SYN_H #define UD_SYN_H -#include -#include #include "types.h" +#ifndef __UD_STANDALONE__ +# include +#endif /* __UD_STANDALONE__ */ extern const char* ud_reg_tab[]; diff --git a/libr/asm/arch/x86/udis86/types.h b/libr/asm/arch/x86/udis86/types.h index 46afdc69d3..b5af526746 100644 --- a/libr/asm/arch/x86/udis86/types.h +++ b/libr/asm/arch/x86/udis86/types.h @@ -1,14 +1,49 @@ -/* ----------------------------------------------------------------------------- - * types.h +/* udis86 - libudis86/types.h * - * Copyright (c) 2006, Vivek Mohan - * All rights reserved. See LICENSE - * ----------------------------------------------------------------------------- + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef UD_TYPES_H #define UD_TYPES_H -#include +#ifdef __KERNEL__ + /* -D__KERNEL__ is automatically passed on the command line when + building something as part of the Linux kernel */ +# include +# include +# define __UD_STANDALONE__ 1 +#endif /* __KERNEL__ */ + +#ifndef __UD_STANDALONE__ +# include +#endif /* __UD_STANDALONE__ */ + +/* gcc specific extensions */ +#ifdef __GNUC__ +# define UD_ATTR_PACKED __attribute__((packed)) +#else +# define UD_ATTR_PACKED +#endif /* UD_ATTR_PACKED */ #ifdef _MSC_VER # define FMT64 "%I64" @@ -22,11 +57,11 @@ typedef __int64 int64_t; #else # define FMT64 "%ll" -# include +# ifndef __UD_STANDALONE__ +# include +# endif /* __UD_STANDALONE__ */ #endif -#include "itab.h" - /* ----------------------------------------------------------------------------- * All possible "types" of objects in udis86. Order is Important! * ----------------------------------------------------------------------------- @@ -97,6 +132,8 @@ enum ud_type UD_OP_JIMM, UD_OP_CONST }; +#include "itab.h" + /* ----------------------------------------------------------------------------- * struct ud_operand - Disassembled instruction Operand. * ----------------------------------------------------------------------------- @@ -136,7 +173,9 @@ struct ud int (*inp_hook) (struct ud*); uint8_t inp_curr; uint8_t inp_fill; +#ifndef __UD_STANDALONE__ FILE* inp_file; +#endif uint8_t inp_ctr; uint8_t* inp_buff; uint8_t* inp_buff_end; @@ -173,7 +212,11 @@ struct ud uint8_t c3; uint8_t inp_cache[256]; uint8_t inp_sess[64]; + uint8_t have_modrm; + uint8_t modrm; + void * user_opaque_data; struct ud_itab_entry * itab_entry; + struct ud_lookup_table_list_entry *le; }; /* ----------------------------------------------------------------------------- @@ -192,6 +235,7 @@ typedef struct ud_operand ud_operand_t; #define UD_INP_CACHE_SZ 32 #define UD_VENDOR_AMD 0 #define UD_VENDOR_INTEL 1 +#define UD_VENDOR_ANY 2 #define bail_out(ud,error_code) longjmp( (ud)->bailout, error_code ) #define try_decode(ud) if ( setjmp( (ud)->bailout ) == 0 ) diff --git a/libr/asm/arch/x86/udis86/udis86.c b/libr/asm/arch/x86/udis86/udis86.c index dd1422ffd2..942186344c 100644 --- a/libr/asm/arch/x86/udis86/udis86.c +++ b/libr/asm/arch/x86/udis86/udis86.c @@ -1,18 +1,37 @@ -/* ----------------------------------------------------------------------------- - * udis86.c +/* udis86 - libudis86/udis86.c * - * Copyright (c) 2004, 2005, 2006, Vivek Mohan - * All rights reserved. See LICENSE - * ----------------------------------------------------------------------------- + * Copyright (c) 2002-2009 Vivek Thampi + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include -#include -#include - #include "input.h" #include "extern.h" +#ifndef __UD_STANDALONE__ +# include +# include +#endif /* __UD_STANDALONE__ */ + /* ============================================================================= * ud_init() - Initializes ud_t object. * ============================================================================= @@ -77,6 +96,9 @@ ud_set_vendor(struct ud* u, unsigned v) case UD_VENDOR_INTEL: u->vendor = v; break; + case UD_VENDOR_ANY: + u->vendor = v; + break; default: u->vendor = UD_VENDOR_AMD; } diff --git a/libr/core/Makefile b/libr/core/Makefile index 5e15ce6c1f..8655cc8d83 100644 --- a/libr/core/Makefile +++ b/libr/core/Makefile @@ -2,7 +2,7 @@ NAME=r_core DEPS=r_config r_cons r_line r_io r_cmd r_util r_print r_flags r_asm r_lib DEPS+=r_debug r_hash r_bin r_lang r_io r_anal r_parse r_print r_bp -DEPS+=r_reg r_search r_syscall r_sign r_diff r_vm +DEPS+=r_reg r_search r_syscall r_sign r_diff r_vm r_socket OBJ=core.o cmd.o file.o config.o visual.o io.o yank.o libs.o anal.o project.o gdiff.o asm.o rtr.o diff --git a/libr/socket/socket.c b/libr/socket/socket.c index b99f5d83a6..c3c0d2424d 100644 --- a/libr/socket/socket.c +++ b/libr/socket/socket.c @@ -303,7 +303,7 @@ R_API char *r_socket_to_string(int fd) { #endif } -R_API int socket_udp_connect(const char *host, int port) { +R_API int r_socket_udp_connect(const char *host, int port) { struct sockaddr_in sa; struct hostent *he; int s;