diff --git a/headers/libs/udis86/libudis86/decode.h b/headers/libs/udis86/libudis86/decode.h deleted file mode 100644 index 3949c4e269..0000000000 --- a/headers/libs/udis86/libudis86/decode.h +++ /dev/null @@ -1,197 +0,0 @@ -/* 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 "udint.h" -#include "itab.h" - -#define MAX_INSN_LENGTH 15 - -/* itab prefix bits */ -#define P_none ( 0 ) - -#define P_inv64 ( 1 << 0 ) -#define P_INV64(n) ( ( n >> 0 ) & 1 ) -#define P_def64 ( 1 << 1 ) -#define P_DEF64(n) ( ( n >> 1 ) & 1 ) - -#define P_oso ( 1 << 2 ) -#define P_OSO(n) ( ( n >> 2 ) & 1 ) -#define P_aso ( 1 << 3 ) -#define P_ASO(n) ( ( n >> 3 ) & 1 ) - -#define P_rexb ( 1 << 4 ) -#define P_REXB(n) ( ( n >> 4 ) & 1 ) -#define P_rexw ( 1 << 5 ) -#define P_REXW(n) ( ( n >> 5 ) & 1 ) -#define P_rexr ( 1 << 6 ) -#define P_REXR(n) ( ( n >> 6 ) & 1 ) -#define P_rexx ( 1 << 7 ) -#define P_REXX(n) ( ( n >> 7 ) & 1 ) - -#define P_seg ( 1 << 8 ) -#define P_SEG(n) ( ( n >> 8 ) & 1 ) - -#define P_vexl ( 1 << 9 ) -#define P_VEXL(n) ( ( n >> 9 ) & 1 ) -#define P_vexw ( 1 << 10 ) -#define P_VEXW(n) ( ( n >> 10 ) & 1 ) - -#define P_str ( 1 << 11 ) -#define P_STR(n) ( ( n >> 11 ) & 1 ) -#define P_strz ( 1 << 12 ) -#define P_STR_ZF(n) ( ( n >> 12 ) & 1 ) - -/* operand type constants -- order is important! */ - -enum ud_operand_code { - OP_NONE, - - OP_A, OP_E, OP_M, OP_G, - OP_I, OP_F, - - OP_R0, OP_R1, OP_R2, OP_R3, - OP_R4, OP_R5, OP_R6, OP_R7, - - OP_AL, OP_CL, OP_DL, - OP_AX, OP_CX, OP_DX, - OP_eAX, OP_eCX, OP_eDX, - OP_rAX, OP_rCX, OP_rDX, - - OP_ES, OP_CS, OP_SS, OP_DS, - OP_FS, OP_GS, - - OP_ST0, OP_ST1, OP_ST2, OP_ST3, - OP_ST4, OP_ST5, OP_ST6, OP_ST7, - - OP_J, OP_S, OP_O, - OP_I1, OP_I3, OP_sI, - - OP_V, OP_W, OP_Q, OP_P, - OP_U, OP_N, OP_MU, OP_H, - OP_L, - - OP_R, OP_C, OP_D, - - OP_MR -} UD_ATTR_PACKED; - - -/* - * Operand size constants - * - * Symbolic constants for various operand sizes. Some of these constants - * are given a value equal to the width of the data (SZ_B == 8), such - * that they maybe used interchangeably in the internals. Modifying them - * will most certainly break things! - */ -typedef uint16_t ud_operand_size_t; - -#define SZ_NA 0 -#define SZ_Z 1 -#define SZ_V 2 -#define SZ_Y 3 -#define SZ_X 4 -#define SZ_RDQ 7 -#define SZ_B 8 -#define SZ_W 16 -#define SZ_D 32 -#define SZ_Q 64 -#define SZ_T 80 -#define SZ_O 12 -#define SZ_DQ 128 /* double quad */ -#define SZ_QQ 256 /* quad quad */ - -/* - * Complex size types; that encode sizes for operands of type MR (memory or - * register); for internal use only. Id space above 256. - */ -#define SZ_BD ((SZ_B << 8) | SZ_D) -#define SZ_BV ((SZ_B << 8) | SZ_V) -#define SZ_WD ((SZ_W << 8) | SZ_D) -#define SZ_WV ((SZ_W << 8) | SZ_V) -#define SZ_WY ((SZ_W << 8) | SZ_Y) -#define SZ_DY ((SZ_D << 8) | SZ_Y) -#define SZ_WO ((SZ_W << 8) | SZ_O) -#define SZ_DO ((SZ_D << 8) | SZ_O) -#define SZ_QO ((SZ_Q << 8) | SZ_O) - - -/* resolve complex size type. - */ -static UD_INLINE ud_operand_size_t -Mx_mem_size(ud_operand_size_t size) -{ - return (size >> 8) & 0xff; -} - -static UD_INLINE ud_operand_size_t -Mx_reg_size(ud_operand_size_t size) -{ - return size & 0xff; -} - -/* A single operand of an entry in the instruction table. - * (internal use only) - */ -struct ud_itab_entry_operand -{ - enum ud_operand_code type; - ud_operand_size_t size; -}; - - -/* A single entry in an instruction table. - *(internal use only) - */ -struct ud_itab_entry -{ - enum ud_mnemonic_code mnemonic; - struct ud_itab_entry_operand operand1; - struct ud_itab_entry_operand operand2; - struct ud_itab_entry_operand operand3; - struct ud_itab_entry_operand operand4; - uint32_t prefix; -}; - -struct ud_lookup_table_list_entry { - const uint16_t *table; - enum ud_table_type type; - const char *meta; -}; - -extern struct ud_itab_entry ud_itab[]; -extern struct ud_lookup_table_list_entry ud_lookup_table_list[]; - -#endif /* UD_DECODE_H */ - -/* vim:cindent - * vim:expandtab - * vim:ts=4 - * vim:sw=4 - */ diff --git a/headers/libs/udis86/libudis86/extern.h b/headers/libs/udis86/libudis86/extern.h deleted file mode 100644 index 71a01fd9b4..0000000000 --- a/headers/libs/udis86/libudis86/extern.h +++ /dev/null @@ -1,113 +0,0 @@ -/* udis86 - libudis86/extern.h - * - * Copyright (c) 2002-2009, 2013 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 - -#ifdef __cplusplus -extern "C" { -#endif - -#include "types.h" - -#if defined(_MSC_VER) && defined(_USRDLL) -# ifdef LIBUDIS86_EXPORTS -# define LIBUDIS86_DLLEXTERN __declspec(dllexport) -# else -# define LIBUDIS86_DLLEXTERN __declspec(dllimport) -# endif -#else -# define LIBUDIS86_DLLEXTERN -#endif - -/* ============================= PUBLIC API ================================= */ - -extern LIBUDIS86_DLLEXTERN void ud_init(struct ud*); - -extern LIBUDIS86_DLLEXTERN void ud_set_mode(struct ud*, uint8_t); - -extern LIBUDIS86_DLLEXTERN void ud_set_pc(struct ud*, uint64_t); - -extern LIBUDIS86_DLLEXTERN void ud_set_input_hook(struct ud*, int (*)(struct ud*)); - -extern LIBUDIS86_DLLEXTERN void ud_set_input_buffer(struct ud*, const uint8_t*, size_t); - -#ifndef __UD_STANDALONE__ -extern LIBUDIS86_DLLEXTERN void ud_set_input_file(struct ud*, FILE*); -#endif /* __UD_STANDALONE__ */ - -extern LIBUDIS86_DLLEXTERN void ud_set_vendor(struct ud*, unsigned); - -extern LIBUDIS86_DLLEXTERN void ud_set_syntax(struct ud*, void (*)(struct ud*)); - -extern LIBUDIS86_DLLEXTERN void ud_input_skip(struct ud*, size_t); - -extern LIBUDIS86_DLLEXTERN int ud_input_end(const struct ud*); - -extern LIBUDIS86_DLLEXTERN unsigned int ud_decode(struct ud*); - -extern LIBUDIS86_DLLEXTERN unsigned int ud_disassemble(struct ud*); - -extern LIBUDIS86_DLLEXTERN void ud_translate_intel(struct ud*); - -extern LIBUDIS86_DLLEXTERN void ud_translate_att(struct ud*); - -extern LIBUDIS86_DLLEXTERN const char* ud_insn_asm(const struct ud* u); - -extern LIBUDIS86_DLLEXTERN const uint8_t* ud_insn_ptr(const struct ud* u); - -extern LIBUDIS86_DLLEXTERN uint64_t ud_insn_off(const struct ud*); - -extern LIBUDIS86_DLLEXTERN const char* ud_insn_hex(struct ud*); - -extern LIBUDIS86_DLLEXTERN unsigned int ud_insn_len(const struct ud* u); - -extern LIBUDIS86_DLLEXTERN const struct ud_operand* ud_insn_opr(const struct ud *u, unsigned int n); - -extern LIBUDIS86_DLLEXTERN int ud_opr_is_sreg(const struct ud_operand *opr); - -extern LIBUDIS86_DLLEXTERN int ud_opr_is_gpr(const struct ud_operand *opr); - -extern LIBUDIS86_DLLEXTERN enum ud_mnemonic_code ud_insn_mnemonic(const struct ud *u); - -extern LIBUDIS86_DLLEXTERN const char* ud_lookup_mnemonic(enum ud_mnemonic_code c); - -extern LIBUDIS86_DLLEXTERN void ud_set_user_opaque_data(struct ud*, void*); - -extern LIBUDIS86_DLLEXTERN void* ud_get_user_opaque_data(const struct ud*); - -extern LIBUDIS86_DLLEXTERN void ud_set_asm_buffer(struct ud *u, char *buf, size_t size); - -extern LIBUDIS86_DLLEXTERN void ud_set_sym_resolver(struct ud *u, - const char* (*resolver)(struct ud*, - uint64_t addr, - int64_t *offset)); - -/* ========================================================================== */ - -#ifdef __cplusplus -} -#endif -#endif /* UD_EXTERN_H */ diff --git a/headers/libs/udis86/libudis86/input.h b/headers/libs/udis86/libudis86/input.h deleted file mode 100644 index 217e768e36..0000000000 --- a/headers/libs/udis86/libudis86/input.h +++ /dev/null @@ -1,49 +0,0 @@ -/* ----------------------------------------------------------------------------- - * input.h - * - * Copyright (c) 2006, Vivek Mohan - * All rights reserved. See LICENSE - * ----------------------------------------------------------------------------- - */ -#ifndef UD_INPUT_H -#define UD_INPUT_H - -#include "types.h" - -uint8_t inp_next(struct ud*); -uint8_t inp_peek(struct ud*); -uint8_t inp_uint8(struct ud*); -uint16_t inp_uint16(struct ud*); -uint32_t inp_uint32(struct ud*); -uint64_t inp_uint64(struct ud*); -void inp_move(struct ud*, size_t); -void inp_back(struct ud*); - -/* inp_init() - Initializes the input system. */ -#define inp_init(u) \ -do { \ - u->inp_curr = 0; \ - u->inp_fill = 0; \ - u->inp_ctr = 0; \ - u->inp_end = 0; \ -} while (0) - -/* inp_start() - Should be called before each de-code operation. */ -#define inp_start(u) u->inp_ctr = 0 - -/* inp_back() - Resets the current pointer to its position before the current - * instruction disassembly was started. - */ -#define inp_reset(u) \ -do { \ - u->inp_curr -= u->inp_ctr; \ - u->inp_ctr = 0; \ -} while (0) - -/* inp_sess() - Returns the pointer to current session. */ -#define inp_sess(u) (u->inp_sess) - -/* inp_cur() - Returns the current input byte. */ -#define inp_curr(u) ((u)->inp_cache[(u)->inp_curr]) - -#endif diff --git a/headers/libs/udis86/libudis86/itab.h b/headers/libs/udis86/libudis86/itab.h deleted file mode 100644 index ee6dcff56a..0000000000 --- a/headers/libs/udis86/libudis86/itab.h +++ /dev/null @@ -1,941 +0,0 @@ -#ifndef UD_ITAB_H -#define UD_ITAB_H - -/* itab.h -- generated by udis86:scripts/ud_itab.py, do no edit */ - -/* ud_table_type -- lookup table types (see decode.c) */ -enum ud_table_type { - UD_TAB__OPC_VEX, - UD_TAB__OPC_TABLE, - UD_TAB__OPC_X87, - UD_TAB__OPC_MOD, - UD_TAB__OPC_RM, - UD_TAB__OPC_OSIZE, - UD_TAB__OPC_MODE, - UD_TAB__OPC_VEX_L, - UD_TAB__OPC_3DNOW, - UD_TAB__OPC_REG, - UD_TAB__OPC_ASIZE, - UD_TAB__OPC_VEX_W, - UD_TAB__OPC_SSE, - UD_TAB__OPC_VENDOR -}; - -/* ud_mnemonic -- mnemonic constants */ -enum ud_mnemonic_code { - 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_Iaesdec, - UD_Iaesdeclast, - UD_Iaesenc, - UD_Iaesenclast, - UD_Iaesimc, - UD_Iaeskeygenassist, - UD_Iand, - UD_Iandnpd, - UD_Iandnps, - UD_Iandpd, - UD_Iandps, - UD_Iarpl, - UD_Iblendpd, - UD_Iblendps, - UD_Iblendvpd, - UD_Iblendvps, - UD_Ibound, - UD_Ibsf, - UD_Ibsr, - UD_Ibswap, - UD_Ibt, - UD_Ibtc, - UD_Ibtr, - UD_Ibts, - UD_Icall, - UD_Icbw, - UD_Icdq, - UD_Icdqe, - UD_Iclac, - UD_Iclc, - UD_Icld, - UD_Iclflush, - UD_Iclgi, - UD_Icli, - UD_Iclts, - UD_Icmc, - UD_Icmova, - UD_Icmovae, - UD_Icmovb, - UD_Icmovbe, - UD_Icmovg, - UD_Icmovge, - UD_Icmovl, - UD_Icmovle, - UD_Icmovno, - UD_Icmovnp, - UD_Icmovns, - UD_Icmovnz, - UD_Icmovo, - UD_Icmovp, - UD_Icmovs, - UD_Icmovz, - UD_Icmp, - UD_Icmppd, - UD_Icmpps, - UD_Icmpsb, - UD_Icmpsd, - UD_Icmpsq, - UD_Icmpss, - UD_Icmpsw, - UD_Icmpxchg, - UD_Icmpxchg16b, - UD_Icmpxchg8b, - UD_Icomisd, - UD_Icomiss, - UD_Icpuid, - UD_Icqo, - UD_Icrc32, - UD_Icvtdq2pd, - UD_Icvtdq2ps, - UD_Icvtpd2dq, - UD_Icvtpd2pi, - UD_Icvtpd2ps, - UD_Icvtpi2pd, - UD_Icvtpi2ps, - UD_Icvtps2dq, - UD_Icvtps2pd, - UD_Icvtps2pi, - UD_Icvtsd2si, - UD_Icvtsd2ss, - UD_Icvtsi2sd, - UD_Icvtsi2ss, - UD_Icvtss2sd, - UD_Icvtss2si, - UD_Icvttpd2dq, - UD_Icvttpd2pi, - UD_Icvttps2dq, - UD_Icvttps2pi, - UD_Icvttsd2si, - UD_Icvttss2si, - UD_Icwd, - UD_Icwde, - UD_Idaa, - UD_Idas, - UD_Idec, - UD_Idiv, - UD_Idivpd, - UD_Idivps, - UD_Idivsd, - UD_Idivss, - UD_Idppd, - UD_Idpps, - UD_Iemms, - UD_Ienter, - UD_Iextractps, - UD_If2xm1, - UD_Ifabs, - UD_Ifadd, - UD_Ifaddp, - UD_Ifbld, - UD_Ifbstp, - UD_Ifchs, - UD_Ifclex, - UD_Ifcmovb, - UD_Ifcmovbe, - UD_Ifcmove, - UD_Ifcmovnb, - UD_Ifcmovnbe, - UD_Ifcmovne, - UD_Ifcmovnu, - UD_Ifcmovu, - UD_Ifcom, - UD_Ifcom2, - UD_Ifcomi, - UD_Ifcomip, - UD_Ifcomp, - UD_Ifcomp3, - UD_Ifcomp5, - UD_Ifcompp, - UD_Ifcos, - UD_Ifdecstp, - UD_Ifdiv, - UD_Ifdivp, - UD_Ifdivr, - UD_Ifdivrp, - UD_Ifemms, - UD_Iffree, - UD_Iffreep, - UD_Ifiadd, - UD_Ificom, - UD_Ificomp, - UD_Ifidiv, - UD_Ifidivr, - UD_Ifild, - UD_Ifimul, - UD_Ifincstp, - UD_Ifist, - UD_Ifistp, - UD_Ifisttp, - UD_Ifisub, - UD_Ifisubr, - UD_Ifld, - UD_Ifld1, - UD_Ifldcw, - UD_Ifldenv, - UD_Ifldl2e, - UD_Ifldl2t, - UD_Ifldlg2, - UD_Ifldln2, - UD_Ifldpi, - UD_Ifldz, - UD_Ifmul, - UD_Ifmulp, - UD_Ifndisi, - UD_Ifneni, - UD_Ifninit, - UD_Ifnop, - UD_Ifnsave, - UD_Ifnsetpm, - UD_Ifnstcw, - UD_Ifnstenv, - UD_Ifnstsw, - UD_Ifpatan, - UD_Ifprem, - UD_Ifprem1, - UD_Ifptan, - UD_Ifrndint, - UD_Ifrstor, - UD_Ifrstpm, - UD_Ifscale, - UD_Ifsin, - UD_Ifsincos, - UD_Ifsqrt, - UD_Ifst, - UD_Ifstp, - UD_Ifstp1, - UD_Ifstp8, - UD_Ifstp9, - UD_Ifsub, - UD_Ifsubp, - UD_Ifsubr, - UD_Ifsubrp, - UD_Iftst, - UD_Ifucom, - UD_Ifucomi, - UD_Ifucomip, - UD_Ifucomp, - UD_Ifucompp, - UD_Ifxam, - UD_Ifxch, - UD_Ifxch4, - UD_Ifxch7, - UD_Ifxrstor, - UD_Ifxsave, - UD_Ifxtract, - UD_Ifyl2x, - UD_Ifyl2xp1, - UD_Igetsec, - UD_Ihaddpd, - UD_Ihaddps, - UD_Ihlt, - UD_Ihsubpd, - UD_Ihsubps, - UD_Iidiv, - UD_Iimul, - UD_Iin, - UD_Iinc, - UD_Iinsb, - UD_Iinsd, - UD_Iinsertps, - UD_Iinsw, - UD_Iint, - UD_Iint1, - UD_Iint3, - UD_Iinto, - UD_Iinvd, - UD_Iinvept, - UD_Iinvlpg, - UD_Iinvlpga, - UD_Iinvvpid, - UD_Iiretd, - UD_Iiretq, - UD_Iiretw, - UD_Ija, - UD_Ijae, - UD_Ijb, - UD_Ijbe, - UD_Ijcxz, - UD_Ijecxz, - UD_Ijg, - UD_Ijge, - UD_Ijl, - UD_Ijle, - UD_Ijmp, - UD_Ijno, - UD_Ijnp, - UD_Ijns, - UD_Ijnz, - UD_Ijo, - UD_Ijp, - UD_Ijrcxz, - UD_Ijs, - UD_Ijz, - UD_Ilahf, - UD_Ilar, - UD_Ilddqu, - UD_Ildmxcsr, - UD_Ilds, - UD_Ilea, - UD_Ileave, - UD_Iles, - UD_Ilfence, - UD_Ilfs, - UD_Ilgdt, - UD_Ilgs, - UD_Ilidt, - UD_Illdt, - UD_Ilmsw, - UD_Ilock, - UD_Ilodsb, - UD_Ilodsd, - UD_Ilodsq, - UD_Ilodsw, - UD_Iloop, - UD_Iloope, - UD_Iloopne, - UD_Ilsl, - UD_Ilss, - UD_Iltr, - UD_Imaskmovdqu, - 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_Imovbe, - UD_Imovd, - UD_Imovddup, - UD_Imovdq2q, - UD_Imovdqa, - UD_Imovdqu, - UD_Imovhlps, - UD_Imovhpd, - UD_Imovhps, - UD_Imovlhps, - UD_Imovlpd, - UD_Imovlps, - UD_Imovmskpd, - UD_Imovmskps, - UD_Imovntdq, - UD_Imovntdqa, - UD_Imovnti, - UD_Imovntpd, - UD_Imovntps, - UD_Imovntq, - UD_Imovq, - UD_Imovq2dq, - UD_Imovsb, - UD_Imovsd, - UD_Imovshdup, - UD_Imovsldup, - UD_Imovsq, - UD_Imovss, - UD_Imovsw, - UD_Imovsx, - UD_Imovsxd, - UD_Imovupd, - UD_Imovups, - UD_Imovzx, - UD_Impsadbw, - 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_Ioutsd, - UD_Ioutsw, - UD_Ipabsb, - UD_Ipabsd, - UD_Ipabsw, - UD_Ipackssdw, - UD_Ipacksswb, - UD_Ipackusdw, - UD_Ipackuswb, - UD_Ipaddb, - UD_Ipaddd, - UD_Ipaddq, - UD_Ipaddsb, - UD_Ipaddsw, - UD_Ipaddusb, - UD_Ipaddusw, - UD_Ipaddw, - UD_Ipalignr, - UD_Ipand, - UD_Ipandn, - UD_Ipavgb, - UD_Ipavgusb, - UD_Ipavgw, - UD_Ipblendvb, - UD_Ipblendw, - UD_Ipclmulqdq, - UD_Ipcmpeqb, - UD_Ipcmpeqd, - UD_Ipcmpeqq, - UD_Ipcmpeqw, - UD_Ipcmpestri, - UD_Ipcmpestrm, - UD_Ipcmpgtb, - UD_Ipcmpgtd, - UD_Ipcmpgtq, - UD_Ipcmpgtw, - UD_Ipcmpistri, - UD_Ipcmpistrm, - UD_Ipextrb, - UD_Ipextrd, - UD_Ipextrq, - UD_Ipextrw, - UD_Ipf2id, - UD_Ipf2iw, - UD_Ipfacc, - UD_Ipfadd, - UD_Ipfcmpeq, - UD_Ipfcmpge, - UD_Ipfcmpgt, - UD_Ipfmax, - UD_Ipfmin, - UD_Ipfmul, - UD_Ipfnacc, - UD_Ipfpnacc, - UD_Ipfrcp, - UD_Ipfrcpit1, - UD_Ipfrcpit2, - UD_Ipfrsqit1, - UD_Ipfrsqrt, - UD_Ipfsub, - UD_Ipfsubr, - UD_Iphaddd, - UD_Iphaddsw, - UD_Iphaddw, - UD_Iphminposuw, - UD_Iphsubd, - UD_Iphsubsw, - UD_Iphsubw, - UD_Ipi2fd, - UD_Ipi2fw, - UD_Ipinsrb, - UD_Ipinsrd, - UD_Ipinsrq, - UD_Ipinsrw, - UD_Ipmaddubsw, - UD_Ipmaddwd, - UD_Ipmaxsb, - UD_Ipmaxsd, - UD_Ipmaxsw, - UD_Ipmaxub, - UD_Ipmaxud, - UD_Ipmaxuw, - UD_Ipminsb, - UD_Ipminsd, - UD_Ipminsw, - UD_Ipminub, - UD_Ipminud, - UD_Ipminuw, - UD_Ipmovmskb, - UD_Ipmovsxbd, - UD_Ipmovsxbq, - UD_Ipmovsxbw, - UD_Ipmovsxdq, - UD_Ipmovsxwd, - UD_Ipmovsxwq, - UD_Ipmovzxbd, - UD_Ipmovzxbq, - UD_Ipmovzxbw, - UD_Ipmovzxdq, - UD_Ipmovzxwd, - UD_Ipmovzxwq, - UD_Ipmuldq, - UD_Ipmulhrsw, - UD_Ipmulhrw, - UD_Ipmulhuw, - UD_Ipmulhw, - UD_Ipmulld, - UD_Ipmullw, - UD_Ipmuludq, - UD_Ipop, - UD_Ipopa, - UD_Ipopad, - UD_Ipopcnt, - UD_Ipopfd, - UD_Ipopfq, - UD_Ipopfw, - UD_Ipor, - UD_Iprefetch, - UD_Iprefetchnta, - UD_Iprefetcht0, - UD_Iprefetcht1, - UD_Iprefetcht2, - UD_Ipsadbw, - UD_Ipshufb, - UD_Ipshufd, - UD_Ipshufhw, - UD_Ipshuflw, - UD_Ipshufw, - UD_Ipsignb, - UD_Ipsignd, - UD_Ipsignw, - UD_Ipslld, - UD_Ipslldq, - UD_Ipsllq, - UD_Ipsllw, - UD_Ipsrad, - UD_Ipsraw, - UD_Ipsrld, - UD_Ipsrldq, - UD_Ipsrlq, - UD_Ipsrlw, - UD_Ipsubb, - UD_Ipsubd, - UD_Ipsubq, - UD_Ipsubsb, - UD_Ipsubsw, - UD_Ipsubusb, - UD_Ipsubusw, - UD_Ipsubw, - UD_Ipswapd, - UD_Iptest, - UD_Ipunpckhbw, - UD_Ipunpckhdq, - UD_Ipunpckhqdq, - UD_Ipunpckhwd, - UD_Ipunpcklbw, - UD_Ipunpckldq, - UD_Ipunpcklqdq, - UD_Ipunpcklwd, - UD_Ipush, - UD_Ipusha, - UD_Ipushad, - UD_Ipushfd, - UD_Ipushfq, - UD_Ipushfw, - UD_Ipxor, - UD_Ircl, - UD_Ircpps, - UD_Ircpss, - UD_Ircr, - UD_Irdmsr, - UD_Irdpmc, - UD_Irdrand, - UD_Irdtsc, - UD_Irdtscp, - UD_Irep, - UD_Irepne, - UD_Iret, - UD_Iretf, - UD_Irol, - UD_Iror, - UD_Iroundpd, - UD_Iroundps, - UD_Iroundsd, - UD_Iroundss, - UD_Irsm, - UD_Irsqrtps, - UD_Irsqrtss, - UD_Isahf, - UD_Isalc, - UD_Isar, - UD_Isbb, - UD_Iscasb, - UD_Iscasd, - UD_Iscasq, - UD_Iscasw, - UD_Iseta, - UD_Isetae, - UD_Isetb, - UD_Isetbe, - UD_Isetg, - UD_Isetge, - UD_Isetl, - UD_Isetle, - UD_Isetno, - UD_Isetnp, - UD_Isetns, - UD_Isetnz, - UD_Iseto, - UD_Isetp, - UD_Isets, - UD_Isetz, - UD_Isfence, - UD_Isgdt, - UD_Ishl, - UD_Ishld, - UD_Ishr, - UD_Ishrd, - UD_Ishufpd, - UD_Ishufps, - UD_Isidt, - UD_Iskinit, - UD_Isldt, - UD_Ismsw, - UD_Isqrtpd, - UD_Isqrtps, - UD_Isqrtsd, - UD_Isqrtss, - UD_Istac, - UD_Istc, - UD_Istd, - UD_Istgi, - UD_Isti, - UD_Istmxcsr, - UD_Istosb, - UD_Istosd, - UD_Istosq, - UD_Istosw, - 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_Iunpcklpd, - UD_Iunpcklps, - UD_Ivaddpd, - UD_Ivaddps, - UD_Ivaddsd, - UD_Ivaddss, - UD_Ivaddsubpd, - UD_Ivaddsubps, - UD_Ivaesdec, - UD_Ivaesdeclast, - UD_Ivaesenc, - UD_Ivaesenclast, - UD_Ivaesimc, - UD_Ivaeskeygenassist, - UD_Ivandnpd, - UD_Ivandnps, - UD_Ivandpd, - UD_Ivandps, - UD_Ivblendpd, - UD_Ivblendps, - UD_Ivblendvpd, - UD_Ivblendvps, - UD_Ivbroadcastsd, - UD_Ivbroadcastss, - UD_Ivcmppd, - UD_Ivcmpps, - UD_Ivcmpsd, - UD_Ivcmpss, - UD_Ivcomisd, - UD_Ivcomiss, - UD_Ivcvtdq2pd, - UD_Ivcvtdq2ps, - UD_Ivcvtpd2dq, - UD_Ivcvtpd2ps, - UD_Ivcvtps2dq, - UD_Ivcvtps2pd, - UD_Ivcvtsd2si, - UD_Ivcvtsd2ss, - UD_Ivcvtsi2sd, - UD_Ivcvtsi2ss, - UD_Ivcvtss2sd, - UD_Ivcvtss2si, - UD_Ivcvttpd2dq, - UD_Ivcvttps2dq, - UD_Ivcvttsd2si, - UD_Ivcvttss2si, - UD_Ivdivpd, - UD_Ivdivps, - UD_Ivdivsd, - UD_Ivdivss, - UD_Ivdppd, - UD_Ivdpps, - UD_Iverr, - UD_Iverw, - UD_Ivextractf128, - UD_Ivextractps, - UD_Ivhaddpd, - UD_Ivhaddps, - UD_Ivhsubpd, - UD_Ivhsubps, - UD_Ivinsertf128, - UD_Ivinsertps, - UD_Ivlddqu, - UD_Ivmaskmovdqu, - UD_Ivmaskmovpd, - UD_Ivmaskmovps, - UD_Ivmaxpd, - UD_Ivmaxps, - UD_Ivmaxsd, - UD_Ivmaxss, - UD_Ivmcall, - UD_Ivmclear, - UD_Ivminpd, - UD_Ivminps, - UD_Ivminsd, - UD_Ivminss, - UD_Ivmlaunch, - UD_Ivmload, - UD_Ivmmcall, - UD_Ivmovapd, - UD_Ivmovaps, - UD_Ivmovd, - UD_Ivmovddup, - UD_Ivmovdqa, - UD_Ivmovdqu, - UD_Ivmovhlps, - UD_Ivmovhpd, - UD_Ivmovhps, - UD_Ivmovlhps, - UD_Ivmovlpd, - UD_Ivmovlps, - UD_Ivmovmskpd, - UD_Ivmovmskps, - UD_Ivmovntdq, - UD_Ivmovntdqa, - UD_Ivmovntpd, - UD_Ivmovntps, - UD_Ivmovq, - UD_Ivmovsd, - UD_Ivmovshdup, - UD_Ivmovsldup, - UD_Ivmovss, - UD_Ivmovupd, - UD_Ivmovups, - UD_Ivmpsadbw, - UD_Ivmptrld, - UD_Ivmptrst, - UD_Ivmread, - UD_Ivmresume, - UD_Ivmrun, - UD_Ivmsave, - UD_Ivmulpd, - UD_Ivmulps, - UD_Ivmulsd, - UD_Ivmulss, - UD_Ivmwrite, - UD_Ivmxoff, - UD_Ivmxon, - UD_Ivorpd, - UD_Ivorps, - UD_Ivpabsb, - UD_Ivpabsd, - UD_Ivpabsw, - UD_Ivpackssdw, - UD_Ivpacksswb, - UD_Ivpackusdw, - UD_Ivpackuswb, - UD_Ivpaddb, - UD_Ivpaddd, - UD_Ivpaddq, - UD_Ivpaddsb, - UD_Ivpaddsw, - UD_Ivpaddusb, - UD_Ivpaddusw, - UD_Ivpaddw, - UD_Ivpalignr, - UD_Ivpand, - UD_Ivpandn, - UD_Ivpavgb, - UD_Ivpavgw, - UD_Ivpblendvb, - UD_Ivpblendw, - UD_Ivpclmulqdq, - UD_Ivpcmpeqb, - UD_Ivpcmpeqd, - UD_Ivpcmpeqq, - UD_Ivpcmpeqw, - UD_Ivpcmpestri, - UD_Ivpcmpestrm, - UD_Ivpcmpgtb, - UD_Ivpcmpgtd, - UD_Ivpcmpgtq, - UD_Ivpcmpgtw, - UD_Ivpcmpistri, - UD_Ivpcmpistrm, - UD_Ivperm2f128, - UD_Ivpermilpd, - UD_Ivpermilps, - UD_Ivpextrb, - UD_Ivpextrd, - UD_Ivpextrq, - UD_Ivpextrw, - UD_Ivphaddd, - UD_Ivphaddsw, - UD_Ivphaddw, - UD_Ivphminposuw, - UD_Ivphsubd, - UD_Ivphsubsw, - UD_Ivphsubw, - UD_Ivpinsrb, - UD_Ivpinsrd, - UD_Ivpinsrq, - UD_Ivpinsrw, - UD_Ivpmaddubsw, - UD_Ivpmaddwd, - UD_Ivpmaxsb, - UD_Ivpmaxsd, - UD_Ivpmaxsw, - UD_Ivpmaxub, - UD_Ivpmaxud, - UD_Ivpmaxuw, - UD_Ivpminsb, - UD_Ivpminsd, - UD_Ivpminsw, - UD_Ivpminub, - UD_Ivpminud, - UD_Ivpminuw, - UD_Ivpmovmskb, - UD_Ivpmovsxbd, - UD_Ivpmovsxbq, - UD_Ivpmovsxbw, - UD_Ivpmovsxwd, - UD_Ivpmovsxwq, - UD_Ivpmovzxbd, - UD_Ivpmovzxbq, - UD_Ivpmovzxbw, - UD_Ivpmovzxdq, - UD_Ivpmovzxwd, - UD_Ivpmovzxwq, - UD_Ivpmuldq, - UD_Ivpmulhrsw, - UD_Ivpmulhuw, - UD_Ivpmulhw, - UD_Ivpmulld, - UD_Ivpmullw, - UD_Ivpor, - UD_Ivpsadbw, - UD_Ivpshufb, - UD_Ivpshufd, - UD_Ivpshufhw, - UD_Ivpshuflw, - UD_Ivpsignb, - UD_Ivpsignd, - UD_Ivpsignw, - UD_Ivpslld, - UD_Ivpslldq, - UD_Ivpsllq, - UD_Ivpsllw, - UD_Ivpsrad, - UD_Ivpsraw, - UD_Ivpsrld, - UD_Ivpsrldq, - UD_Ivpsrlq, - UD_Ivpsrlw, - UD_Ivpsubb, - UD_Ivpsubd, - UD_Ivpsubq, - UD_Ivpsubsb, - UD_Ivpsubsw, - UD_Ivpsubusb, - UD_Ivpsubusw, - UD_Ivpsubw, - UD_Ivptest, - UD_Ivpunpckhbw, - UD_Ivpunpckhdq, - UD_Ivpunpckhqdq, - UD_Ivpunpckhwd, - UD_Ivpunpcklbw, - UD_Ivpunpckldq, - UD_Ivpunpcklqdq, - UD_Ivpunpcklwd, - UD_Ivpxor, - UD_Ivrcpps, - UD_Ivrcpss, - UD_Ivroundpd, - UD_Ivroundps, - UD_Ivroundsd, - UD_Ivroundss, - UD_Ivrsqrtps, - UD_Ivrsqrtss, - UD_Ivshufpd, - UD_Ivshufps, - UD_Ivsqrtpd, - UD_Ivsqrtps, - UD_Ivsqrtsd, - UD_Ivsqrtss, - UD_Ivstmxcsr, - UD_Ivsubpd, - UD_Ivsubps, - UD_Ivsubsd, - UD_Ivsubss, - UD_Ivtestpd, - UD_Ivtestps, - UD_Ivucomisd, - UD_Ivucomiss, - UD_Ivunpckhpd, - UD_Ivunpckhps, - UD_Ivunpcklpd, - UD_Ivunpcklps, - UD_Ivxorpd, - UD_Ivxorps, - UD_Ivzeroall, - UD_Ivzeroupper, - UD_Iwait, - UD_Iwbinvd, - UD_Iwrmsr, - UD_Ixadd, - UD_Ixchg, - UD_Ixcryptcbc, - UD_Ixcryptcfb, - UD_Ixcryptctr, - UD_Ixcryptecb, - UD_Ixcryptofb, - UD_Ixgetbv, - UD_Ixlatb, - UD_Ixor, - UD_Ixorpd, - UD_Ixorps, - UD_Ixrstor, - UD_Ixsave, - UD_Ixsetbv, - UD_Ixsha1, - UD_Ixsha256, - UD_Ixstore, - UD_Iinvalid, - UD_I3dnow, - UD_Inone, - UD_Idb, - UD_Ipause, - UD_MAX_MNEMONIC_CODE -}; - -extern const char * ud_mnemonics_str[]; - -#endif /* UD_ITAB_H */ diff --git a/headers/libs/udis86/libudis86/syn.h b/headers/libs/udis86/libudis86/syn.h deleted file mode 100644 index d3b1e3fe04..0000000000 --- a/headers/libs/udis86/libudis86/syn.h +++ /dev/null @@ -1,53 +0,0 @@ -/* udis86 - libudis86/syn.h - * - * Copyright (c) 2002-2009 - * 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_SYN_H -#define UD_SYN_H - -#include "types.h" -#ifndef __UD_STANDALONE__ -# include -#endif /* __UD_STANDALONE__ */ - -extern const char* ud_reg_tab[]; - -uint64_t ud_syn_rel_target(struct ud*, struct ud_operand*); - -#ifdef __GNUC__ -int ud_asmprintf(struct ud *u, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); -#else -int ud_asmprintf(struct ud *u, const char *fmt, ...); -#endif - -void ud_syn_print_addr(struct ud *u, uint64_t addr); -void ud_syn_print_imm(struct ud* u, const struct ud_operand *op); -void ud_syn_print_mem_disp(struct ud* u, const struct ud_operand *, int sign); - -#endif /* UD_SYN_H */ - -/* -vim: set ts=2 sw=2 expandtab -*/ diff --git a/headers/libs/udis86/libudis86/types.h b/headers/libs/udis86/libudis86/types.h deleted file mode 100644 index 9c1b3cee4c..0000000000 --- a/headers/libs/udis86/libudis86/types.h +++ /dev/null @@ -1,260 +0,0 @@ -/* udis86 - libudis86/types.h - * - * Copyright (c) 2002-2013 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 - -#ifdef __KERNEL__ - /* - * -D__KERNEL__ is automatically passed on the command line when - * building something as part of the Linux kernel. Assume standalone - * mode. - */ -# include -# include -# ifndef __UD_STANDALONE__ -# define __UD_STANDALONE__ 1 -# endif -#endif /* __KERNEL__ */ - -#if !defined(__UD_STANDALONE__) || defined(__HAIKU__) -# include -# include -#endif - -/* gcc specific extensions */ -#ifdef __GNUC__ -# define UD_ATTR_PACKED __attribute__((packed)) -#else -# define UD_ATTR_PACKED -#endif /* UD_ATTR_PACKED */ - - -/* ----------------------------------------------------------------------------- - * All possible "types" of objects in udis86. Order is Important! - * ----------------------------------------------------------------------------- - */ -enum ud_type -{ - UD_NONE, - - /* 8 bit GPRs */ - UD_R_AL, UD_R_CL, UD_R_DL, UD_R_BL, - UD_R_AH, UD_R_CH, UD_R_DH, UD_R_BH, - UD_R_SPL, UD_R_BPL, UD_R_SIL, UD_R_DIL, - UD_R_R8B, UD_R_R9B, UD_R_R10B, UD_R_R11B, - UD_R_R12B, UD_R_R13B, UD_R_R14B, UD_R_R15B, - - /* 16 bit GPRs */ - UD_R_AX, UD_R_CX, UD_R_DX, UD_R_BX, - UD_R_SP, UD_R_BP, UD_R_SI, UD_R_DI, - UD_R_R8W, UD_R_R9W, UD_R_R10W, UD_R_R11W, - UD_R_R12W, UD_R_R13W, UD_R_R14W, UD_R_R15W, - - /* 32 bit GPRs */ - UD_R_EAX, UD_R_ECX, UD_R_EDX, UD_R_EBX, - UD_R_ESP, UD_R_EBP, UD_R_ESI, UD_R_EDI, - UD_R_R8D, UD_R_R9D, UD_R_R10D, UD_R_R11D, - UD_R_R12D, UD_R_R13D, UD_R_R14D, UD_R_R15D, - - /* 64 bit GPRs */ - UD_R_RAX, UD_R_RCX, UD_R_RDX, UD_R_RBX, - UD_R_RSP, UD_R_RBP, UD_R_RSI, UD_R_RDI, - UD_R_R8, UD_R_R9, UD_R_R10, UD_R_R11, - UD_R_R12, UD_R_R13, UD_R_R14, UD_R_R15, - - /* segment registers */ - UD_R_ES, UD_R_CS, UD_R_SS, UD_R_DS, - UD_R_FS, UD_R_GS, - - /* control registers*/ - UD_R_CR0, UD_R_CR1, UD_R_CR2, UD_R_CR3, - UD_R_CR4, UD_R_CR5, UD_R_CR6, UD_R_CR7, - UD_R_CR8, UD_R_CR9, UD_R_CR10, UD_R_CR11, - UD_R_CR12, UD_R_CR13, UD_R_CR14, UD_R_CR15, - - /* debug registers */ - UD_R_DR0, UD_R_DR1, UD_R_DR2, UD_R_DR3, - UD_R_DR4, UD_R_DR5, UD_R_DR6, UD_R_DR7, - UD_R_DR8, UD_R_DR9, UD_R_DR10, UD_R_DR11, - UD_R_DR12, UD_R_DR13, UD_R_DR14, UD_R_DR15, - - /* mmx registers */ - UD_R_MM0, UD_R_MM1, UD_R_MM2, UD_R_MM3, - UD_R_MM4, UD_R_MM5, UD_R_MM6, UD_R_MM7, - - /* x87 registers */ - UD_R_ST0, UD_R_ST1, UD_R_ST2, UD_R_ST3, - UD_R_ST4, UD_R_ST5, UD_R_ST6, UD_R_ST7, - - /* extended multimedia registers */ - UD_R_XMM0, UD_R_XMM1, UD_R_XMM2, UD_R_XMM3, - UD_R_XMM4, UD_R_XMM5, UD_R_XMM6, UD_R_XMM7, - UD_R_XMM8, UD_R_XMM9, UD_R_XMM10, UD_R_XMM11, - UD_R_XMM12, UD_R_XMM13, UD_R_XMM14, UD_R_XMM15, - - /* 256B multimedia registers */ - UD_R_YMM0, UD_R_YMM1, UD_R_YMM2, UD_R_YMM3, - UD_R_YMM4, UD_R_YMM5, UD_R_YMM6, UD_R_YMM7, - UD_R_YMM8, UD_R_YMM9, UD_R_YMM10, UD_R_YMM11, - UD_R_YMM12, UD_R_YMM13, UD_R_YMM14, UD_R_YMM15, - - UD_R_RIP, - - /* Operand Types */ - UD_OP_REG, UD_OP_MEM, UD_OP_PTR, UD_OP_IMM, - UD_OP_JIMM, UD_OP_CONST -}; - -#include "itab.h" - -union ud_lval { - int8_t sbyte; - uint8_t ubyte; - int16_t sword; - uint16_t uword; - int32_t sdword; - uint32_t udword; - int64_t sqword; - uint64_t uqword; - struct { - uint16_t seg; - uint32_t off; - } ptr; -}; - -/* ----------------------------------------------------------------------------- - * struct ud_operand - Disassembled instruction Operand. - * ----------------------------------------------------------------------------- - */ -struct ud_operand { - enum ud_type type; - uint16_t size; - enum ud_type base; - enum ud_type index; - uint8_t scale; - uint8_t offset; - union ud_lval lval; - /* - * internal use only - */ - uint64_t _legacy; /* this will be removed in 1.8 */ - uint8_t _oprcode; -}; - -/* ----------------------------------------------------------------------------- - * struct ud - The udis86 object. - * ----------------------------------------------------------------------------- - */ -struct ud -{ - /* - * input buffering - */ - int (*inp_hook) (struct ud*); -#ifndef __UD_STANDALONE__ - FILE* inp_file; -#endif - const uint8_t* inp_buf; - size_t inp_buf_size; - size_t inp_buf_index; - uint8_t inp_curr; - size_t inp_ctr; - uint8_t inp_sess[64]; - int inp_end; - int inp_peek; - - void (*translator)(struct ud*); - uint64_t insn_offset; - char insn_hexcode[64]; - - /* - * Assembly output buffer - */ - char *asm_buf; - size_t asm_buf_size; - size_t asm_buf_fill; - char asm_buf_int[128]; - - /* - * Symbol resolver for use in the translation phase. - */ - const char* (*sym_resolver)(struct ud*, uint64_t addr, int64_t *offset); - - uint8_t dis_mode; - uint64_t pc; - uint8_t vendor; - enum ud_mnemonic_code mnemonic; - struct ud_operand operand[4]; - uint8_t error; - uint8_t _rex; - uint8_t pfx_rex; - uint8_t pfx_seg; - uint8_t pfx_opr; - uint8_t pfx_adr; - uint8_t pfx_lock; - uint8_t pfx_str; - uint8_t pfx_rep; - uint8_t pfx_repe; - uint8_t pfx_repne; - uint8_t opr_mode; - uint8_t adr_mode; - uint8_t br_far; - uint8_t br_near; - uint8_t have_modrm; - uint8_t modrm; - uint8_t modrm_offset; - uint8_t vex_op; - uint8_t vex_b1; - uint8_t vex_b2; - uint8_t primary_opcode; - void * user_opaque_data; - struct ud_itab_entry * itab_entry; - struct ud_lookup_table_list_entry *le; -}; - -/* ----------------------------------------------------------------------------- - * Type-definitions - * ----------------------------------------------------------------------------- - */ -typedef enum ud_type ud_type_t; -typedef enum ud_mnemonic_code ud_mnemonic_code_t; - -typedef struct ud ud_t; -typedef struct ud_operand ud_operand_t; - -#define UD_SYN_INTEL ud_translate_intel -#define UD_SYN_ATT ud_translate_att -#define UD_EOI (-1) -#define UD_INP_CACHE_SZ 32 -#define UD_VENDOR_AMD 0 -#define UD_VENDOR_INTEL 1 -#define UD_VENDOR_ANY 2 - -#endif - -/* -vim: set ts=2 sw=2 expandtab -*/ diff --git a/headers/libs/udis86/libudis86/udint.h b/headers/libs/udis86/libudis86/udint.h deleted file mode 100644 index 734f0eaa82..0000000000 --- a/headers/libs/udis86/libudis86/udint.h +++ /dev/null @@ -1,99 +0,0 @@ -/* udis86 - libudis86/udint.h -- definitions for internal use only - * - * 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 _UDINT_H_ -#define _UDINT_H_ - -#include "types.h" - -#ifdef HAVE_CONFIG_H -# include -#endif /* HAVE_CONFIG_H */ - -#if defined(UD_DEBUG) && HAVE_ASSERT_H -# include -# define UD_ASSERT(_x) assert(_x) -#else -# define UD_ASSERT(_x) -#endif /* !HAVE_ASSERT_H */ - -#if defined(UD_DEBUG) - #define UDERR(u, msg) \ - do { \ - (u)->error = 1; \ - fprintf(stderr, "decode-error: %s:%d: %s", \ - __FILE__, __LINE__, (msg)); \ - } while (0) -#else - #define UDERR(u, m) \ - do { \ - (u)->error = 1; \ - } while (0) -#endif /* !LOGERR */ - -#define UD_RETURN_ON_ERROR(u) \ - do { \ - if ((u)->error != 0) { \ - return (u)->error; \ - } \ - } while (0) - -#define UD_RETURN_WITH_ERROR(u, m) \ - do { \ - UDERR(u, m); \ - return (u)->error; \ - } while (0) - -#ifndef __UD_STANDALONE__ -# define UD_NON_STANDALONE(x) x -#else -# define UD_NON_STANDALONE(x) -#endif - -/* printf formatting int64 specifier */ -#ifdef FMT64 -# undef FMT64 -#endif -#if defined(_MSC_VER) || defined(__BORLANDC__) -# define FMT64 "I64" -#else -# if defined(__APPLE__) -# define FMT64 "ll" -# elif defined(__amd64__) || defined(__x86_64__) -# define FMT64 "l" -# else -# define FMT64 "ll" -# endif /* !x64 */ -#endif - -/* define an inline macro */ -#if defined(_MSC_VER) || defined(__BORLANDC__) -# define UD_INLINE __inline /* MS Visual Studio requires __inline - instead of inline for C code */ -#else -# define UD_INLINE inline -#endif - -#endif /* _UDINT_H_ */ diff --git a/headers/libs/udis86/udis86.h b/headers/libs/udis86/udis86.h deleted file mode 100644 index bdd3857bfa..0000000000 --- a/headers/libs/udis86/udis86.h +++ /dev/null @@ -1,33 +0,0 @@ -/* udis86 - udis86.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 UDIS86_H -#define UDIS86_H - -#include "libudis86/types.h" -#include "libudis86/extern.h" -#include "libudis86/itab.h" - -#endif diff --git a/src/apps/aboutsystem/AboutSystem.cpp b/src/apps/aboutsystem/AboutSystem.cpp index c2476b37e8..89e732c7c2 100644 --- a/src/apps/aboutsystem/AboutSystem.cpp +++ b/src/apps/aboutsystem/AboutSystem.cpp @@ -1992,14 +1992,14 @@ AboutView::_CreateCreditsView() .SetLicense(kBSDTwoClause) .SetURL("https://www.acme.com/software/thttpd")); -#ifdef __i386__ - // Udis86 copyrights - _AddPackageCredit(PackageCredit("Udis86") - .SetCopyright(B_TRANSLATE(COPYRIGHT_STRING "2002-2004 " - "Vivek Mohan. All rights reserved.")) - .SetLicense(kBSDTwoClause) - .SetURL("https://udis86.sourceforge.net")); + // Zydis copyrights + _AddPackageCredit(PackageCredit("Zydis") + .SetCopyrights(B_TRANSLATE(COPYRIGHT_STRING "2014-2024 Florian Bernd " + "and Joel Höner. All rights reserved.")) + .SetLicense("MIT") + .SetURL("https://zydis.re/")); +#ifdef __i386__ // Intel PRO/Wireless 2100 & 2200BG firmwares _AddPackageCredit(PackageCredit("Intel PRO/Wireless 2100 & 2200BG firmwares") .SetCopyright(B_TRANSLATE(COPYRIGHT_STRING "2003-2006 " diff --git a/src/libs/Jamfile b/src/libs/Jamfile index 9b382e825e..a88c11a6ae 100644 --- a/src/libs/Jamfile +++ b/src/libs/Jamfile @@ -14,7 +14,6 @@ SubInclude HAIKU_TOP src libs mapm ; SubInclude HAIKU_TOP src libs posix_error_mapper ; SubInclude HAIKU_TOP src libs print ; SubInclude HAIKU_TOP src libs stdc++ ; -SubInclude HAIKU_TOP src libs udis86 ; SubInclude HAIKU_TOP src libs uuid ; SubInclude HAIKU_TOP src libs util ; SubInclude HAIKU_TOP src libs zydis ; diff --git a/src/libs/udis86/Jamfile b/src/libs/udis86/Jamfile deleted file mode 100644 index ff04715a35..0000000000 --- a/src/libs/udis86/Jamfile +++ /dev/null @@ -1,15 +0,0 @@ -SubDir HAIKU_TOP src libs udis86 ; - -DEFINES += __UD_STANDALONE__ ; - -UseHeaders [ LibraryHeaders udis86 ] ; -UseHeaders [ LibraryHeaders [ FDirName udis86 libudis86 ] ] ; - -StaticLibrary libudis86.a : - decode.c - itab.c - syn-att.c - syn.c - syn-intel.c - udis86.c -; diff --git a/src/libs/udis86/decode.c b/src/libs/udis86/decode.c deleted file mode 100644 index 73c5a22d37..0000000000 --- a/src/libs/udis86/decode.c +++ /dev/null @@ -1,1266 +0,0 @@ -/* 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 "udint.h" -#include "types.h" -#include "decode.h" -#include "extern.h" - -#ifndef __UD_STANDALONE__ -# include -#endif /* __UD_STANDALONE__ */ - -/* The max number of prefixes to an instruction */ -#define MAX_PREFIXES 15 - -/* rex prefix bits */ -#define REX_W(r) ( ( 0xF & ( r ) ) >> 3 ) -#define REX_R(r) ( ( 0x7 & ( r ) ) >> 2 ) -#define REX_X(r) ( ( 0x3 & ( r ) ) >> 1 ) -#define REX_B(r) ( ( 0x1 & ( r ) ) >> 0 ) -#define REX_PFX_MASK(n) ( ( P_REXW(n) << 3 ) | \ - ( P_REXR(n) << 2 ) | \ - ( P_REXX(n) << 1 ) | \ - ( P_REXB(n) << 0 ) ) - -/* scable-index-base bits */ -#define SIB_S(b) ( ( b ) >> 6 ) -#define SIB_I(b) ( ( ( b ) >> 3 ) & 7 ) -#define SIB_B(b) ( ( b ) & 7 ) - -/* modrm bits */ -#define MODRM_REG(b) ( ( ( b ) >> 3 ) & 7 ) -#define MODRM_NNN(b) ( ( ( b ) >> 3 ) & 7 ) -#define MODRM_MOD(b) ( ( ( b ) >> 6 ) & 3 ) -#define MODRM_RM(b) ( ( b ) & 7 ) - -static int decode_ext(struct ud *u, uint16_t ptr); -static int decode_opcode(struct ud *u); - -enum reg_class { /* register classes */ - REGCLASS_GPR, - REGCLASS_MMX, - REGCLASS_CR, - REGCLASS_DB, - REGCLASS_SEG, - REGCLASS_XMM -}; - - /* - * inp_start - * Should be called before each de-code operation. - */ -static void -inp_start(struct ud *u) -{ - u->inp_ctr = 0; -} - -static uint8_t -inp_peek(struct ud *u) -{ - if (u->inp_end == 0) { - if (u->inp_buf != NULL) { - if (u->inp_buf_index < u->inp_buf_size) { - return u->inp_buf[u->inp_buf_index]; - } - } else if (u->inp_peek != UD_EOI) { - return u->inp_peek; - } else { - int c; - if ((c = u->inp_hook(u)) != UD_EOI) { - u->inp_peek = c; - return u->inp_peek; - } - } - } - u->inp_end = 1; - UDERR(u, "byte expected, eoi received\n"); - return 0; -} - -static uint8_t -inp_next(struct ud *u) -{ - if (u->inp_end == 0) { - if (u->inp_buf != NULL) { - if (u->inp_buf_index < u->inp_buf_size) { - u->inp_ctr++; - return (u->inp_curr = u->inp_buf[u->inp_buf_index++]); - } - } else { - int c = u->inp_peek; - if (c != UD_EOI || (c = u->inp_hook(u)) != UD_EOI) { - u->inp_peek = UD_EOI; - u->inp_curr = c; - u->inp_sess[u->inp_ctr++] = u->inp_curr; - return u->inp_curr; - } - } - } - u->inp_end = 1; - UDERR(u, "byte expected, eoi received\n"); - return 0; -} - -static uint8_t -inp_curr(struct ud *u) -{ - return u->inp_curr; -} - - -/* - * inp_uint8 - * int_uint16 - * int_uint32 - * int_uint64 - * Load little-endian values from input - */ -static uint8_t -inp_uint8(struct ud* u) -{ - return inp_next(u); -} - -static uint16_t -inp_uint16(struct ud* u) -{ - uint16_t r, ret; - - ret = inp_next(u); - r = inp_next(u); - return ret | (r << 8); -} - -static uint32_t -inp_uint32(struct ud* u) -{ - uint32_t r, ret; - - ret = inp_next(u); - r = inp_next(u); - ret = ret | (r << 8); - r = inp_next(u); - ret = ret | (r << 16); - r = inp_next(u); - return ret | (r << 24); -} - -static uint64_t -inp_uint64(struct ud* u) -{ - uint64_t r, ret; - - ret = inp_next(u); - r = inp_next(u); - ret = ret | (r << 8); - r = inp_next(u); - ret = ret | (r << 16); - r = inp_next(u); - ret = ret | (r << 24); - r = inp_next(u); - ret = ret | (r << 32); - r = inp_next(u); - ret = ret | (r << 40); - r = inp_next(u); - ret = ret | (r << 48); - r = inp_next(u); - return ret | (r << 56); -} - - -static UD_INLINE int -eff_opr_mode(int dis_mode, int rex_w, int pfx_opr) -{ - if (dis_mode == 64) { - return rex_w ? 64 : (pfx_opr ? 16 : 32); - } else if (dis_mode == 32) { - return pfx_opr ? 16 : 32; - } else { - UD_ASSERT(dis_mode == 16); - return pfx_opr ? 32 : 16; - } -} - - -static UD_INLINE int -eff_adr_mode(int dis_mode, int pfx_adr) -{ - if (dis_mode == 64) { - return pfx_adr ? 32 : 64; - } else if (dis_mode == 32) { - return pfx_adr ? 16 : 32; - } else { - UD_ASSERT(dis_mode == 16); - return pfx_adr ? 32 : 16; - } -} - - -/* - * decode_prefixes - * - * Extracts instruction prefixes. - */ -static int -decode_prefixes(struct ud *u) -{ - int done = 0; - uint8_t curr = 0, last = 0; - UD_RETURN_ON_ERROR(u); - - do { - last = curr; - curr = inp_next(u); - UD_RETURN_ON_ERROR(u); - if (u->inp_ctr == MAX_INSN_LENGTH) { - UD_RETURN_WITH_ERROR(u, "max instruction length"); - } - - switch (curr) - { - case 0x2E: - u->pfx_seg = UD_R_CS; - break; - case 0x36: - u->pfx_seg = UD_R_SS; - break; - case 0x3E: - u->pfx_seg = UD_R_DS; - break; - case 0x26: - u->pfx_seg = UD_R_ES; - break; - case 0x64: - u->pfx_seg = UD_R_FS; - break; - case 0x65: - u->pfx_seg = UD_R_GS; - break; - case 0x67: /* adress-size override prefix */ - u->pfx_adr = 0x67; - break; - case 0xF0: - u->pfx_lock = 0xF0; - break; - case 0x66: - u->pfx_opr = 0x66; - break; - case 0xF2: - u->pfx_str = 0xf2; - break; - case 0xF3: - u->pfx_str = 0xf3; - break; - default: - /* consume if rex */ - done = (u->dis_mode == 64 && (curr & 0xF0) == 0x40) ? 0 : 1; - break; - } - } while (!done); - /* rex prefixes in 64bit mode, must be the last prefix */ - if (u->dis_mode == 64 && (last & 0xF0) == 0x40) { - u->pfx_rex = last; - } - return 0; -} - - -/* - * vex_l, vex_w - * Return the vex.L and vex.W bits - */ -static UD_INLINE uint8_t -vex_l(const struct ud *u) -{ - UD_ASSERT(u->vex_op != 0); - return ((u->vex_op == 0xc4 ? u->vex_b2 : u->vex_b1) >> 2) & 1; -} - -static UD_INLINE uint8_t -vex_w(const struct ud *u) -{ - UD_ASSERT(u->vex_op != 0); - return u->vex_op == 0xc4 ? ((u->vex_b2 >> 7) & 1) : 0; -} - - -static UD_INLINE uint8_t -modrm(struct ud * u) -{ - if ( !u->have_modrm ) { - u->modrm = inp_next( u ); - u->modrm_offset = (uint8_t) (u->inp_ctr - 1); - u->have_modrm = 1; - } - return u->modrm; -} - - -static unsigned int -resolve_operand_size(const struct ud* u, ud_operand_size_t osize) -{ - switch (osize) { - case SZ_V: - return u->opr_mode; - case SZ_Z: - return u->opr_mode == 16 ? 16 : 32; - case SZ_Y: - return u->opr_mode == 16 ? 32 : u->opr_mode; - case SZ_RDQ: - return u->dis_mode == 64 ? 64 : 32; - case SZ_X: - UD_ASSERT(u->vex_op != 0); - return (P_VEXL(u->itab_entry->prefix) && vex_l(u)) ? SZ_QQ : SZ_DQ; - default: - return osize; - } -} - - -static int resolve_mnemonic( struct ud* u ) -{ - /* resolve 3dnow weirdness. */ - if ( u->mnemonic == UD_I3dnow ) { - 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 ) { - UDERR(u, "swapgs invalid in 64bits mode\n"); - return -1; - } - - if (u->mnemonic == UD_Ixchg) { - if ((u->operand[0].type == UD_OP_REG && u->operand[0].base == UD_R_AX && - u->operand[1].type == UD_OP_REG && u->operand[1].base == UD_R_AX) || - (u->operand[0].type == UD_OP_REG && u->operand[0].base == UD_R_EAX && - u->operand[1].type == UD_OP_REG && u->operand[1].base == UD_R_EAX)) { - u->operand[0].type = UD_NONE; - u->operand[1].type = UD_NONE; - u->mnemonic = UD_Inop; - } - } - - if (u->mnemonic == UD_Inop && u->pfx_repe) { - u->pfx_repe = 0; - u->mnemonic = UD_Ipause; - } - return 0; -} - - -/* ----------------------------------------------------------------------------- - * decode_a()- Decodes operands of the type seg:offset - * ----------------------------------------------------------------------------- - */ -static void -decode_a(struct ud* u, struct ud_operand *op) -{ - if (u->opr_mode == 16) { - /* seg16:off16 */ - op->type = UD_OP_PTR; - op->size = 32; - op->lval.ptr.off = inp_uint16(u); - op->lval.ptr.seg = inp_uint16(u); - } else { - /* seg16:off32 */ - op->type = UD_OP_PTR; - op->size = 48; - op->lval.ptr.off = inp_uint32(u); - op->lval.ptr.seg = inp_uint16(u); - } -} - -/* ----------------------------------------------------------------------------- - * decode_gpr() - Returns decoded General Purpose Register - * ----------------------------------------------------------------------------- - */ -static enum ud_type -decode_gpr(register struct ud* u, unsigned int s, unsigned char rm) -{ - switch (s) { - case 64: - return UD_R_RAX + rm; - case 32: - return UD_R_EAX + rm; - case 16: - return UD_R_AX + rm; - case 8: - if (u->dis_mode == 64 && u->pfx_rex) { - if (rm >= 4) - return UD_R_SPL + (rm-4); - return UD_R_AL + rm; - } else return UD_R_AL + rm; - case 0: - /* invalid size in case of a decode error */ - UD_ASSERT(u->error); - return UD_NONE; - default: - UD_ASSERT(!"invalid operand size"); - return UD_NONE; - } -} - -static void -decode_reg(struct ud *u, - struct ud_operand *opr, - int type, - int num, - int size) -{ - int reg; - size = resolve_operand_size(u, size); - switch (type) { - case REGCLASS_GPR : reg = decode_gpr(u, size, num); break; - case REGCLASS_MMX : reg = UD_R_MM0 + (num & 7); break; - case REGCLASS_XMM : - reg = num + (size == SZ_QQ ? UD_R_YMM0 : UD_R_XMM0); - break; - case REGCLASS_CR : reg = UD_R_CR0 + num; break; - case REGCLASS_DB : reg = UD_R_DR0 + num; break; - case REGCLASS_SEG : { - /* - * Only 6 segment registers, anything else is an error. - */ - if ((num & 7) > 5) { - UDERR(u, "invalid segment register value\n"); - return; - } else { - reg = UD_R_ES + (num & 7); - } - break; - } - default: - UD_ASSERT(!"invalid register type"); - return; - } - opr->type = UD_OP_REG; - opr->base = reg; - opr->size = size; -} - - -/* - * decode_imm - * - * Decode Immediate values. - */ -static void -decode_imm(struct ud* u, unsigned int size, struct ud_operand *op) -{ - op->size = resolve_operand_size(u, size); - op->type = UD_OP_IMM; - - switch (op->size) { - case 8: op->lval.sbyte = inp_uint8(u); break; - case 16: op->lval.uword = inp_uint16(u); break; - case 32: op->lval.udword = inp_uint32(u); break; - case 64: op->lval.uqword = inp_uint64(u); break; - default: return; - } -} - - -/* - * decode_mem_disp - * - * Decode mem address displacement. - */ -static void -decode_mem_disp(struct ud* u, unsigned int size, struct ud_operand *op) -{ - switch (size) { - case 8: - op->offset = 8; - op->lval.ubyte = inp_uint8(u); - break; - case 16: - op->offset = 16; - op->lval.uword = inp_uint16(u); - break; - case 32: - op->offset = 32; - op->lval.udword = inp_uint32(u); - break; - case 64: - op->offset = 64; - op->lval.uqword = inp_uint64(u); - break; - default: - return; - } -} - - -/* - * decode_modrm_reg - * - * Decodes reg field of mod/rm byte - * - */ -static UD_INLINE void -decode_modrm_reg(struct ud *u, - struct ud_operand *operand, - unsigned int type, - unsigned int size) -{ - uint8_t reg = (REX_R(u->_rex) << 3) | MODRM_REG(modrm(u)); - decode_reg(u, operand, type, reg, size); -} - - -/* - * decode_modrm_rm - * - * Decodes rm field of mod/rm byte - * - */ -static void -decode_modrm_rm(struct ud *u, - struct ud_operand *op, - unsigned char type, /* register type */ - unsigned int size) /* operand size */ - -{ - size_t offset = 0; - unsigned char mod, rm; - - /* get mod, r/m and reg fields */ - mod = MODRM_MOD(modrm(u)); - rm = (REX_B(u->_rex) << 3) | MODRM_RM(modrm(u)); - - /* - * If mod is 11b, then the modrm.rm specifies a register. - * - */ - if (mod == 3) { - decode_reg(u, op, type, rm, size); - return; - } - - /* - * !11b => Memory Address - */ - op->type = UD_OP_MEM; - op->size = resolve_operand_size(u, size); - - if (u->adr_mode == 64) { - op->base = UD_R_RAX + rm; - if (mod == 1) { - offset = 8; - } else if (mod == 2) { - offset = 32; - } else if (mod == 0 && (rm & 7) == 5) { - op->base = UD_R_RIP; - offset = 32; - } else { - offset = 0; - } - /* - * Scale-Index-Base (SIB) - */ - if ((rm & 7) == 4) { - inp_next(u); - - op->base = UD_R_RAX + (SIB_B(inp_curr(u)) | (REX_B(u->_rex) << 3)); - op->index = UD_R_RAX + (SIB_I(inp_curr(u)) | (REX_X(u->_rex) << 3)); - /* special conditions for base reference */ - if (op->index == UD_R_RSP) { - op->index = UD_NONE; - op->scale = UD_NONE; - } else { - op->scale = (1 << SIB_S(inp_curr(u))) & ~1; - } - - if (op->base == UD_R_RBP || op->base == UD_R_R13) { - if (mod == 0) { - op->base = UD_NONE; - } - if (mod == 1) { - offset = 8; - } else { - offset = 32; - } - } - } else { - op->scale = UD_NONE; - op->index = UD_NONE; - } - } else if (u->adr_mode == 32) { - op->base = UD_R_EAX + rm; - if (mod == 1) { - offset = 8; - } else if (mod == 2) { - offset = 32; - } else if (mod == 0 && rm == 5) { - op->base = UD_NONE; - offset = 32; - } else { - offset = 0; - } - - /* Scale-Index-Base (SIB) */ - if ((rm & 7) == 4) { - inp_next(u); - - op->scale = (1 << SIB_S(inp_curr(u))) & ~1; - op->index = UD_R_EAX + (SIB_I(inp_curr(u)) | (REX_X(u->pfx_rex) << 3)); - op->base = UD_R_EAX + (SIB_B(inp_curr(u)) | (REX_B(u->pfx_rex) << 3)); - - if (op->index == UD_R_ESP) { - op->index = UD_NONE; - op->scale = UD_NONE; - } - - /* special condition for base reference */ - if (op->base == UD_R_EBP) { - if (mod == 0) { - op->base = UD_NONE; - } - if (mod == 1) { - offset = 8; - } else { - offset = 32; - } - } - } else { - op->scale = UD_NONE; - op->index = UD_NONE; - } - } else { - const unsigned int bases[] = { UD_R_BX, UD_R_BX, UD_R_BP, UD_R_BP, - UD_R_SI, UD_R_DI, UD_R_BP, UD_R_BX }; - const unsigned int indices[] = { UD_R_SI, UD_R_DI, UD_R_SI, UD_R_DI, - UD_NONE, UD_NONE, UD_NONE, UD_NONE }; - op->base = bases[rm & 7]; - op->index = indices[rm & 7]; - op->scale = UD_NONE; - if (mod == 0 && rm == 6) { - offset = 16; - op->base = UD_NONE; - } else if (mod == 1) { - offset = 8; - } else if (mod == 2) { - offset = 16; - } - } - - if (offset) { - decode_mem_disp(u, offset, op); - } else { - op->offset = 0; - } -} - - -/* - * decode_moffset - * Decode offset-only memory operand - */ -static void -decode_moffset(struct ud *u, unsigned int size, struct ud_operand *opr) -{ - opr->type = UD_OP_MEM; - opr->base = UD_NONE; - opr->index = UD_NONE; - opr->scale = UD_NONE; - opr->size = resolve_operand_size(u, size); - decode_mem_disp(u, u->adr_mode, opr); -} - - -static void -decode_vex_vvvv(struct ud *u, struct ud_operand *opr, unsigned size) -{ - uint8_t vvvv; - UD_ASSERT(u->vex_op != 0); - vvvv = ((u->vex_op == 0xc4 ? u->vex_b2 : u->vex_b1) >> 3) & 0xf; - decode_reg(u, opr, REGCLASS_XMM, (0xf & ~vvvv), size); -} - - -/* - * decode_vex_immreg - * Decode source operand encoded in immediate byte [7:4] - */ -static int -decode_vex_immreg(struct ud *u, struct ud_operand *opr, unsigned size) -{ - uint8_t imm = inp_next(u); - uint8_t mask = u->dis_mode == 64 ? 0xf : 0x7; - UD_RETURN_ON_ERROR(u); - UD_ASSERT(u->vex_op != 0); - decode_reg(u, opr, REGCLASS_XMM, mask & (imm >> 4), size); - return 0; -} - - -/* - * decode_operand - * - * Decodes a single operand. - * Returns the type of the operand (UD_NONE if none) - */ -static int -decode_operand(struct ud *u, - struct ud_operand *operand, - enum ud_operand_code type, - unsigned int size) -{ - operand->type = UD_NONE; - operand->_oprcode = type; - - switch (type) { - case OP_A : - decode_a(u, operand); - break; - case OP_MR: - decode_modrm_rm(u, operand, REGCLASS_GPR, - MODRM_MOD(modrm(u)) == 3 ? - Mx_reg_size(size) : Mx_mem_size(size)); - break; - case OP_F: - u->br_far = 1; - /* intended fall through */ - case OP_M: - if (MODRM_MOD(modrm(u)) == 3) { - UDERR(u, "expected modrm.mod != 3\n"); - } - /* intended fall through */ - case OP_E: - decode_modrm_rm(u, operand, REGCLASS_GPR, size); - break; - case OP_G: - decode_modrm_reg(u, operand, REGCLASS_GPR, size); - break; - case OP_sI: - case OP_I: - decode_imm(u, size, operand); - break; - case OP_I1: - operand->type = UD_OP_CONST; - operand->lval.udword = 1; - break; - case OP_N: - if (MODRM_MOD(modrm(u)) != 3) { - UDERR(u, "expected modrm.mod == 3\n"); - } - /* intended fall through */ - case OP_Q: - decode_modrm_rm(u, operand, REGCLASS_MMX, size); - break; - case OP_P: - decode_modrm_reg(u, operand, REGCLASS_MMX, size); - break; - case OP_U: - if (MODRM_MOD(modrm(u)) != 3) { - UDERR(u, "expected modrm.mod == 3\n"); - } - /* intended fall through */ - case OP_W: - decode_modrm_rm(u, operand, REGCLASS_XMM, size); - break; - case OP_V: - decode_modrm_reg(u, operand, REGCLASS_XMM, size); - break; - case OP_H: - decode_vex_vvvv(u, operand, size); - break; - case OP_MU: - decode_modrm_rm(u, operand, REGCLASS_XMM, - MODRM_MOD(modrm(u)) == 3 ? - Mx_reg_size(size) : Mx_mem_size(size)); - break; - case OP_S: - decode_modrm_reg(u, operand, REGCLASS_SEG, size); - break; - case OP_O: - decode_moffset(u, size, operand); - break; - case OP_R0: - case OP_R1: - case OP_R2: - case OP_R3: - case OP_R4: - case OP_R5: - case OP_R6: - case OP_R7: - decode_reg(u, operand, REGCLASS_GPR, - (REX_B(u->_rex) << 3) | (type - OP_R0), size); - break; - case OP_AL: - case OP_AX: - case OP_eAX: - case OP_rAX: - decode_reg(u, operand, REGCLASS_GPR, 0, size); - break; - case OP_CL: - case OP_CX: - case OP_eCX: - decode_reg(u, operand, REGCLASS_GPR, 1, size); - break; - case OP_DL: - case OP_DX: - case OP_eDX: - decode_reg(u, operand, REGCLASS_GPR, 2, size); - break; - case OP_ES: - case OP_CS: - case OP_DS: - case OP_SS: - case OP_FS: - case OP_GS: - /* in 64bits mode, only fs and gs are allowed */ - if (u->dis_mode == 64) { - if (type != OP_FS && type != OP_GS) { - UDERR(u, "invalid segment register in 64bits\n"); - } - } - operand->type = UD_OP_REG; - operand->base = (type - OP_ES) + UD_R_ES; - operand->size = 16; - break; - case OP_J : - decode_imm(u, size, operand); - operand->type = UD_OP_JIMM; - break ; - case OP_R : - if (MODRM_MOD(modrm(u)) != 3) { - UDERR(u, "expected modrm.mod == 3\n"); - } - decode_modrm_rm(u, operand, REGCLASS_GPR, size); - break; - case OP_C: - decode_modrm_reg(u, operand, REGCLASS_CR, size); - break; - case OP_D: - decode_modrm_reg(u, operand, REGCLASS_DB, size); - break; - case OP_I3 : - operand->type = UD_OP_CONST; - operand->lval.sbyte = 3; - break; - case OP_ST0: - case OP_ST1: - case OP_ST2: - case OP_ST3: - case OP_ST4: - case OP_ST5: - case OP_ST6: - case OP_ST7: - operand->type = UD_OP_REG; - operand->base = (type - OP_ST0) + UD_R_ST0; - operand->size = 80; - break; - case OP_L: - decode_vex_immreg(u, operand, size); - break; - default : - operand->type = UD_NONE; - break; - } - return operand->type; -} - - -/* - * decode_operands - * - * Disassemble upto 3 operands of the current instruction being - * disassembled. By the end of the function, the operand fields - * of the ud structure will have been filled. - */ -static int -decode_operands(struct ud* u) -{ - decode_operand(u, &u->operand[0], - u->itab_entry->operand1.type, - u->itab_entry->operand1.size); - if (u->operand[0].type != UD_NONE) { - decode_operand(u, &u->operand[1], - u->itab_entry->operand2.type, - u->itab_entry->operand2.size); - } - if (u->operand[1].type != UD_NONE) { - decode_operand(u, &u->operand[2], - u->itab_entry->operand3.type, - u->itab_entry->operand3.size); - } - if (u->operand[2].type != UD_NONE) { - decode_operand(u, &u->operand[3], - u->itab_entry->operand4.type, - u->itab_entry->operand4.size); - } - return 0; -} - -/* ----------------------------------------------------------------------------- - * clear_insn() - clear instruction structure - * ----------------------------------------------------------------------------- - */ -static void -clear_insn(register struct ud* u) -{ - u->error = 0; - u->pfx_seg = 0; - u->pfx_opr = 0; - u->pfx_adr = 0; - u->pfx_lock = 0; - u->pfx_repne = 0; - u->pfx_rep = 0; - u->pfx_repe = 0; - u->pfx_rex = 0; - u->pfx_str = 0; - u->mnemonic = UD_Inone; - u->itab_entry = NULL; - u->have_modrm = 0; - u->br_far = 0; - u->vex_op = 0; - u->_rex = 0; - u->operand[0].type = UD_NONE; - u->operand[1].type = UD_NONE; - u->operand[2].type = UD_NONE; - u->operand[3].type = UD_NONE; -} - - -static UD_INLINE int -resolve_pfx_str(struct ud* u) -{ - if (u->pfx_str == 0xf3) { - if (P_STR(u->itab_entry->prefix)) { - u->pfx_rep = 0xf3; - } else { - u->pfx_repe = 0xf3; - } - } else if (u->pfx_str == 0xf2) { - u->pfx_repne = 0xf3; - } - return 0; -} - - -static int -resolve_mode( struct ud* u ) -{ - int default64; - /* if in error state, bail out */ - if ( u->error ) return -1; - - /* propagate prefix effects */ - if ( u->dis_mode == 64 ) { /* set 64bit-mode flags */ - - /* Check validity of instruction m64 */ - if ( P_INV64( u->itab_entry->prefix ) ) { - UDERR(u, "instruction invalid in 64bits\n"); - return -1; - } - - /* compute effective rex based on, - * - vex prefix (if any) - * - rex prefix (if any, and not vex) - * - allowed prefixes specified by the opcode map - */ - if (u->vex_op == 0xc4) { - /* vex has rex.rxb in 1's complement */ - u->_rex = ((~(u->vex_b1 >> 5) & 0x7) /* rex.0rxb */ | - ((u->vex_b2 >> 4) & 0x8) /* rex.w000 */); - } else if (u->vex_op == 0xc5) { - /* vex has rex.r in 1's complement */ - u->_rex = (~(u->vex_b1 >> 5)) & 4; - } else { - UD_ASSERT(u->vex_op == 0); - u->_rex = u->pfx_rex; - } - u->_rex &= REX_PFX_MASK(u->itab_entry->prefix); - - /* whether this instruction has a default operand size of - * 64bit, also hardcoded into the opcode map. - */ - default64 = P_DEF64( u->itab_entry->prefix ); - /* calculate effective operand size */ - if (REX_W(u->_rex)) { - u->opr_mode = 64; - } else if ( u->pfx_opr ) { - u->opr_mode = 16; - } else { - /* unless the default opr size of instruction is 64, - * the effective operand size in the absence of rex.w - * prefix is 32. - */ - u->opr_mode = default64 ? 64 : 32; - } - - /* calculate effective address size */ - u->adr_mode = (u->pfx_adr) ? 32 : 64; - } else if ( u->dis_mode == 32 ) { /* set 32bit-mode flags */ - u->opr_mode = ( u->pfx_opr ) ? 16 : 32; - u->adr_mode = ( u->pfx_adr ) ? 16 : 32; - } else if ( u->dis_mode == 16 ) { /* set 16bit-mode flags */ - u->opr_mode = ( u->pfx_opr ) ? 32 : 16; - u->adr_mode = ( u->pfx_adr ) ? 32 : 16; - } - - return 0; -} - - -static UD_INLINE int -decode_insn(struct ud *u, uint16_t ptr) -{ - UD_ASSERT((ptr & 0x8000) == 0); - u->itab_entry = &ud_itab[ ptr ]; - u->mnemonic = u->itab_entry->mnemonic; - return (resolve_pfx_str(u) == 0 && - resolve_mode(u) == 0 && - decode_operands(u) == 0 && - resolve_mnemonic(u) == 0) ? 0 : -1; -} - - -/* - * decode_3dnow() - * - * Decoding 3dnow is a little tricky because of its strange opcode - * structure. The final opcode disambiguation depends on the last - * byte that comes after the operands have been decoded. Fortunately, - * all 3dnow instructions have the same set of operand types. So we - * go ahead and decode the instruction by picking an arbitrarily chosen - * valid entry in the table, decode the operands, and read the final - * byte to resolve the menmonic. - */ -static UD_INLINE int -decode_3dnow(struct ud* u) -{ - uint16_t ptr; - UD_ASSERT(u->le->type == UD_TAB__OPC_3DNOW); - UD_ASSERT(u->le->table[0xc] != 0); - decode_insn(u, u->le->table[0xc]); - inp_next(u); - if (u->error) { - return -1; - } - ptr = u->le->table[inp_curr(u)]; - UD_ASSERT((ptr & 0x8000) == 0); - u->mnemonic = ud_itab[ptr].mnemonic; - return 0; -} - - -static int -decode_ssepfx(struct ud *u) -{ - uint8_t idx; - uint8_t pfx; - - /* - * String prefixes (f2, f3) take precedence over operand - * size prefix (66). - */ - pfx = u->pfx_str; - if (pfx == 0) { - pfx = u->pfx_opr; - } - idx = ((pfx & 0xf) + 1) / 2; - if (u->le->table[idx] == 0) { - idx = 0; - } - if (idx && u->le->table[idx] != 0) { - /* - * "Consume" the prefix as a part of the opcode, so it is no - * longer exported as an instruction prefix. - */ - u->pfx_str = 0; - if (pfx == 0x66) { - /* - * consume "66" only if it was used for decoding, leaving - * it to be used as an operands size override for some - * simd instructions. - */ - u->pfx_opr = 0; - } - } - return decode_ext(u, u->le->table[idx]); -} - - -static int -decode_vex(struct ud *u) -{ - uint8_t index; - if (u->dis_mode != 64 && MODRM_MOD(inp_peek(u)) != 0x3) { - index = 0; - } else { - u->vex_op = inp_curr(u); - u->vex_b1 = inp_next(u); - if (u->vex_op == 0xc4) { - uint8_t pp, m; - /* 3-byte vex */ - u->vex_b2 = inp_next(u); - UD_RETURN_ON_ERROR(u); - m = u->vex_b1 & 0x1f; - if (m == 0 || m > 3) { - UD_RETURN_WITH_ERROR(u, "reserved vex.m-mmmm value"); - } - pp = u->vex_b2 & 0x3; - index = (pp << 2) | m; - } else { - /* 2-byte vex */ - UD_ASSERT(u->vex_op == 0xc5); - index = 0x1 | ((u->vex_b1 & 0x3) << 2); - } - } - return decode_ext(u, u->le->table[index]); -} - - -/* - * decode_ext() - * - * Decode opcode extensions (if any) - */ -static int -decode_ext(struct ud *u, uint16_t ptr) -{ - uint8_t idx = 0; - if ((ptr & 0x8000) == 0) { - return decode_insn(u, ptr); - } - u->le = &ud_lookup_table_list[(~0x8000 & ptr)]; - if (u->le->type == UD_TAB__OPC_3DNOW) { - return decode_3dnow(u); - } - - switch (u->le->type) { - case UD_TAB__OPC_MOD: - /* !11 = 0, 11 = 1 */ - idx = (MODRM_MOD(modrm(u)) + 1) / 4; - break; - /* disassembly mode/operand size/address size based tables. - * 16 = 0,, 32 = 1, 64 = 2 - */ - case UD_TAB__OPC_MODE: - idx = u->dis_mode != 64 ? 0 : 1; - break; - case UD_TAB__OPC_OSIZE: - idx = eff_opr_mode(u->dis_mode, REX_W(u->pfx_rex), u->pfx_opr) / 32; - break; - case UD_TAB__OPC_ASIZE: - idx = eff_adr_mode(u->dis_mode, u->pfx_adr) / 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 */ - idx = (u->le->table[idx] != 0) ? 0 : 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; - case UD_TAB__OPC_SSE: - return decode_ssepfx(u); - case UD_TAB__OPC_VEX: - return decode_vex(u); - case UD_TAB__OPC_VEX_W: - idx = vex_w(u); - break; - case UD_TAB__OPC_VEX_L: - idx = vex_l(u); - break; - case UD_TAB__OPC_TABLE: - inp_next(u); - return decode_opcode(u); - default: - UD_ASSERT(!"not reached"); - break; - } - - return decode_ext(u, u->le->table[idx]); -} - - -static int -decode_opcode(struct ud *u) -{ - uint16_t ptr; - UD_ASSERT(u->le->type == UD_TAB__OPC_TABLE); - UD_RETURN_ON_ERROR(u); - ptr = u->le->table[inp_curr(u)]; - return decode_ext(u, ptr); -} - - -/* ============================================================================= - * ud_decode() - Instruction decoder. Returns the number of bytes decoded. - * ============================================================================= - */ -unsigned int -ud_decode(struct ud *u) -{ - inp_start(u); - clear_insn(u); - u->le = &ud_lookup_table_list[0]; - u->error = decode_prefixes(u) == -1 || - decode_opcode(u) == -1 || - u->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 = &ud_itab[0]; /* entry 0 is 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->asm_buf_fill = 0; /* set translation buffer index to 0 */ - u->pc += u->inp_ctr; /* move program counter by bytes decoded */ - - /* return number of bytes disassembled. */ - return u->inp_ctr; -} - -/* -vim: set ts=2 sw=2 expandtab -*/ diff --git a/src/libs/udis86/itab.c b/src/libs/udis86/itab.c deleted file mode 100644 index d21b269bb5..0000000000 --- a/src/libs/udis86/itab.c +++ /dev/null @@ -1,5950 +0,0 @@ -/* itab.c -- generated by udis86:scripts/ud_itab.py, do no edit */ -#include "decode.h" - -#define GROUP(n) (0x8000 | (n)) -#define INVALID 0 - - -const uint16_t ud_itab__0[] = { - /* 0 */ 15, 16, 17, 18, - /* 4 */ 19, 20, GROUP(1), GROUP(2), - /* 8 */ 965, 966, 967, 968, - /* c */ 969, 970, GROUP(3), GROUP(4), - /* 10 */ 5, 6, 7, 8, - /* 14 */ 9, 10, GROUP(284), GROUP(285), - /* 18 */ 1337, 1338, 1339, 1340, - /* 1c */ 1341, 1342, GROUP(286), GROUP(287), - /* 20 */ 49, 50, 51, 52, - /* 24 */ 53, 54, INVALID, GROUP(288), - /* 28 */ 1409, 1410, 1411, 1412, - /* 2c */ 1413, 1414, INVALID, GROUP(289), - /* 30 */ 1489, 1490, 1491, 1492, - /* 34 */ 1493, 1494, INVALID, GROUP(290), - /* 38 */ 101, 102, 103, 104, - /* 3c */ 105, 106, INVALID, GROUP(291), - /* 40 */ 700, 701, 702, 703, - /* 44 */ 704, 705, 706, 707, - /* 48 */ 176, 177, 178, 179, - /* 4c */ 180, 181, 182, 183, - /* 50 */ 1247, 1248, 1249, 1250, - /* 54 */ 1251, 1252, 1253, 1254, - /* 58 */ 1102, 1103, 1104, 1105, - /* 5c */ 1106, 1107, 1108, 1109, - /* 60 */ GROUP(292), GROUP(295), GROUP(298), GROUP(299), - /* 64 */ INVALID, INVALID, INVALID, INVALID, - /* 68 */ 1255, 698, 1257, 699, - /* 6c */ 710, GROUP(300), 983, GROUP(301), - /* 70 */ 727, 729, 731, 733, - /* 74 */ 735, 737, 739, 741, - /* 78 */ 743, 745, 747, 749, - /* 7c */ 751, 753, 755, 757, - /* 80 */ GROUP(302), GROUP(303), GROUP(304), GROUP(313), - /* 84 */ 1435, 1436, 1477, 1478, - /* 88 */ 829, 830, 831, 832, - /* 8c */ 833, 771, 834, GROUP(314), - /* 90 */ 1479, 1480, 1481, 1482, - /* 94 */ 1483, 1484, 1485, 1486, - /* 98 */ GROUP(315), GROUP(316), GROUP(317), 1472, - /* 9c */ GROUP(318), GROUP(322), 1311, 767, - /* a0 */ 835, 836, 837, 838, - /* a4 */ 923, GROUP(326), 115, GROUP(327), - /* a8 */ 1437, 1438, 1404, GROUP(328), - /* ac */ 791, GROUP(329), 1347, GROUP(330), - /* b0 */ 839, 840, 841, 842, - /* b4 */ 843, 844, 845, 846, - /* b8 */ 847, 848, 849, 850, - /* bc */ 851, 852, 853, 854, - /* c0 */ GROUP(331), GROUP(332), 1302, 1303, - /* c4 */ GROUP(333), GROUP(403), GROUP(405), GROUP(406), - /* c8 */ 201, 777, 1304, 1305, - /* cc */ 714, 715, GROUP(407), GROUP(408), - /* d0 */ GROUP(409), GROUP(410), GROUP(411), GROUP(412), - /* d4 */ GROUP(413), GROUP(414), GROUP(415), 1488, - /* d8 */ GROUP(416), GROUP(419), GROUP(422), GROUP(425), - /* dc */ GROUP(428), GROUP(431), GROUP(434), GROUP(437), - /* e0 */ 795, 796, 797, GROUP(440), - /* e4 */ 691, 692, 979, 980, - /* e8 */ 72, 764, GROUP(441), 766, - /* ec */ 693, 694, 981, 982, - /* f0 */ 790, 713, 1300, 1301, - /* f4 */ 688, 84, GROUP(442), GROUP(443), - /* f8 */ 78, 1397, 82, 1400, - /* fc */ 79, 1398, GROUP(444), GROUP(445), -}; - -static const uint16_t ud_itab__1[] = { - /* 0 */ 1241, INVALID, -}; - -static const uint16_t ud_itab__2[] = { - /* 0 */ 1097, INVALID, -}; - -static const uint16_t ud_itab__3[] = { - /* 0 */ 1242, INVALID, -}; - -static const uint16_t ud_itab__4[] = { - /* 0 */ GROUP(5), GROUP(6), 768, 798, - /* 4 */ INVALID, 1428, 83, 1433, - /* 8 */ 717, 1473, INVALID, 1446, - /* c */ INVALID, GROUP(27), 431, GROUP(28), - /* 10 */ GROUP(29), GROUP(30), GROUP(31), GROUP(34), - /* 14 */ GROUP(35), GROUP(36), GROUP(37), GROUP(40), - /* 18 */ GROUP(41), 956, 957, 958, - /* 1c */ 959, 960, 961, 962, - /* 20 */ 855, 856, 857, 858, - /* 24 */ INVALID, INVALID, INVALID, INVALID, - /* 28 */ GROUP(42), GROUP(43), GROUP(44), GROUP(45), - /* 2c */ GROUP(46), GROUP(47), GROUP(48), GROUP(49), - /* 30 */ 1474, 1298, 1296, 1297, - /* 34 */ GROUP(50), GROUP(52), INVALID, 1516, - /* 38 */ GROUP(54), INVALID, GROUP(116), INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, - /* 40 */ 85, 86, 87, 88, - /* 44 */ 89, 90, 91, 92, - /* 48 */ 93, 94, 95, 96, - /* 4c */ 97, 98, 99, 100, - /* 50 */ GROUP(143), GROUP(144), GROUP(145), GROUP(146), - /* 54 */ GROUP(147), GROUP(148), GROUP(149), GROUP(150), - /* 58 */ GROUP(151), GROUP(152), GROUP(153), GROUP(154), - /* 5c */ GROUP(155), GROUP(156), GROUP(157), GROUP(158), - /* 60 */ GROUP(159), GROUP(160), GROUP(161), GROUP(162), - /* 64 */ GROUP(163), GROUP(164), GROUP(165), GROUP(166), - /* 68 */ GROUP(167), GROUP(168), GROUP(169), GROUP(170), - /* 6c */ GROUP(171), GROUP(172), GROUP(173), GROUP(176), - /* 70 */ GROUP(177), GROUP(178), GROUP(182), GROUP(186), - /* 74 */ GROUP(191), GROUP(192), GROUP(193), 200, - /* 78 */ GROUP(194), GROUP(195), INVALID, INVALID, - /* 7c */ GROUP(196), GROUP(197), GROUP(198), GROUP(201), - /* 80 */ 728, 730, 732, 734, - /* 84 */ 736, 738, 740, 742, - /* 88 */ 744, 746, 748, 750, - /* 8c */ 752, 754, 756, 758, - /* 90 */ 1351, 1352, 1353, 1354, - /* 94 */ 1355, 1356, 1357, 1358, - /* 98 */ 1359, 1360, 1361, 1362, - /* 9c */ 1363, 1364, 1365, 1366, - /* a0 */ 1246, 1101, 132, 1672, - /* a4 */ 1376, 1377, GROUP(202), GROUP(207), - /* a8 */ 1245, 1100, 1306, 1677, - /* ac */ 1378, 1379, GROUP(215), 695, - /* b0 */ 123, 124, 776, 1675, - /* b4 */ 773, 774, 941, 942, - /* b8 */ GROUP(221), INVALID, GROUP(222), 1673, - /* bc */ 1661, 1662, 931, 932, - /* c0 */ 1475, 1476, GROUP(223), 905, - /* c4 */ GROUP(224), GROUP(225), GROUP(226), GROUP(227), - /* c8 */ 1663, 1664, 1665, 1666, - /* cc */ 1667, 1668, 1669, 1670, - /* d0 */ GROUP(236), GROUP(237), GROUP(238), GROUP(239), - /* d4 */ GROUP(240), GROUP(241), GROUP(242), GROUP(243), - /* d8 */ GROUP(244), GROUP(245), GROUP(246), GROUP(247), - /* dc */ GROUP(248), GROUP(249), GROUP(250), GROUP(251), - /* e0 */ GROUP(252), GROUP(253), GROUP(254), GROUP(255), - /* e4 */ GROUP(256), GROUP(257), GROUP(258), GROUP(259), - /* e8 */ GROUP(260), GROUP(261), GROUP(262), GROUP(263), - /* ec */ GROUP(264), GROUP(265), GROUP(266), GROUP(267), - /* f0 */ GROUP(268), GROUP(269), GROUP(270), GROUP(271), - /* f4 */ GROUP(272), GROUP(273), GROUP(274), GROUP(275), - /* f8 */ GROUP(277), GROUP(278), GROUP(279), GROUP(280), - /* fc */ GROUP(281), GROUP(282), GROUP(283), INVALID, -}; - -static const uint16_t ud_itab__5[] = { - /* 0 */ 1385, 1408, 787, 799, - /* 4 */ 1455, 1456, INVALID, INVALID, -}; - -static const uint16_t ud_itab__6[] = { - /* 0 */ GROUP(7), GROUP(8), -}; - -static const uint16_t ud_itab__7[] = { - /* 0 */ 1375, 1384, 786, 775, - /* 4 */ 1386, INVALID, 788, 720, -}; - -static const uint16_t ud_itab__8[] = { - /* 0 */ GROUP(9), GROUP(14), GROUP(15), GROUP(16), - /* 4 */ 1387, INVALID, 789, GROUP(25), -}; - -static const uint16_t ud_itab__9[] = { - /* 0 */ INVALID, GROUP(10), GROUP(11), GROUP(12), - /* 4 */ GROUP(13), INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__10[] = { - /* 0 */ INVALID, 1457, INVALID, -}; - -static const uint16_t ud_itab__11[] = { - /* 0 */ INVALID, 1463, INVALID, -}; - -static const uint16_t ud_itab__12[] = { - /* 0 */ INVALID, 1464, INVALID, -}; - -static const uint16_t ud_itab__13[] = { - /* 0 */ INVALID, 1465, INVALID, -}; - -static const uint16_t ud_itab__14[] = { - /* 0 */ 825, 953, 77, 1396, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__15[] = { - /* 0 */ 1487, 1510, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__16[] = { - /* 0 */ GROUP(17), GROUP(18), GROUP(19), GROUP(20), - /* 4 */ GROUP(21), GROUP(22), GROUP(23), GROUP(24), -}; - -static const uint16_t ud_itab__17[] = { - /* 0 */ 1468, INVALID, INVALID, -}; - -static const uint16_t ud_itab__18[] = { - /* 0 */ 1469, INVALID, INVALID, -}; - -static const uint16_t ud_itab__19[] = { - /* 0 */ 1470, INVALID, INVALID, -}; - -static const uint16_t ud_itab__20[] = { - /* 0 */ 1471, INVALID, INVALID, -}; - -static const uint16_t ud_itab__21[] = { - /* 0 */ 1399, INVALID, INVALID, -}; - -static const uint16_t ud_itab__22[] = { - /* 0 */ 81, INVALID, INVALID, -}; - -static const uint16_t ud_itab__23[] = { - /* 0 */ 1401, INVALID, INVALID, -}; - -static const uint16_t ud_itab__24[] = { - /* 0 */ 721, INVALID, INVALID, -}; - -static const uint16_t ud_itab__25[] = { - /* 0 */ 1427, GROUP(26), INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__26[] = { - /* 0 */ 1299, INVALID, INVALID, -}; - -static const uint16_t ud_itab__27[] = { - /* 0 */ 1120, 1121, 1122, 1123, - /* 4 */ 1124, 1125, 1126, 1127, -}; - -static const uint16_t ud_itab__28[] = { - /* 0 */ INVALID, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, - /* 8 */ INVALID, INVALID, INVALID, INVALID, - /* c */ 1217, 1218, INVALID, INVALID, - /* 10 */ INVALID, INVALID, INVALID, INVALID, - /* 14 */ INVALID, INVALID, INVALID, INVALID, - /* 18 */ INVALID, INVALID, INVALID, INVALID, - /* 1c */ 1219, 1220, INVALID, INVALID, - /* 20 */ INVALID, INVALID, INVALID, INVALID, - /* 24 */ INVALID, INVALID, INVALID, INVALID, - /* 28 */ INVALID, INVALID, INVALID, INVALID, - /* 2c */ INVALID, INVALID, INVALID, INVALID, - /* 30 */ INVALID, INVALID, INVALID, INVALID, - /* 34 */ INVALID, INVALID, INVALID, INVALID, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, - /* 40 */ INVALID, INVALID, INVALID, INVALID, - /* 44 */ INVALID, INVALID, INVALID, INVALID, - /* 48 */ INVALID, INVALID, INVALID, INVALID, - /* 4c */ INVALID, INVALID, INVALID, INVALID, - /* 50 */ INVALID, INVALID, INVALID, INVALID, - /* 54 */ INVALID, INVALID, INVALID, INVALID, - /* 58 */ INVALID, INVALID, INVALID, INVALID, - /* 5c */ INVALID, INVALID, INVALID, INVALID, - /* 60 */ INVALID, INVALID, INVALID, INVALID, - /* 64 */ INVALID, INVALID, INVALID, INVALID, - /* 68 */ INVALID, INVALID, INVALID, INVALID, - /* 6c */ INVALID, INVALID, INVALID, INVALID, - /* 70 */ INVALID, INVALID, INVALID, INVALID, - /* 74 */ INVALID, INVALID, INVALID, INVALID, - /* 78 */ INVALID, INVALID, INVALID, INVALID, - /* 7c */ INVALID, INVALID, INVALID, INVALID, - /* 80 */ INVALID, INVALID, INVALID, INVALID, - /* 84 */ INVALID, INVALID, INVALID, INVALID, - /* 88 */ INVALID, INVALID, 1221, INVALID, - /* 8c */ INVALID, INVALID, 1222, INVALID, - /* 90 */ 1223, INVALID, INVALID, INVALID, - /* 94 */ 1224, INVALID, 1225, 1226, - /* 98 */ INVALID, INVALID, 1227, INVALID, - /* 9c */ INVALID, INVALID, 1228, INVALID, - /* a0 */ 1229, INVALID, INVALID, INVALID, - /* a4 */ 1230, INVALID, 1231, 1232, - /* a8 */ INVALID, INVALID, 1233, INVALID, - /* ac */ INVALID, INVALID, 1234, INVALID, - /* b0 */ 1235, INVALID, INVALID, INVALID, - /* b4 */ 1236, INVALID, 1237, 1238, - /* b8 */ INVALID, INVALID, INVALID, 1239, - /* bc */ INVALID, INVALID, INVALID, 1240, - /* c0 */ INVALID, INVALID, INVALID, INVALID, - /* c4 */ INVALID, INVALID, INVALID, INVALID, - /* c8 */ INVALID, INVALID, INVALID, INVALID, - /* cc */ INVALID, INVALID, INVALID, INVALID, - /* d0 */ INVALID, INVALID, INVALID, INVALID, - /* d4 */ INVALID, INVALID, INVALID, INVALID, - /* d8 */ INVALID, INVALID, INVALID, INVALID, - /* dc */ INVALID, INVALID, INVALID, INVALID, - /* e0 */ INVALID, INVALID, INVALID, INVALID, - /* e4 */ INVALID, INVALID, INVALID, INVALID, - /* e8 */ INVALID, INVALID, INVALID, INVALID, - /* ec */ INVALID, INVALID, INVALID, INVALID, - /* f0 */ INVALID, INVALID, INVALID, INVALID, - /* f4 */ INVALID, INVALID, INVALID, INVALID, - /* f8 */ INVALID, INVALID, INVALID, INVALID, - /* fc */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__29[] = { - /* 0 */ 937, 926, 929, 933, -}; - -static const uint16_t ud_itab__30[] = { - /* 0 */ 939, 927, 930, 935, -}; - -static const uint16_t ud_itab__31[] = { - /* 0 */ GROUP(32), GROUP(33), -}; - -static const uint16_t ud_itab__32[] = { - /* 0 */ 893, 1565, 1573, 889, -}; - -static const uint16_t ud_itab__33[] = { - /* 0 */ 897, 1563, 1571, INVALID, -}; - -static const uint16_t ud_itab__34[] = { - /* 0 */ 895, INVALID, INVALID, 891, -}; - -static const uint16_t ud_itab__35[] = { - /* 0 */ 1451, INVALID, INVALID, 1453, -}; - -static const uint16_t ud_itab__36[] = { - /* 0 */ 1449, INVALID, INVALID, 1447, -}; - -static const uint16_t ud_itab__37[] = { - /* 0 */ GROUP(38), GROUP(39), -}; - -static const uint16_t ud_itab__38[] = { - /* 0 */ 883, INVALID, 1569, 879, -}; - -static const uint16_t ud_itab__39[] = { - /* 0 */ 887, INVALID, 1567, INVALID, -}; - -static const uint16_t ud_itab__40[] = { - /* 0 */ 885, INVALID, INVALID, 881, -}; - -static const uint16_t ud_itab__41[] = { - /* 0 */ 1128, 1129, 1130, 1131, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__42[] = { - /* 0 */ 863, INVALID, INVALID, 859, -}; - -static const uint16_t ud_itab__43[] = { - /* 0 */ 865, INVALID, INVALID, 861, -}; - -static const uint16_t ud_itab__44[] = { - /* 0 */ 142, 153, 155, 143, -}; - -static const uint16_t ud_itab__45[] = { - /* 0 */ 908, INVALID, INVALID, 906, -}; - -static const uint16_t ud_itab__46[] = { - /* 0 */ 166, 167, 169, 163, -}; - -static const uint16_t ud_itab__47[] = { - /* 0 */ 148, 149, 159, 139, -}; - -static const uint16_t ud_itab__48[] = { - /* 0 */ 1444, INVALID, INVALID, 1442, -}; - -static const uint16_t ud_itab__49[] = { - /* 0 */ 130, INVALID, INVALID, 128, -}; - -static const uint16_t ud_itab__50[] = { - /* 0 */ 1429, GROUP(51), -}; - -static const uint16_t ud_itab__51[] = { - /* 0 */ INVALID, 1430, INVALID, -}; - -static const uint16_t ud_itab__52[] = { - /* 0 */ 1431, GROUP(53), -}; - -static const uint16_t ud_itab__53[] = { - /* 0 */ INVALID, 1432, INVALID, -}; - -static const uint16_t ud_itab__54[] = { - /* 0 */ GROUP(67), GROUP(68), GROUP(63), GROUP(64), - /* 4 */ GROUP(65), GROUP(66), GROUP(86), GROUP(90), - /* 8 */ GROUP(69), GROUP(70), GROUP(71), GROUP(72), - /* c */ INVALID, INVALID, INVALID, INVALID, - /* 10 */ GROUP(73), INVALID, INVALID, INVALID, - /* 14 */ GROUP(75), GROUP(76), INVALID, GROUP(77), - /* 18 */ INVALID, INVALID, INVALID, INVALID, - /* 1c */ GROUP(78), GROUP(79), GROUP(80), INVALID, - /* 20 */ GROUP(81), GROUP(82), GROUP(83), GROUP(84), - /* 24 */ GROUP(85), GROUP(108), INVALID, INVALID, - /* 28 */ GROUP(87), GROUP(88), GROUP(89), GROUP(74), - /* 2c */ INVALID, INVALID, INVALID, INVALID, - /* 30 */ GROUP(91), GROUP(92), GROUP(93), GROUP(94), - /* 34 */ GROUP(95), GROUP(96), INVALID, GROUP(97), - /* 38 */ GROUP(98), GROUP(99), GROUP(100), GROUP(101), - /* 3c */ GROUP(102), GROUP(103), GROUP(104), GROUP(105), - /* 40 */ GROUP(106), GROUP(107), INVALID, INVALID, - /* 44 */ INVALID, INVALID, INVALID, INVALID, - /* 48 */ INVALID, INVALID, INVALID, INVALID, - /* 4c */ INVALID, INVALID, INVALID, INVALID, - /* 50 */ INVALID, INVALID, INVALID, INVALID, - /* 54 */ INVALID, INVALID, INVALID, INVALID, - /* 58 */ INVALID, INVALID, INVALID, INVALID, - /* 5c */ INVALID, INVALID, INVALID, INVALID, - /* 60 */ INVALID, INVALID, INVALID, INVALID, - /* 64 */ INVALID, INVALID, INVALID, INVALID, - /* 68 */ INVALID, INVALID, INVALID, INVALID, - /* 6c */ INVALID, INVALID, INVALID, INVALID, - /* 70 */ INVALID, INVALID, INVALID, INVALID, - /* 74 */ INVALID, INVALID, INVALID, INVALID, - /* 78 */ INVALID, INVALID, INVALID, INVALID, - /* 7c */ INVALID, INVALID, INVALID, INVALID, - /* 80 */ GROUP(55), GROUP(59), INVALID, INVALID, - /* 84 */ INVALID, INVALID, INVALID, INVALID, - /* 88 */ INVALID, INVALID, INVALID, INVALID, - /* 8c */ INVALID, INVALID, INVALID, INVALID, - /* 90 */ INVALID, INVALID, INVALID, INVALID, - /* 94 */ INVALID, INVALID, INVALID, INVALID, - /* 98 */ INVALID, INVALID, INVALID, INVALID, - /* 9c */ INVALID, INVALID, INVALID, INVALID, - /* a0 */ INVALID, INVALID, INVALID, INVALID, - /* a4 */ INVALID, INVALID, INVALID, INVALID, - /* a8 */ INVALID, INVALID, INVALID, INVALID, - /* ac */ INVALID, INVALID, INVALID, INVALID, - /* b0 */ INVALID, INVALID, INVALID, INVALID, - /* b4 */ INVALID, INVALID, INVALID, INVALID, - /* b8 */ INVALID, INVALID, INVALID, INVALID, - /* bc */ INVALID, INVALID, INVALID, INVALID, - /* c0 */ INVALID, INVALID, INVALID, INVALID, - /* c4 */ INVALID, INVALID, INVALID, INVALID, - /* c8 */ INVALID, INVALID, INVALID, INVALID, - /* cc */ INVALID, INVALID, INVALID, INVALID, - /* d0 */ INVALID, INVALID, INVALID, INVALID, - /* d4 */ INVALID, INVALID, INVALID, INVALID, - /* d8 */ INVALID, INVALID, INVALID, GROUP(109), - /* dc */ GROUP(110), GROUP(111), GROUP(112), GROUP(113), - /* e0 */ INVALID, INVALID, INVALID, INVALID, - /* e4 */ INVALID, INVALID, INVALID, INVALID, - /* e8 */ INVALID, INVALID, INVALID, INVALID, - /* ec */ INVALID, INVALID, INVALID, INVALID, - /* f0 */ GROUP(114), GROUP(115), INVALID, INVALID, - /* f4 */ INVALID, INVALID, INVALID, INVALID, - /* f8 */ INVALID, INVALID, INVALID, INVALID, - /* fc */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__55[] = { - /* 0 */ INVALID, INVALID, INVALID, GROUP(56), -}; - -static const uint16_t ud_itab__56[] = { - /* 0 */ GROUP(57), GROUP(58), -}; - -static const uint16_t ud_itab__57[] = { - /* 0 */ INVALID, 718, INVALID, -}; - -static const uint16_t ud_itab__58[] = { - /* 0 */ INVALID, 719, INVALID, -}; - -static const uint16_t ud_itab__59[] = { - /* 0 */ INVALID, INVALID, INVALID, GROUP(60), -}; - -static const uint16_t ud_itab__60[] = { - /* 0 */ GROUP(61), GROUP(62), -}; - -static const uint16_t ud_itab__61[] = { - /* 0 */ INVALID, 722, INVALID, -}; - -static const uint16_t ud_itab__62[] = { - /* 0 */ INVALID, 723, INVALID, -}; - -static const uint16_t ud_itab__63[] = { - /* 0 */ 1590, INVALID, INVALID, 1591, -}; - -static const uint16_t ud_itab__64[] = { - /* 0 */ 1593, INVALID, INVALID, 1594, -}; - -static const uint16_t ud_itab__65[] = { - /* 0 */ 1596, INVALID, INVALID, 1597, -}; - -static const uint16_t ud_itab__66[] = { - /* 0 */ 1599, INVALID, INVALID, 1600, -}; - -static const uint16_t ud_itab__67[] = { - /* 0 */ 1584, INVALID, INVALID, 1585, -}; - -static const uint16_t ud_itab__68[] = { - /* 0 */ 1587, INVALID, INVALID, 1588, -}; - -static const uint16_t ud_itab__69[] = { - /* 0 */ 1608, INVALID, INVALID, 1609, -}; - -static const uint16_t ud_itab__70[] = { - /* 0 */ 1614, INVALID, INVALID, 1615, -}; - -static const uint16_t ud_itab__71[] = { - /* 0 */ 1611, INVALID, INVALID, 1612, -}; - -static const uint16_t ud_itab__72[] = { - /* 0 */ 1617, INVALID, INVALID, 1618, -}; - -static const uint16_t ud_itab__73[] = { - /* 0 */ INVALID, INVALID, INVALID, 1623, -}; - -static const uint16_t ud_itab__74[] = { - /* 0 */ INVALID, INVALID, INVALID, 1685, -}; - -static const uint16_t ud_itab__75[] = { - /* 0 */ INVALID, INVALID, INVALID, 1659, -}; - -static const uint16_t ud_itab__76[] = { - /* 0 */ INVALID, INVALID, INVALID, 1658, -}; - -static const uint16_t ud_itab__77[] = { - /* 0 */ INVALID, INVALID, INVALID, 1713, -}; - -static const uint16_t ud_itab__78[] = { - /* 0 */ 1575, INVALID, INVALID, 1576, -}; - -static const uint16_t ud_itab__79[] = { - /* 0 */ 1578, INVALID, INVALID, 1579, -}; - -static const uint16_t ud_itab__80[] = { - /* 0 */ 1581, INVALID, INVALID, 1582, -}; - -static const uint16_t ud_itab__81[] = { - /* 0 */ INVALID, INVALID, INVALID, 1687, -}; - -static const uint16_t ud_itab__82[] = { - /* 0 */ INVALID, INVALID, INVALID, 1689, -}; - -static const uint16_t ud_itab__83[] = { - /* 0 */ INVALID, INVALID, INVALID, 1691, -}; - -static const uint16_t ud_itab__84[] = { - /* 0 */ INVALID, INVALID, INVALID, 1693, -}; - -static const uint16_t ud_itab__85[] = { - /* 0 */ INVALID, INVALID, INVALID, 1695, -}; - -static const uint16_t ud_itab__86[] = { - /* 0 */ 1602, INVALID, INVALID, 1603, -}; - -static const uint16_t ud_itab__87[] = { - /* 0 */ INVALID, INVALID, INVALID, 1624, -}; - -static const uint16_t ud_itab__88[] = { - /* 0 */ INVALID, INVALID, INVALID, 1710, -}; - -static const uint16_t ud_itab__89[] = { - /* 0 */ INVALID, INVALID, INVALID, 1683, -}; - -static const uint16_t ud_itab__90[] = { - /* 0 */ 1605, INVALID, INVALID, 1606, -}; - -static const uint16_t ud_itab__91[] = { - /* 0 */ INVALID, INVALID, INVALID, 1698, -}; - -static const uint16_t ud_itab__92[] = { - /* 0 */ INVALID, INVALID, INVALID, 1700, -}; - -static const uint16_t ud_itab__93[] = { - /* 0 */ INVALID, INVALID, INVALID, 1702, -}; - -static const uint16_t ud_itab__94[] = { - /* 0 */ INVALID, INVALID, INVALID, 1704, -}; - -static const uint16_t ud_itab__95[] = { - /* 0 */ INVALID, INVALID, INVALID, 1706, -}; - -static const uint16_t ud_itab__96[] = { - /* 0 */ INVALID, INVALID, INVALID, 1708, -}; - -static const uint16_t ud_itab__97[] = { - /* 0 */ INVALID, INVALID, INVALID, 1719, -}; - -static const uint16_t ud_itab__98[] = { - /* 0 */ INVALID, INVALID, INVALID, 1626, -}; - -static const uint16_t ud_itab__99[] = { - /* 0 */ INVALID, INVALID, INVALID, 1628, -}; - -static const uint16_t ud_itab__100[] = { - /* 0 */ INVALID, INVALID, INVALID, 1630, -}; - -static const uint16_t ud_itab__101[] = { - /* 0 */ INVALID, INVALID, INVALID, 1632, -}; - -static const uint16_t ud_itab__102[] = { - /* 0 */ INVALID, INVALID, INVALID, 1634, -}; - -static const uint16_t ud_itab__103[] = { - /* 0 */ INVALID, INVALID, INVALID, 1636, -}; - -static const uint16_t ud_itab__104[] = { - /* 0 */ INVALID, INVALID, INVALID, 1640, -}; - -static const uint16_t ud_itab__105[] = { - /* 0 */ INVALID, INVALID, INVALID, 1638, -}; - -static const uint16_t ud_itab__106[] = { - /* 0 */ INVALID, INVALID, INVALID, 1642, -}; - -static const uint16_t ud_itab__107[] = { - /* 0 */ INVALID, INVALID, INVALID, 1644, -}; - -static const uint16_t ud_itab__108[] = { - /* 0 */ INVALID, INVALID, INVALID, 1697, -}; - -static const uint16_t ud_itab__109[] = { - /* 0 */ INVALID, INVALID, INVALID, 45, -}; - -static const uint16_t ud_itab__110[] = { - /* 0 */ INVALID, INVALID, INVALID, 41, -}; - -static const uint16_t ud_itab__111[] = { - /* 0 */ INVALID, INVALID, INVALID, 43, -}; - -static const uint16_t ud_itab__112[] = { - /* 0 */ INVALID, INVALID, INVALID, 37, -}; - -static const uint16_t ud_itab__113[] = { - /* 0 */ INVALID, INVALID, INVALID, 39, -}; - -static const uint16_t ud_itab__114[] = { - /* 0 */ 1725, 1727, INVALID, INVALID, -}; - -static const uint16_t ud_itab__115[] = { - /* 0 */ 1726, 1728, INVALID, INVALID, -}; - -static const uint16_t ud_itab__116[] = { - /* 0 */ INVALID, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, - /* 8 */ GROUP(117), GROUP(118), GROUP(119), GROUP(120), - /* c */ GROUP(121), GROUP(122), GROUP(123), GROUP(124), - /* 10 */ INVALID, INVALID, INVALID, INVALID, - /* 14 */ GROUP(125), GROUP(126), GROUP(127), GROUP(129), - /* 18 */ INVALID, INVALID, INVALID, INVALID, - /* 1c */ INVALID, INVALID, INVALID, INVALID, - /* 20 */ GROUP(130), GROUP(131), GROUP(132), INVALID, - /* 24 */ INVALID, INVALID, INVALID, INVALID, - /* 28 */ INVALID, INVALID, INVALID, INVALID, - /* 2c */ INVALID, INVALID, INVALID, INVALID, - /* 30 */ INVALID, INVALID, INVALID, INVALID, - /* 34 */ INVALID, INVALID, INVALID, INVALID, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, - /* 40 */ GROUP(134), GROUP(135), GROUP(136), INVALID, - /* 44 */ GROUP(137), INVALID, INVALID, INVALID, - /* 48 */ INVALID, INVALID, INVALID, INVALID, - /* 4c */ INVALID, INVALID, INVALID, INVALID, - /* 50 */ INVALID, INVALID, INVALID, INVALID, - /* 54 */ INVALID, INVALID, INVALID, INVALID, - /* 58 */ INVALID, INVALID, INVALID, INVALID, - /* 5c */ INVALID, INVALID, INVALID, INVALID, - /* 60 */ GROUP(139), GROUP(140), GROUP(141), GROUP(142), - /* 64 */ INVALID, INVALID, INVALID, INVALID, - /* 68 */ INVALID, INVALID, INVALID, INVALID, - /* 6c */ INVALID, INVALID, INVALID, INVALID, - /* 70 */ INVALID, INVALID, INVALID, INVALID, - /* 74 */ INVALID, INVALID, INVALID, INVALID, - /* 78 */ INVALID, INVALID, INVALID, INVALID, - /* 7c */ INVALID, INVALID, INVALID, INVALID, - /* 80 */ INVALID, INVALID, INVALID, INVALID, - /* 84 */ INVALID, INVALID, INVALID, INVALID, - /* 88 */ INVALID, INVALID, INVALID, INVALID, - /* 8c */ INVALID, INVALID, INVALID, INVALID, - /* 90 */ INVALID, INVALID, INVALID, INVALID, - /* 94 */ INVALID, INVALID, INVALID, INVALID, - /* 98 */ INVALID, INVALID, INVALID, INVALID, - /* 9c */ INVALID, INVALID, INVALID, INVALID, - /* a0 */ INVALID, INVALID, INVALID, INVALID, - /* a4 */ INVALID, INVALID, INVALID, INVALID, - /* a8 */ INVALID, INVALID, INVALID, INVALID, - /* ac */ INVALID, INVALID, INVALID, INVALID, - /* b0 */ INVALID, INVALID, INVALID, INVALID, - /* b4 */ INVALID, INVALID, INVALID, INVALID, - /* b8 */ INVALID, INVALID, INVALID, INVALID, - /* bc */ INVALID, INVALID, INVALID, INVALID, - /* c0 */ INVALID, INVALID, INVALID, INVALID, - /* c4 */ INVALID, INVALID, INVALID, INVALID, - /* c8 */ INVALID, INVALID, INVALID, INVALID, - /* cc */ INVALID, INVALID, INVALID, INVALID, - /* d0 */ INVALID, INVALID, INVALID, INVALID, - /* d4 */ INVALID, INVALID, INVALID, INVALID, - /* d8 */ INVALID, INVALID, INVALID, INVALID, - /* dc */ INVALID, INVALID, INVALID, GROUP(138), - /* e0 */ INVALID, INVALID, INVALID, INVALID, - /* e4 */ INVALID, INVALID, INVALID, INVALID, - /* e8 */ INVALID, INVALID, INVALID, INVALID, - /* ec */ INVALID, INVALID, INVALID, INVALID, - /* f0 */ INVALID, INVALID, INVALID, INVALID, - /* f4 */ INVALID, INVALID, INVALID, INVALID, - /* f8 */ INVALID, INVALID, INVALID, INVALID, - /* fc */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__117[] = { - /* 0 */ INVALID, INVALID, INVALID, 1646, -}; - -static const uint16_t ud_itab__118[] = { - /* 0 */ INVALID, INVALID, INVALID, 1648, -}; - -static const uint16_t ud_itab__119[] = { - /* 0 */ INVALID, INVALID, INVALID, 1650, -}; - -static const uint16_t ud_itab__120[] = { - /* 0 */ INVALID, INVALID, INVALID, 1652, -}; - -static const uint16_t ud_itab__121[] = { - /* 0 */ INVALID, INVALID, INVALID, 1656, -}; - -static const uint16_t ud_itab__122[] = { - /* 0 */ INVALID, INVALID, INVALID, 1654, -}; - -static const uint16_t ud_itab__123[] = { - /* 0 */ INVALID, INVALID, INVALID, 1679, -}; - -static const uint16_t ud_itab__124[] = { - /* 0 */ 1620, INVALID, INVALID, 1621, -}; - -static const uint16_t ud_itab__125[] = { - /* 0 */ INVALID, INVALID, INVALID, 1046, -}; - -static const uint16_t ud_itab__126[] = { - /* 0 */ INVALID, INVALID, INVALID, 1057, -}; - -static const uint16_t ud_itab__127[] = { - /* 0 */ INVALID, INVALID, INVALID, GROUP(128), -}; - -static const uint16_t ud_itab__128[] = { - /* 0 */ 1048, 1050, 1052, -}; - -static const uint16_t ud_itab__129[] = { - /* 0 */ INVALID, INVALID, INVALID, 202, -}; - -static const uint16_t ud_itab__130[] = { - /* 0 */ INVALID, INVALID, INVALID, 1059, -}; - -static const uint16_t ud_itab__131[] = { - /* 0 */ INVALID, INVALID, INVALID, 1559, -}; - -static const uint16_t ud_itab__132[] = { - /* 0 */ INVALID, INVALID, INVALID, GROUP(133), -}; - -static const uint16_t ud_itab__133[] = { - /* 0 */ 1063, 1064, 1065, -}; - -static const uint16_t ud_itab__134[] = { - /* 0 */ INVALID, INVALID, INVALID, 198, -}; - -static const uint16_t ud_itab__135[] = { - /* 0 */ INVALID, INVALID, INVALID, 196, -}; - -static const uint16_t ud_itab__136[] = { - /* 0 */ INVALID, INVALID, INVALID, 1681, -}; - -static const uint16_t ud_itab__137[] = { - /* 0 */ INVALID, INVALID, INVALID, 1514, -}; - -static const uint16_t ud_itab__138[] = { - /* 0 */ INVALID, INVALID, INVALID, 47, -}; - -static const uint16_t ud_itab__139[] = { - /* 0 */ INVALID, INVALID, INVALID, 1717, -}; - -static const uint16_t ud_itab__140[] = { - /* 0 */ INVALID, INVALID, INVALID, 1715, -}; - -static const uint16_t ud_itab__141[] = { - /* 0 */ INVALID, INVALID, INVALID, 1723, -}; - -static const uint16_t ud_itab__142[] = { - /* 0 */ INVALID, INVALID, INVALID, 1721, -}; - -static const uint16_t ud_itab__143[] = { - /* 0 */ 901, INVALID, INVALID, 899, -}; - -static const uint16_t ud_itab__144[] = { - /* 0 */ 1388, 1392, 1394, 1390, -}; - -static const uint16_t ud_itab__145[] = { - /* 0 */ 1307, INVALID, 1309, INVALID, -}; - -static const uint16_t ud_itab__146[] = { - /* 0 */ 1292, INVALID, 1294, INVALID, -}; - -static const uint16_t ud_itab__147[] = { - /* 0 */ 61, INVALID, INVALID, 59, -}; - -static const uint16_t ud_itab__148[] = { - /* 0 */ 65, INVALID, INVALID, 63, -}; - -static const uint16_t ud_itab__149[] = { - /* 0 */ 977, INVALID, INVALID, 975, -}; - -static const uint16_t ud_itab__150[] = { - /* 0 */ 1501, INVALID, INVALID, 1499, -}; - -static const uint16_t ud_itab__151[] = { - /* 0 */ 27, 29, 31, 25, -}; - -static const uint16_t ud_itab__152[] = { - /* 0 */ 947, 949, 951, 945, -}; - -static const uint16_t ud_itab__153[] = { - /* 0 */ 146, 151, 157, 140, -}; - -static const uint16_t ud_itab__154[] = { - /* 0 */ 135, INVALID, 164, 144, -}; - -static const uint16_t ud_itab__155[] = { - /* 0 */ 1421, 1423, 1425, 1419, -}; - -static const uint16_t ud_itab__156[] = { - /* 0 */ 819, 821, 823, 817, -}; - -static const uint16_t ud_itab__157[] = { - /* 0 */ 190, 192, 194, 188, -}; - -static const uint16_t ud_itab__158[] = { - /* 0 */ 803, 805, 807, 801, -}; - -static const uint16_t ud_itab__159[] = { - /* 0 */ 1210, INVALID, INVALID, 1208, -}; - -static const uint16_t ud_itab__160[] = { - /* 0 */ 1213, INVALID, INVALID, 1211, -}; - -static const uint16_t ud_itab__161[] = { - /* 0 */ 1216, INVALID, INVALID, 1214, -}; - -static const uint16_t ud_itab__162[] = { - /* 0 */ 988, INVALID, INVALID, 986, -}; - -static const uint16_t ud_itab__163[] = { - /* 0 */ 1039, INVALID, INVALID, 1037, -}; - -static const uint16_t ud_itab__164[] = { - /* 0 */ 1042, INVALID, INVALID, 1040, -}; - -static const uint16_t ud_itab__165[] = { - /* 0 */ 1045, INVALID, INVALID, 1043, -}; - -static const uint16_t ud_itab__166[] = { - /* 0 */ 994, INVALID, INVALID, 992, -}; - -static const uint16_t ud_itab__167[] = { - /* 0 */ 1201, INVALID, INVALID, 1199, -}; - -static const uint16_t ud_itab__168[] = { - /* 0 */ 1204, INVALID, INVALID, 1202, -}; - -static const uint16_t ud_itab__169[] = { - /* 0 */ 1207, INVALID, INVALID, 1205, -}; - -static const uint16_t ud_itab__170[] = { - /* 0 */ 991, INVALID, INVALID, 989, -}; - -static const uint16_t ud_itab__171[] = { - /* 0 */ INVALID, INVALID, INVALID, 1549, -}; - -static const uint16_t ud_itab__172[] = { - /* 0 */ INVALID, INVALID, INVALID, 1547, -}; - -static const uint16_t ud_itab__173[] = { - /* 0 */ GROUP(174), INVALID, INVALID, GROUP(175), -}; - -static const uint16_t ud_itab__174[] = { - /* 0 */ 867, 868, 911, -}; - -static const uint16_t ud_itab__175[] = { - /* 0 */ 869, 871, 912, -}; - -static const uint16_t ud_itab__176[] = { - /* 0 */ 921, INVALID, 1524, 1519, -}; - -static const uint16_t ud_itab__177[] = { - /* 0 */ 1135, 1539, 1537, 1541, -}; - -static const uint16_t ud_itab__178[] = { - /* 0 */ INVALID, INVALID, GROUP(179), INVALID, - /* 4 */ GROUP(180), INVALID, GROUP(181), INVALID, -}; - -static const uint16_t ud_itab__179[] = { - /* 0 */ 1160, INVALID, INVALID, 1164, -}; - -static const uint16_t ud_itab__180[] = { - /* 0 */ 1153, INVALID, INVALID, 1151, -}; - -static const uint16_t ud_itab__181[] = { - /* 0 */ 1139, INVALID, INVALID, 1138, -}; - -static const uint16_t ud_itab__182[] = { - /* 0 */ INVALID, INVALID, GROUP(183), INVALID, - /* 4 */ GROUP(184), INVALID, GROUP(185), INVALID, -}; - -static const uint16_t ud_itab__183[] = { - /* 0 */ 1166, INVALID, INVALID, 1170, -}; - -static const uint16_t ud_itab__184[] = { - /* 0 */ 1154, INVALID, INVALID, 1158, -}; - -static const uint16_t ud_itab__185[] = { - /* 0 */ 1143, INVALID, INVALID, 1142, -}; - -static const uint16_t ud_itab__186[] = { - /* 0 */ INVALID, INVALID, GROUP(187), GROUP(188), - /* 4 */ INVALID, INVALID, GROUP(189), GROUP(190), -}; - -static const uint16_t ud_itab__187[] = { - /* 0 */ 1172, INVALID, INVALID, 1176, -}; - -static const uint16_t ud_itab__188[] = { - /* 0 */ INVALID, INVALID, INVALID, 1545, -}; - -static const uint16_t ud_itab__189[] = { - /* 0 */ 1147, INVALID, INVALID, 1146, -}; - -static const uint16_t ud_itab__190[] = { - /* 0 */ INVALID, INVALID, INVALID, 1543, -}; - -static const uint16_t ud_itab__191[] = { - /* 0 */ 1028, INVALID, INVALID, 1029, -}; - -static const uint16_t ud_itab__192[] = { - /* 0 */ 1031, INVALID, INVALID, 1032, -}; - -static const uint16_t ud_itab__193[] = { - /* 0 */ 1034, INVALID, INVALID, 1035, -}; - -static const uint16_t ud_itab__194[] = { - /* 0 */ INVALID, 1466, INVALID, -}; - -static const uint16_t ud_itab__195[] = { - /* 0 */ INVALID, 1467, INVALID, -}; - -static const uint16_t ud_itab__196[] = { - /* 0 */ INVALID, 1553, INVALID, 1551, -}; - -static const uint16_t ud_itab__197[] = { - /* 0 */ INVALID, 1557, INVALID, 1555, -}; - -static const uint16_t ud_itab__198[] = { - /* 0 */ GROUP(199), INVALID, 917, GROUP(200), -}; - -static const uint16_t ud_itab__199[] = { - /* 0 */ 873, 874, 914, -}; - -static const uint16_t ud_itab__200[] = { - /* 0 */ 875, 877, 915, -}; - -static const uint16_t ud_itab__201[] = { - /* 0 */ 922, INVALID, 1526, 1517, -}; - -static const uint16_t ud_itab__202[] = { - /* 0 */ INVALID, GROUP(203), -}; - -static const uint16_t ud_itab__203[] = { - /* 0 */ GROUP(204), GROUP(205), GROUP(206), INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__204[] = { - /* 0 */ 826, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__205[] = { - /* 0 */ 1511, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__206[] = { - /* 0 */ 1512, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__207[] = { - /* 0 */ INVALID, GROUP(208), -}; - -static const uint16_t ud_itab__208[] = { - /* 0 */ GROUP(209), GROUP(210), GROUP(211), GROUP(212), - /* 4 */ GROUP(213), GROUP(214), INVALID, INVALID, -}; - -static const uint16_t ud_itab__209[] = { - /* 0 */ 1513, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__210[] = { - /* 0 */ 1503, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__211[] = { - /* 0 */ 1504, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__212[] = { - /* 0 */ 1505, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__213[] = { - /* 0 */ 1506, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__214[] = { - /* 0 */ 1507, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__215[] = { - /* 0 */ GROUP(216), GROUP(217), -}; - -static const uint16_t ud_itab__216[] = { - /* 0 */ 684, 683, 769, 1402, - /* 4 */ 1509, 1508, INVALID, 80, -}; - -static const uint16_t ud_itab__217[] = { - /* 0 */ INVALID, INVALID, INVALID, INVALID, - /* 4 */ INVALID, GROUP(218), GROUP(219), GROUP(220), -}; - -static const uint16_t ud_itab__218[] = { - /* 0 */ 778, 779, 780, 781, - /* 4 */ 782, 783, 784, 785, -}; - -static const uint16_t ud_itab__219[] = { - /* 0 */ 809, 810, 811, 812, - /* 4 */ 813, 814, 815, 816, -}; - -static const uint16_t ud_itab__220[] = { - /* 0 */ 1367, 1368, 1369, 1370, - /* 4 */ 1371, 1372, 1373, 1374, -}; - -static const uint16_t ud_itab__221[] = { - /* 0 */ INVALID, INVALID, 1712, INVALID, -}; - -static const uint16_t ud_itab__222[] = { - /* 0 */ INVALID, INVALID, INVALID, INVALID, - /* 4 */ 1671, 1678, 1676, 1674, -}; - -static const uint16_t ud_itab__223[] = { - /* 0 */ 113, 118, 121, 111, -}; - -static const uint16_t ud_itab__224[] = { - /* 0 */ 1060, INVALID, INVALID, 1061, -}; - -static const uint16_t ud_itab__225[] = { - /* 0 */ 1056, INVALID, INVALID, 1054, -}; - -static const uint16_t ud_itab__226[] = { - /* 0 */ 1382, INVALID, INVALID, 1380, -}; - -static const uint16_t ud_itab__227[] = { - /* 0 */ GROUP(228), GROUP(235), -}; - -static const uint16_t ud_itab__228[] = { - /* 0 */ INVALID, GROUP(229), INVALID, INVALID, - /* 4 */ INVALID, INVALID, GROUP(230), GROUP(234), -}; - -static const uint16_t ud_itab__229[] = { - /* 0 */ 125, 126, 127, -}; - -static const uint16_t ud_itab__230[] = { - /* 0 */ GROUP(231), INVALID, GROUP(232), GROUP(233), -}; - -static const uint16_t ud_itab__231[] = { - /* 0 */ INVALID, 1461, INVALID, -}; - -static const uint16_t ud_itab__232[] = { - /* 0 */ INVALID, 1460, INVALID, -}; - -static const uint16_t ud_itab__233[] = { - /* 0 */ INVALID, 1459, INVALID, -}; - -static const uint16_t ud_itab__234[] = { - /* 0 */ INVALID, 1462, INVALID, -}; - -static const uint16_t ud_itab__235[] = { - /* 0 */ INVALID, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, 1458, INVALID, -}; - -static const uint16_t ud_itab__236[] = { - /* 0 */ INVALID, 35, INVALID, 33, -}; - -static const uint16_t ud_itab__237[] = { - /* 0 */ 1161, INVALID, INVALID, 1162, -}; - -static const uint16_t ud_itab__238[] = { - /* 0 */ 1167, INVALID, INVALID, 1168, -}; - -static const uint16_t ud_itab__239[] = { - /* 0 */ 1173, INVALID, INVALID, 1174, -}; - -static const uint16_t ud_itab__240[] = { - /* 0 */ 1529, INVALID, INVALID, 1530, -}; - -static const uint16_t ud_itab__241[] = { - /* 0 */ 1094, INVALID, INVALID, 1095, -}; - -static const uint16_t ud_itab__242[] = { - /* 0 */ INVALID, 1523, 1528, 919, -}; - -static const uint16_t ud_itab__243[] = { - /* 0 */ 1087, INVALID, INVALID, 1085, -}; - -static const uint16_t ud_itab__244[] = { - /* 0 */ 1193, INVALID, INVALID, 1194, -}; - -static const uint16_t ud_itab__245[] = { - /* 0 */ 1196, INVALID, INVALID, 1197, -}; - -static const uint16_t ud_itab__246[] = { - /* 0 */ 1084, INVALID, INVALID, 1082, -}; - -static const uint16_t ud_itab__247[] = { - /* 0 */ 1018, INVALID, INVALID, 1016, -}; - -static const uint16_t ud_itab__248[] = { - /* 0 */ 1010, INVALID, INVALID, 1011, -}; - -static const uint16_t ud_itab__249[] = { - /* 0 */ 1013, INVALID, INVALID, 1014, -}; - -static const uint16_t ud_itab__250[] = { - /* 0 */ 1076, INVALID, INVALID, 1077, -}; - -static const uint16_t ud_itab__251[] = { - /* 0 */ 1021, INVALID, INVALID, 1019, -}; - -static const uint16_t ud_itab__252[] = { - /* 0 */ 1024, INVALID, INVALID, 1022, -}; - -static const uint16_t ud_itab__253[] = { - /* 0 */ 1148, INVALID, INVALID, 1149, -}; - -static const uint16_t ud_itab__254[] = { - /* 0 */ 1157, INVALID, INVALID, 1155, -}; - -static const uint16_t ud_itab__255[] = { - /* 0 */ 1027, INVALID, INVALID, 1025, -}; - -static const uint16_t ud_itab__256[] = { - /* 0 */ 1088, INVALID, INVALID, 1089, -}; - -static const uint16_t ud_itab__257[] = { - /* 0 */ 1093, INVALID, INVALID, 1091, -}; - -static const uint16_t ud_itab__258[] = { - /* 0 */ INVALID, 137, 133, 161, -}; - -static const uint16_t ud_itab__259[] = { - /* 0 */ 910, INVALID, INVALID, 903, -}; - -static const uint16_t ud_itab__260[] = { - /* 0 */ 1187, INVALID, INVALID, 1188, -}; - -static const uint16_t ud_itab__261[] = { - /* 0 */ 1190, INVALID, INVALID, 1191, -}; - -static const uint16_t ud_itab__262[] = { - /* 0 */ 1081, INVALID, INVALID, 1079, -}; - -static const uint16_t ud_itab__263[] = { - /* 0 */ 1119, INVALID, INVALID, 1117, -}; - -static const uint16_t ud_itab__264[] = { - /* 0 */ 1004, INVALID, INVALID, 1005, -}; - -static const uint16_t ud_itab__265[] = { - /* 0 */ 1007, INVALID, INVALID, 1008, -}; - -static const uint16_t ud_itab__266[] = { - /* 0 */ 1075, INVALID, INVALID, 1073, -}; - -static const uint16_t ud_itab__267[] = { - /* 0 */ 1267, INVALID, INVALID, 1265, -}; - -static const uint16_t ud_itab__268[] = { - /* 0 */ INVALID, 1561, INVALID, INVALID, -}; - -static const uint16_t ud_itab__269[] = { - /* 0 */ 1137, INVALID, INVALID, 1136, -}; - -static const uint16_t ud_itab__270[] = { - /* 0 */ 1141, INVALID, INVALID, 1140, -}; - -static const uint16_t ud_itab__271[] = { - /* 0 */ 1145, INVALID, INVALID, 1144, -}; - -static const uint16_t ud_itab__272[] = { - /* 0 */ 1535, INVALID, INVALID, 1536, -}; - -static const uint16_t ud_itab__273[] = { - /* 0 */ 1070, INVALID, INVALID, 1071, -}; - -static const uint16_t ud_itab__274[] = { - /* 0 */ 1134, INVALID, INVALID, 1132, -}; - -static const uint16_t ud_itab__275[] = { - /* 0 */ INVALID, GROUP(276), -}; - -static const uint16_t ud_itab__276[] = { - /* 0 */ 800, INVALID, INVALID, 1521, -}; - -static const uint16_t ud_itab__277[] = { - /* 0 */ 1180, INVALID, INVALID, 1178, -}; - -static const uint16_t ud_itab__278[] = { - /* 0 */ 1183, INVALID, INVALID, 1181, -}; - -static const uint16_t ud_itab__279[] = { - /* 0 */ 1184, INVALID, INVALID, 1185, -}; - -static const uint16_t ud_itab__280[] = { - /* 0 */ 1534, INVALID, INVALID, 1532, -}; - -static const uint16_t ud_itab__281[] = { - /* 0 */ 997, INVALID, INVALID, 995, -}; - -static const uint16_t ud_itab__282[] = { - /* 0 */ 998, INVALID, INVALID, 999, -}; - -static const uint16_t ud_itab__283[] = { - /* 0 */ 1001, INVALID, INVALID, 1002, -}; - -static const uint16_t ud_itab__284[] = { - /* 0 */ 1243, INVALID, -}; - -static const uint16_t ud_itab__285[] = { - /* 0 */ 1098, INVALID, -}; - -static const uint16_t ud_itab__286[] = { - /* 0 */ 1244, INVALID, -}; - -static const uint16_t ud_itab__287[] = { - /* 0 */ 1099, INVALID, -}; - -static const uint16_t ud_itab__288[] = { - /* 0 */ 174, INVALID, -}; - -static const uint16_t ud_itab__289[] = { - /* 0 */ 175, INVALID, -}; - -static const uint16_t ud_itab__290[] = { - /* 0 */ 1, INVALID, -}; - -static const uint16_t ud_itab__291[] = { - /* 0 */ 4, INVALID, -}; - -static const uint16_t ud_itab__292[] = { - /* 0 */ GROUP(293), GROUP(294), INVALID, -}; - -static const uint16_t ud_itab__293[] = { - /* 0 */ 1258, INVALID, -}; - -static const uint16_t ud_itab__294[] = { - /* 0 */ 1259, INVALID, -}; - -static const uint16_t ud_itab__295[] = { - /* 0 */ GROUP(296), GROUP(297), INVALID, -}; - -static const uint16_t ud_itab__296[] = { - /* 0 */ 1111, INVALID, -}; - -static const uint16_t ud_itab__297[] = { - /* 0 */ 1112, INVALID, -}; - -static const uint16_t ud_itab__298[] = { - /* 0 */ 1660, INVALID, -}; - -static const uint16_t ud_itab__299[] = { - /* 0 */ 67, 68, -}; - -static const uint16_t ud_itab__300[] = { - /* 0 */ 711, 712, INVALID, -}; - -static const uint16_t ud_itab__301[] = { - /* 0 */ 984, 985, INVALID, -}; - -static const uint16_t ud_itab__302[] = { - /* 0 */ 21, 971, 11, 1343, - /* 4 */ 55, 1415, 1495, 107, -}; - -static const uint16_t ud_itab__303[] = { - /* 0 */ 23, 972, 13, 1344, - /* 4 */ 57, 1416, 1496, 109, -}; - -static const uint16_t ud_itab__304[] = { - /* 0 */ GROUP(305), GROUP(306), GROUP(307), GROUP(308), - /* 4 */ GROUP(309), GROUP(310), GROUP(311), GROUP(312), -}; - -static const uint16_t ud_itab__305[] = { - /* 0 */ 22, INVALID, -}; - -static const uint16_t ud_itab__306[] = { - /* 0 */ 973, INVALID, -}; - -static const uint16_t ud_itab__307[] = { - /* 0 */ 12, INVALID, -}; - -static const uint16_t ud_itab__308[] = { - /* 0 */ 1345, INVALID, -}; - -static const uint16_t ud_itab__309[] = { - /* 0 */ 56, INVALID, -}; - -static const uint16_t ud_itab__310[] = { - /* 0 */ 1417, INVALID, -}; - -static const uint16_t ud_itab__311[] = { - /* 0 */ 1497, INVALID, -}; - -static const uint16_t ud_itab__312[] = { - /* 0 */ 108, INVALID, -}; - -static const uint16_t ud_itab__313[] = { - /* 0 */ 24, 974, 14, 1346, - /* 4 */ 58, 1418, 1498, 110, -}; - -static const uint16_t ud_itab__314[] = { - /* 0 */ 1110, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__315[] = { - /* 0 */ 74, 75, 76, -}; - -static const uint16_t ud_itab__316[] = { - /* 0 */ 171, 172, 173, -}; - -static const uint16_t ud_itab__317[] = { - /* 0 */ 73, INVALID, -}; - -static const uint16_t ud_itab__318[] = { - /* 0 */ GROUP(319), GROUP(320), GROUP(321), -}; - -static const uint16_t ud_itab__319[] = { - /* 0 */ 1260, 1261, -}; - -static const uint16_t ud_itab__320[] = { - /* 0 */ 1262, 1263, -}; - -static const uint16_t ud_itab__321[] = { - /* 0 */ INVALID, 1264, -}; - -static const uint16_t ud_itab__322[] = { - /* 0 */ GROUP(323), GROUP(324), GROUP(325), -}; - -static const uint16_t ud_itab__323[] = { - /* 0 */ 1113, INVALID, -}; - -static const uint16_t ud_itab__324[] = { - /* 0 */ 1114, 1115, -}; - -static const uint16_t ud_itab__325[] = { - /* 0 */ INVALID, 1116, -}; - -static const uint16_t ud_itab__326[] = { - /* 0 */ 924, 925, 928, -}; - -static const uint16_t ud_itab__327[] = { - /* 0 */ 116, 117, 120, -}; - -static const uint16_t ud_itab__328[] = { - /* 0 */ 1405, 1406, 1407, -}; - -static const uint16_t ud_itab__329[] = { - /* 0 */ 792, 793, 794, -}; - -static const uint16_t ud_itab__330[] = { - /* 0 */ 1348, 1349, 1350, -}; - -static const uint16_t ud_itab__331[] = { - /* 0 */ 1280, 1287, 1268, 1276, - /* 4 */ 1328, 1335, 1319, 1314, -}; - -static const uint16_t ud_itab__332[] = { - /* 0 */ 1285, 1288, 1269, 1275, - /* 4 */ 1324, 1331, 1320, 1316, -}; - -static const uint16_t ud_itab__333[] = { - /* 0 */ GROUP(334), GROUP(335), INVALID, INVALID, - /* 4 */ INVALID, GROUP(341), GROUP(357), GROUP(369), - /* 8 */ INVALID, GROUP(394), INVALID, INVALID, - /* c */ INVALID, GROUP(399), INVALID, INVALID, -}; - -static const uint16_t ud_itab__334[] = { - /* 0 */ 772, INVALID, -}; - -static const uint16_t ud_itab__335[] = { - /* 0 */ INVALID, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, - /* 8 */ INVALID, INVALID, INVALID, INVALID, - /* c */ INVALID, INVALID, INVALID, INVALID, - /* 10 */ 938, 940, GROUP(336), 896, - /* 14 */ 1452, 1450, GROUP(337), 886, - /* 18 */ INVALID, INVALID, INVALID, INVALID, - /* 1c */ INVALID, INVALID, INVALID, INVALID, - /* 20 */ INVALID, INVALID, INVALID, INVALID, - /* 24 */ INVALID, INVALID, INVALID, INVALID, - /* 28 */ 864, 866, INVALID, 909, - /* 2c */ INVALID, INVALID, 1445, 131, - /* 30 */ INVALID, INVALID, INVALID, INVALID, - /* 34 */ INVALID, INVALID, INVALID, INVALID, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, - /* 40 */ INVALID, INVALID, INVALID, INVALID, - /* 44 */ INVALID, INVALID, INVALID, INVALID, - /* 48 */ INVALID, INVALID, INVALID, INVALID, - /* 4c */ INVALID, INVALID, INVALID, INVALID, - /* 50 */ 902, 1389, 1308, 1293, - /* 54 */ 62, 66, 978, 1502, - /* 58 */ 28, 948, 147, 136, - /* 5c */ 1422, 820, 191, 804, - /* 60 */ INVALID, INVALID, INVALID, INVALID, - /* 64 */ INVALID, INVALID, INVALID, INVALID, - /* 68 */ INVALID, INVALID, INVALID, INVALID, - /* 6c */ INVALID, INVALID, INVALID, INVALID, - /* 70 */ INVALID, INVALID, INVALID, INVALID, - /* 74 */ INVALID, INVALID, INVALID, GROUP(340), - /* 78 */ INVALID, INVALID, INVALID, INVALID, - /* 7c */ INVALID, INVALID, INVALID, INVALID, - /* 80 */ INVALID, INVALID, INVALID, INVALID, - /* 84 */ INVALID, INVALID, INVALID, INVALID, - /* 88 */ INVALID, INVALID, INVALID, INVALID, - /* 8c */ INVALID, INVALID, INVALID, INVALID, - /* 90 */ INVALID, INVALID, INVALID, INVALID, - /* 94 */ INVALID, INVALID, INVALID, INVALID, - /* 98 */ INVALID, INVALID, INVALID, INVALID, - /* 9c */ INVALID, INVALID, INVALID, INVALID, - /* a0 */ INVALID, INVALID, INVALID, INVALID, - /* a4 */ INVALID, INVALID, INVALID, INVALID, - /* a8 */ INVALID, INVALID, INVALID, INVALID, - /* ac */ INVALID, INVALID, GROUP(338), INVALID, - /* b0 */ INVALID, INVALID, INVALID, INVALID, - /* b4 */ INVALID, INVALID, INVALID, INVALID, - /* b8 */ INVALID, INVALID, INVALID, INVALID, - /* bc */ INVALID, INVALID, INVALID, INVALID, - /* c0 */ INVALID, INVALID, 114, INVALID, - /* c4 */ INVALID, INVALID, 1383, INVALID, - /* c8 */ INVALID, INVALID, INVALID, INVALID, - /* cc */ INVALID, INVALID, INVALID, INVALID, - /* d0 */ INVALID, INVALID, INVALID, INVALID, - /* d4 */ INVALID, INVALID, INVALID, INVALID, - /* d8 */ INVALID, INVALID, INVALID, INVALID, - /* dc */ INVALID, INVALID, INVALID, INVALID, - /* e0 */ INVALID, INVALID, INVALID, INVALID, - /* e4 */ INVALID, INVALID, INVALID, INVALID, - /* e8 */ INVALID, INVALID, INVALID, INVALID, - /* ec */ INVALID, INVALID, INVALID, INVALID, - /* f0 */ INVALID, INVALID, INVALID, INVALID, - /* f4 */ INVALID, INVALID, INVALID, INVALID, - /* f8 */ INVALID, INVALID, INVALID, INVALID, - /* fc */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__336[] = { - /* 0 */ 894, 898, -}; - -static const uint16_t ud_itab__337[] = { - /* 0 */ 884, 888, -}; - -static const uint16_t ud_itab__338[] = { - /* 0 */ GROUP(339), INVALID, -}; - -static const uint16_t ud_itab__339[] = { - /* 0 */ INVALID, INVALID, INVALID, 1403, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__340[] = { - /* 0 */ 1744, 1745, -}; - -static const uint16_t ud_itab__341[] = { - /* 0 */ INVALID, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, - /* 8 */ INVALID, INVALID, INVALID, INVALID, - /* c */ INVALID, INVALID, INVALID, INVALID, - /* 10 */ 934, 936, GROUP(342), 892, - /* 14 */ 1454, 1448, GROUP(343), 882, - /* 18 */ INVALID, INVALID, INVALID, INVALID, - /* 1c */ INVALID, INVALID, INVALID, INVALID, - /* 20 */ INVALID, INVALID, INVALID, INVALID, - /* 24 */ INVALID, INVALID, INVALID, INVALID, - /* 28 */ 860, 862, INVALID, 907, - /* 2c */ INVALID, INVALID, 1443, 129, - /* 30 */ INVALID, INVALID, INVALID, INVALID, - /* 34 */ INVALID, INVALID, INVALID, INVALID, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, - /* 40 */ INVALID, INVALID, INVALID, INVALID, - /* 44 */ INVALID, INVALID, INVALID, INVALID, - /* 48 */ INVALID, INVALID, INVALID, INVALID, - /* 4c */ INVALID, INVALID, INVALID, INVALID, - /* 50 */ 900, 1391, INVALID, INVALID, - /* 54 */ 60, 64, 976, 1500, - /* 58 */ 26, 946, 141, 145, - /* 5c */ 1420, 818, 189, 802, - /* 60 */ 1209, 1212, 1215, 987, - /* 64 */ 1038, 1041, 1044, 993, - /* 68 */ 1200, 1203, 1206, 990, - /* 6c */ 1550, 1548, GROUP(344), 1520, - /* 70 */ 1542, GROUP(345), GROUP(347), GROUP(349), - /* 74 */ 1030, 1033, 1036, INVALID, - /* 78 */ INVALID, INVALID, INVALID, INVALID, - /* 7c */ 1552, 1556, GROUP(351), 1518, - /* 80 */ INVALID, INVALID, INVALID, INVALID, - /* 84 */ INVALID, INVALID, INVALID, INVALID, - /* 88 */ INVALID, INVALID, INVALID, INVALID, - /* 8c */ INVALID, INVALID, INVALID, INVALID, - /* 90 */ INVALID, INVALID, INVALID, INVALID, - /* 94 */ INVALID, INVALID, INVALID, INVALID, - /* 98 */ INVALID, INVALID, INVALID, INVALID, - /* 9c */ INVALID, INVALID, INVALID, INVALID, - /* a0 */ INVALID, INVALID, INVALID, INVALID, - /* a4 */ INVALID, INVALID, INVALID, INVALID, - /* a8 */ INVALID, INVALID, INVALID, INVALID, - /* ac */ INVALID, INVALID, INVALID, INVALID, - /* b0 */ INVALID, INVALID, INVALID, INVALID, - /* b4 */ INVALID, INVALID, INVALID, INVALID, - /* b8 */ INVALID, INVALID, INVALID, INVALID, - /* bc */ INVALID, INVALID, INVALID, INVALID, - /* c0 */ INVALID, INVALID, 112, INVALID, - /* c4 */ 1062, 1055, 1381, INVALID, - /* c8 */ INVALID, INVALID, INVALID, INVALID, - /* cc */ INVALID, INVALID, INVALID, INVALID, - /* d0 */ 34, 1163, 1169, 1175, - /* d4 */ 1531, 1096, 920, GROUP(352), - /* d8 */ 1195, 1198, 1083, 1017, - /* dc */ 1012, 1015, 1078, 1020, - /* e0 */ 1023, 1150, 1156, 1026, - /* e4 */ 1090, 1092, 162, 904, - /* e8 */ 1189, 1192, 1080, 1118, - /* ec */ 1006, 1009, 1074, 1266, - /* f0 */ INVALID, GROUP(353), GROUP(354), GROUP(355), - /* f4 */ INVALID, 1072, 1133, GROUP(356), - /* f8 */ 1179, 1182, 1186, 1533, - /* fc */ 996, 1000, 1003, INVALID, -}; - -static const uint16_t ud_itab__342[] = { - /* 0 */ 890, INVALID, -}; - -static const uint16_t ud_itab__343[] = { - /* 0 */ 880, INVALID, -}; - -static const uint16_t ud_itab__344[] = { - /* 0 */ 870, 872, 913, -}; - -static const uint16_t ud_itab__345[] = { - /* 0 */ INVALID, INVALID, 1165, INVALID, - /* 4 */ 1152, INVALID, GROUP(346), INVALID, -}; - -static const uint16_t ud_itab__346[] = { - /* 0 */ 1758, INVALID, -}; - -static const uint16_t ud_itab__347[] = { - /* 0 */ INVALID, INVALID, 1171, INVALID, - /* 4 */ 1159, INVALID, GROUP(348), INVALID, -}; - -static const uint16_t ud_itab__348[] = { - /* 0 */ 1760, INVALID, -}; - -static const uint16_t ud_itab__349[] = { - /* 0 */ INVALID, INVALID, 1177, 1546, - /* 4 */ INVALID, INVALID, GROUP(350), 1544, -}; - -static const uint16_t ud_itab__350[] = { - /* 0 */ 1762, INVALID, -}; - -static const uint16_t ud_itab__351[] = { - /* 0 */ 876, 878, 916, -}; - -static const uint16_t ud_itab__352[] = { - /* 0 */ 1086, INVALID, -}; - -static const uint16_t ud_itab__353[] = { - /* 0 */ 1757, INVALID, -}; - -static const uint16_t ud_itab__354[] = { - /* 0 */ 1759, INVALID, -}; - -static const uint16_t ud_itab__355[] = { - /* 0 */ 1761, INVALID, -}; - -static const uint16_t ud_itab__356[] = { - /* 0 */ INVALID, 1522, -}; - -static const uint16_t ud_itab__357[] = { - /* 0 */ 1586, 1589, 1592, 1595, - /* 4 */ 1598, 1601, 1604, 1607, - /* 8 */ 1610, 1616, 1613, 1619, - /* c */ GROUP(358), GROUP(359), GROUP(360), GROUP(361), - /* 10 */ INVALID, INVALID, INVALID, INVALID, - /* 14 */ INVALID, INVALID, INVALID, 1714, - /* 18 */ GROUP(362), GROUP(363), INVALID, INVALID, - /* 1c */ 1577, 1580, 1583, INVALID, - /* 20 */ 1688, 1690, 1692, 1694, - /* 24 */ 1696, INVALID, INVALID, INVALID, - /* 28 */ 1625, 1711, 1684, 1686, - /* 2c */ GROUP(365), GROUP(366), GROUP(367), GROUP(368), - /* 30 */ 1699, 1701, 1703, 1705, - /* 34 */ 1707, 1709, INVALID, 1720, - /* 38 */ 1627, 1629, 1631, 1633, - /* 3c */ 1635, 1637, 1641, 1639, - /* 40 */ 1643, 1645, INVALID, INVALID, - /* 44 */ INVALID, INVALID, INVALID, INVALID, - /* 48 */ INVALID, INVALID, INVALID, INVALID, - /* 4c */ INVALID, INVALID, INVALID, INVALID, - /* 50 */ INVALID, INVALID, INVALID, INVALID, - /* 54 */ INVALID, INVALID, INVALID, INVALID, - /* 58 */ INVALID, INVALID, INVALID, INVALID, - /* 5c */ INVALID, INVALID, INVALID, INVALID, - /* 60 */ INVALID, INVALID, INVALID, INVALID, - /* 64 */ INVALID, INVALID, INVALID, INVALID, - /* 68 */ INVALID, INVALID, INVALID, INVALID, - /* 6c */ INVALID, INVALID, INVALID, INVALID, - /* 70 */ INVALID, INVALID, INVALID, INVALID, - /* 74 */ INVALID, INVALID, INVALID, INVALID, - /* 78 */ INVALID, INVALID, INVALID, INVALID, - /* 7c */ INVALID, INVALID, INVALID, INVALID, - /* 80 */ INVALID, INVALID, INVALID, INVALID, - /* 84 */ INVALID, INVALID, INVALID, INVALID, - /* 88 */ INVALID, INVALID, INVALID, INVALID, - /* 8c */ INVALID, INVALID, INVALID, INVALID, - /* 90 */ INVALID, INVALID, INVALID, INVALID, - /* 94 */ INVALID, INVALID, INVALID, INVALID, - /* 98 */ INVALID, INVALID, INVALID, INVALID, - /* 9c */ INVALID, INVALID, INVALID, INVALID, - /* a0 */ INVALID, INVALID, INVALID, INVALID, - /* a4 */ INVALID, INVALID, INVALID, INVALID, - /* a8 */ INVALID, INVALID, INVALID, INVALID, - /* ac */ INVALID, INVALID, INVALID, INVALID, - /* b0 */ INVALID, INVALID, INVALID, INVALID, - /* b4 */ INVALID, INVALID, INVALID, INVALID, - /* b8 */ INVALID, INVALID, INVALID, INVALID, - /* bc */ INVALID, INVALID, INVALID, INVALID, - /* c0 */ INVALID, INVALID, INVALID, INVALID, - /* c4 */ INVALID, INVALID, INVALID, INVALID, - /* c8 */ INVALID, INVALID, INVALID, INVALID, - /* cc */ INVALID, INVALID, INVALID, INVALID, - /* d0 */ INVALID, INVALID, INVALID, INVALID, - /* d4 */ INVALID, INVALID, INVALID, INVALID, - /* d8 */ INVALID, INVALID, INVALID, 46, - /* dc */ 42, 44, 38, 40, - /* e0 */ INVALID, INVALID, INVALID, INVALID, - /* e4 */ INVALID, INVALID, INVALID, INVALID, - /* e8 */ INVALID, INVALID, INVALID, INVALID, - /* ec */ INVALID, INVALID, INVALID, INVALID, - /* f0 */ INVALID, INVALID, INVALID, INVALID, - /* f4 */ INVALID, INVALID, INVALID, INVALID, - /* f8 */ INVALID, INVALID, INVALID, INVALID, - /* fc */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__358[] = { - /* 0 */ 1739, INVALID, -}; - -static const uint16_t ud_itab__359[] = { - /* 0 */ 1737, INVALID, -}; - -static const uint16_t ud_itab__360[] = { - /* 0 */ 1742, INVALID, -}; - -static const uint16_t ud_itab__361[] = { - /* 0 */ 1743, INVALID, -}; - -static const uint16_t ud_itab__362[] = { - /* 0 */ 1729, INVALID, -}; - -static const uint16_t ud_itab__363[] = { - /* 0 */ GROUP(364), INVALID, -}; - -static const uint16_t ud_itab__364[] = { - /* 0 */ INVALID, 1730, -}; - -static const uint16_t ud_itab__365[] = { - /* 0 */ 1733, INVALID, -}; - -static const uint16_t ud_itab__366[] = { - /* 0 */ 1735, INVALID, -}; - -static const uint16_t ud_itab__367[] = { - /* 0 */ 1734, INVALID, -}; - -static const uint16_t ud_itab__368[] = { - /* 0 */ 1736, INVALID, -}; - -static const uint16_t ud_itab__369[] = { - /* 0 */ INVALID, INVALID, INVALID, INVALID, - /* 4 */ GROUP(370), GROUP(371), GROUP(372), INVALID, - /* 8 */ 1647, 1649, 1651, 1653, - /* c */ 1657, 1655, 1680, 1622, - /* 10 */ INVALID, INVALID, INVALID, INVALID, - /* 14 */ GROUP(374), 1058, GROUP(375), 203, - /* 18 */ GROUP(379), GROUP(381), INVALID, INVALID, - /* 1c */ INVALID, INVALID, INVALID, INVALID, - /* 20 */ GROUP(383), 1560, GROUP(385), INVALID, - /* 24 */ INVALID, INVALID, INVALID, INVALID, - /* 28 */ INVALID, INVALID, INVALID, INVALID, - /* 2c */ INVALID, INVALID, INVALID, INVALID, - /* 30 */ INVALID, INVALID, INVALID, INVALID, - /* 34 */ INVALID, INVALID, INVALID, INVALID, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, - /* 40 */ 199, 197, 1682, INVALID, - /* 44 */ 1515, INVALID, INVALID, INVALID, - /* 48 */ INVALID, INVALID, GROUP(391), GROUP(392), - /* 4c */ GROUP(393), INVALID, INVALID, INVALID, - /* 50 */ INVALID, INVALID, INVALID, INVALID, - /* 54 */ INVALID, INVALID, INVALID, INVALID, - /* 58 */ INVALID, INVALID, INVALID, INVALID, - /* 5c */ INVALID, INVALID, INVALID, INVALID, - /* 60 */ 1718, 1716, 1724, 1722, - /* 64 */ INVALID, INVALID, INVALID, INVALID, - /* 68 */ INVALID, INVALID, INVALID, INVALID, - /* 6c */ INVALID, INVALID, INVALID, INVALID, - /* 70 */ INVALID, INVALID, INVALID, INVALID, - /* 74 */ INVALID, INVALID, INVALID, INVALID, - /* 78 */ INVALID, INVALID, INVALID, INVALID, - /* 7c */ INVALID, INVALID, INVALID, INVALID, - /* 80 */ INVALID, INVALID, INVALID, INVALID, - /* 84 */ INVALID, INVALID, INVALID, INVALID, - /* 88 */ INVALID, INVALID, INVALID, INVALID, - /* 8c */ INVALID, INVALID, INVALID, INVALID, - /* 90 */ INVALID, INVALID, INVALID, INVALID, - /* 94 */ INVALID, INVALID, INVALID, INVALID, - /* 98 */ INVALID, INVALID, INVALID, INVALID, - /* 9c */ INVALID, INVALID, INVALID, INVALID, - /* a0 */ INVALID, INVALID, INVALID, INVALID, - /* a4 */ INVALID, INVALID, INVALID, INVALID, - /* a8 */ INVALID, INVALID, INVALID, INVALID, - /* ac */ INVALID, INVALID, INVALID, INVALID, - /* b0 */ INVALID, INVALID, INVALID, INVALID, - /* b4 */ INVALID, INVALID, INVALID, INVALID, - /* b8 */ INVALID, INVALID, INVALID, INVALID, - /* bc */ INVALID, INVALID, INVALID, INVALID, - /* c0 */ INVALID, INVALID, INVALID, INVALID, - /* c4 */ INVALID, INVALID, INVALID, INVALID, - /* c8 */ INVALID, INVALID, INVALID, INVALID, - /* cc */ INVALID, INVALID, INVALID, INVALID, - /* d0 */ INVALID, INVALID, INVALID, INVALID, - /* d4 */ INVALID, INVALID, INVALID, INVALID, - /* d8 */ INVALID, INVALID, INVALID, INVALID, - /* dc */ INVALID, INVALID, INVALID, 48, - /* e0 */ INVALID, INVALID, INVALID, INVALID, - /* e4 */ INVALID, INVALID, INVALID, INVALID, - /* e8 */ INVALID, INVALID, INVALID, INVALID, - /* ec */ INVALID, INVALID, INVALID, INVALID, - /* f0 */ INVALID, INVALID, INVALID, INVALID, - /* f4 */ INVALID, INVALID, INVALID, INVALID, - /* f8 */ INVALID, INVALID, INVALID, INVALID, - /* fc */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__370[] = { - /* 0 */ 1740, INVALID, -}; - -static const uint16_t ud_itab__371[] = { - /* 0 */ 1738, INVALID, -}; - -static const uint16_t ud_itab__372[] = { - /* 0 */ GROUP(373), INVALID, -}; - -static const uint16_t ud_itab__373[] = { - /* 0 */ INVALID, 1741, -}; - -static const uint16_t ud_itab__374[] = { - /* 0 */ 1047, INVALID, -}; - -static const uint16_t ud_itab__375[] = { - /* 0 */ GROUP(376), GROUP(377), GROUP(378), -}; - -static const uint16_t ud_itab__376[] = { - /* 0 */ 1049, INVALID, -}; - -static const uint16_t ud_itab__377[] = { - /* 0 */ 1051, INVALID, -}; - -static const uint16_t ud_itab__378[] = { - /* 0 */ INVALID, 1053, -}; - -static const uint16_t ud_itab__379[] = { - /* 0 */ GROUP(380), INVALID, -}; - -static const uint16_t ud_itab__380[] = { - /* 0 */ INVALID, 1732, -}; - -static const uint16_t ud_itab__381[] = { - /* 0 */ GROUP(382), INVALID, -}; - -static const uint16_t ud_itab__382[] = { - /* 0 */ INVALID, 1731, -}; - -static const uint16_t ud_itab__383[] = { - /* 0 */ GROUP(384), INVALID, -}; - -static const uint16_t ud_itab__384[] = { - /* 0 */ 1066, INVALID, -}; - -static const uint16_t ud_itab__385[] = { - /* 0 */ GROUP(386), GROUP(388), -}; - -static const uint16_t ud_itab__386[] = { - /* 0 */ GROUP(387), INVALID, -}; - -static const uint16_t ud_itab__387[] = { - /* 0 */ 1067, INVALID, -}; - -static const uint16_t ud_itab__388[] = { - /* 0 */ GROUP(389), GROUP(390), -}; - -static const uint16_t ud_itab__389[] = { - /* 0 */ 1068, INVALID, -}; - -static const uint16_t ud_itab__390[] = { - /* 0 */ 1069, INVALID, -}; - -static const uint16_t ud_itab__391[] = { - /* 0 */ 1747, INVALID, -}; - -static const uint16_t ud_itab__392[] = { - /* 0 */ 1746, INVALID, -}; - -static const uint16_t ud_itab__393[] = { - /* 0 */ 1756, INVALID, -}; - -static const uint16_t ud_itab__394[] = { - /* 0 */ INVALID, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, - /* 8 */ INVALID, INVALID, INVALID, INVALID, - /* c */ INVALID, INVALID, INVALID, INVALID, - /* 10 */ GROUP(395), GROUP(396), GROUP(397), INVALID, - /* 14 */ INVALID, INVALID, GROUP(398), INVALID, - /* 18 */ INVALID, INVALID, INVALID, INVALID, - /* 1c */ INVALID, INVALID, INVALID, INVALID, - /* 20 */ INVALID, INVALID, INVALID, INVALID, - /* 24 */ INVALID, INVALID, INVALID, INVALID, - /* 28 */ INVALID, INVALID, 156, INVALID, - /* 2c */ 170, 160, INVALID, INVALID, - /* 30 */ INVALID, INVALID, INVALID, INVALID, - /* 34 */ INVALID, INVALID, INVALID, INVALID, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, - /* 40 */ INVALID, INVALID, INVALID, INVALID, - /* 44 */ INVALID, INVALID, INVALID, INVALID, - /* 48 */ INVALID, INVALID, INVALID, INVALID, - /* 4c */ INVALID, INVALID, INVALID, INVALID, - /* 50 */ INVALID, 1395, 1310, 1295, - /* 54 */ INVALID, INVALID, INVALID, INVALID, - /* 58 */ 32, 952, 158, 165, - /* 5c */ 1426, 824, 195, 808, - /* 60 */ INVALID, INVALID, INVALID, INVALID, - /* 64 */ INVALID, INVALID, INVALID, INVALID, - /* 68 */ INVALID, INVALID, INVALID, INVALID, - /* 6c */ INVALID, INVALID, INVALID, 1525, - /* 70 */ 1538, INVALID, INVALID, INVALID, - /* 74 */ INVALID, INVALID, INVALID, INVALID, - /* 78 */ INVALID, INVALID, INVALID, INVALID, - /* 7c */ INVALID, INVALID, 918, 1527, - /* 80 */ INVALID, INVALID, INVALID, INVALID, - /* 84 */ INVALID, INVALID, INVALID, INVALID, - /* 88 */ INVALID, INVALID, INVALID, INVALID, - /* 8c */ INVALID, INVALID, INVALID, INVALID, - /* 90 */ INVALID, INVALID, INVALID, INVALID, - /* 94 */ INVALID, INVALID, INVALID, INVALID, - /* 98 */ INVALID, INVALID, INVALID, INVALID, - /* 9c */ INVALID, INVALID, INVALID, INVALID, - /* a0 */ INVALID, INVALID, INVALID, INVALID, - /* a4 */ INVALID, INVALID, INVALID, INVALID, - /* a8 */ INVALID, INVALID, INVALID, INVALID, - /* ac */ INVALID, INVALID, INVALID, INVALID, - /* b0 */ INVALID, INVALID, INVALID, INVALID, - /* b4 */ INVALID, INVALID, INVALID, INVALID, - /* b8 */ INVALID, INVALID, INVALID, INVALID, - /* bc */ INVALID, INVALID, INVALID, INVALID, - /* c0 */ INVALID, INVALID, 122, INVALID, - /* c4 */ INVALID, INVALID, INVALID, INVALID, - /* c8 */ INVALID, INVALID, INVALID, INVALID, - /* cc */ INVALID, INVALID, INVALID, INVALID, - /* d0 */ INVALID, INVALID, INVALID, INVALID, - /* d4 */ INVALID, INVALID, INVALID, INVALID, - /* d8 */ INVALID, INVALID, INVALID, INVALID, - /* dc */ INVALID, INVALID, INVALID, INVALID, - /* e0 */ INVALID, INVALID, INVALID, INVALID, - /* e4 */ INVALID, INVALID, 134, INVALID, - /* e8 */ INVALID, INVALID, INVALID, INVALID, - /* ec */ INVALID, INVALID, INVALID, INVALID, - /* f0 */ INVALID, INVALID, INVALID, INVALID, - /* f4 */ INVALID, INVALID, INVALID, INVALID, - /* f8 */ INVALID, INVALID, INVALID, INVALID, - /* fc */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__395[] = { - /* 0 */ 1753, 1752, -}; - -static const uint16_t ud_itab__396[] = { - /* 0 */ 1755, 1754, -}; - -static const uint16_t ud_itab__397[] = { - /* 0 */ 1574, 1572, -}; - -static const uint16_t ud_itab__398[] = { - /* 0 */ 1570, 1568, -}; - -static const uint16_t ud_itab__399[] = { - /* 0 */ INVALID, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, - /* 8 */ INVALID, INVALID, INVALID, INVALID, - /* c */ INVALID, INVALID, INVALID, INVALID, - /* 10 */ GROUP(402), GROUP(400), GROUP(401), INVALID, - /* 14 */ INVALID, INVALID, INVALID, INVALID, - /* 18 */ INVALID, INVALID, INVALID, INVALID, - /* 1c */ INVALID, INVALID, INVALID, INVALID, - /* 20 */ INVALID, INVALID, INVALID, INVALID, - /* 24 */ INVALID, INVALID, INVALID, INVALID, - /* 28 */ INVALID, INVALID, 154, INVALID, - /* 2c */ 168, 150, INVALID, INVALID, - /* 30 */ INVALID, INVALID, INVALID, INVALID, - /* 34 */ INVALID, INVALID, INVALID, INVALID, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, - /* 40 */ INVALID, INVALID, INVALID, INVALID, - /* 44 */ INVALID, INVALID, INVALID, INVALID, - /* 48 */ INVALID, INVALID, INVALID, INVALID, - /* 4c */ INVALID, INVALID, INVALID, INVALID, - /* 50 */ INVALID, 1393, INVALID, INVALID, - /* 54 */ INVALID, INVALID, INVALID, INVALID, - /* 58 */ 30, 950, 152, INVALID, - /* 5c */ 1424, 822, 193, 806, - /* 60 */ INVALID, INVALID, INVALID, INVALID, - /* 64 */ INVALID, INVALID, INVALID, INVALID, - /* 68 */ INVALID, INVALID, INVALID, INVALID, - /* 6c */ INVALID, INVALID, INVALID, INVALID, - /* 70 */ 1540, INVALID, INVALID, INVALID, - /* 74 */ INVALID, INVALID, INVALID, INVALID, - /* 78 */ INVALID, INVALID, INVALID, INVALID, - /* 7c */ 1554, 1558, INVALID, INVALID, - /* 80 */ INVALID, INVALID, INVALID, INVALID, - /* 84 */ INVALID, INVALID, INVALID, INVALID, - /* 88 */ INVALID, INVALID, INVALID, INVALID, - /* 8c */ INVALID, INVALID, INVALID, INVALID, - /* 90 */ INVALID, INVALID, INVALID, INVALID, - /* 94 */ INVALID, INVALID, INVALID, INVALID, - /* 98 */ INVALID, INVALID, INVALID, INVALID, - /* 9c */ INVALID, INVALID, INVALID, INVALID, - /* a0 */ INVALID, INVALID, INVALID, INVALID, - /* a4 */ INVALID, INVALID, INVALID, INVALID, - /* a8 */ INVALID, INVALID, INVALID, INVALID, - /* ac */ INVALID, INVALID, INVALID, INVALID, - /* b0 */ INVALID, INVALID, INVALID, INVALID, - /* b4 */ INVALID, INVALID, INVALID, INVALID, - /* b8 */ INVALID, INVALID, INVALID, INVALID, - /* bc */ INVALID, INVALID, INVALID, INVALID, - /* c0 */ INVALID, INVALID, 119, INVALID, - /* c4 */ INVALID, INVALID, INVALID, INVALID, - /* c8 */ INVALID, INVALID, INVALID, INVALID, - /* cc */ INVALID, INVALID, INVALID, INVALID, - /* d0 */ 36, INVALID, INVALID, INVALID, - /* d4 */ INVALID, INVALID, INVALID, INVALID, - /* d8 */ INVALID, INVALID, INVALID, INVALID, - /* dc */ INVALID, INVALID, INVALID, INVALID, - /* e0 */ INVALID, INVALID, INVALID, INVALID, - /* e4 */ INVALID, INVALID, 138, INVALID, - /* e8 */ INVALID, INVALID, INVALID, INVALID, - /* ec */ INVALID, INVALID, INVALID, INVALID, - /* f0 */ 1562, INVALID, INVALID, INVALID, - /* f4 */ INVALID, INVALID, INVALID, INVALID, - /* f8 */ INVALID, INVALID, INVALID, INVALID, - /* fc */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__400[] = { - /* 0 */ 1751, 1750, -}; - -static const uint16_t ud_itab__401[] = { - /* 0 */ 1566, 1564, -}; - -static const uint16_t ud_itab__402[] = { - /* 0 */ 1749, 1748, -}; - -static const uint16_t ud_itab__403[] = { - /* 0 */ GROUP(404), GROUP(335), INVALID, INVALID, - /* 4 */ INVALID, GROUP(341), GROUP(357), GROUP(369), - /* 8 */ INVALID, GROUP(394), INVALID, INVALID, - /* c */ INVALID, GROUP(399), INVALID, INVALID, -}; - -static const uint16_t ud_itab__404[] = { - /* 0 */ 770, INVALID, -}; - -static const uint16_t ud_itab__405[] = { - /* 0 */ 827, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__406[] = { - /* 0 */ 828, INVALID, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__407[] = { - /* 0 */ 716, INVALID, -}; - -static const uint16_t ud_itab__408[] = { - /* 0 */ 724, 725, 726, -}; - -static const uint16_t ud_itab__409[] = { - /* 0 */ 1281, 1286, 1270, 1274, - /* 4 */ 1327, 1334, 1321, 1315, -}; - -static const uint16_t ud_itab__410[] = { - /* 0 */ 1282, 1289, 1273, 1277, - /* 4 */ 1326, 1333, 1330, 1313, -}; - -static const uint16_t ud_itab__411[] = { - /* 0 */ 1283, 1290, 1271, 1278, - /* 4 */ 1325, 1332, 1322, 1317, -}; - -static const uint16_t ud_itab__412[] = { - /* 0 */ 1284, 1291, 1272, 1279, - /* 4 */ 1329, 1336, 1323, 1318, -}; - -static const uint16_t ud_itab__413[] = { - /* 0 */ 3, INVALID, -}; - -static const uint16_t ud_itab__414[] = { - /* 0 */ 2, INVALID, -}; - -static const uint16_t ud_itab__415[] = { - /* 0 */ 1312, INVALID, -}; - -static const uint16_t ud_itab__416[] = { - /* 0 */ GROUP(417), GROUP(418), -}; - -static const uint16_t ud_itab__417[] = { - /* 0 */ 207, 504, 308, 358, - /* 4 */ 588, 631, 388, 414, -}; - -static const uint16_t ud_itab__418[] = { - /* 0 */ 216, 217, 218, 219, - /* 4 */ 220, 221, 222, 223, - /* 8 */ 505, 506, 507, 508, - /* c */ 509, 510, 511, 512, - /* 10 */ 310, 311, 312, 313, - /* 14 */ 314, 315, 316, 317, - /* 18 */ 360, 361, 362, 363, - /* 1c */ 364, 365, 366, 367, - /* 20 */ 590, 591, 592, 593, - /* 24 */ 594, 595, 596, 597, - /* 28 */ 615, 616, 617, 618, - /* 2c */ 619, 620, 621, 622, - /* 30 */ 389, 390, 391, 392, - /* 34 */ 393, 394, 395, 396, - /* 38 */ 415, 416, 417, 418, - /* 3c */ 419, 420, 421, 422, -}; - -static const uint16_t ud_itab__419[] = { - /* 0 */ GROUP(420), GROUP(421), -}; - -static const uint16_t ud_itab__420[] = { - /* 0 */ 477, INVALID, 574, 541, - /* 4 */ 494, 493, 585, 584, -}; - -static const uint16_t ud_itab__421[] = { - /* 0 */ 478, 479, 480, 481, - /* 4 */ 482, 483, 484, 485, - /* 8 */ 659, 660, 661, 662, - /* c */ 663, 664, 665, 666, - /* 10 */ 523, INVALID, INVALID, INVALID, - /* 14 */ INVALID, INVALID, INVALID, INVALID, - /* 18 */ 550, 551, 552, 553, - /* 1c */ 554, 555, 556, 557, - /* 20 */ 234, 205, INVALID, INVALID, - /* 24 */ 640, 658, INVALID, INVALID, - /* 28 */ 486, 487, 488, 489, - /* 2c */ 490, 491, 492, INVALID, - /* 30 */ 204, 686, 530, 527, - /* 34 */ 685, 529, 378, 455, - /* 38 */ 528, 687, 538, 537, - /* 3c */ 531, 535, 536, 377, -}; - -static const uint16_t ud_itab__422[] = { - /* 0 */ GROUP(423), GROUP(424), -}; - -static const uint16_t ud_itab__423[] = { - /* 0 */ 457, 521, 449, 451, - /* 4 */ 463, 465, 461, 459, -}; - -static const uint16_t ud_itab__424[] = { - /* 0 */ 236, 237, 238, 239, - /* 4 */ 240, 241, 242, 243, - /* 8 */ 244, 245, 246, 247, - /* c */ 248, 249, 250, 251, - /* 10 */ 252, 253, 254, 255, - /* 14 */ 256, 257, 258, 259, - /* 18 */ 260, 261, 262, 263, - /* 1c */ 264, 265, 266, 267, - /* 20 */ INVALID, INVALID, INVALID, INVALID, - /* 24 */ INVALID, INVALID, INVALID, INVALID, - /* 28 */ INVALID, 657, INVALID, INVALID, - /* 2c */ INVALID, INVALID, INVALID, INVALID, - /* 30 */ INVALID, INVALID, INVALID, INVALID, - /* 34 */ INVALID, INVALID, INVALID, INVALID, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__425[] = { - /* 0 */ GROUP(426), GROUP(427), -}; - -static const uint16_t ud_itab__426[] = { - /* 0 */ 454, 472, 468, 471, - /* 4 */ INVALID, 475, INVALID, 539, -}; - -static const uint16_t ud_itab__427[] = { - /* 0 */ 268, 269, 270, 271, - /* 4 */ 272, 273, 274, 275, - /* 8 */ 276, 277, 278, 279, - /* c */ 280, 281, 282, 283, - /* 10 */ 284, 285, 286, 287, - /* 14 */ 288, 289, 290, 291, - /* 18 */ 292, 293, 294, 295, - /* 1c */ 296, 297, 298, 299, - /* 20 */ 525, 524, 235, 456, - /* 24 */ 526, 533, INVALID, INVALID, - /* 28 */ 300, 301, 302, 303, - /* 2c */ 304, 305, 306, 307, - /* 30 */ 334, 335, 336, 337, - /* 34 */ 338, 339, 340, 341, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__428[] = { - /* 0 */ GROUP(429), GROUP(430), -}; - -static const uint16_t ud_itab__429[] = { - /* 0 */ 206, 495, 309, 359, - /* 4 */ 589, 614, 379, 405, -}; - -static const uint16_t ud_itab__430[] = { - /* 0 */ 208, 209, 210, 211, - /* 4 */ 212, 213, 214, 215, - /* 8 */ 496, 497, 498, 499, - /* c */ 500, 501, 502, 503, - /* 10 */ 318, 319, 320, 321, - /* 14 */ 322, 323, 324, 325, - /* 18 */ 326, 327, 328, 329, - /* 1c */ 330, 331, 332, 333, - /* 20 */ 623, 624, 625, 626, - /* 24 */ 627, 628, 629, 630, - /* 28 */ 598, 599, 600, 601, - /* 2c */ 602, 603, 604, 605, - /* 30 */ 406, 407, 408, 409, - /* 34 */ 410, 411, 412, 413, - /* 38 */ 380, 381, 382, 383, - /* 3c */ 384, 385, 386, 387, -}; - -static const uint16_t ud_itab__431[] = { - /* 0 */ GROUP(432), GROUP(433), -}; - -static const uint16_t ud_itab__432[] = { - /* 0 */ 476, 473, 575, 540, - /* 4 */ 532, INVALID, 534, 586, -}; - -static const uint16_t ud_itab__433[] = { - /* 0 */ 432, 433, 434, 435, - /* 4 */ 436, 437, 438, 439, - /* 8 */ 667, 668, 669, 670, - /* c */ 671, 672, 673, 674, - /* 10 */ 576, 577, 578, 579, - /* 14 */ 580, 581, 582, 583, - /* 18 */ 542, 543, 544, 545, - /* 1c */ 546, 547, 548, 549, - /* 20 */ 641, 642, 643, 644, - /* 24 */ 645, 646, 647, 648, - /* 28 */ 649, 650, 651, 652, - /* 2c */ 653, 654, 655, 656, - /* 30 */ INVALID, INVALID, INVALID, INVALID, - /* 34 */ INVALID, INVALID, INVALID, INVALID, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__434[] = { - /* 0 */ GROUP(435), GROUP(436), -}; - -static const uint16_t ud_itab__435[] = { - /* 0 */ 458, 522, 448, 450, - /* 4 */ 464, 466, 462, 460, -}; - -static const uint16_t ud_itab__436[] = { - /* 0 */ 224, 225, 226, 227, - /* 4 */ 228, 229, 230, 231, - /* 8 */ 513, 514, 515, 516, - /* c */ 517, 518, 519, 520, - /* 10 */ 368, 369, 370, 371, - /* 14 */ 372, 373, 374, 375, - /* 18 */ INVALID, 376, INVALID, INVALID, - /* 1c */ INVALID, INVALID, INVALID, INVALID, - /* 20 */ 632, 633, 634, 635, - /* 24 */ 636, 637, 638, 639, - /* 28 */ 606, 607, 608, 609, - /* 2c */ 610, 611, 612, 613, - /* 30 */ 423, 424, 425, 426, - /* 34 */ 427, 428, 429, 430, - /* 38 */ 397, 398, 399, 400, - /* 3c */ 401, 402, 403, 404, -}; - -static const uint16_t ud_itab__437[] = { - /* 0 */ GROUP(438), GROUP(439), -}; - -static const uint16_t ud_itab__438[] = { - /* 0 */ 452, 474, 467, 469, - /* 4 */ 232, 453, 233, 470, -}; - -static const uint16_t ud_itab__439[] = { - /* 0 */ 440, 441, 442, 443, - /* 4 */ 444, 445, 446, 447, - /* 8 */ 675, 676, 677, 678, - /* c */ 679, 680, 681, 682, - /* 10 */ 558, 559, 560, 561, - /* 14 */ 562, 563, 564, 565, - /* 18 */ 566, 567, 568, 569, - /* 1c */ 570, 571, 572, 573, - /* 20 */ 587, INVALID, INVALID, INVALID, - /* 24 */ INVALID, INVALID, INVALID, INVALID, - /* 28 */ 342, 343, 344, 345, - /* 2c */ 346, 347, 348, 349, - /* 30 */ 350, 351, 352, 353, - /* 34 */ 354, 355, 356, 357, - /* 38 */ INVALID, INVALID, INVALID, INVALID, - /* 3c */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__440[] = { - /* 0 */ 759, 760, 761, -}; - -static const uint16_t ud_itab__441[] = { - /* 0 */ 765, INVALID, -}; - -static const uint16_t ud_itab__442[] = { - /* 0 */ 1434, 1439, 963, 954, - /* 4 */ 943, 696, 187, 690, -}; - -static const uint16_t ud_itab__443[] = { - /* 0 */ 1440, 1441, 964, 955, - /* 4 */ 944, 697, 186, 689, -}; - -static const uint16_t ud_itab__444[] = { - /* 0 */ 709, 184, INVALID, INVALID, - /* 4 */ INVALID, INVALID, INVALID, INVALID, -}; - -static const uint16_t ud_itab__445[] = { - /* 0 */ 708, 185, GROUP(446), 71, - /* 4 */ 762, 763, 1256, INVALID, -}; - -static const uint16_t ud_itab__446[] = { - /* 0 */ 69, 70, -}; - - -struct ud_lookup_table_list_entry ud_lookup_table_list[] = { - /* 000 */ { ud_itab__0, UD_TAB__OPC_TABLE, "opctbl" }, - /* 001 */ { ud_itab__1, UD_TAB__OPC_MODE, "/m" }, - /* 002 */ { ud_itab__2, UD_TAB__OPC_MODE, "/m" }, - /* 003 */ { ud_itab__3, UD_TAB__OPC_MODE, "/m" }, - /* 004 */ { ud_itab__4, UD_TAB__OPC_TABLE, "opctbl" }, - /* 005 */ { ud_itab__5, UD_TAB__OPC_REG, "/reg" }, - /* 006 */ { ud_itab__6, UD_TAB__OPC_MOD, "/mod" }, - /* 007 */ { ud_itab__7, UD_TAB__OPC_REG, "/reg" }, - /* 008 */ { ud_itab__8, UD_TAB__OPC_REG, "/reg" }, - /* 009 */ { ud_itab__9, UD_TAB__OPC_RM, "/rm" }, - /* 010 */ { ud_itab__10, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 011 */ { ud_itab__11, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 012 */ { ud_itab__12, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 013 */ { ud_itab__13, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 014 */ { ud_itab__14, UD_TAB__OPC_RM, "/rm" }, - /* 015 */ { ud_itab__15, UD_TAB__OPC_RM, "/rm" }, - /* 016 */ { ud_itab__16, UD_TAB__OPC_RM, "/rm" }, - /* 017 */ { ud_itab__17, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 018 */ { ud_itab__18, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 019 */ { ud_itab__19, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 020 */ { ud_itab__20, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 021 */ { ud_itab__21, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 022 */ { ud_itab__22, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 023 */ { ud_itab__23, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 024 */ { ud_itab__24, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 025 */ { ud_itab__25, UD_TAB__OPC_RM, "/rm" }, - /* 026 */ { ud_itab__26, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 027 */ { ud_itab__27, UD_TAB__OPC_REG, "/reg" }, - /* 028 */ { ud_itab__28, UD_TAB__OPC_3DNOW, "/3dnow" }, - /* 029 */ { ud_itab__29, UD_TAB__OPC_SSE, "/sse" }, - /* 030 */ { ud_itab__30, UD_TAB__OPC_SSE, "/sse" }, - /* 031 */ { ud_itab__31, UD_TAB__OPC_MOD, "/mod" }, - /* 032 */ { ud_itab__32, UD_TAB__OPC_SSE, "/sse" }, - /* 033 */ { ud_itab__33, UD_TAB__OPC_SSE, "/sse" }, - /* 034 */ { ud_itab__34, UD_TAB__OPC_SSE, "/sse" }, - /* 035 */ { ud_itab__35, UD_TAB__OPC_SSE, "/sse" }, - /* 036 */ { ud_itab__36, UD_TAB__OPC_SSE, "/sse" }, - /* 037 */ { ud_itab__37, UD_TAB__OPC_MOD, "/mod" }, - /* 038 */ { ud_itab__38, UD_TAB__OPC_SSE, "/sse" }, - /* 039 */ { ud_itab__39, UD_TAB__OPC_SSE, "/sse" }, - /* 040 */ { ud_itab__40, UD_TAB__OPC_SSE, "/sse" }, - /* 041 */ { ud_itab__41, UD_TAB__OPC_REG, "/reg" }, - /* 042 */ { ud_itab__42, UD_TAB__OPC_SSE, "/sse" }, - /* 043 */ { ud_itab__43, UD_TAB__OPC_SSE, "/sse" }, - /* 044 */ { ud_itab__44, UD_TAB__OPC_SSE, "/sse" }, - /* 045 */ { ud_itab__45, UD_TAB__OPC_SSE, "/sse" }, - /* 046 */ { ud_itab__46, UD_TAB__OPC_SSE, "/sse" }, - /* 047 */ { ud_itab__47, UD_TAB__OPC_SSE, "/sse" }, - /* 048 */ { ud_itab__48, UD_TAB__OPC_SSE, "/sse" }, - /* 049 */ { ud_itab__49, UD_TAB__OPC_SSE, "/sse" }, - /* 050 */ { ud_itab__50, UD_TAB__OPC_MODE, "/m" }, - /* 051 */ { ud_itab__51, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 052 */ { ud_itab__52, UD_TAB__OPC_MODE, "/m" }, - /* 053 */ { ud_itab__53, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 054 */ { ud_itab__54, UD_TAB__OPC_TABLE, "opctbl" }, - /* 055 */ { ud_itab__55, UD_TAB__OPC_SSE, "/sse" }, - /* 056 */ { ud_itab__56, UD_TAB__OPC_MODE, "/m" }, - /* 057 */ { ud_itab__57, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 058 */ { ud_itab__58, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 059 */ { ud_itab__59, UD_TAB__OPC_SSE, "/sse" }, - /* 060 */ { ud_itab__60, UD_TAB__OPC_MODE, "/m" }, - /* 061 */ { ud_itab__61, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 062 */ { ud_itab__62, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 063 */ { ud_itab__63, UD_TAB__OPC_SSE, "/sse" }, - /* 064 */ { ud_itab__64, UD_TAB__OPC_SSE, "/sse" }, - /* 065 */ { ud_itab__65, UD_TAB__OPC_SSE, "/sse" }, - /* 066 */ { ud_itab__66, UD_TAB__OPC_SSE, "/sse" }, - /* 067 */ { ud_itab__67, UD_TAB__OPC_SSE, "/sse" }, - /* 068 */ { ud_itab__68, UD_TAB__OPC_SSE, "/sse" }, - /* 069 */ { ud_itab__69, UD_TAB__OPC_SSE, "/sse" }, - /* 070 */ { ud_itab__70, UD_TAB__OPC_SSE, "/sse" }, - /* 071 */ { ud_itab__71, UD_TAB__OPC_SSE, "/sse" }, - /* 072 */ { ud_itab__72, UD_TAB__OPC_SSE, "/sse" }, - /* 073 */ { ud_itab__73, UD_TAB__OPC_SSE, "/sse" }, - /* 074 */ { ud_itab__74, UD_TAB__OPC_SSE, "/sse" }, - /* 075 */ { ud_itab__75, UD_TAB__OPC_SSE, "/sse" }, - /* 076 */ { ud_itab__76, UD_TAB__OPC_SSE, "/sse" }, - /* 077 */ { ud_itab__77, UD_TAB__OPC_SSE, "/sse" }, - /* 078 */ { ud_itab__78, UD_TAB__OPC_SSE, "/sse" }, - /* 079 */ { ud_itab__79, UD_TAB__OPC_SSE, "/sse" }, - /* 080 */ { ud_itab__80, UD_TAB__OPC_SSE, "/sse" }, - /* 081 */ { ud_itab__81, UD_TAB__OPC_SSE, "/sse" }, - /* 082 */ { ud_itab__82, UD_TAB__OPC_SSE, "/sse" }, - /* 083 */ { ud_itab__83, UD_TAB__OPC_SSE, "/sse" }, - /* 084 */ { ud_itab__84, UD_TAB__OPC_SSE, "/sse" }, - /* 085 */ { ud_itab__85, UD_TAB__OPC_SSE, "/sse" }, - /* 086 */ { ud_itab__86, UD_TAB__OPC_SSE, "/sse" }, - /* 087 */ { ud_itab__87, UD_TAB__OPC_SSE, "/sse" }, - /* 088 */ { ud_itab__88, UD_TAB__OPC_SSE, "/sse" }, - /* 089 */ { ud_itab__89, UD_TAB__OPC_SSE, "/sse" }, - /* 090 */ { ud_itab__90, UD_TAB__OPC_SSE, "/sse" }, - /* 091 */ { ud_itab__91, UD_TAB__OPC_SSE, "/sse" }, - /* 092 */ { ud_itab__92, UD_TAB__OPC_SSE, "/sse" }, - /* 093 */ { ud_itab__93, UD_TAB__OPC_SSE, "/sse" }, - /* 094 */ { ud_itab__94, UD_TAB__OPC_SSE, "/sse" }, - /* 095 */ { ud_itab__95, UD_TAB__OPC_SSE, "/sse" }, - /* 096 */ { ud_itab__96, UD_TAB__OPC_SSE, "/sse" }, - /* 097 */ { ud_itab__97, UD_TAB__OPC_SSE, "/sse" }, - /* 098 */ { ud_itab__98, UD_TAB__OPC_SSE, "/sse" }, - /* 099 */ { ud_itab__99, UD_TAB__OPC_SSE, "/sse" }, - /* 100 */ { ud_itab__100, UD_TAB__OPC_SSE, "/sse" }, - /* 101 */ { ud_itab__101, UD_TAB__OPC_SSE, "/sse" }, - /* 102 */ { ud_itab__102, UD_TAB__OPC_SSE, "/sse" }, - /* 103 */ { ud_itab__103, UD_TAB__OPC_SSE, "/sse" }, - /* 104 */ { ud_itab__104, UD_TAB__OPC_SSE, "/sse" }, - /* 105 */ { ud_itab__105, UD_TAB__OPC_SSE, "/sse" }, - /* 106 */ { ud_itab__106, UD_TAB__OPC_SSE, "/sse" }, - /* 107 */ { ud_itab__107, UD_TAB__OPC_SSE, "/sse" }, - /* 108 */ { ud_itab__108, UD_TAB__OPC_SSE, "/sse" }, - /* 109 */ { ud_itab__109, UD_TAB__OPC_SSE, "/sse" }, - /* 110 */ { ud_itab__110, UD_TAB__OPC_SSE, "/sse" }, - /* 111 */ { ud_itab__111, UD_TAB__OPC_SSE, "/sse" }, - /* 112 */ { ud_itab__112, UD_TAB__OPC_SSE, "/sse" }, - /* 113 */ { ud_itab__113, UD_TAB__OPC_SSE, "/sse" }, - /* 114 */ { ud_itab__114, UD_TAB__OPC_SSE, "/sse" }, - /* 115 */ { ud_itab__115, UD_TAB__OPC_SSE, "/sse" }, - /* 116 */ { ud_itab__116, UD_TAB__OPC_TABLE, "opctbl" }, - /* 117 */ { ud_itab__117, UD_TAB__OPC_SSE, "/sse" }, - /* 118 */ { ud_itab__118, UD_TAB__OPC_SSE, "/sse" }, - /* 119 */ { ud_itab__119, UD_TAB__OPC_SSE, "/sse" }, - /* 120 */ { ud_itab__120, UD_TAB__OPC_SSE, "/sse" }, - /* 121 */ { ud_itab__121, UD_TAB__OPC_SSE, "/sse" }, - /* 122 */ { ud_itab__122, UD_TAB__OPC_SSE, "/sse" }, - /* 123 */ { ud_itab__123, UD_TAB__OPC_SSE, "/sse" }, - /* 124 */ { ud_itab__124, UD_TAB__OPC_SSE, "/sse" }, - /* 125 */ { ud_itab__125, UD_TAB__OPC_SSE, "/sse" }, - /* 126 */ { ud_itab__126, UD_TAB__OPC_SSE, "/sse" }, - /* 127 */ { ud_itab__127, UD_TAB__OPC_SSE, "/sse" }, - /* 128 */ { ud_itab__128, UD_TAB__OPC_OSIZE, "/o" }, - /* 129 */ { ud_itab__129, UD_TAB__OPC_SSE, "/sse" }, - /* 130 */ { ud_itab__130, UD_TAB__OPC_SSE, "/sse" }, - /* 131 */ { ud_itab__131, UD_TAB__OPC_SSE, "/sse" }, - /* 132 */ { ud_itab__132, UD_TAB__OPC_SSE, "/sse" }, - /* 133 */ { ud_itab__133, UD_TAB__OPC_OSIZE, "/o" }, - /* 134 */ { ud_itab__134, UD_TAB__OPC_SSE, "/sse" }, - /* 135 */ { ud_itab__135, UD_TAB__OPC_SSE, "/sse" }, - /* 136 */ { ud_itab__136, UD_TAB__OPC_SSE, "/sse" }, - /* 137 */ { ud_itab__137, UD_TAB__OPC_SSE, "/sse" }, - /* 138 */ { ud_itab__138, UD_TAB__OPC_SSE, "/sse" }, - /* 139 */ { ud_itab__139, UD_TAB__OPC_SSE, "/sse" }, - /* 140 */ { ud_itab__140, UD_TAB__OPC_SSE, "/sse" }, - /* 141 */ { ud_itab__141, UD_TAB__OPC_SSE, "/sse" }, - /* 142 */ { ud_itab__142, UD_TAB__OPC_SSE, "/sse" }, - /* 143 */ { ud_itab__143, UD_TAB__OPC_SSE, "/sse" }, - /* 144 */ { ud_itab__144, UD_TAB__OPC_SSE, "/sse" }, - /* 145 */ { ud_itab__145, UD_TAB__OPC_SSE, "/sse" }, - /* 146 */ { ud_itab__146, UD_TAB__OPC_SSE, "/sse" }, - /* 147 */ { ud_itab__147, UD_TAB__OPC_SSE, "/sse" }, - /* 148 */ { ud_itab__148, UD_TAB__OPC_SSE, "/sse" }, - /* 149 */ { ud_itab__149, UD_TAB__OPC_SSE, "/sse" }, - /* 150 */ { ud_itab__150, UD_TAB__OPC_SSE, "/sse" }, - /* 151 */ { ud_itab__151, UD_TAB__OPC_SSE, "/sse" }, - /* 152 */ { ud_itab__152, UD_TAB__OPC_SSE, "/sse" }, - /* 153 */ { ud_itab__153, UD_TAB__OPC_SSE, "/sse" }, - /* 154 */ { ud_itab__154, UD_TAB__OPC_SSE, "/sse" }, - /* 155 */ { ud_itab__155, UD_TAB__OPC_SSE, "/sse" }, - /* 156 */ { ud_itab__156, UD_TAB__OPC_SSE, "/sse" }, - /* 157 */ { ud_itab__157, UD_TAB__OPC_SSE, "/sse" }, - /* 158 */ { ud_itab__158, UD_TAB__OPC_SSE, "/sse" }, - /* 159 */ { ud_itab__159, UD_TAB__OPC_SSE, "/sse" }, - /* 160 */ { ud_itab__160, UD_TAB__OPC_SSE, "/sse" }, - /* 161 */ { ud_itab__161, UD_TAB__OPC_SSE, "/sse" }, - /* 162 */ { ud_itab__162, UD_TAB__OPC_SSE, "/sse" }, - /* 163 */ { ud_itab__163, UD_TAB__OPC_SSE, "/sse" }, - /* 164 */ { ud_itab__164, UD_TAB__OPC_SSE, "/sse" }, - /* 165 */ { ud_itab__165, UD_TAB__OPC_SSE, "/sse" }, - /* 166 */ { ud_itab__166, UD_TAB__OPC_SSE, "/sse" }, - /* 167 */ { ud_itab__167, UD_TAB__OPC_SSE, "/sse" }, - /* 168 */ { ud_itab__168, UD_TAB__OPC_SSE, "/sse" }, - /* 169 */ { ud_itab__169, UD_TAB__OPC_SSE, "/sse" }, - /* 170 */ { ud_itab__170, UD_TAB__OPC_SSE, "/sse" }, - /* 171 */ { ud_itab__171, UD_TAB__OPC_SSE, "/sse" }, - /* 172 */ { ud_itab__172, UD_TAB__OPC_SSE, "/sse" }, - /* 173 */ { ud_itab__173, UD_TAB__OPC_SSE, "/sse" }, - /* 174 */ { ud_itab__174, UD_TAB__OPC_OSIZE, "/o" }, - /* 175 */ { ud_itab__175, UD_TAB__OPC_OSIZE, "/o" }, - /* 176 */ { ud_itab__176, UD_TAB__OPC_SSE, "/sse" }, - /* 177 */ { ud_itab__177, UD_TAB__OPC_SSE, "/sse" }, - /* 178 */ { ud_itab__178, UD_TAB__OPC_REG, "/reg" }, - /* 179 */ { ud_itab__179, UD_TAB__OPC_SSE, "/sse" }, - /* 180 */ { ud_itab__180, UD_TAB__OPC_SSE, "/sse" }, - /* 181 */ { ud_itab__181, UD_TAB__OPC_SSE, "/sse" }, - /* 182 */ { ud_itab__182, UD_TAB__OPC_REG, "/reg" }, - /* 183 */ { ud_itab__183, UD_TAB__OPC_SSE, "/sse" }, - /* 184 */ { ud_itab__184, UD_TAB__OPC_SSE, "/sse" }, - /* 185 */ { ud_itab__185, UD_TAB__OPC_SSE, "/sse" }, - /* 186 */ { ud_itab__186, UD_TAB__OPC_REG, "/reg" }, - /* 187 */ { ud_itab__187, UD_TAB__OPC_SSE, "/sse" }, - /* 188 */ { ud_itab__188, UD_TAB__OPC_SSE, "/sse" }, - /* 189 */ { ud_itab__189, UD_TAB__OPC_SSE, "/sse" }, - /* 190 */ { ud_itab__190, UD_TAB__OPC_SSE, "/sse" }, - /* 191 */ { ud_itab__191, UD_TAB__OPC_SSE, "/sse" }, - /* 192 */ { ud_itab__192, UD_TAB__OPC_SSE, "/sse" }, - /* 193 */ { ud_itab__193, UD_TAB__OPC_SSE, "/sse" }, - /* 194 */ { ud_itab__194, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 195 */ { ud_itab__195, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 196 */ { ud_itab__196, UD_TAB__OPC_SSE, "/sse" }, - /* 197 */ { ud_itab__197, UD_TAB__OPC_SSE, "/sse" }, - /* 198 */ { ud_itab__198, UD_TAB__OPC_SSE, "/sse" }, - /* 199 */ { ud_itab__199, UD_TAB__OPC_OSIZE, "/o" }, - /* 200 */ { ud_itab__200, UD_TAB__OPC_OSIZE, "/o" }, - /* 201 */ { ud_itab__201, UD_TAB__OPC_SSE, "/sse" }, - /* 202 */ { ud_itab__202, UD_TAB__OPC_MOD, "/mod" }, - /* 203 */ { ud_itab__203, UD_TAB__OPC_REG, "/reg" }, - /* 204 */ { ud_itab__204, UD_TAB__OPC_RM, "/rm" }, - /* 205 */ { ud_itab__205, UD_TAB__OPC_RM, "/rm" }, - /* 206 */ { ud_itab__206, UD_TAB__OPC_RM, "/rm" }, - /* 207 */ { ud_itab__207, UD_TAB__OPC_MOD, "/mod" }, - /* 208 */ { ud_itab__208, UD_TAB__OPC_REG, "/reg" }, - /* 209 */ { ud_itab__209, UD_TAB__OPC_RM, "/rm" }, - /* 210 */ { ud_itab__210, UD_TAB__OPC_RM, "/rm" }, - /* 211 */ { ud_itab__211, UD_TAB__OPC_RM, "/rm" }, - /* 212 */ { ud_itab__212, UD_TAB__OPC_RM, "/rm" }, - /* 213 */ { ud_itab__213, UD_TAB__OPC_RM, "/rm" }, - /* 214 */ { ud_itab__214, UD_TAB__OPC_RM, "/rm" }, - /* 215 */ { ud_itab__215, UD_TAB__OPC_MOD, "/mod" }, - /* 216 */ { ud_itab__216, UD_TAB__OPC_REG, "/reg" }, - /* 217 */ { ud_itab__217, UD_TAB__OPC_REG, "/reg" }, - /* 218 */ { ud_itab__218, UD_TAB__OPC_RM, "/rm" }, - /* 219 */ { ud_itab__219, UD_TAB__OPC_RM, "/rm" }, - /* 220 */ { ud_itab__220, UD_TAB__OPC_RM, "/rm" }, - /* 221 */ { ud_itab__221, UD_TAB__OPC_SSE, "/sse" }, - /* 222 */ { ud_itab__222, UD_TAB__OPC_REG, "/reg" }, - /* 223 */ { ud_itab__223, UD_TAB__OPC_SSE, "/sse" }, - /* 224 */ { ud_itab__224, UD_TAB__OPC_SSE, "/sse" }, - /* 225 */ { ud_itab__225, UD_TAB__OPC_SSE, "/sse" }, - /* 226 */ { ud_itab__226, UD_TAB__OPC_SSE, "/sse" }, - /* 227 */ { ud_itab__227, UD_TAB__OPC_MOD, "/mod" }, - /* 228 */ { ud_itab__228, UD_TAB__OPC_REG, "/reg" }, - /* 229 */ { ud_itab__229, UD_TAB__OPC_OSIZE, "/o" }, - /* 230 */ { ud_itab__230, UD_TAB__OPC_SSE, "/sse" }, - /* 231 */ { ud_itab__231, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 232 */ { ud_itab__232, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 233 */ { ud_itab__233, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 234 */ { ud_itab__234, UD_TAB__OPC_VENDOR, "/vendor" }, - /* 235 */ { ud_itab__235, UD_TAB__OPC_REG, "/reg" }, - /* 236 */ { ud_itab__236, UD_TAB__OPC_SSE, "/sse" }, - /* 237 */ { ud_itab__237, UD_TAB__OPC_SSE, "/sse" }, - /* 238 */ { ud_itab__238, UD_TAB__OPC_SSE, "/sse" }, - /* 239 */ { ud_itab__239, UD_TAB__OPC_SSE, "/sse" }, - /* 240 */ { ud_itab__240, UD_TAB__OPC_SSE, "/sse" }, - /* 241 */ { ud_itab__241, UD_TAB__OPC_SSE, "/sse" }, - /* 242 */ { ud_itab__242, UD_TAB__OPC_SSE, "/sse" }, - /* 243 */ { ud_itab__243, UD_TAB__OPC_SSE, "/sse" }, - /* 244 */ { ud_itab__244, UD_TAB__OPC_SSE, "/sse" }, - /* 245 */ { ud_itab__245, UD_TAB__OPC_SSE, "/sse" }, - /* 246 */ { ud_itab__246, UD_TAB__OPC_SSE, "/sse" }, - /* 247 */ { ud_itab__247, UD_TAB__OPC_SSE, "/sse" }, - /* 248 */ { ud_itab__248, UD_TAB__OPC_SSE, "/sse" }, - /* 249 */ { ud_itab__249, UD_TAB__OPC_SSE, "/sse" }, - /* 250 */ { ud_itab__250, UD_TAB__OPC_SSE, "/sse" }, - /* 251 */ { ud_itab__251, UD_TAB__OPC_SSE, "/sse" }, - /* 252 */ { ud_itab__252, UD_TAB__OPC_SSE, "/sse" }, - /* 253 */ { ud_itab__253, UD_TAB__OPC_SSE, "/sse" }, - /* 254 */ { ud_itab__254, UD_TAB__OPC_SSE, "/sse" }, - /* 255 */ { ud_itab__255, UD_TAB__OPC_SSE, "/sse" }, - /* 256 */ { ud_itab__256, UD_TAB__OPC_SSE, "/sse" }, - /* 257 */ { ud_itab__257, UD_TAB__OPC_SSE, "/sse" }, - /* 258 */ { ud_itab__258, UD_TAB__OPC_SSE, "/sse" }, - /* 259 */ { ud_itab__259, UD_TAB__OPC_SSE, "/sse" }, - /* 260 */ { ud_itab__260, UD_TAB__OPC_SSE, "/sse" }, - /* 261 */ { ud_itab__261, UD_TAB__OPC_SSE, "/sse" }, - /* 262 */ { ud_itab__262, UD_TAB__OPC_SSE, "/sse" }, - /* 263 */ { ud_itab__263, UD_TAB__OPC_SSE, "/sse" }, - /* 264 */ { ud_itab__264, UD_TAB__OPC_SSE, "/sse" }, - /* 265 */ { ud_itab__265, UD_TAB__OPC_SSE, "/sse" }, - /* 266 */ { ud_itab__266, UD_TAB__OPC_SSE, "/sse" }, - /* 267 */ { ud_itab__267, UD_TAB__OPC_SSE, "/sse" }, - /* 268 */ { ud_itab__268, UD_TAB__OPC_SSE, "/sse" }, - /* 269 */ { ud_itab__269, UD_TAB__OPC_SSE, "/sse" }, - /* 270 */ { ud_itab__270, UD_TAB__OPC_SSE, "/sse" }, - /* 271 */ { ud_itab__271, UD_TAB__OPC_SSE, "/sse" }, - /* 272 */ { ud_itab__272, UD_TAB__OPC_SSE, "/sse" }, - /* 273 */ { ud_itab__273, UD_TAB__OPC_SSE, "/sse" }, - /* 274 */ { ud_itab__274, UD_TAB__OPC_SSE, "/sse" }, - /* 275 */ { ud_itab__275, UD_TAB__OPC_MOD, "/mod" }, - /* 276 */ { ud_itab__276, UD_TAB__OPC_SSE, "/sse" }, - /* 277 */ { ud_itab__277, UD_TAB__OPC_SSE, "/sse" }, - /* 278 */ { ud_itab__278, UD_TAB__OPC_SSE, "/sse" }, - /* 279 */ { ud_itab__279, UD_TAB__OPC_SSE, "/sse" }, - /* 280 */ { ud_itab__280, UD_TAB__OPC_SSE, "/sse" }, - /* 281 */ { ud_itab__281, UD_TAB__OPC_SSE, "/sse" }, - /* 282 */ { ud_itab__282, UD_TAB__OPC_SSE, "/sse" }, - /* 283 */ { ud_itab__283, UD_TAB__OPC_SSE, "/sse" }, - /* 284 */ { ud_itab__284, UD_TAB__OPC_MODE, "/m" }, - /* 285 */ { ud_itab__285, UD_TAB__OPC_MODE, "/m" }, - /* 286 */ { ud_itab__286, UD_TAB__OPC_MODE, "/m" }, - /* 287 */ { ud_itab__287, UD_TAB__OPC_MODE, "/m" }, - /* 288 */ { ud_itab__288, UD_TAB__OPC_MODE, "/m" }, - /* 289 */ { ud_itab__289, UD_TAB__OPC_MODE, "/m" }, - /* 290 */ { ud_itab__290, UD_TAB__OPC_MODE, "/m" }, - /* 291 */ { ud_itab__291, UD_TAB__OPC_MODE, "/m" }, - /* 292 */ { ud_itab__292, UD_TAB__OPC_OSIZE, "/o" }, - /* 293 */ { ud_itab__293, UD_TAB__OPC_MODE, "/m" }, - /* 294 */ { ud_itab__294, UD_TAB__OPC_MODE, "/m" }, - /* 295 */ { ud_itab__295, UD_TAB__OPC_OSIZE, "/o" }, - /* 296 */ { ud_itab__296, UD_TAB__OPC_MODE, "/m" }, - /* 297 */ { ud_itab__297, UD_TAB__OPC_MODE, "/m" }, - /* 298 */ { ud_itab__298, UD_TAB__OPC_MODE, "/m" }, - /* 299 */ { ud_itab__299, UD_TAB__OPC_MODE, "/m" }, - /* 300 */ { ud_itab__300, UD_TAB__OPC_OSIZE, "/o" }, - /* 301 */ { ud_itab__301, UD_TAB__OPC_OSIZE, "/o" }, - /* 302 */ { ud_itab__302, UD_TAB__OPC_REG, "/reg" }, - /* 303 */ { ud_itab__303, UD_TAB__OPC_REG, "/reg" }, - /* 304 */ { ud_itab__304, UD_TAB__OPC_REG, "/reg" }, - /* 305 */ { ud_itab__305, UD_TAB__OPC_MODE, "/m" }, - /* 306 */ { ud_itab__306, UD_TAB__OPC_MODE, "/m" }, - /* 307 */ { ud_itab__307, UD_TAB__OPC_MODE, "/m" }, - /* 308 */ { ud_itab__308, UD_TAB__OPC_MODE, "/m" }, - /* 309 */ { ud_itab__309, UD_TAB__OPC_MODE, "/m" }, - /* 310 */ { ud_itab__310, UD_TAB__OPC_MODE, "/m" }, - /* 311 */ { ud_itab__311, UD_TAB__OPC_MODE, "/m" }, - /* 312 */ { ud_itab__312, UD_TAB__OPC_MODE, "/m" }, - /* 313 */ { ud_itab__313, UD_TAB__OPC_REG, "/reg" }, - /* 314 */ { ud_itab__314, UD_TAB__OPC_REG, "/reg" }, - /* 315 */ { ud_itab__315, UD_TAB__OPC_OSIZE, "/o" }, - /* 316 */ { ud_itab__316, UD_TAB__OPC_OSIZE, "/o" }, - /* 317 */ { ud_itab__317, UD_TAB__OPC_MODE, "/m" }, - /* 318 */ { ud_itab__318, UD_TAB__OPC_OSIZE, "/o" }, - /* 319 */ { ud_itab__319, UD_TAB__OPC_MODE, "/m" }, - /* 320 */ { ud_itab__320, UD_TAB__OPC_MODE, "/m" }, - /* 321 */ { ud_itab__321, UD_TAB__OPC_MODE, "/m" }, - /* 322 */ { ud_itab__322, UD_TAB__OPC_OSIZE, "/o" }, - /* 323 */ { ud_itab__323, UD_TAB__OPC_MODE, "/m" }, - /* 324 */ { ud_itab__324, UD_TAB__OPC_MODE, "/m" }, - /* 325 */ { ud_itab__325, UD_TAB__OPC_MODE, "/m" }, - /* 326 */ { ud_itab__326, UD_TAB__OPC_OSIZE, "/o" }, - /* 327 */ { ud_itab__327, UD_TAB__OPC_OSIZE, "/o" }, - /* 328 */ { ud_itab__328, UD_TAB__OPC_OSIZE, "/o" }, - /* 329 */ { ud_itab__329, UD_TAB__OPC_OSIZE, "/o" }, - /* 330 */ { ud_itab__330, UD_TAB__OPC_OSIZE, "/o" }, - /* 331 */ { ud_itab__331, UD_TAB__OPC_REG, "/reg" }, - /* 332 */ { ud_itab__332, UD_TAB__OPC_REG, "/reg" }, - /* 333 */ { ud_itab__333, UD_TAB__OPC_VEX, "/vex" }, - /* 334 */ { ud_itab__334, UD_TAB__OPC_MODE, "/m" }, - /* 335 */ { ud_itab__335, UD_TAB__OPC_TABLE, "opctbl" }, - /* 336 */ { ud_itab__336, UD_TAB__OPC_MOD, "/mod" }, - /* 337 */ { ud_itab__337, UD_TAB__OPC_MOD, "/mod" }, - /* 338 */ { ud_itab__338, UD_TAB__OPC_MOD, "/mod" }, - /* 339 */ { ud_itab__339, UD_TAB__OPC_REG, "/reg" }, - /* 340 */ { ud_itab__340, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 341 */ { ud_itab__341, UD_TAB__OPC_TABLE, "opctbl" }, - /* 342 */ { ud_itab__342, UD_TAB__OPC_MOD, "/mod" }, - /* 343 */ { ud_itab__343, UD_TAB__OPC_MOD, "/mod" }, - /* 344 */ { ud_itab__344, UD_TAB__OPC_OSIZE, "/o" }, - /* 345 */ { ud_itab__345, UD_TAB__OPC_REG, "/reg" }, - /* 346 */ { ud_itab__346, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 347 */ { ud_itab__347, UD_TAB__OPC_REG, "/reg" }, - /* 348 */ { ud_itab__348, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 349 */ { ud_itab__349, UD_TAB__OPC_REG, "/reg" }, - /* 350 */ { ud_itab__350, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 351 */ { ud_itab__351, UD_TAB__OPC_OSIZE, "/o" }, - /* 352 */ { ud_itab__352, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 353 */ { ud_itab__353, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 354 */ { ud_itab__354, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 355 */ { ud_itab__355, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 356 */ { ud_itab__356, UD_TAB__OPC_MOD, "/mod" }, - /* 357 */ { ud_itab__357, UD_TAB__OPC_TABLE, "opctbl" }, - /* 358 */ { ud_itab__358, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 359 */ { ud_itab__359, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 360 */ { ud_itab__360, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 361 */ { ud_itab__361, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 362 */ { ud_itab__362, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 363 */ { ud_itab__363, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 364 */ { ud_itab__364, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 365 */ { ud_itab__365, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 366 */ { ud_itab__366, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 367 */ { ud_itab__367, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 368 */ { ud_itab__368, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 369 */ { ud_itab__369, UD_TAB__OPC_TABLE, "opctbl" }, - /* 370 */ { ud_itab__370, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 371 */ { ud_itab__371, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 372 */ { ud_itab__372, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 373 */ { ud_itab__373, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 374 */ { ud_itab__374, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 375 */ { ud_itab__375, UD_TAB__OPC_OSIZE, "/o" }, - /* 376 */ { ud_itab__376, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 377 */ { ud_itab__377, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 378 */ { ud_itab__378, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 379 */ { ud_itab__379, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 380 */ { ud_itab__380, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 381 */ { ud_itab__381, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 382 */ { ud_itab__382, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 383 */ { ud_itab__383, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 384 */ { ud_itab__384, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 385 */ { ud_itab__385, UD_TAB__OPC_MODE, "/m" }, - /* 386 */ { ud_itab__386, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 387 */ { ud_itab__387, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 388 */ { ud_itab__388, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 389 */ { ud_itab__389, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 390 */ { ud_itab__390, UD_TAB__OPC_VEX_L, "/vexl" }, - /* 391 */ { ud_itab__391, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 392 */ { ud_itab__392, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 393 */ { ud_itab__393, UD_TAB__OPC_VEX_W, "/vexw" }, - /* 394 */ { ud_itab__394, UD_TAB__OPC_TABLE, "opctbl" }, - /* 395 */ { ud_itab__395, UD_TAB__OPC_MOD, "/mod" }, - /* 396 */ { ud_itab__396, UD_TAB__OPC_MOD, "/mod" }, - /* 397 */ { ud_itab__397, UD_TAB__OPC_MOD, "/mod" }, - /* 398 */ { ud_itab__398, UD_TAB__OPC_MOD, "/mod" }, - /* 399 */ { ud_itab__399, UD_TAB__OPC_TABLE, "opctbl" }, - /* 400 */ { ud_itab__400, UD_TAB__OPC_MOD, "/mod" }, - /* 401 */ { ud_itab__401, UD_TAB__OPC_MOD, "/mod" }, - /* 402 */ { ud_itab__402, UD_TAB__OPC_MOD, "/mod" }, - /* 403 */ { ud_itab__403, UD_TAB__OPC_VEX, "/vex" }, - /* 404 */ { ud_itab__404, UD_TAB__OPC_MODE, "/m" }, - /* 405 */ { ud_itab__405, UD_TAB__OPC_REG, "/reg" }, - /* 406 */ { ud_itab__406, UD_TAB__OPC_REG, "/reg" }, - /* 407 */ { ud_itab__407, UD_TAB__OPC_MODE, "/m" }, - /* 408 */ { ud_itab__408, UD_TAB__OPC_OSIZE, "/o" }, - /* 409 */ { ud_itab__409, UD_TAB__OPC_REG, "/reg" }, - /* 410 */ { ud_itab__410, UD_TAB__OPC_REG, "/reg" }, - /* 411 */ { ud_itab__411, UD_TAB__OPC_REG, "/reg" }, - /* 412 */ { ud_itab__412, UD_TAB__OPC_REG, "/reg" }, - /* 413 */ { ud_itab__413, UD_TAB__OPC_MODE, "/m" }, - /* 414 */ { ud_itab__414, UD_TAB__OPC_MODE, "/m" }, - /* 415 */ { ud_itab__415, UD_TAB__OPC_MODE, "/m" }, - /* 416 */ { ud_itab__416, UD_TAB__OPC_MOD, "/mod" }, - /* 417 */ { ud_itab__417, UD_TAB__OPC_REG, "/reg" }, - /* 418 */ { ud_itab__418, UD_TAB__OPC_X87, "/x87" }, - /* 419 */ { ud_itab__419, UD_TAB__OPC_MOD, "/mod" }, - /* 420 */ { ud_itab__420, UD_TAB__OPC_REG, "/reg" }, - /* 421 */ { ud_itab__421, UD_TAB__OPC_X87, "/x87" }, - /* 422 */ { ud_itab__422, UD_TAB__OPC_MOD, "/mod" }, - /* 423 */ { ud_itab__423, UD_TAB__OPC_REG, "/reg" }, - /* 424 */ { ud_itab__424, UD_TAB__OPC_X87, "/x87" }, - /* 425 */ { ud_itab__425, UD_TAB__OPC_MOD, "/mod" }, - /* 426 */ { ud_itab__426, UD_TAB__OPC_REG, "/reg" }, - /* 427 */ { ud_itab__427, UD_TAB__OPC_X87, "/x87" }, - /* 428 */ { ud_itab__428, UD_TAB__OPC_MOD, "/mod" }, - /* 429 */ { ud_itab__429, UD_TAB__OPC_REG, "/reg" }, - /* 430 */ { ud_itab__430, UD_TAB__OPC_X87, "/x87" }, - /* 431 */ { ud_itab__431, UD_TAB__OPC_MOD, "/mod" }, - /* 432 */ { ud_itab__432, UD_TAB__OPC_REG, "/reg" }, - /* 433 */ { ud_itab__433, UD_TAB__OPC_X87, "/x87" }, - /* 434 */ { ud_itab__434, UD_TAB__OPC_MOD, "/mod" }, - /* 435 */ { ud_itab__435, UD_TAB__OPC_REG, "/reg" }, - /* 436 */ { ud_itab__436, UD_TAB__OPC_X87, "/x87" }, - /* 437 */ { ud_itab__437, UD_TAB__OPC_MOD, "/mod" }, - /* 438 */ { ud_itab__438, UD_TAB__OPC_REG, "/reg" }, - /* 439 */ { ud_itab__439, UD_TAB__OPC_X87, "/x87" }, - /* 440 */ { ud_itab__440, UD_TAB__OPC_ASIZE, "/a" }, - /* 441 */ { ud_itab__441, UD_TAB__OPC_MODE, "/m" }, - /* 442 */ { ud_itab__442, UD_TAB__OPC_REG, "/reg" }, - /* 443 */ { ud_itab__443, UD_TAB__OPC_REG, "/reg" }, - /* 444 */ { ud_itab__444, UD_TAB__OPC_REG, "/reg" }, - /* 445 */ { ud_itab__445, UD_TAB__OPC_REG, "/reg" }, - /* 446 */ { ud_itab__446, UD_TAB__OPC_MODE, "/m" }, -}; - -/* itab entry operand definitions (for readability) */ -#define O_AL { OP_AL, SZ_B } -#define O_AX { OP_AX, SZ_W } -#define O_Av { OP_A, SZ_V } -#define O_C { OP_C, SZ_NA } -#define O_CL { OP_CL, SZ_B } -#define O_CS { OP_CS, SZ_NA } -#define O_CX { OP_CX, SZ_W } -#define O_D { OP_D, SZ_NA } -#define O_DL { OP_DL, SZ_B } -#define O_DS { OP_DS, SZ_NA } -#define O_DX { OP_DX, SZ_W } -#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_Eq { OP_E, SZ_Q } -#define O_Ev { OP_E, SZ_V } -#define O_Ew { OP_E, SZ_W } -#define O_Ey { OP_E, SZ_Y } -#define O_Ez { OP_E, SZ_Z } -#define O_FS { OP_FS, SZ_NA } -#define O_Fv { OP_F, SZ_V } -#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_Gw { OP_G, SZ_W } -#define O_Gy { OP_G, SZ_Y } -#define O_Gz { OP_G, SZ_Z } -#define O_H { OP_H, SZ_X } -#define O_Hqq { OP_H, SZ_QQ } -#define O_Hx { OP_H, SZ_X } -#define O_I1 { OP_I1, SZ_NA } -#define O_I3 { OP_I3, SZ_NA } -#define O_Ib { OP_I, SZ_B } -#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_L { OP_L, SZ_O } -#define O_Lx { OP_L, SZ_X } -#define O_M { OP_M, SZ_NA } -#define O_Mb { OP_M, SZ_B } -#define O_MbRd { OP_MR, SZ_BD } -#define O_MbRv { OP_MR, SZ_BV } -#define O_Md { OP_M, SZ_D } -#define O_MdRy { OP_MR, SZ_DY } -#define O_MdU { OP_MU, SZ_DO } -#define O_Mdq { OP_M, SZ_DQ } -#define O_Mo { OP_M, SZ_O } -#define O_Mq { OP_M, SZ_Q } -#define O_MqU { OP_MU, SZ_QO } -#define O_Ms { OP_M, SZ_W } -#define O_Mt { OP_M, SZ_T } -#define O_Mv { OP_M, SZ_V } -#define O_Mw { OP_M, SZ_W } -#define O_MwRd { OP_MR, SZ_WD } -#define O_MwRv { OP_MR, SZ_WV } -#define O_MwRy { OP_MR, SZ_WY } -#define O_MwU { OP_MU, SZ_WO } -#define O_N { OP_N, SZ_Q } -#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_Q { OP_Q, SZ_Q } -#define O_R { OP_R, SZ_RDQ } -#define O_R0b { OP_R0, SZ_B } -#define O_R0v { OP_R0, SZ_V } -#define O_R0w { OP_R0, SZ_W } -#define O_R0y { OP_R0, SZ_Y } -#define O_R0z { OP_R0, SZ_Z } -#define O_R1b { OP_R1, SZ_B } -#define O_R1v { OP_R1, SZ_V } -#define O_R1w { OP_R1, SZ_W } -#define O_R1y { OP_R1, SZ_Y } -#define O_R1z { OP_R1, SZ_Z } -#define O_R2b { OP_R2, SZ_B } -#define O_R2v { OP_R2, SZ_V } -#define O_R2w { OP_R2, SZ_W } -#define O_R2y { OP_R2, SZ_Y } -#define O_R2z { OP_R2, SZ_Z } -#define O_R3b { OP_R3, SZ_B } -#define O_R3v { OP_R3, SZ_V } -#define O_R3w { OP_R3, SZ_W } -#define O_R3y { OP_R3, SZ_Y } -#define O_R3z { OP_R3, SZ_Z } -#define O_R4b { OP_R4, SZ_B } -#define O_R4v { OP_R4, SZ_V } -#define O_R4w { OP_R4, SZ_W } -#define O_R4y { OP_R4, SZ_Y } -#define O_R4z { OP_R4, SZ_Z } -#define O_R5b { OP_R5, SZ_B } -#define O_R5v { OP_R5, SZ_V } -#define O_R5w { OP_R5, SZ_W } -#define O_R5y { OP_R5, SZ_Y } -#define O_R5z { OP_R5, SZ_Z } -#define O_R6b { OP_R6, SZ_B } -#define O_R6v { OP_R6, SZ_V } -#define O_R6w { OP_R6, SZ_W } -#define O_R6y { OP_R6, SZ_Y } -#define O_R6z { OP_R6, SZ_Z } -#define O_R7b { OP_R7, SZ_B } -#define O_R7v { OP_R7, SZ_V } -#define O_R7w { OP_R7, SZ_W } -#define O_R7y { OP_R7, SZ_Y } -#define O_R7z { OP_R7, SZ_Z } -#define O_S { OP_S, SZ_W } -#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_U { OP_U, SZ_O } -#define O_Ux { OP_U, SZ_X } -#define O_V { OP_V, SZ_DQ } -#define O_Vdq { OP_V, SZ_DQ } -#define O_Vqq { OP_V, SZ_QQ } -#define O_Vsd { OP_V, SZ_Q } -#define O_Vx { OP_V, SZ_X } -#define O_W { OP_W, SZ_DQ } -#define O_Wdq { OP_W, SZ_DQ } -#define O_Wqq { OP_W, SZ_QQ } -#define O_Wsd { OP_W, SZ_Q } -#define O_Wx { OP_W, SZ_X } -#define O_eAX { OP_eAX, SZ_Z } -#define O_eCX { OP_eCX, SZ_Z } -#define O_eDX { OP_eDX, SZ_Z } -#define O_rAX { OP_rAX, SZ_V } -#define O_rCX { OP_rCX, SZ_V } -#define O_rDX { OP_rDX, SZ_V } -#define O_sIb { OP_sI, SZ_B } -#define O_sIv { OP_sI, SZ_V } -#define O_sIz { OP_sI, SZ_Z } - -struct ud_itab_entry ud_itab[] = { - /* 0000 */ { UD_Iinvalid, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0001 */ { UD_Iaaa, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0002 */ { UD_Iaad, O_Ib, O_NONE, O_NONE, O_NONE, P_none }, - /* 0003 */ { UD_Iaam, O_Ib, O_NONE, O_NONE, O_NONE, P_none }, - /* 0004 */ { UD_Iaas, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0005 */ { UD_Iadc, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0006 */ { UD_Iadc, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0007 */ { UD_Iadc, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0008 */ { UD_Iadc, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0009 */ { UD_Iadc, O_AL, O_Ib, O_NONE, O_NONE, P_none }, - /* 0010 */ { UD_Iadc, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0011 */ { UD_Iadc, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0012 */ { UD_Iadc, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, - /* 0013 */ { UD_Iadc, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0014 */ { UD_Iadc, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0015 */ { UD_Iadd, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0016 */ { UD_Iadd, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0017 */ { UD_Iadd, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0018 */ { UD_Iadd, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0019 */ { UD_Iadd, O_AL, O_Ib, O_NONE, O_NONE, P_none }, - /* 0020 */ { UD_Iadd, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0021 */ { UD_Iadd, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0022 */ { UD_Iadd, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, - /* 0023 */ { UD_Iadd, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0024 */ { UD_Iadd, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0025 */ { UD_Iaddpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0026 */ { UD_Ivaddpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0027 */ { UD_Iaddps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0028 */ { UD_Ivaddps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0029 */ { UD_Iaddsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0030 */ { UD_Ivaddsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0031 */ { UD_Iaddss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0032 */ { UD_Ivaddss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0033 */ { UD_Iaddsubpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0034 */ { UD_Ivaddsubpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0035 */ { UD_Iaddsubps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0036 */ { UD_Ivaddsubps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0037 */ { UD_Iaesdec, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0038 */ { UD_Ivaesdec, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0039 */ { UD_Iaesdeclast, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0040 */ { UD_Ivaesdeclast, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0041 */ { UD_Iaesenc, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0042 */ { UD_Ivaesenc, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0043 */ { UD_Iaesenclast, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0044 */ { UD_Ivaesenclast, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0045 */ { UD_Iaesimc, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0046 */ { UD_Ivaesimc, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0047 */ { UD_Iaeskeygenassist, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0048 */ { UD_Ivaeskeygenassist, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0049 */ { UD_Iand, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0050 */ { UD_Iand, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0051 */ { UD_Iand, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0052 */ { UD_Iand, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0053 */ { UD_Iand, O_AL, O_Ib, O_NONE, O_NONE, P_none }, - /* 0054 */ { UD_Iand, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0055 */ { UD_Iand, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0056 */ { UD_Iand, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, - /* 0057 */ { UD_Iand, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0058 */ { UD_Iand, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0059 */ { UD_Iandpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0060 */ { UD_Ivandpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0061 */ { UD_Iandps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0062 */ { UD_Ivandps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0063 */ { UD_Iandnpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0064 */ { UD_Ivandnpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0065 */ { UD_Iandnps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0066 */ { UD_Ivandnps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0067 */ { UD_Iarpl, O_Ew, O_Gw, O_NONE, O_NONE, P_aso }, - /* 0068 */ { UD_Imovsxd, O_Gq, O_Ed, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexx|P_rexr|P_rexb }, - /* 0069 */ { UD_Icall, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0070 */ { UD_Icall, O_Eq, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, - /* 0071 */ { UD_Icall, O_Fv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0072 */ { UD_Icall, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0073 */ { UD_Icall, O_Av, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0074 */ { UD_Icbw, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0075 */ { UD_Icwde, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0076 */ { UD_Icdqe, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0077 */ { UD_Iclac, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0078 */ { UD_Iclc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0079 */ { UD_Icld, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0080 */ { UD_Iclflush, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0081 */ { UD_Iclgi, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0082 */ { UD_Icli, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0083 */ { UD_Iclts, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0084 */ { UD_Icmc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0085 */ { UD_Icmovo, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0086 */ { UD_Icmovno, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0087 */ { UD_Icmovb, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0088 */ { UD_Icmovae, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0089 */ { UD_Icmovz, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0090 */ { UD_Icmovnz, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0091 */ { UD_Icmovbe, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0092 */ { UD_Icmova, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0093 */ { UD_Icmovs, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0094 */ { UD_Icmovns, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0095 */ { UD_Icmovp, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0096 */ { UD_Icmovnp, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0097 */ { UD_Icmovl, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0098 */ { UD_Icmovge, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0099 */ { UD_Icmovle, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0100 */ { UD_Icmovg, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0101 */ { UD_Icmp, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0102 */ { UD_Icmp, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0103 */ { UD_Icmp, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0104 */ { UD_Icmp, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0105 */ { UD_Icmp, O_AL, O_Ib, O_NONE, O_NONE, P_none }, - /* 0106 */ { UD_Icmp, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0107 */ { UD_Icmp, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0108 */ { UD_Icmp, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, - /* 0109 */ { UD_Icmp, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0110 */ { UD_Icmp, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0111 */ { UD_Icmppd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0112 */ { UD_Ivcmppd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0113 */ { UD_Icmpps, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0114 */ { UD_Ivcmpps, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0115 */ { UD_Icmpsb, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_seg }, - /* 0116 */ { UD_Icmpsw, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw|P_seg }, - /* 0117 */ { UD_Icmpsd, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw|P_seg }, - /* 0118 */ { UD_Icmpsd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0119 */ { UD_Ivcmpsd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0120 */ { UD_Icmpsq, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw|P_seg }, - /* 0121 */ { UD_Icmpss, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0122 */ { UD_Ivcmpss, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0123 */ { UD_Icmpxchg, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0124 */ { UD_Icmpxchg, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0125 */ { UD_Icmpxchg8b, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0126 */ { UD_Icmpxchg8b, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0127 */ { UD_Icmpxchg16b, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0128 */ { UD_Icomisd, O_Vsd, O_Wsd, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0129 */ { UD_Ivcomisd, O_Vsd, O_Wsd, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0130 */ { UD_Icomiss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0131 */ { UD_Ivcomiss, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0132 */ { UD_Icpuid, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0133 */ { UD_Icvtdq2pd, O_V, O_Wdq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0134 */ { UD_Ivcvtdq2pd, O_Vx, O_Wdq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0135 */ { UD_Icvtdq2ps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0136 */ { UD_Ivcvtdq2ps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0137 */ { UD_Icvtpd2dq, O_Vdq, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0138 */ { UD_Ivcvtpd2dq, O_Vdq, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0139 */ { UD_Icvtpd2pi, O_P, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0140 */ { UD_Icvtpd2ps, O_Vdq, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0141 */ { UD_Ivcvtpd2ps, O_Vdq, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0142 */ { UD_Icvtpi2ps, O_V, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0143 */ { UD_Icvtpi2pd, O_V, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0144 */ { UD_Icvtps2dq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0145 */ { UD_Ivcvtps2dq, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0146 */ { UD_Icvtps2pd, O_V, O_Wdq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0147 */ { UD_Ivcvtps2pd, O_Vx, O_Wdq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0148 */ { UD_Icvtps2pi, O_P, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0149 */ { UD_Icvtsd2si, O_Gy, O_MqU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0150 */ { UD_Ivcvtsd2si, O_Gy, O_MqU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0151 */ { UD_Icvtsd2ss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0152 */ { UD_Ivcvtsd2ss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0153 */ { UD_Icvtsi2sd, O_V, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0154 */ { UD_Ivcvtsi2sd, O_Vx, O_Hx, O_Ey, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0155 */ { UD_Icvtsi2ss, O_V, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0156 */ { UD_Ivcvtsi2ss, O_Vx, O_Hx, O_Ey, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0157 */ { UD_Icvtss2sd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0158 */ { UD_Ivcvtss2sd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0159 */ { UD_Icvtss2si, O_Gy, O_MdU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0160 */ { UD_Ivcvtss2si, O_Gy, O_MdU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0161 */ { UD_Icvttpd2dq, O_Vdq, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0162 */ { UD_Ivcvttpd2dq, O_Vdq, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0163 */ { UD_Icvttpd2pi, O_P, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0164 */ { UD_Icvttps2dq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0165 */ { UD_Ivcvttps2dq, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0166 */ { UD_Icvttps2pi, O_P, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0167 */ { UD_Icvttsd2si, O_Gy, O_MqU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0168 */ { UD_Ivcvttsd2si, O_Gy, O_MqU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0169 */ { UD_Icvttss2si, O_Gy, O_MdU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0170 */ { UD_Ivcvttss2si, O_Gy, O_MdU, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0171 */ { UD_Icwd, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0172 */ { UD_Icdq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0173 */ { UD_Icqo, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0174 */ { UD_Idaa, O_NONE, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 0175 */ { UD_Idas, O_NONE, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 0176 */ { UD_Idec, O_R0z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0177 */ { UD_Idec, O_R1z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0178 */ { UD_Idec, O_R2z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0179 */ { UD_Idec, O_R3z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0180 */ { UD_Idec, O_R4z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0181 */ { UD_Idec, O_R5z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0182 */ { UD_Idec, O_R6z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0183 */ { UD_Idec, O_R7z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0184 */ { UD_Idec, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0185 */ { UD_Idec, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0186 */ { UD_Idiv, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0187 */ { UD_Idiv, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0188 */ { UD_Idivpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0189 */ { UD_Ivdivpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0190 */ { UD_Idivps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0191 */ { UD_Ivdivps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0192 */ { UD_Idivsd, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0193 */ { UD_Ivdivsd, O_Vx, O_Hx, O_MqU, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0194 */ { UD_Idivss, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0195 */ { UD_Ivdivss, O_Vx, O_Hx, O_MdU, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0196 */ { UD_Idppd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0197 */ { UD_Ivdppd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0198 */ { UD_Idpps, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0199 */ { UD_Ivdpps, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0200 */ { UD_Iemms, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0201 */ { UD_Ienter, O_Iw, O_Ib, O_NONE, O_NONE, P_def64 }, - /* 0202 */ { UD_Iextractps, O_MdRy, O_V, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 0203 */ { UD_Ivextractps, O_MdRy, O_Vx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 0204 */ { UD_If2xm1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0205 */ { UD_Ifabs, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0206 */ { UD_Ifadd, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0207 */ { UD_Ifadd, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0208 */ { UD_Ifadd, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0209 */ { UD_Ifadd, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0210 */ { UD_Ifadd, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0211 */ { UD_Ifadd, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0212 */ { UD_Ifadd, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0213 */ { UD_Ifadd, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0214 */ { UD_Ifadd, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0215 */ { UD_Ifadd, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0216 */ { UD_Ifadd, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0217 */ { UD_Ifadd, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0218 */ { UD_Ifadd, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0219 */ { UD_Ifadd, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0220 */ { UD_Ifadd, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0221 */ { UD_Ifadd, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0222 */ { UD_Ifadd, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0223 */ { UD_Ifadd, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0224 */ { UD_Ifaddp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0225 */ { UD_Ifaddp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0226 */ { UD_Ifaddp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0227 */ { UD_Ifaddp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0228 */ { UD_Ifaddp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0229 */ { UD_Ifaddp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0230 */ { UD_Ifaddp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0231 */ { UD_Ifaddp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0232 */ { UD_Ifbld, O_Mt, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0233 */ { UD_Ifbstp, O_Mt, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0234 */ { UD_Ifchs, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0235 */ { UD_Ifclex, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0236 */ { UD_Ifcmovb, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0237 */ { UD_Ifcmovb, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0238 */ { UD_Ifcmovb, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0239 */ { UD_Ifcmovb, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0240 */ { UD_Ifcmovb, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0241 */ { UD_Ifcmovb, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0242 */ { UD_Ifcmovb, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0243 */ { UD_Ifcmovb, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0244 */ { UD_Ifcmove, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0245 */ { UD_Ifcmove, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0246 */ { UD_Ifcmove, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0247 */ { UD_Ifcmove, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0248 */ { UD_Ifcmove, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0249 */ { UD_Ifcmove, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0250 */ { UD_Ifcmove, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0251 */ { UD_Ifcmove, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0252 */ { UD_Ifcmovbe, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0253 */ { UD_Ifcmovbe, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0254 */ { UD_Ifcmovbe, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0255 */ { UD_Ifcmovbe, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0256 */ { UD_Ifcmovbe, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0257 */ { UD_Ifcmovbe, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0258 */ { UD_Ifcmovbe, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0259 */ { UD_Ifcmovbe, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0260 */ { UD_Ifcmovu, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0261 */ { UD_Ifcmovu, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0262 */ { UD_Ifcmovu, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0263 */ { UD_Ifcmovu, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0264 */ { UD_Ifcmovu, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0265 */ { UD_Ifcmovu, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0266 */ { UD_Ifcmovu, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0267 */ { UD_Ifcmovu, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0268 */ { UD_Ifcmovnb, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0269 */ { UD_Ifcmovnb, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0270 */ { UD_Ifcmovnb, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0271 */ { UD_Ifcmovnb, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0272 */ { UD_Ifcmovnb, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0273 */ { UD_Ifcmovnb, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0274 */ { UD_Ifcmovnb, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0275 */ { UD_Ifcmovnb, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0276 */ { UD_Ifcmovne, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0277 */ { UD_Ifcmovne, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0278 */ { UD_Ifcmovne, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0279 */ { UD_Ifcmovne, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0280 */ { UD_Ifcmovne, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0281 */ { UD_Ifcmovne, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0282 */ { UD_Ifcmovne, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0283 */ { UD_Ifcmovne, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0284 */ { UD_Ifcmovnbe, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0285 */ { UD_Ifcmovnbe, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0286 */ { UD_Ifcmovnbe, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0287 */ { UD_Ifcmovnbe, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0288 */ { UD_Ifcmovnbe, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0289 */ { UD_Ifcmovnbe, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0290 */ { UD_Ifcmovnbe, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0291 */ { UD_Ifcmovnbe, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0292 */ { UD_Ifcmovnu, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0293 */ { UD_Ifcmovnu, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0294 */ { UD_Ifcmovnu, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0295 */ { UD_Ifcmovnu, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0296 */ { UD_Ifcmovnu, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0297 */ { UD_Ifcmovnu, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0298 */ { UD_Ifcmovnu, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0299 */ { UD_Ifcmovnu, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0300 */ { UD_Ifucomi, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0301 */ { UD_Ifucomi, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0302 */ { UD_Ifucomi, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0303 */ { UD_Ifucomi, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0304 */ { UD_Ifucomi, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0305 */ { UD_Ifucomi, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0306 */ { UD_Ifucomi, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0307 */ { UD_Ifucomi, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0308 */ { UD_Ifcom, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0309 */ { UD_Ifcom, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0310 */ { UD_Ifcom, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0311 */ { UD_Ifcom, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0312 */ { UD_Ifcom, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0313 */ { UD_Ifcom, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0314 */ { UD_Ifcom, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0315 */ { UD_Ifcom, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0316 */ { UD_Ifcom, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0317 */ { UD_Ifcom, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0318 */ { UD_Ifcom2, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0319 */ { UD_Ifcom2, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0320 */ { UD_Ifcom2, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0321 */ { UD_Ifcom2, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0322 */ { UD_Ifcom2, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0323 */ { UD_Ifcom2, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0324 */ { UD_Ifcom2, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0325 */ { UD_Ifcom2, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0326 */ { UD_Ifcomp3, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0327 */ { UD_Ifcomp3, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0328 */ { UD_Ifcomp3, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0329 */ { UD_Ifcomp3, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0330 */ { UD_Ifcomp3, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0331 */ { UD_Ifcomp3, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0332 */ { UD_Ifcomp3, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0333 */ { UD_Ifcomp3, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0334 */ { UD_Ifcomi, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0335 */ { UD_Ifcomi, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0336 */ { UD_Ifcomi, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0337 */ { UD_Ifcomi, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0338 */ { UD_Ifcomi, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0339 */ { UD_Ifcomi, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0340 */ { UD_Ifcomi, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0341 */ { UD_Ifcomi, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0342 */ { UD_Ifucomip, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0343 */ { UD_Ifucomip, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0344 */ { UD_Ifucomip, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0345 */ { UD_Ifucomip, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0346 */ { UD_Ifucomip, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0347 */ { UD_Ifucomip, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0348 */ { UD_Ifucomip, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0349 */ { UD_Ifucomip, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0350 */ { UD_Ifcomip, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0351 */ { UD_Ifcomip, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0352 */ { UD_Ifcomip, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0353 */ { UD_Ifcomip, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0354 */ { UD_Ifcomip, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0355 */ { UD_Ifcomip, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0356 */ { UD_Ifcomip, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0357 */ { UD_Ifcomip, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0358 */ { UD_Ifcomp, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0359 */ { UD_Ifcomp, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0360 */ { UD_Ifcomp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0361 */ { UD_Ifcomp, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0362 */ { UD_Ifcomp, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0363 */ { UD_Ifcomp, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0364 */ { UD_Ifcomp, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0365 */ { UD_Ifcomp, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0366 */ { UD_Ifcomp, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0367 */ { UD_Ifcomp, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0368 */ { UD_Ifcomp5, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0369 */ { UD_Ifcomp5, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0370 */ { UD_Ifcomp5, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0371 */ { UD_Ifcomp5, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0372 */ { UD_Ifcomp5, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0373 */ { UD_Ifcomp5, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0374 */ { UD_Ifcomp5, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0375 */ { UD_Ifcomp5, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0376 */ { UD_Ifcompp, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0377 */ { UD_Ifcos, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0378 */ { UD_Ifdecstp, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0379 */ { UD_Ifdiv, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0380 */ { UD_Ifdiv, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0381 */ { UD_Ifdiv, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0382 */ { UD_Ifdiv, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0383 */ { UD_Ifdiv, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0384 */ { UD_Ifdiv, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0385 */ { UD_Ifdiv, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0386 */ { UD_Ifdiv, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0387 */ { UD_Ifdiv, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0388 */ { UD_Ifdiv, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0389 */ { UD_Ifdiv, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0390 */ { UD_Ifdiv, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0391 */ { UD_Ifdiv, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0392 */ { UD_Ifdiv, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0393 */ { UD_Ifdiv, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0394 */ { UD_Ifdiv, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0395 */ { UD_Ifdiv, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0396 */ { UD_Ifdiv, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0397 */ { UD_Ifdivp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0398 */ { UD_Ifdivp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0399 */ { UD_Ifdivp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0400 */ { UD_Ifdivp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0401 */ { UD_Ifdivp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0402 */ { UD_Ifdivp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0403 */ { UD_Ifdivp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0404 */ { UD_Ifdivp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0405 */ { UD_Ifdivr, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0406 */ { UD_Ifdivr, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0407 */ { UD_Ifdivr, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0408 */ { UD_Ifdivr, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0409 */ { UD_Ifdivr, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0410 */ { UD_Ifdivr, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0411 */ { UD_Ifdivr, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0412 */ { UD_Ifdivr, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0413 */ { UD_Ifdivr, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0414 */ { UD_Ifdivr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0415 */ { UD_Ifdivr, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0416 */ { UD_Ifdivr, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0417 */ { UD_Ifdivr, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0418 */ { UD_Ifdivr, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0419 */ { UD_Ifdivr, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0420 */ { UD_Ifdivr, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0421 */ { UD_Ifdivr, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0422 */ { UD_Ifdivr, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0423 */ { UD_Ifdivrp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0424 */ { UD_Ifdivrp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0425 */ { UD_Ifdivrp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0426 */ { UD_Ifdivrp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0427 */ { UD_Ifdivrp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0428 */ { UD_Ifdivrp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0429 */ { UD_Ifdivrp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0430 */ { UD_Ifdivrp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0431 */ { UD_Ifemms, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0432 */ { UD_Iffree, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0433 */ { UD_Iffree, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0434 */ { UD_Iffree, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0435 */ { UD_Iffree, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0436 */ { UD_Iffree, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0437 */ { UD_Iffree, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0438 */ { UD_Iffree, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0439 */ { UD_Iffree, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0440 */ { UD_Iffreep, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0441 */ { UD_Iffreep, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0442 */ { UD_Iffreep, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0443 */ { UD_Iffreep, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0444 */ { UD_Iffreep, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0445 */ { UD_Iffreep, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0446 */ { UD_Iffreep, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0447 */ { UD_Iffreep, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0448 */ { UD_Ificom, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0449 */ { UD_Ificom, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0450 */ { UD_Ificomp, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0451 */ { UD_Ificomp, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0452 */ { UD_Ifild, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0453 */ { UD_Ifild, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0454 */ { UD_Ifild, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0455 */ { UD_Ifincstp, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0456 */ { UD_Ifninit, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0457 */ { UD_Ifiadd, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0458 */ { UD_Ifiadd, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0459 */ { UD_Ifidivr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0460 */ { UD_Ifidivr, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0461 */ { UD_Ifidiv, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0462 */ { UD_Ifidiv, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0463 */ { UD_Ifisub, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0464 */ { UD_Ifisub, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0465 */ { UD_Ifisubr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0466 */ { UD_Ifisubr, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0467 */ { UD_Ifist, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0468 */ { UD_Ifist, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0469 */ { UD_Ifistp, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0470 */ { UD_Ifistp, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0471 */ { UD_Ifistp, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0472 */ { UD_Ifisttp, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0473 */ { UD_Ifisttp, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0474 */ { UD_Ifisttp, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0475 */ { UD_Ifld, O_Mt, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0476 */ { UD_Ifld, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0477 */ { UD_Ifld, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0478 */ { UD_Ifld, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0479 */ { UD_Ifld, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0480 */ { UD_Ifld, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0481 */ { UD_Ifld, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0482 */ { UD_Ifld, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0483 */ { UD_Ifld, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0484 */ { UD_Ifld, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0485 */ { UD_Ifld, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0486 */ { UD_Ifld1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0487 */ { UD_Ifldl2t, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0488 */ { UD_Ifldl2e, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0489 */ { UD_Ifldpi, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0490 */ { UD_Ifldlg2, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0491 */ { UD_Ifldln2, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0492 */ { UD_Ifldz, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0493 */ { UD_Ifldcw, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0494 */ { UD_Ifldenv, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0495 */ { UD_Ifmul, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0496 */ { UD_Ifmul, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0497 */ { UD_Ifmul, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0498 */ { UD_Ifmul, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0499 */ { UD_Ifmul, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0500 */ { UD_Ifmul, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0501 */ { UD_Ifmul, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0502 */ { UD_Ifmul, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0503 */ { UD_Ifmul, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0504 */ { UD_Ifmul, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0505 */ { UD_Ifmul, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0506 */ { UD_Ifmul, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0507 */ { UD_Ifmul, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0508 */ { UD_Ifmul, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0509 */ { UD_Ifmul, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0510 */ { UD_Ifmul, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0511 */ { UD_Ifmul, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0512 */ { UD_Ifmul, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0513 */ { UD_Ifmulp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0514 */ { UD_Ifmulp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0515 */ { UD_Ifmulp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0516 */ { UD_Ifmulp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0517 */ { UD_Ifmulp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0518 */ { UD_Ifmulp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0519 */ { UD_Ifmulp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0520 */ { UD_Ifmulp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0521 */ { UD_Ifimul, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0522 */ { UD_Ifimul, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0523 */ { UD_Ifnop, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0524 */ { UD_Ifndisi, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0525 */ { UD_Ifneni, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0526 */ { UD_Ifnsetpm, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0527 */ { UD_Ifpatan, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0528 */ { UD_Ifprem, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0529 */ { UD_Ifprem1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0530 */ { UD_Ifptan, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0531 */ { UD_Ifrndint, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0532 */ { UD_Ifrstor, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0533 */ { UD_Ifrstpm, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0534 */ { UD_Ifnsave, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0535 */ { UD_Ifscale, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0536 */ { UD_Ifsin, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0537 */ { UD_Ifsincos, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0538 */ { UD_Ifsqrt, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0539 */ { UD_Ifstp, O_Mt, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0540 */ { UD_Ifstp, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0541 */ { UD_Ifstp, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0542 */ { UD_Ifstp, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0543 */ { UD_Ifstp, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0544 */ { UD_Ifstp, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0545 */ { UD_Ifstp, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0546 */ { UD_Ifstp, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0547 */ { UD_Ifstp, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0548 */ { UD_Ifstp, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0549 */ { UD_Ifstp, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0550 */ { UD_Ifstp1, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0551 */ { UD_Ifstp1, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0552 */ { UD_Ifstp1, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0553 */ { UD_Ifstp1, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0554 */ { UD_Ifstp1, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0555 */ { UD_Ifstp1, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0556 */ { UD_Ifstp1, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0557 */ { UD_Ifstp1, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0558 */ { UD_Ifstp8, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0559 */ { UD_Ifstp8, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0560 */ { UD_Ifstp8, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0561 */ { UD_Ifstp8, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0562 */ { UD_Ifstp8, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0563 */ { UD_Ifstp8, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0564 */ { UD_Ifstp8, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0565 */ { UD_Ifstp8, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0566 */ { UD_Ifstp9, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0567 */ { UD_Ifstp9, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0568 */ { UD_Ifstp9, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0569 */ { UD_Ifstp9, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0570 */ { UD_Ifstp9, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0571 */ { UD_Ifstp9, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0572 */ { UD_Ifstp9, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0573 */ { UD_Ifstp9, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0574 */ { UD_Ifst, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0575 */ { UD_Ifst, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0576 */ { UD_Ifst, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0577 */ { UD_Ifst, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0578 */ { UD_Ifst, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0579 */ { UD_Ifst, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0580 */ { UD_Ifst, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0581 */ { UD_Ifst, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0582 */ { UD_Ifst, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0583 */ { UD_Ifst, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0584 */ { UD_Ifnstcw, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0585 */ { UD_Ifnstenv, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0586 */ { UD_Ifnstsw, O_Mw, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0587 */ { UD_Ifnstsw, O_AX, O_NONE, O_NONE, O_NONE, P_none }, - /* 0588 */ { UD_Ifsub, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0589 */ { UD_Ifsub, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0590 */ { UD_Ifsub, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0591 */ { UD_Ifsub, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0592 */ { UD_Ifsub, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0593 */ { UD_Ifsub, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0594 */ { UD_Ifsub, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0595 */ { UD_Ifsub, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0596 */ { UD_Ifsub, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0597 */ { UD_Ifsub, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0598 */ { UD_Ifsub, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0599 */ { UD_Ifsub, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0600 */ { UD_Ifsub, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0601 */ { UD_Ifsub, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0602 */ { UD_Ifsub, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0603 */ { UD_Ifsub, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0604 */ { UD_Ifsub, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0605 */ { UD_Ifsub, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0606 */ { UD_Ifsubp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0607 */ { UD_Ifsubp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0608 */ { UD_Ifsubp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0609 */ { UD_Ifsubp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0610 */ { UD_Ifsubp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0611 */ { UD_Ifsubp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0612 */ { UD_Ifsubp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0613 */ { UD_Ifsubp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0614 */ { UD_Ifsubr, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0615 */ { UD_Ifsubr, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0616 */ { UD_Ifsubr, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0617 */ { UD_Ifsubr, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0618 */ { UD_Ifsubr, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0619 */ { UD_Ifsubr, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0620 */ { UD_Ifsubr, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0621 */ { UD_Ifsubr, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0622 */ { UD_Ifsubr, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0623 */ { UD_Ifsubr, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0624 */ { UD_Ifsubr, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0625 */ { UD_Ifsubr, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0626 */ { UD_Ifsubr, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0627 */ { UD_Ifsubr, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0628 */ { UD_Ifsubr, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0629 */ { UD_Ifsubr, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0630 */ { UD_Ifsubr, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0631 */ { UD_Ifsubr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0632 */ { UD_Ifsubrp, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0633 */ { UD_Ifsubrp, O_ST1, O_ST0, O_NONE, O_NONE, P_none }, - /* 0634 */ { UD_Ifsubrp, O_ST2, O_ST0, O_NONE, O_NONE, P_none }, - /* 0635 */ { UD_Ifsubrp, O_ST3, O_ST0, O_NONE, O_NONE, P_none }, - /* 0636 */ { UD_Ifsubrp, O_ST4, O_ST0, O_NONE, O_NONE, P_none }, - /* 0637 */ { UD_Ifsubrp, O_ST5, O_ST0, O_NONE, O_NONE, P_none }, - /* 0638 */ { UD_Ifsubrp, O_ST6, O_ST0, O_NONE, O_NONE, P_none }, - /* 0639 */ { UD_Ifsubrp, O_ST7, O_ST0, O_NONE, O_NONE, P_none }, - /* 0640 */ { UD_Iftst, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0641 */ { UD_Ifucom, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0642 */ { UD_Ifucom, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0643 */ { UD_Ifucom, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0644 */ { UD_Ifucom, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0645 */ { UD_Ifucom, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0646 */ { UD_Ifucom, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0647 */ { UD_Ifucom, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0648 */ { UD_Ifucom, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0649 */ { UD_Ifucomp, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0650 */ { UD_Ifucomp, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0651 */ { UD_Ifucomp, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0652 */ { UD_Ifucomp, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0653 */ { UD_Ifucomp, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0654 */ { UD_Ifucomp, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0655 */ { UD_Ifucomp, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0656 */ { UD_Ifucomp, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0657 */ { UD_Ifucompp, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0658 */ { UD_Ifxam, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0659 */ { UD_Ifxch, O_ST0, O_ST0, O_NONE, O_NONE, P_none }, - /* 0660 */ { UD_Ifxch, O_ST0, O_ST1, O_NONE, O_NONE, P_none }, - /* 0661 */ { UD_Ifxch, O_ST0, O_ST2, O_NONE, O_NONE, P_none }, - /* 0662 */ { UD_Ifxch, O_ST0, O_ST3, O_NONE, O_NONE, P_none }, - /* 0663 */ { UD_Ifxch, O_ST0, O_ST4, O_NONE, O_NONE, P_none }, - /* 0664 */ { UD_Ifxch, O_ST0, O_ST5, O_NONE, O_NONE, P_none }, - /* 0665 */ { UD_Ifxch, O_ST0, O_ST6, O_NONE, O_NONE, P_none }, - /* 0666 */ { UD_Ifxch, O_ST0, O_ST7, O_NONE, O_NONE, P_none }, - /* 0667 */ { UD_Ifxch4, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0668 */ { UD_Ifxch4, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0669 */ { UD_Ifxch4, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0670 */ { UD_Ifxch4, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0671 */ { UD_Ifxch4, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0672 */ { UD_Ifxch4, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0673 */ { UD_Ifxch4, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0674 */ { UD_Ifxch4, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0675 */ { UD_Ifxch7, O_ST0, O_NONE, O_NONE, O_NONE, P_none }, - /* 0676 */ { UD_Ifxch7, O_ST1, O_NONE, O_NONE, O_NONE, P_none }, - /* 0677 */ { UD_Ifxch7, O_ST2, O_NONE, O_NONE, O_NONE, P_none }, - /* 0678 */ { UD_Ifxch7, O_ST3, O_NONE, O_NONE, O_NONE, P_none }, - /* 0679 */ { UD_Ifxch7, O_ST4, O_NONE, O_NONE, O_NONE, P_none }, - /* 0680 */ { UD_Ifxch7, O_ST5, O_NONE, O_NONE, O_NONE, P_none }, - /* 0681 */ { UD_Ifxch7, O_ST6, O_NONE, O_NONE, O_NONE, P_none }, - /* 0682 */ { UD_Ifxch7, O_ST7, O_NONE, O_NONE, O_NONE, P_none }, - /* 0683 */ { UD_Ifxrstor, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0684 */ { UD_Ifxsave, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0685 */ { UD_Ifxtract, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0686 */ { UD_Ifyl2x, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0687 */ { UD_Ifyl2xp1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0688 */ { UD_Ihlt, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0689 */ { UD_Iidiv, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0690 */ { UD_Iidiv, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0691 */ { UD_Iin, O_AL, O_Ib, O_NONE, O_NONE, P_none }, - /* 0692 */ { UD_Iin, O_eAX, O_Ib, O_NONE, O_NONE, P_oso }, - /* 0693 */ { UD_Iin, O_AL, O_DX, O_NONE, O_NONE, P_none }, - /* 0694 */ { UD_Iin, O_eAX, O_DX, O_NONE, O_NONE, P_oso }, - /* 0695 */ { UD_Iimul, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0696 */ { UD_Iimul, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0697 */ { UD_Iimul, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0698 */ { UD_Iimul, O_Gv, O_Ev, O_Iz, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0699 */ { UD_Iimul, O_Gv, O_Ev, O_sIb, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0700 */ { UD_Iinc, O_R0z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0701 */ { UD_Iinc, O_R1z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0702 */ { UD_Iinc, O_R2z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0703 */ { UD_Iinc, O_R3z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0704 */ { UD_Iinc, O_R4z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0705 */ { UD_Iinc, O_R5z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0706 */ { UD_Iinc, O_R6z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0707 */ { UD_Iinc, O_R7z, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0708 */ { UD_Iinc, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0709 */ { UD_Iinc, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0710 */ { UD_Iinsb, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg }, - /* 0711 */ { UD_Iinsw, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_oso|P_seg }, - /* 0712 */ { UD_Iinsd, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_oso|P_seg }, - /* 0713 */ { UD_Iint1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0714 */ { UD_Iint3, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0715 */ { UD_Iint, O_Ib, O_NONE, O_NONE, O_NONE, P_none }, - /* 0716 */ { UD_Iinto, O_NONE, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 0717 */ { UD_Iinvd, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0718 */ { UD_Iinvept, O_Gd, O_Mo, O_NONE, O_NONE, P_none }, - /* 0719 */ { UD_Iinvept, O_Gq, O_Mo, O_NONE, O_NONE, P_none }, - /* 0720 */ { UD_Iinvlpg, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0721 */ { UD_Iinvlpga, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0722 */ { UD_Iinvvpid, O_Gd, O_Mo, O_NONE, O_NONE, P_none }, - /* 0723 */ { UD_Iinvvpid, O_Gq, O_Mo, O_NONE, O_NONE, P_none }, - /* 0724 */ { UD_Iiretw, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0725 */ { UD_Iiretd, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0726 */ { UD_Iiretq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0727 */ { UD_Ijo, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0728 */ { UD_Ijo, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0729 */ { UD_Ijno, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0730 */ { UD_Ijno, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0731 */ { UD_Ijb, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0732 */ { UD_Ijb, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0733 */ { UD_Ijae, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0734 */ { UD_Ijae, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0735 */ { UD_Ijz, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0736 */ { UD_Ijz, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0737 */ { UD_Ijnz, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0738 */ { UD_Ijnz, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0739 */ { UD_Ijbe, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0740 */ { UD_Ijbe, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0741 */ { UD_Ija, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0742 */ { UD_Ija, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0743 */ { UD_Ijs, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0744 */ { UD_Ijs, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0745 */ { UD_Ijns, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0746 */ { UD_Ijns, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0747 */ { UD_Ijp, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0748 */ { UD_Ijp, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0749 */ { UD_Ijnp, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0750 */ { UD_Ijnp, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0751 */ { UD_Ijl, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0752 */ { UD_Ijl, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0753 */ { UD_Ijge, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0754 */ { UD_Ijge, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0755 */ { UD_Ijle, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0756 */ { UD_Ijle, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0757 */ { UD_Ijg, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0758 */ { UD_Ijg, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0759 */ { UD_Ijcxz, O_Jb, O_NONE, O_NONE, O_NONE, P_aso }, - /* 0760 */ { UD_Ijecxz, O_Jb, O_NONE, O_NONE, O_NONE, P_aso }, - /* 0761 */ { UD_Ijrcxz, O_Jb, O_NONE, O_NONE, O_NONE, P_aso }, - /* 0762 */ { UD_Ijmp, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, - /* 0763 */ { UD_Ijmp, O_Fv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0764 */ { UD_Ijmp, O_Jz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 0765 */ { UD_Ijmp, O_Av, O_NONE, O_NONE, O_NONE, P_oso }, - /* 0766 */ { UD_Ijmp, O_Jb, O_NONE, O_NONE, O_NONE, P_def64 }, - /* 0767 */ { UD_Ilahf, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0768 */ { UD_Ilar, O_Gv, O_Ew, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0769 */ { UD_Ildmxcsr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0770 */ { UD_Ilds, O_Gv, O_M, O_NONE, O_NONE, P_aso|P_oso }, - /* 0771 */ { UD_Ilea, O_Gv, O_M, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0772 */ { UD_Iles, O_Gv, O_M, O_NONE, O_NONE, P_aso|P_oso }, - /* 0773 */ { UD_Ilfs, O_Gz, O_M, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0774 */ { UD_Ilgs, O_Gz, O_M, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0775 */ { UD_Ilidt, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0776 */ { UD_Ilss, O_Gv, O_M, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0777 */ { UD_Ileave, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0778 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0779 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0780 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0781 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0782 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0783 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0784 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0785 */ { UD_Ilfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0786 */ { UD_Ilgdt, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0787 */ { UD_Illdt, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0788 */ { UD_Ilmsw, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0789 */ { UD_Ilmsw, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0790 */ { UD_Ilock, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0791 */ { UD_Ilodsb, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg }, - /* 0792 */ { UD_Ilodsw, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, - /* 0793 */ { UD_Ilodsd, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, - /* 0794 */ { UD_Ilodsq, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, - /* 0795 */ { UD_Iloopne, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0796 */ { UD_Iloope, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0797 */ { UD_Iloop, O_Jb, O_NONE, O_NONE, O_NONE, P_none }, - /* 0798 */ { UD_Ilsl, O_Gv, O_Ew, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0799 */ { UD_Iltr, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0800 */ { UD_Imaskmovq, O_P, O_N, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0801 */ { UD_Imaxpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0802 */ { UD_Ivmaxpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0803 */ { UD_Imaxps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0804 */ { UD_Ivmaxps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0805 */ { UD_Imaxsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0806 */ { UD_Ivmaxsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0807 */ { UD_Imaxss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0808 */ { UD_Ivmaxss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0809 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0810 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0811 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0812 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0813 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0814 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0815 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0816 */ { UD_Imfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0817 */ { UD_Iminpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0818 */ { UD_Ivminpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0819 */ { UD_Iminps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0820 */ { UD_Ivminps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0821 */ { UD_Iminsd, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0822 */ { UD_Ivminsd, O_Vx, O_Hx, O_MqU, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0823 */ { UD_Iminss, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0824 */ { UD_Ivminss, O_Vx, O_Hx, O_MdU, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0825 */ { UD_Imonitor, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0826 */ { UD_Imontmul, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0827 */ { UD_Imov, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0828 */ { UD_Imov, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0829 */ { UD_Imov, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0830 */ { UD_Imov, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0831 */ { UD_Imov, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0832 */ { UD_Imov, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0833 */ { UD_Imov, O_MwRv, O_S, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0834 */ { UD_Imov, O_S, O_MwRv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0835 */ { UD_Imov, O_AL, O_Ob, O_NONE, O_NONE, P_none }, - /* 0836 */ { UD_Imov, O_rAX, O_Ov, O_NONE, O_NONE, P_aso|P_oso|P_rexw }, - /* 0837 */ { UD_Imov, O_Ob, O_AL, O_NONE, O_NONE, P_none }, - /* 0838 */ { UD_Imov, O_Ov, O_rAX, O_NONE, O_NONE, P_aso|P_oso|P_rexw }, - /* 0839 */ { UD_Imov, O_R0b, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 0840 */ { UD_Imov, O_R1b, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 0841 */ { UD_Imov, O_R2b, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 0842 */ { UD_Imov, O_R3b, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 0843 */ { UD_Imov, O_R4b, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 0844 */ { UD_Imov, O_R5b, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 0845 */ { UD_Imov, O_R6b, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 0846 */ { UD_Imov, O_R7b, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 0847 */ { UD_Imov, O_R0v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 0848 */ { UD_Imov, O_R1v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 0849 */ { UD_Imov, O_R2v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 0850 */ { UD_Imov, O_R3v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 0851 */ { UD_Imov, O_R4v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 0852 */ { UD_Imov, O_R5v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 0853 */ { UD_Imov, O_R6v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 0854 */ { UD_Imov, O_R7v, O_Iv, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 0855 */ { UD_Imov, O_R, O_C, O_NONE, O_NONE, P_rexr|P_rexw|P_rexb }, - /* 0856 */ { UD_Imov, O_R, O_D, O_NONE, O_NONE, P_rexr|P_rexw|P_rexb }, - /* 0857 */ { UD_Imov, O_C, O_R, O_NONE, O_NONE, P_rexr|P_rexw|P_rexb }, - /* 0858 */ { UD_Imov, O_D, O_R, O_NONE, O_NONE, P_rexr|P_rexw|P_rexb }, - /* 0859 */ { UD_Imovapd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0860 */ { UD_Ivmovapd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0861 */ { UD_Imovapd, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0862 */ { UD_Ivmovapd, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0863 */ { UD_Imovaps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0864 */ { UD_Ivmovaps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0865 */ { UD_Imovaps, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0866 */ { UD_Ivmovaps, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0867 */ { UD_Imovd, O_P, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0868 */ { UD_Imovd, O_P, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0869 */ { UD_Imovd, O_V, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0870 */ { UD_Ivmovd, O_Vx, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0871 */ { UD_Imovd, O_V, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0872 */ { UD_Ivmovd, O_Vx, O_Ey, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0873 */ { UD_Imovd, O_Ey, O_P, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0874 */ { UD_Imovd, O_Ey, O_P, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0875 */ { UD_Imovd, O_Ey, O_V, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0876 */ { UD_Ivmovd, O_Ey, O_Vx, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0877 */ { UD_Imovd, O_Ey, O_V, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0878 */ { UD_Ivmovd, O_Ey, O_Vx, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0879 */ { UD_Imovhpd, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0880 */ { UD_Ivmovhpd, O_Vx, O_Hx, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0881 */ { UD_Imovhpd, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0882 */ { UD_Ivmovhpd, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0883 */ { UD_Imovhps, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0884 */ { UD_Ivmovhps, O_Vx, O_Hx, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0885 */ { UD_Imovhps, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0886 */ { UD_Ivmovhps, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0887 */ { UD_Imovlhps, O_V, O_U, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0888 */ { UD_Ivmovlhps, O_Vx, O_Hx, O_Ux, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0889 */ { UD_Imovlpd, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0890 */ { UD_Ivmovlpd, O_Vx, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0891 */ { UD_Imovlpd, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0892 */ { UD_Ivmovlpd, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0893 */ { UD_Imovlps, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0894 */ { UD_Ivmovlps, O_Vx, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0895 */ { UD_Imovlps, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0896 */ { UD_Ivmovlps, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0897 */ { UD_Imovhlps, O_V, O_U, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0898 */ { UD_Ivmovhlps, O_Vx, O_Ux, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0899 */ { UD_Imovmskpd, O_Gd, O_U, O_NONE, O_NONE, P_oso|P_rexr|P_rexb }, - /* 0900 */ { UD_Ivmovmskpd, O_Gd, O_Ux, O_NONE, O_NONE, P_oso|P_rexr|P_rexb|P_vexl }, - /* 0901 */ { UD_Imovmskps, O_Gd, O_U, O_NONE, O_NONE, P_oso|P_rexr|P_rexb }, - /* 0902 */ { UD_Ivmovmskps, O_Gd, O_Ux, O_NONE, O_NONE, P_oso|P_rexr|P_rexb }, - /* 0903 */ { UD_Imovntdq, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0904 */ { UD_Ivmovntdq, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0905 */ { UD_Imovnti, O_M, O_Gy, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0906 */ { UD_Imovntpd, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0907 */ { UD_Ivmovntpd, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0908 */ { UD_Imovntps, O_M, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0909 */ { UD_Ivmovntps, O_M, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0910 */ { UD_Imovntq, O_M, O_P, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0911 */ { UD_Imovq, O_P, O_Eq, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0912 */ { UD_Imovq, O_V, O_Eq, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0913 */ { UD_Ivmovq, O_Vx, O_Eq, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0914 */ { UD_Imovq, O_Eq, O_P, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0915 */ { UD_Imovq, O_Eq, O_V, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0916 */ { UD_Ivmovq, O_Eq, O_Vx, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0917 */ { UD_Imovq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0918 */ { UD_Ivmovq, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0919 */ { UD_Imovq, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0920 */ { UD_Ivmovq, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0921 */ { UD_Imovq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0922 */ { UD_Imovq, O_Q, O_P, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0923 */ { UD_Imovsb, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg }, - /* 0924 */ { UD_Imovsw, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, - /* 0925 */ { UD_Imovsd, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, - /* 0926 */ { UD_Imovsd, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0927 */ { UD_Imovsd, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0928 */ { UD_Imovsq, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, - /* 0929 */ { UD_Imovss, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0930 */ { UD_Imovss, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0931 */ { UD_Imovsx, O_Gv, O_Eb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0932 */ { UD_Imovsx, O_Gy, O_Ew, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0933 */ { UD_Imovupd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0934 */ { UD_Ivmovupd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0935 */ { UD_Imovupd, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0936 */ { UD_Ivmovupd, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0937 */ { UD_Imovups, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0938 */ { UD_Ivmovups, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0939 */ { UD_Imovups, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0940 */ { UD_Ivmovups, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0941 */ { UD_Imovzx, O_Gv, O_Eb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0942 */ { UD_Imovzx, O_Gy, O_Ew, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0943 */ { UD_Imul, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0944 */ { UD_Imul, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0945 */ { UD_Imulpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0946 */ { UD_Ivmulpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0947 */ { UD_Imulps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0948 */ { UD_Ivmulps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0949 */ { UD_Imulsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0950 */ { UD_Ivmulsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0951 */ { UD_Imulss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0952 */ { UD_Ivmulss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0953 */ { UD_Imwait, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 0954 */ { UD_Ineg, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0955 */ { UD_Ineg, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0956 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0957 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0958 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0959 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0960 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0961 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0962 */ { UD_Inop, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0963 */ { UD_Inot, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0964 */ { UD_Inot, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0965 */ { UD_Ior, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0966 */ { UD_Ior, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0967 */ { UD_Ior, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0968 */ { UD_Ior, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0969 */ { UD_Ior, O_AL, O_Ib, O_NONE, O_NONE, P_none }, - /* 0970 */ { UD_Ior, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, - /* 0971 */ { UD_Ior, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0972 */ { UD_Ior, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0973 */ { UD_Ior, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0974 */ { UD_Ior, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 0975 */ { UD_Iorpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0976 */ { UD_Ivorpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0977 */ { UD_Iorps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0978 */ { UD_Ivorps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0979 */ { UD_Iout, O_Ib, O_AL, O_NONE, O_NONE, P_none }, - /* 0980 */ { UD_Iout, O_Ib, O_eAX, O_NONE, O_NONE, P_oso }, - /* 0981 */ { UD_Iout, O_DX, O_AL, O_NONE, O_NONE, P_none }, - /* 0982 */ { UD_Iout, O_DX, O_eAX, O_NONE, O_NONE, P_oso }, - /* 0983 */ { UD_Ioutsb, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg }, - /* 0984 */ { UD_Ioutsw, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_oso|P_seg }, - /* 0985 */ { UD_Ioutsd, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_oso|P_seg }, - /* 0986 */ { UD_Ipacksswb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0987 */ { UD_Ivpacksswb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0988 */ { UD_Ipacksswb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0989 */ { UD_Ipackssdw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0990 */ { UD_Ivpackssdw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0991 */ { UD_Ipackssdw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0992 */ { UD_Ipackuswb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0993 */ { UD_Ivpackuswb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0994 */ { UD_Ipackuswb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0995 */ { UD_Ipaddb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0996 */ { UD_Ivpaddb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 0997 */ { UD_Ipaddb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0998 */ { UD_Ipaddw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 0999 */ { UD_Ipaddw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1000 */ { UD_Ivpaddw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1001 */ { UD_Ipaddd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1002 */ { UD_Ipaddd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1003 */ { UD_Ivpaddd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1004 */ { UD_Ipaddsb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1005 */ { UD_Ipaddsb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1006 */ { UD_Ivpaddsb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1007 */ { UD_Ipaddsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1008 */ { UD_Ipaddsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1009 */ { UD_Ivpaddsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1010 */ { UD_Ipaddusb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1011 */ { UD_Ipaddusb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1012 */ { UD_Ivpaddusb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1013 */ { UD_Ipaddusw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1014 */ { UD_Ipaddusw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1015 */ { UD_Ivpaddusw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1016 */ { UD_Ipand, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1017 */ { UD_Ivpand, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1018 */ { UD_Ipand, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1019 */ { UD_Ipandn, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1020 */ { UD_Ivpandn, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1021 */ { UD_Ipandn, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1022 */ { UD_Ipavgb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1023 */ { UD_Ivpavgb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1024 */ { UD_Ipavgb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1025 */ { UD_Ipavgw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1026 */ { UD_Ivpavgw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1027 */ { UD_Ipavgw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1028 */ { UD_Ipcmpeqb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1029 */ { UD_Ipcmpeqb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1030 */ { UD_Ivpcmpeqb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1031 */ { UD_Ipcmpeqw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1032 */ { UD_Ipcmpeqw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1033 */ { UD_Ivpcmpeqw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1034 */ { UD_Ipcmpeqd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1035 */ { UD_Ipcmpeqd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1036 */ { UD_Ivpcmpeqd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1037 */ { UD_Ipcmpgtb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1038 */ { UD_Ivpcmpgtb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1039 */ { UD_Ipcmpgtb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1040 */ { UD_Ipcmpgtw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1041 */ { UD_Ivpcmpgtw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1042 */ { UD_Ipcmpgtw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1043 */ { UD_Ipcmpgtd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1044 */ { UD_Ivpcmpgtd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1045 */ { UD_Ipcmpgtd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1046 */ { UD_Ipextrb, O_MbRv, O_V, O_Ib, O_NONE, P_aso|P_rexx|P_rexr|P_rexb|P_def64 }, - /* 1047 */ { UD_Ivpextrb, O_MbRv, O_Vx, O_Ib, O_NONE, P_aso|P_rexx|P_rexr|P_rexb|P_def64 }, - /* 1048 */ { UD_Ipextrd, O_Ed, O_V, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexw|P_rexb }, - /* 1049 */ { UD_Ivpextrd, O_Ed, O_Vx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexw|P_rexb }, - /* 1050 */ { UD_Ipextrd, O_Ed, O_V, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexw|P_rexb }, - /* 1051 */ { UD_Ivpextrd, O_Ed, O_Vx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexw|P_rexb }, - /* 1052 */ { UD_Ipextrq, O_Eq, O_V, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexb|P_def64 }, - /* 1053 */ { UD_Ivpextrq, O_Eq, O_Vx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexb|P_def64 }, - /* 1054 */ { UD_Ipextrw, O_Gd, O_U, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexb }, - /* 1055 */ { UD_Ivpextrw, O_Gd, O_Ux, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexb }, - /* 1056 */ { UD_Ipextrw, O_Gd, O_N, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1057 */ { UD_Ipextrw, O_MwRd, O_V, O_Ib, O_NONE, P_aso|P_rexw|P_rexx|P_rexr|P_rexb }, - /* 1058 */ { UD_Ivpextrw, O_MwRd, O_Vx, O_Ib, O_NONE, P_aso|P_rexw|P_rexx|P_rexr|P_rexb }, - /* 1059 */ { UD_Ipinsrb, O_V, O_MbRd, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1060 */ { UD_Ipinsrw, O_P, O_MwRy, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, - /* 1061 */ { UD_Ipinsrw, O_V, O_MwRy, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, - /* 1062 */ { UD_Ivpinsrw, O_Vx, O_MwRy, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, - /* 1063 */ { UD_Ipinsrd, O_V, O_Ed, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1064 */ { UD_Ipinsrd, O_V, O_Ed, O_Ib, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1065 */ { UD_Ipinsrq, O_V, O_Eq, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1066 */ { UD_Ivpinsrb, O_V, O_H, O_MbRd, O_Ib, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1067 */ { UD_Ivpinsrd, O_V, O_H, O_Ed, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1068 */ { UD_Ivpinsrd, O_V, O_H, O_Ed, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1069 */ { UD_Ivpinsrq, O_V, O_H, O_Eq, O_Ib, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1070 */ { UD_Ipmaddwd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1071 */ { UD_Ipmaddwd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1072 */ { UD_Ivpmaddwd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1073 */ { UD_Ipmaxsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1074 */ { UD_Ivpmaxsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1075 */ { UD_Ipmaxsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1076 */ { UD_Ipmaxub, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1077 */ { UD_Ipmaxub, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1078 */ { UD_Ivpmaxub, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1079 */ { UD_Ipminsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1080 */ { UD_Ivpminsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1081 */ { UD_Ipminsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1082 */ { UD_Ipminub, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1083 */ { UD_Ivpminub, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1084 */ { UD_Ipminub, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1085 */ { UD_Ipmovmskb, O_Gd, O_U, O_NONE, O_NONE, P_oso|P_rexr|P_rexw|P_rexb }, - /* 1086 */ { UD_Ivpmovmskb, O_Gd, O_Ux, O_NONE, O_NONE, P_oso|P_rexr|P_rexw|P_rexb }, - /* 1087 */ { UD_Ipmovmskb, O_Gd, O_N, O_NONE, O_NONE, P_oso|P_rexr|P_rexw|P_rexb }, - /* 1088 */ { UD_Ipmulhuw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1089 */ { UD_Ipmulhuw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1090 */ { UD_Ivpmulhuw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1091 */ { UD_Ipmulhw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1092 */ { UD_Ivpmulhw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1093 */ { UD_Ipmulhw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1094 */ { UD_Ipmullw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1095 */ { UD_Ipmullw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1096 */ { UD_Ivpmullw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1097 */ { UD_Ipop, O_ES, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 1098 */ { UD_Ipop, O_SS, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 1099 */ { UD_Ipop, O_DS, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 1100 */ { UD_Ipop, O_GS, O_NONE, O_NONE, O_NONE, P_none }, - /* 1101 */ { UD_Ipop, O_FS, O_NONE, O_NONE, O_NONE, P_none }, - /* 1102 */ { UD_Ipop, O_R0v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1103 */ { UD_Ipop, O_R1v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1104 */ { UD_Ipop, O_R2v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1105 */ { UD_Ipop, O_R3v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1106 */ { UD_Ipop, O_R4v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1107 */ { UD_Ipop, O_R5v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1108 */ { UD_Ipop, O_R6v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1109 */ { UD_Ipop, O_R7v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1110 */ { UD_Ipop, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, - /* 1111 */ { UD_Ipopa, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, - /* 1112 */ { UD_Ipopad, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, - /* 1113 */ { UD_Ipopfw, O_NONE, O_NONE, O_NONE, O_NONE, P_oso }, - /* 1114 */ { UD_Ipopfd, O_NONE, O_NONE, O_NONE, O_NONE, P_oso }, - /* 1115 */ { UD_Ipopfq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 1116 */ { UD_Ipopfq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 1117 */ { UD_Ipor, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1118 */ { UD_Ivpor, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1119 */ { UD_Ipor, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1120 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1121 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1122 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1123 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1124 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1125 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1126 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1127 */ { UD_Iprefetch, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1128 */ { UD_Iprefetchnta, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1129 */ { UD_Iprefetcht0, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1130 */ { UD_Iprefetcht1, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1131 */ { UD_Iprefetcht2, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1132 */ { UD_Ipsadbw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1133 */ { UD_Ivpsadbw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1134 */ { UD_Ipsadbw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1135 */ { UD_Ipshufw, O_P, O_Q, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1136 */ { UD_Ipsllw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1137 */ { UD_Ipsllw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1138 */ { UD_Ipsllw, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 1139 */ { UD_Ipsllw, O_N, O_Ib, O_NONE, O_NONE, P_none }, - /* 1140 */ { UD_Ipslld, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1141 */ { UD_Ipslld, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1142 */ { UD_Ipslld, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 1143 */ { UD_Ipslld, O_N, O_Ib, O_NONE, O_NONE, P_none }, - /* 1144 */ { UD_Ipsllq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1145 */ { UD_Ipsllq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1146 */ { UD_Ipsllq, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 1147 */ { UD_Ipsllq, O_N, O_Ib, O_NONE, O_NONE, P_none }, - /* 1148 */ { UD_Ipsraw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1149 */ { UD_Ipsraw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1150 */ { UD_Ivpsraw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1151 */ { UD_Ipsraw, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 1152 */ { UD_Ivpsraw, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, - /* 1153 */ { UD_Ipsraw, O_N, O_Ib, O_NONE, O_NONE, P_none }, - /* 1154 */ { UD_Ipsrad, O_N, O_Ib, O_NONE, O_NONE, P_none }, - /* 1155 */ { UD_Ipsrad, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1156 */ { UD_Ivpsrad, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1157 */ { UD_Ipsrad, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1158 */ { UD_Ipsrad, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 1159 */ { UD_Ivpsrad, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, - /* 1160 */ { UD_Ipsrlw, O_N, O_Ib, O_NONE, O_NONE, P_none }, - /* 1161 */ { UD_Ipsrlw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1162 */ { UD_Ipsrlw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1163 */ { UD_Ivpsrlw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1164 */ { UD_Ipsrlw, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 1165 */ { UD_Ivpsrlw, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, - /* 1166 */ { UD_Ipsrld, O_N, O_Ib, O_NONE, O_NONE, P_none }, - /* 1167 */ { UD_Ipsrld, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1168 */ { UD_Ipsrld, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1169 */ { UD_Ivpsrld, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1170 */ { UD_Ipsrld, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 1171 */ { UD_Ivpsrld, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, - /* 1172 */ { UD_Ipsrlq, O_N, O_Ib, O_NONE, O_NONE, P_none }, - /* 1173 */ { UD_Ipsrlq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1174 */ { UD_Ipsrlq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1175 */ { UD_Ivpsrlq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1176 */ { UD_Ipsrlq, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 1177 */ { UD_Ivpsrlq, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, - /* 1178 */ { UD_Ipsubb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1179 */ { UD_Ivpsubb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1180 */ { UD_Ipsubb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1181 */ { UD_Ipsubw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1182 */ { UD_Ivpsubw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1183 */ { UD_Ipsubw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1184 */ { UD_Ipsubd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1185 */ { UD_Ipsubd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1186 */ { UD_Ivpsubd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1187 */ { UD_Ipsubsb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1188 */ { UD_Ipsubsb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1189 */ { UD_Ivpsubsb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1190 */ { UD_Ipsubsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1191 */ { UD_Ipsubsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1192 */ { UD_Ivpsubsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1193 */ { UD_Ipsubusb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1194 */ { UD_Ipsubusb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1195 */ { UD_Ivpsubusb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1196 */ { UD_Ipsubusw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1197 */ { UD_Ipsubusw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1198 */ { UD_Ivpsubusw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1199 */ { UD_Ipunpckhbw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1200 */ { UD_Ivpunpckhbw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1201 */ { UD_Ipunpckhbw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1202 */ { UD_Ipunpckhwd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1203 */ { UD_Ivpunpckhwd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1204 */ { UD_Ipunpckhwd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1205 */ { UD_Ipunpckhdq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1206 */ { UD_Ivpunpckhdq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1207 */ { UD_Ipunpckhdq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1208 */ { UD_Ipunpcklbw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1209 */ { UD_Ivpunpcklbw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1210 */ { UD_Ipunpcklbw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1211 */ { UD_Ipunpcklwd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1212 */ { UD_Ivpunpcklwd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1213 */ { UD_Ipunpcklwd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1214 */ { UD_Ipunpckldq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1215 */ { UD_Ivpunpckldq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1216 */ { UD_Ipunpckldq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1217 */ { UD_Ipi2fw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1218 */ { UD_Ipi2fd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1219 */ { UD_Ipf2iw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1220 */ { UD_Ipf2id, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1221 */ { UD_Ipfnacc, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1222 */ { UD_Ipfpnacc, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1223 */ { UD_Ipfcmpge, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1224 */ { UD_Ipfmin, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1225 */ { UD_Ipfrcp, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1226 */ { UD_Ipfrsqrt, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1227 */ { UD_Ipfsub, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1228 */ { UD_Ipfadd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1229 */ { UD_Ipfcmpgt, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1230 */ { UD_Ipfmax, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1231 */ { UD_Ipfrcpit1, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1232 */ { UD_Ipfrsqit1, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1233 */ { UD_Ipfsubr, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1234 */ { UD_Ipfacc, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1235 */ { UD_Ipfcmpeq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1236 */ { UD_Ipfmul, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1237 */ { UD_Ipfrcpit2, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1238 */ { UD_Ipmulhrw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1239 */ { UD_Ipswapd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1240 */ { UD_Ipavgusb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1241 */ { UD_Ipush, O_ES, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 1242 */ { UD_Ipush, O_CS, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 1243 */ { UD_Ipush, O_SS, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 1244 */ { UD_Ipush, O_DS, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 1245 */ { UD_Ipush, O_GS, O_NONE, O_NONE, O_NONE, P_none }, - /* 1246 */ { UD_Ipush, O_FS, O_NONE, O_NONE, O_NONE, P_none }, - /* 1247 */ { UD_Ipush, O_R0v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1248 */ { UD_Ipush, O_R1v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1249 */ { UD_Ipush, O_R2v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1250 */ { UD_Ipush, O_R3v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1251 */ { UD_Ipush, O_R4v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1252 */ { UD_Ipush, O_R5v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1253 */ { UD_Ipush, O_R6v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1254 */ { UD_Ipush, O_R7v, O_NONE, O_NONE, O_NONE, P_oso|P_rexb|P_def64 }, - /* 1255 */ { UD_Ipush, O_sIz, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 1256 */ { UD_Ipush, O_Ev, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb|P_def64 }, - /* 1257 */ { UD_Ipush, O_sIb, O_NONE, O_NONE, O_NONE, P_oso|P_def64 }, - /* 1258 */ { UD_Ipusha, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, - /* 1259 */ { UD_Ipushad, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_inv64 }, - /* 1260 */ { UD_Ipushfw, O_NONE, O_NONE, O_NONE, O_NONE, P_oso }, - /* 1261 */ { UD_Ipushfw, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_def64 }, - /* 1262 */ { UD_Ipushfd, O_NONE, O_NONE, O_NONE, O_NONE, P_oso }, - /* 1263 */ { UD_Ipushfq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_def64 }, - /* 1264 */ { UD_Ipushfq, O_NONE, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_def64 }, - /* 1265 */ { UD_Ipxor, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1266 */ { UD_Ivpxor, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1267 */ { UD_Ipxor, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1268 */ { UD_Ircl, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1269 */ { UD_Ircl, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1270 */ { UD_Ircl, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1271 */ { UD_Ircl, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1272 */ { UD_Ircl, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1273 */ { UD_Ircl, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1274 */ { UD_Ircr, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1275 */ { UD_Ircr, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1276 */ { UD_Ircr, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1277 */ { UD_Ircr, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1278 */ { UD_Ircr, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1279 */ { UD_Ircr, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1280 */ { UD_Irol, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1281 */ { UD_Irol, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1282 */ { UD_Irol, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1283 */ { UD_Irol, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1284 */ { UD_Irol, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1285 */ { UD_Irol, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1286 */ { UD_Iror, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1287 */ { UD_Iror, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1288 */ { UD_Iror, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1289 */ { UD_Iror, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1290 */ { UD_Iror, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1291 */ { UD_Iror, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1292 */ { UD_Ircpps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1293 */ { UD_Ivrcpps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1294 */ { UD_Ircpss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1295 */ { UD_Ivrcpss, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1296 */ { UD_Irdmsr, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1297 */ { UD_Irdpmc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1298 */ { UD_Irdtsc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1299 */ { UD_Irdtscp, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1300 */ { UD_Irepne, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1301 */ { UD_Irep, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1302 */ { UD_Iret, O_Iw, O_NONE, O_NONE, O_NONE, P_none }, - /* 1303 */ { UD_Iret, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1304 */ { UD_Iretf, O_Iw, O_NONE, O_NONE, O_NONE, P_none }, - /* 1305 */ { UD_Iretf, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1306 */ { UD_Irsm, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1307 */ { UD_Irsqrtps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1308 */ { UD_Ivrsqrtps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1309 */ { UD_Irsqrtss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1310 */ { UD_Ivrsqrtss, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1311 */ { UD_Isahf, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1312 */ { UD_Isalc, O_NONE, O_NONE, O_NONE, O_NONE, P_inv64 }, - /* 1313 */ { UD_Isar, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1314 */ { UD_Isar, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1315 */ { UD_Isar, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1316 */ { UD_Isar, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1317 */ { UD_Isar, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1318 */ { UD_Isar, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1319 */ { UD_Ishl, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1320 */ { UD_Ishl, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1321 */ { UD_Ishl, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1322 */ { UD_Ishl, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1323 */ { UD_Ishl, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1324 */ { UD_Ishl, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1325 */ { UD_Ishl, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1326 */ { UD_Ishl, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1327 */ { UD_Ishl, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1328 */ { UD_Ishl, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1329 */ { UD_Ishl, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1330 */ { UD_Ishl, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1331 */ { UD_Ishr, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1332 */ { UD_Ishr, O_Eb, O_CL, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1333 */ { UD_Ishr, O_Ev, O_I1, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1334 */ { UD_Ishr, O_Eb, O_I1, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1335 */ { UD_Ishr, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1336 */ { UD_Ishr, O_Ev, O_CL, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1337 */ { UD_Isbb, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1338 */ { UD_Isbb, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1339 */ { UD_Isbb, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1340 */ { UD_Isbb, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1341 */ { UD_Isbb, O_AL, O_Ib, O_NONE, O_NONE, P_none }, - /* 1342 */ { UD_Isbb, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, - /* 1343 */ { UD_Isbb, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1344 */ { UD_Isbb, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1345 */ { UD_Isbb, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, - /* 1346 */ { UD_Isbb, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1347 */ { UD_Iscasb, O_NONE, O_NONE, O_NONE, O_NONE, P_strz }, - /* 1348 */ { UD_Iscasw, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw }, - /* 1349 */ { UD_Iscasd, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw }, - /* 1350 */ { UD_Iscasq, O_NONE, O_NONE, O_NONE, O_NONE, P_strz|P_oso|P_rexw }, - /* 1351 */ { UD_Iseto, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1352 */ { UD_Isetno, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1353 */ { UD_Isetb, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1354 */ { UD_Isetae, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1355 */ { UD_Isetz, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1356 */ { UD_Isetnz, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1357 */ { UD_Isetbe, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1358 */ { UD_Iseta, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1359 */ { UD_Isets, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1360 */ { UD_Isetns, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1361 */ { UD_Isetp, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1362 */ { UD_Isetnp, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1363 */ { UD_Isetl, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1364 */ { UD_Isetge, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1365 */ { UD_Isetle, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1366 */ { UD_Isetg, O_Eb, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1367 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1368 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1369 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1370 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1371 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1372 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1373 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1374 */ { UD_Isfence, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1375 */ { UD_Isgdt, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1376 */ { UD_Ishld, O_Ev, O_Gv, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1377 */ { UD_Ishld, O_Ev, O_Gv, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1378 */ { UD_Ishrd, O_Ev, O_Gv, O_Ib, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1379 */ { UD_Ishrd, O_Ev, O_Gv, O_CL, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1380 */ { UD_Ishufpd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1381 */ { UD_Ivshufpd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1382 */ { UD_Ishufps, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1383 */ { UD_Ivshufps, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1384 */ { UD_Isidt, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1385 */ { UD_Isldt, O_MwRv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1386 */ { UD_Ismsw, O_MwRv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1387 */ { UD_Ismsw, O_MwRv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1388 */ { UD_Isqrtps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1389 */ { UD_Ivsqrtps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1390 */ { UD_Isqrtpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1391 */ { UD_Ivsqrtpd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1392 */ { UD_Isqrtsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1393 */ { UD_Ivsqrtsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1394 */ { UD_Isqrtss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1395 */ { UD_Ivsqrtss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1396 */ { UD_Istac, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1397 */ { UD_Istc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1398 */ { UD_Istd, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1399 */ { UD_Istgi, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1400 */ { UD_Isti, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1401 */ { UD_Iskinit, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1402 */ { UD_Istmxcsr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1403 */ { UD_Ivstmxcsr, O_Md, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1404 */ { UD_Istosb, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg }, - /* 1405 */ { UD_Istosw, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, - /* 1406 */ { UD_Istosd, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, - /* 1407 */ { UD_Istosq, O_NONE, O_NONE, O_NONE, O_NONE, P_str|P_seg|P_oso|P_rexw }, - /* 1408 */ { UD_Istr, O_MwRv, O_NONE, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1409 */ { UD_Isub, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1410 */ { UD_Isub, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1411 */ { UD_Isub, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1412 */ { UD_Isub, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1413 */ { UD_Isub, O_AL, O_Ib, O_NONE, O_NONE, P_none }, - /* 1414 */ { UD_Isub, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, - /* 1415 */ { UD_Isub, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1416 */ { UD_Isub, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1417 */ { UD_Isub, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, - /* 1418 */ { UD_Isub, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1419 */ { UD_Isubpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1420 */ { UD_Ivsubpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1421 */ { UD_Isubps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1422 */ { UD_Ivsubps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1423 */ { UD_Isubsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1424 */ { UD_Ivsubsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1425 */ { UD_Isubss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1426 */ { UD_Ivsubss, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1427 */ { UD_Iswapgs, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1428 */ { UD_Isyscall, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1429 */ { UD_Isysenter, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1430 */ { UD_Isysenter, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1431 */ { UD_Isysexit, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1432 */ { UD_Isysexit, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1433 */ { UD_Isysret, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1434 */ { UD_Itest, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1435 */ { UD_Itest, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1436 */ { UD_Itest, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1437 */ { UD_Itest, O_AL, O_Ib, O_NONE, O_NONE, P_none }, - /* 1438 */ { UD_Itest, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, - /* 1439 */ { UD_Itest, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1440 */ { UD_Itest, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1441 */ { UD_Itest, O_Ev, O_Iz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1442 */ { UD_Iucomisd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1443 */ { UD_Ivucomisd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1444 */ { UD_Iucomiss, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1445 */ { UD_Ivucomiss, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1446 */ { UD_Iud2, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1447 */ { UD_Iunpckhpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1448 */ { UD_Ivunpckhpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1449 */ { UD_Iunpckhps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1450 */ { UD_Ivunpckhps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1451 */ { UD_Iunpcklps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1452 */ { UD_Ivunpcklps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1453 */ { UD_Iunpcklpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1454 */ { UD_Ivunpcklpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1455 */ { UD_Iverr, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1456 */ { UD_Iverw, O_Ew, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1457 */ { UD_Ivmcall, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1458 */ { UD_Irdrand, O_R, O_NONE, O_NONE, O_NONE, P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1459 */ { UD_Ivmclear, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1460 */ { UD_Ivmxon, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1461 */ { UD_Ivmptrld, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1462 */ { UD_Ivmptrst, O_Mq, O_NONE, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1463 */ { UD_Ivmlaunch, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1464 */ { UD_Ivmresume, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1465 */ { UD_Ivmxoff, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1466 */ { UD_Ivmread, O_Ey, O_Gy, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_def64 }, - /* 1467 */ { UD_Ivmwrite, O_Gy, O_Ey, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_def64 }, - /* 1468 */ { UD_Ivmrun, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1469 */ { UD_Ivmmcall, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1470 */ { UD_Ivmload, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1471 */ { UD_Ivmsave, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1472 */ { UD_Iwait, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1473 */ { UD_Iwbinvd, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1474 */ { UD_Iwrmsr, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1475 */ { UD_Ixadd, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexx|P_rexb }, - /* 1476 */ { UD_Ixadd, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1477 */ { UD_Ixchg, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1478 */ { UD_Ixchg, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1479 */ { UD_Ixchg, O_R0v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1480 */ { UD_Ixchg, O_R1v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1481 */ { UD_Ixchg, O_R2v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1482 */ { UD_Ixchg, O_R3v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1483 */ { UD_Ixchg, O_R4v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1484 */ { UD_Ixchg, O_R5v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1485 */ { UD_Ixchg, O_R6v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1486 */ { UD_Ixchg, O_R7v, O_rAX, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1487 */ { UD_Ixgetbv, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1488 */ { UD_Ixlatb, O_NONE, O_NONE, O_NONE, O_NONE, P_rexw|P_seg }, - /* 1489 */ { UD_Ixor, O_Eb, O_Gb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1490 */ { UD_Ixor, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1491 */ { UD_Ixor, O_Gb, O_Eb, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1492 */ { UD_Ixor, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1493 */ { UD_Ixor, O_AL, O_Ib, O_NONE, O_NONE, P_none }, - /* 1494 */ { UD_Ixor, O_rAX, O_sIz, O_NONE, O_NONE, P_oso|P_rexw }, - /* 1495 */ { UD_Ixor, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1496 */ { UD_Ixor, O_Ev, O_sIz, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1497 */ { UD_Ixor, O_Eb, O_Ib, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_inv64 }, - /* 1498 */ { UD_Ixor, O_Ev, O_sIb, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1499 */ { UD_Ixorpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1500 */ { UD_Ivxorpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1501 */ { UD_Ixorps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1502 */ { UD_Ivxorps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1503 */ { UD_Ixcryptecb, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1504 */ { UD_Ixcryptcbc, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1505 */ { UD_Ixcryptctr, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1506 */ { UD_Ixcryptcfb, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1507 */ { UD_Ixcryptofb, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1508 */ { UD_Ixrstor, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1509 */ { UD_Ixsave, O_M, O_NONE, O_NONE, O_NONE, P_aso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1510 */ { UD_Ixsetbv, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1511 */ { UD_Ixsha1, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1512 */ { UD_Ixsha256, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1513 */ { UD_Ixstore, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1514 */ { UD_Ipclmulqdq, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1515 */ { UD_Ivpclmulqdq, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1516 */ { UD_Igetsec, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1517 */ { UD_Imovdqa, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1518 */ { UD_Ivmovdqa, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1519 */ { UD_Imovdqa, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1520 */ { UD_Ivmovdqa, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1521 */ { UD_Imaskmovdqu, O_V, O_U, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1522 */ { UD_Ivmaskmovdqu, O_Vx, O_Ux, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1523 */ { UD_Imovdq2q, O_P, O_U, O_NONE, O_NONE, P_aso|P_rexb }, - /* 1524 */ { UD_Imovdqu, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1525 */ { UD_Ivmovdqu, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1526 */ { UD_Imovdqu, O_W, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1527 */ { UD_Ivmovdqu, O_Wx, O_Vx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1528 */ { UD_Imovq2dq, O_V, O_N, O_NONE, O_NONE, P_aso|P_rexr }, - /* 1529 */ { UD_Ipaddq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1530 */ { UD_Ipaddq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1531 */ { UD_Ivpaddq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1532 */ { UD_Ipsubq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1533 */ { UD_Ivpsubq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1534 */ { UD_Ipsubq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1535 */ { UD_Ipmuludq, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1536 */ { UD_Ipmuludq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1537 */ { UD_Ipshufhw, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1538 */ { UD_Ivpshufhw, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1539 */ { UD_Ipshuflw, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1540 */ { UD_Ivpshuflw, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1541 */ { UD_Ipshufd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1542 */ { UD_Ivpshufd, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1543 */ { UD_Ipslldq, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 1544 */ { UD_Ivpslldq, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, - /* 1545 */ { UD_Ipsrldq, O_U, O_Ib, O_NONE, O_NONE, P_rexb }, - /* 1546 */ { UD_Ivpsrldq, O_Hx, O_Ux, O_Ib, O_NONE, P_rexb }, - /* 1547 */ { UD_Ipunpckhqdq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1548 */ { UD_Ivpunpckhqdq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1549 */ { UD_Ipunpcklqdq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1550 */ { UD_Ivpunpcklqdq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1551 */ { UD_Ihaddpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1552 */ { UD_Ivhaddpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1553 */ { UD_Ihaddps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1554 */ { UD_Ivhaddps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1555 */ { UD_Ihsubpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1556 */ { UD_Ivhsubpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1557 */ { UD_Ihsubps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1558 */ { UD_Ivhsubps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1559 */ { UD_Iinsertps, O_V, O_Md, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1560 */ { UD_Ivinsertps, O_Vx, O_Hx, O_Md, O_Ib, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1561 */ { UD_Ilddqu, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1562 */ { UD_Ivlddqu, O_Vx, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1563 */ { UD_Imovddup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1564 */ { UD_Ivmovddup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1565 */ { UD_Imovddup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1566 */ { UD_Ivmovddup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1567 */ { UD_Imovshdup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1568 */ { UD_Ivmovshdup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1569 */ { UD_Imovshdup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1570 */ { UD_Ivmovshdup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1571 */ { UD_Imovsldup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1572 */ { UD_Ivmovsldup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1573 */ { UD_Imovsldup, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1574 */ { UD_Ivmovsldup, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1575 */ { UD_Ipabsb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1576 */ { UD_Ipabsb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1577 */ { UD_Ivpabsb, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1578 */ { UD_Ipabsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1579 */ { UD_Ipabsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1580 */ { UD_Ivpabsw, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1581 */ { UD_Ipabsd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1582 */ { UD_Ipabsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1583 */ { UD_Ivpabsd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1584 */ { UD_Ipshufb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1585 */ { UD_Ipshufb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1586 */ { UD_Ivpshufb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1587 */ { UD_Iphaddw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1588 */ { UD_Iphaddw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1589 */ { UD_Ivphaddw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1590 */ { UD_Iphaddd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1591 */ { UD_Iphaddd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1592 */ { UD_Ivphaddd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1593 */ { UD_Iphaddsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1594 */ { UD_Iphaddsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1595 */ { UD_Ivphaddsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1596 */ { UD_Ipmaddubsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1597 */ { UD_Ipmaddubsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1598 */ { UD_Ivpmaddubsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1599 */ { UD_Iphsubw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1600 */ { UD_Iphsubw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1601 */ { UD_Ivphsubw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1602 */ { UD_Iphsubd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1603 */ { UD_Iphsubd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1604 */ { UD_Ivphsubd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1605 */ { UD_Iphsubsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1606 */ { UD_Iphsubsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1607 */ { UD_Ivphsubsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1608 */ { UD_Ipsignb, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1609 */ { UD_Ipsignb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1610 */ { UD_Ivpsignb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1611 */ { UD_Ipsignd, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1612 */ { UD_Ipsignd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1613 */ { UD_Ivpsignd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1614 */ { UD_Ipsignw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1615 */ { UD_Ipsignw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1616 */ { UD_Ivpsignw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1617 */ { UD_Ipmulhrsw, O_P, O_Q, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1618 */ { UD_Ipmulhrsw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1619 */ { UD_Ivpmulhrsw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1620 */ { UD_Ipalignr, O_P, O_Q, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1621 */ { UD_Ipalignr, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1622 */ { UD_Ivpalignr, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1623 */ { UD_Ipblendvb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1624 */ { UD_Ipmuldq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1625 */ { UD_Ivpmuldq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1626 */ { UD_Ipminsb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1627 */ { UD_Ivpminsb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1628 */ { UD_Ipminsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1629 */ { UD_Ivpminsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1630 */ { UD_Ipminuw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1631 */ { UD_Ivpminuw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1632 */ { UD_Ipminud, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1633 */ { UD_Ivpminud, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1634 */ { UD_Ipmaxsb, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1635 */ { UD_Ivpmaxsb, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1636 */ { UD_Ipmaxsd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1637 */ { UD_Ivpmaxsd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1638 */ { UD_Ipmaxud, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1639 */ { UD_Ivpmaxud, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1640 */ { UD_Ipmaxuw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1641 */ { UD_Ivpmaxuw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1642 */ { UD_Ipmulld, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1643 */ { UD_Ivpmulld, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1644 */ { UD_Iphminposuw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1645 */ { UD_Ivphminposuw, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1646 */ { UD_Iroundps, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1647 */ { UD_Ivroundps, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1648 */ { UD_Iroundpd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1649 */ { UD_Ivroundpd, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1650 */ { UD_Iroundss, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1651 */ { UD_Ivroundss, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1652 */ { UD_Iroundsd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1653 */ { UD_Ivroundsd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1654 */ { UD_Iblendpd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1655 */ { UD_Ivblendpd, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1656 */ { UD_Iblendps, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1657 */ { UD_Ivblendps, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1658 */ { UD_Iblendvpd, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1659 */ { UD_Iblendvps, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1660 */ { UD_Ibound, O_Gv, O_M, O_NONE, O_NONE, P_aso|P_oso }, - /* 1661 */ { UD_Ibsf, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1662 */ { UD_Ibsr, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1663 */ { UD_Ibswap, O_R0y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1664 */ { UD_Ibswap, O_R1y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1665 */ { UD_Ibswap, O_R2y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1666 */ { UD_Ibswap, O_R3y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1667 */ { UD_Ibswap, O_R4y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1668 */ { UD_Ibswap, O_R5y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1669 */ { UD_Ibswap, O_R6y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1670 */ { UD_Ibswap, O_R7y, O_NONE, O_NONE, O_NONE, P_oso|P_rexw|P_rexb }, - /* 1671 */ { UD_Ibt, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1672 */ { UD_Ibt, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1673 */ { UD_Ibtc, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1674 */ { UD_Ibtc, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1675 */ { UD_Ibtr, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1676 */ { UD_Ibtr, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1677 */ { UD_Ibts, O_Ev, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1678 */ { UD_Ibts, O_Ev, O_Ib, O_NONE, O_NONE, P_aso|P_oso|P_rexw|P_rexr|P_rexx|P_rexb }, - /* 1679 */ { UD_Ipblendw, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1680 */ { UD_Ivpblendw, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1681 */ { UD_Impsadbw, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1682 */ { UD_Ivmpsadbw, O_Vx, O_Hx, O_Wx, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1683 */ { UD_Imovntdqa, O_V, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1684 */ { UD_Ivmovntdqa, O_Vx, O_M, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb|P_vexl }, - /* 1685 */ { UD_Ipackusdw, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1686 */ { UD_Ivpackusdw, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb|P_vexl }, - /* 1687 */ { UD_Ipmovsxbw, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1688 */ { UD_Ivpmovsxbw, O_Vx, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1689 */ { UD_Ipmovsxbd, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1690 */ { UD_Ivpmovsxbd, O_Vx, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1691 */ { UD_Ipmovsxbq, O_V, O_MwU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1692 */ { UD_Ivpmovsxbq, O_Vx, O_MwU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1693 */ { UD_Ipmovsxwd, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1694 */ { UD_Ivpmovsxwd, O_Vx, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1695 */ { UD_Ipmovsxwq, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1696 */ { UD_Ivpmovsxwq, O_Vx, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1697 */ { UD_Ipmovsxdq, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1698 */ { UD_Ipmovzxbw, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1699 */ { UD_Ivpmovzxbw, O_Vx, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1700 */ { UD_Ipmovzxbd, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1701 */ { UD_Ivpmovzxbd, O_Vx, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1702 */ { UD_Ipmovzxbq, O_V, O_MwU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1703 */ { UD_Ivpmovzxbq, O_Vx, O_MwU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1704 */ { UD_Ipmovzxwd, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1705 */ { UD_Ivpmovzxwd, O_Vx, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1706 */ { UD_Ipmovzxwq, O_V, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1707 */ { UD_Ivpmovzxwq, O_Vx, O_MdU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1708 */ { UD_Ipmovzxdq, O_V, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1709 */ { UD_Ivpmovzxdq, O_Vx, O_MqU, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1710 */ { UD_Ipcmpeqq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1711 */ { UD_Ivpcmpeqq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1712 */ { UD_Ipopcnt, O_Gv, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1713 */ { UD_Iptest, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1714 */ { UD_Ivptest, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb|P_vexl }, - /* 1715 */ { UD_Ipcmpestri, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1716 */ { UD_Ivpcmpestri, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1717 */ { UD_Ipcmpestrm, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1718 */ { UD_Ivpcmpestrm, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1719 */ { UD_Ipcmpgtq, O_V, O_W, O_NONE, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1720 */ { UD_Ivpcmpgtq, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1721 */ { UD_Ipcmpistri, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1722 */ { UD_Ivpcmpistri, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1723 */ { UD_Ipcmpistrm, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1724 */ { UD_Ivpcmpistrm, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1725 */ { UD_Imovbe, O_Gv, O_Mv, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1726 */ { UD_Imovbe, O_Mv, O_Gv, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1727 */ { UD_Icrc32, O_Gy, O_Eb, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1728 */ { UD_Icrc32, O_Gy, O_Ev, O_NONE, O_NONE, P_aso|P_oso|P_rexr|P_rexw|P_rexx|P_rexb }, - /* 1729 */ { UD_Ivbroadcastss, O_V, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1730 */ { UD_Ivbroadcastsd, O_Vqq, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1731 */ { UD_Ivextractf128, O_Wdq, O_Vqq, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1732 */ { UD_Ivinsertf128, O_Vqq, O_Hqq, O_Wdq, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1733 */ { UD_Ivmaskmovps, O_V, O_H, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1734 */ { UD_Ivmaskmovps, O_M, O_H, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1735 */ { UD_Ivmaskmovpd, O_V, O_H, O_M, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1736 */ { UD_Ivmaskmovpd, O_M, O_H, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1737 */ { UD_Ivpermilpd, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1738 */ { UD_Ivpermilpd, O_V, O_W, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1739 */ { UD_Ivpermilps, O_Vx, O_Hx, O_Wx, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1740 */ { UD_Ivpermilps, O_Vx, O_Wx, O_Ib, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1741 */ { UD_Ivperm2f128, O_Vqq, O_Hqq, O_Wqq, O_Ib, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1742 */ { UD_Ivtestps, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1743 */ { UD_Ivtestpd, O_Vx, O_Wx, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1744 */ { UD_Ivzeroupper, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1745 */ { UD_Ivzeroall, O_NONE, O_NONE, O_NONE, O_NONE, P_none }, - /* 1746 */ { UD_Ivblendvpd, O_Vx, O_Hx, O_Wx, O_Lx, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1747 */ { UD_Ivblendvps, O_Vx, O_Hx, O_Wx, O_Lx, P_aso|P_rexr|P_rexx|P_rexb|P_vexl }, - /* 1748 */ { UD_Ivmovsd, O_V, O_H, O_U, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1749 */ { UD_Ivmovsd, O_V, O_Mq, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1750 */ { UD_Ivmovsd, O_U, O_H, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1751 */ { UD_Ivmovsd, O_Mq, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1752 */ { UD_Ivmovss, O_V, O_H, O_U, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1753 */ { UD_Ivmovss, O_V, O_Md, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1754 */ { UD_Ivmovss, O_U, O_H, O_V, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1755 */ { UD_Ivmovss, O_Md, O_V, O_NONE, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1756 */ { UD_Ivpblendvb, O_V, O_H, O_W, O_L, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1757 */ { UD_Ivpsllw, O_V, O_H, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1758 */ { UD_Ivpsllw, O_H, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1759 */ { UD_Ivpslld, O_V, O_H, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1760 */ { UD_Ivpslld, O_H, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1761 */ { UD_Ivpsllq, O_V, O_H, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, - /* 1762 */ { UD_Ivpsllq, O_H, O_V, O_W, O_NONE, P_aso|P_rexr|P_rexx|P_rexb }, -}; - - -const char* ud_mnemonics_str[] = { - "aaa", - "aad", - "aam", - "aas", - "adc", - "add", - "addpd", - "addps", - "addsd", - "addss", - "addsubpd", - "addsubps", - "aesdec", - "aesdeclast", - "aesenc", - "aesenclast", - "aesimc", - "aeskeygenassist", - "and", - "andnpd", - "andnps", - "andpd", - "andps", - "arpl", - "blendpd", - "blendps", - "blendvpd", - "blendvps", - "bound", - "bsf", - "bsr", - "bswap", - "bt", - "btc", - "btr", - "bts", - "call", - "cbw", - "cdq", - "cdqe", - "clac", - "clc", - "cld", - "clflush", - "clgi", - "cli", - "clts", - "cmc", - "cmova", - "cmovae", - "cmovb", - "cmovbe", - "cmovg", - "cmovge", - "cmovl", - "cmovle", - "cmovno", - "cmovnp", - "cmovns", - "cmovnz", - "cmovo", - "cmovp", - "cmovs", - "cmovz", - "cmp", - "cmppd", - "cmpps", - "cmpsb", - "cmpsd", - "cmpsq", - "cmpss", - "cmpsw", - "cmpxchg", - "cmpxchg16b", - "cmpxchg8b", - "comisd", - "comiss", - "cpuid", - "cqo", - "crc32", - "cvtdq2pd", - "cvtdq2ps", - "cvtpd2dq", - "cvtpd2pi", - "cvtpd2ps", - "cvtpi2pd", - "cvtpi2ps", - "cvtps2dq", - "cvtps2pd", - "cvtps2pi", - "cvtsd2si", - "cvtsd2ss", - "cvtsi2sd", - "cvtsi2ss", - "cvtss2sd", - "cvtss2si", - "cvttpd2dq", - "cvttpd2pi", - "cvttps2dq", - "cvttps2pi", - "cvttsd2si", - "cvttss2si", - "cwd", - "cwde", - "daa", - "das", - "dec", - "div", - "divpd", - "divps", - "divsd", - "divss", - "dppd", - "dpps", - "emms", - "enter", - "extractps", - "f2xm1", - "fabs", - "fadd", - "faddp", - "fbld", - "fbstp", - "fchs", - "fclex", - "fcmovb", - "fcmovbe", - "fcmove", - "fcmovnb", - "fcmovnbe", - "fcmovne", - "fcmovnu", - "fcmovu", - "fcom", - "fcom2", - "fcomi", - "fcomip", - "fcomp", - "fcomp3", - "fcomp5", - "fcompp", - "fcos", - "fdecstp", - "fdiv", - "fdivp", - "fdivr", - "fdivrp", - "femms", - "ffree", - "ffreep", - "fiadd", - "ficom", - "ficomp", - "fidiv", - "fidivr", - "fild", - "fimul", - "fincstp", - "fist", - "fistp", - "fisttp", - "fisub", - "fisubr", - "fld", - "fld1", - "fldcw", - "fldenv", - "fldl2e", - "fldl2t", - "fldlg2", - "fldln2", - "fldpi", - "fldz", - "fmul", - "fmulp", - "fndisi", - "fneni", - "fninit", - "fnop", - "fnsave", - "fnsetpm", - "fnstcw", - "fnstenv", - "fnstsw", - "fpatan", - "fprem", - "fprem1", - "fptan", - "frndint", - "frstor", - "frstpm", - "fscale", - "fsin", - "fsincos", - "fsqrt", - "fst", - "fstp", - "fstp1", - "fstp8", - "fstp9", - "fsub", - "fsubp", - "fsubr", - "fsubrp", - "ftst", - "fucom", - "fucomi", - "fucomip", - "fucomp", - "fucompp", - "fxam", - "fxch", - "fxch4", - "fxch7", - "fxrstor", - "fxsave", - "fxtract", - "fyl2x", - "fyl2xp1", - "getsec", - "haddpd", - "haddps", - "hlt", - "hsubpd", - "hsubps", - "idiv", - "imul", - "in", - "inc", - "insb", - "insd", - "insertps", - "insw", - "int", - "int1", - "int3", - "into", - "invd", - "invept", - "invlpg", - "invlpga", - "invvpid", - "iretd", - "iretq", - "iretw", - "ja", - "jae", - "jb", - "jbe", - "jcxz", - "jecxz", - "jg", - "jge", - "jl", - "jle", - "jmp", - "jno", - "jnp", - "jns", - "jnz", - "jo", - "jp", - "jrcxz", - "js", - "jz", - "lahf", - "lar", - "lddqu", - "ldmxcsr", - "lds", - "lea", - "leave", - "les", - "lfence", - "lfs", - "lgdt", - "lgs", - "lidt", - "lldt", - "lmsw", - "lock", - "lodsb", - "lodsd", - "lodsq", - "lodsw", - "loop", - "loope", - "loopne", - "lsl", - "lss", - "ltr", - "maskmovdqu", - "maskmovq", - "maxpd", - "maxps", - "maxsd", - "maxss", - "mfence", - "minpd", - "minps", - "minsd", - "minss", - "monitor", - "montmul", - "mov", - "movapd", - "movaps", - "movbe", - "movd", - "movddup", - "movdq2q", - "movdqa", - "movdqu", - "movhlps", - "movhpd", - "movhps", - "movlhps", - "movlpd", - "movlps", - "movmskpd", - "movmskps", - "movntdq", - "movntdqa", - "movnti", - "movntpd", - "movntps", - "movntq", - "movq", - "movq2dq", - "movsb", - "movsd", - "movshdup", - "movsldup", - "movsq", - "movss", - "movsw", - "movsx", - "movsxd", - "movupd", - "movups", - "movzx", - "mpsadbw", - "mul", - "mulpd", - "mulps", - "mulsd", - "mulss", - "mwait", - "neg", - "nop", - "not", - "or", - "orpd", - "orps", - "out", - "outsb", - "outsd", - "outsw", - "pabsb", - "pabsd", - "pabsw", - "packssdw", - "packsswb", - "packusdw", - "packuswb", - "paddb", - "paddd", - "paddq", - "paddsb", - "paddsw", - "paddusb", - "paddusw", - "paddw", - "palignr", - "pand", - "pandn", - "pavgb", - "pavgusb", - "pavgw", - "pblendvb", - "pblendw", - "pclmulqdq", - "pcmpeqb", - "pcmpeqd", - "pcmpeqq", - "pcmpeqw", - "pcmpestri", - "pcmpestrm", - "pcmpgtb", - "pcmpgtd", - "pcmpgtq", - "pcmpgtw", - "pcmpistri", - "pcmpistrm", - "pextrb", - "pextrd", - "pextrq", - "pextrw", - "pf2id", - "pf2iw", - "pfacc", - "pfadd", - "pfcmpeq", - "pfcmpge", - "pfcmpgt", - "pfmax", - "pfmin", - "pfmul", - "pfnacc", - "pfpnacc", - "pfrcp", - "pfrcpit1", - "pfrcpit2", - "pfrsqit1", - "pfrsqrt", - "pfsub", - "pfsubr", - "phaddd", - "phaddsw", - "phaddw", - "phminposuw", - "phsubd", - "phsubsw", - "phsubw", - "pi2fd", - "pi2fw", - "pinsrb", - "pinsrd", - "pinsrq", - "pinsrw", - "pmaddubsw", - "pmaddwd", - "pmaxsb", - "pmaxsd", - "pmaxsw", - "pmaxub", - "pmaxud", - "pmaxuw", - "pminsb", - "pminsd", - "pminsw", - "pminub", - "pminud", - "pminuw", - "pmovmskb", - "pmovsxbd", - "pmovsxbq", - "pmovsxbw", - "pmovsxdq", - "pmovsxwd", - "pmovsxwq", - "pmovzxbd", - "pmovzxbq", - "pmovzxbw", - "pmovzxdq", - "pmovzxwd", - "pmovzxwq", - "pmuldq", - "pmulhrsw", - "pmulhrw", - "pmulhuw", - "pmulhw", - "pmulld", - "pmullw", - "pmuludq", - "pop", - "popa", - "popad", - "popcnt", - "popfd", - "popfq", - "popfw", - "por", - "prefetch", - "prefetchnta", - "prefetcht0", - "prefetcht1", - "prefetcht2", - "psadbw", - "pshufb", - "pshufd", - "pshufhw", - "pshuflw", - "pshufw", - "psignb", - "psignd", - "psignw", - "pslld", - "pslldq", - "psllq", - "psllw", - "psrad", - "psraw", - "psrld", - "psrldq", - "psrlq", - "psrlw", - "psubb", - "psubd", - "psubq", - "psubsb", - "psubsw", - "psubusb", - "psubusw", - "psubw", - "pswapd", - "ptest", - "punpckhbw", - "punpckhdq", - "punpckhqdq", - "punpckhwd", - "punpcklbw", - "punpckldq", - "punpcklqdq", - "punpcklwd", - "push", - "pusha", - "pushad", - "pushfd", - "pushfq", - "pushfw", - "pxor", - "rcl", - "rcpps", - "rcpss", - "rcr", - "rdmsr", - "rdpmc", - "rdrand", - "rdtsc", - "rdtscp", - "rep", - "repne", - "ret", - "retf", - "rol", - "ror", - "roundpd", - "roundps", - "roundsd", - "roundss", - "rsm", - "rsqrtps", - "rsqrtss", - "sahf", - "salc", - "sar", - "sbb", - "scasb", - "scasd", - "scasq", - "scasw", - "seta", - "setae", - "setb", - "setbe", - "setg", - "setge", - "setl", - "setle", - "setno", - "setnp", - "setns", - "setnz", - "seto", - "setp", - "sets", - "setz", - "sfence", - "sgdt", - "shl", - "shld", - "shr", - "shrd", - "shufpd", - "shufps", - "sidt", - "skinit", - "sldt", - "smsw", - "sqrtpd", - "sqrtps", - "sqrtsd", - "sqrtss", - "stac", - "stc", - "std", - "stgi", - "sti", - "stmxcsr", - "stosb", - "stosd", - "stosq", - "stosw", - "str", - "sub", - "subpd", - "subps", - "subsd", - "subss", - "swapgs", - "syscall", - "sysenter", - "sysexit", - "sysret", - "test", - "ucomisd", - "ucomiss", - "ud2", - "unpckhpd", - "unpckhps", - "unpcklpd", - "unpcklps", - "vaddpd", - "vaddps", - "vaddsd", - "vaddss", - "vaddsubpd", - "vaddsubps", - "vaesdec", - "vaesdeclast", - "vaesenc", - "vaesenclast", - "vaesimc", - "vaeskeygenassist", - "vandnpd", - "vandnps", - "vandpd", - "vandps", - "vblendpd", - "vblendps", - "vblendvpd", - "vblendvps", - "vbroadcastsd", - "vbroadcastss", - "vcmppd", - "vcmpps", - "vcmpsd", - "vcmpss", - "vcomisd", - "vcomiss", - "vcvtdq2pd", - "vcvtdq2ps", - "vcvtpd2dq", - "vcvtpd2ps", - "vcvtps2dq", - "vcvtps2pd", - "vcvtsd2si", - "vcvtsd2ss", - "vcvtsi2sd", - "vcvtsi2ss", - "vcvtss2sd", - "vcvtss2si", - "vcvttpd2dq", - "vcvttps2dq", - "vcvttsd2si", - "vcvttss2si", - "vdivpd", - "vdivps", - "vdivsd", - "vdivss", - "vdppd", - "vdpps", - "verr", - "verw", - "vextractf128", - "vextractps", - "vhaddpd", - "vhaddps", - "vhsubpd", - "vhsubps", - "vinsertf128", - "vinsertps", - "vlddqu", - "vmaskmovdqu", - "vmaskmovpd", - "vmaskmovps", - "vmaxpd", - "vmaxps", - "vmaxsd", - "vmaxss", - "vmcall", - "vmclear", - "vminpd", - "vminps", - "vminsd", - "vminss", - "vmlaunch", - "vmload", - "vmmcall", - "vmovapd", - "vmovaps", - "vmovd", - "vmovddup", - "vmovdqa", - "vmovdqu", - "vmovhlps", - "vmovhpd", - "vmovhps", - "vmovlhps", - "vmovlpd", - "vmovlps", - "vmovmskpd", - "vmovmskps", - "vmovntdq", - "vmovntdqa", - "vmovntpd", - "vmovntps", - "vmovq", - "vmovsd", - "vmovshdup", - "vmovsldup", - "vmovss", - "vmovupd", - "vmovups", - "vmpsadbw", - "vmptrld", - "vmptrst", - "vmread", - "vmresume", - "vmrun", - "vmsave", - "vmulpd", - "vmulps", - "vmulsd", - "vmulss", - "vmwrite", - "vmxoff", - "vmxon", - "vorpd", - "vorps", - "vpabsb", - "vpabsd", - "vpabsw", - "vpackssdw", - "vpacksswb", - "vpackusdw", - "vpackuswb", - "vpaddb", - "vpaddd", - "vpaddq", - "vpaddsb", - "vpaddsw", - "vpaddusb", - "vpaddusw", - "vpaddw", - "vpalignr", - "vpand", - "vpandn", - "vpavgb", - "vpavgw", - "vpblendvb", - "vpblendw", - "vpclmulqdq", - "vpcmpeqb", - "vpcmpeqd", - "vpcmpeqq", - "vpcmpeqw", - "vpcmpestri", - "vpcmpestrm", - "vpcmpgtb", - "vpcmpgtd", - "vpcmpgtq", - "vpcmpgtw", - "vpcmpistri", - "vpcmpistrm", - "vperm2f128", - "vpermilpd", - "vpermilps", - "vpextrb", - "vpextrd", - "vpextrq", - "vpextrw", - "vphaddd", - "vphaddsw", - "vphaddw", - "vphminposuw", - "vphsubd", - "vphsubsw", - "vphsubw", - "vpinsrb", - "vpinsrd", - "vpinsrq", - "vpinsrw", - "vpmaddubsw", - "vpmaddwd", - "vpmaxsb", - "vpmaxsd", - "vpmaxsw", - "vpmaxub", - "vpmaxud", - "vpmaxuw", - "vpminsb", - "vpminsd", - "vpminsw", - "vpminub", - "vpminud", - "vpminuw", - "vpmovmskb", - "vpmovsxbd", - "vpmovsxbq", - "vpmovsxbw", - "vpmovsxwd", - "vpmovsxwq", - "vpmovzxbd", - "vpmovzxbq", - "vpmovzxbw", - "vpmovzxdq", - "vpmovzxwd", - "vpmovzxwq", - "vpmuldq", - "vpmulhrsw", - "vpmulhuw", - "vpmulhw", - "vpmulld", - "vpmullw", - "vpor", - "vpsadbw", - "vpshufb", - "vpshufd", - "vpshufhw", - "vpshuflw", - "vpsignb", - "vpsignd", - "vpsignw", - "vpslld", - "vpslldq", - "vpsllq", - "vpsllw", - "vpsrad", - "vpsraw", - "vpsrld", - "vpsrldq", - "vpsrlq", - "vpsrlw", - "vpsubb", - "vpsubd", - "vpsubq", - "vpsubsb", - "vpsubsw", - "vpsubusb", - "vpsubusw", - "vpsubw", - "vptest", - "vpunpckhbw", - "vpunpckhdq", - "vpunpckhqdq", - "vpunpckhwd", - "vpunpcklbw", - "vpunpckldq", - "vpunpcklqdq", - "vpunpcklwd", - "vpxor", - "vrcpps", - "vrcpss", - "vroundpd", - "vroundps", - "vroundsd", - "vroundss", - "vrsqrtps", - "vrsqrtss", - "vshufpd", - "vshufps", - "vsqrtpd", - "vsqrtps", - "vsqrtsd", - "vsqrtss", - "vstmxcsr", - "vsubpd", - "vsubps", - "vsubsd", - "vsubss", - "vtestpd", - "vtestps", - "vucomisd", - "vucomiss", - "vunpckhpd", - "vunpckhps", - "vunpcklpd", - "vunpcklps", - "vxorpd", - "vxorps", - "vzeroall", - "vzeroupper", - "wait", - "wbinvd", - "wrmsr", - "xadd", - "xchg", - "xcryptcbc", - "xcryptcfb", - "xcryptctr", - "xcryptecb", - "xcryptofb", - "xgetbv", - "xlatb", - "xor", - "xorpd", - "xorps", - "xrstor", - "xsave", - "xsetbv", - "xsha1", - "xsha256", - "xstore", - "invalid", - "3dnow", - "none", - "db", - "pause" -}; diff --git a/src/libs/udis86/syn-att.c b/src/libs/udis86/syn-att.c deleted file mode 100644 index d1ba89b7ae..0000000000 --- a/src/libs/udis86/syn-att.c +++ /dev/null @@ -1,228 +0,0 @@ -/* udis86 - libudis86/syn-att.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 "types.h" -#include "extern.h" -#include "decode.h" -#include "itab.h" -#include "syn.h" -#include "udint.h" - -/* ----------------------------------------------------------------------------- - * opr_cast() - Prints an operand cast. - * ----------------------------------------------------------------------------- - */ -static void -opr_cast(struct ud* u, struct ud_operand* op) -{ - switch(op->size) { - case 16 : case 32 : - ud_asmprintf(u, "*"); break; - default: break; - } -} - -/* ----------------------------------------------------------------------------- - * gen_operand() - Generates assembly output for each operand. - * ----------------------------------------------------------------------------- - */ -static void -gen_operand(struct ud* u, struct ud_operand* op) -{ - switch(op->type) { - case UD_OP_CONST: - ud_asmprintf(u, "$0x%x", op->lval.udword); - break; - - case UD_OP_REG: - ud_asmprintf(u, "%%%s", ud_reg_tab[op->base - UD_R_AL]); - break; - - case UD_OP_MEM: - if (u->br_far) { - opr_cast(u, op); - } - if (u->pfx_seg) { - ud_asmprintf(u, "%%%s:", ud_reg_tab[u->pfx_seg - UD_R_AL]); - } - if (op->offset != 0) { - ud_syn_print_mem_disp(u, op, 0); - } - if (op->base) { - ud_asmprintf(u, "(%%%s", ud_reg_tab[op->base - UD_R_AL]); - } - if (op->index) { - if (op->base) { - ud_asmprintf(u, ","); - } else { - ud_asmprintf(u, "("); - } - ud_asmprintf(u, "%%%s", ud_reg_tab[op->index - UD_R_AL]); - } - if (op->scale) { - ud_asmprintf(u, ",%d", op->scale); - } - if (op->base || op->index) { - ud_asmprintf(u, ")"); - } - break; - - case UD_OP_IMM: - ud_asmprintf(u, "$"); - ud_syn_print_imm(u, op); - break; - - case UD_OP_JIMM: - ud_syn_print_addr(u, ud_syn_rel_target(u, op)); - break; - - case UD_OP_PTR: - switch (op->size) { - case 32: - ud_asmprintf(u, "$0x%x, $0x%x", op->lval.ptr.seg, - op->lval.ptr.off & 0xFFFF); - break; - case 48: - ud_asmprintf(u, "$0x%x, $0x%x", op->lval.ptr.seg, - op->lval.ptr.off); - break; - } - break; - - default: return; - } -} - -/* ============================================================================= - * translates to AT&T syntax - * ============================================================================= - */ -extern void -ud_translate_att(struct ud *u) -{ - int size = 0; - int star = 0; - - /* check if P_OSO prefix is used */ - if (! P_OSO(u->itab_entry->prefix) && u->pfx_opr) { - switch (u->dis_mode) { - case 16: - ud_asmprintf(u, "o32 "); - break; - case 32: - case 64: - ud_asmprintf(u, "o16 "); - break; - } - } - - /* check if P_ASO prefix was used */ - if (! P_ASO(u->itab_entry->prefix) && u->pfx_adr) { - switch (u->dis_mode) { - case 16: - ud_asmprintf(u, "a32 "); - break; - case 32: - ud_asmprintf(u, "a16 "); - break; - case 64: - ud_asmprintf(u, "a32 "); - break; - } - } - - if (u->pfx_lock) - ud_asmprintf(u, "lock "); - if (u->pfx_rep) { - ud_asmprintf(u, "rep "); - } else if (u->pfx_repe) { - ud_asmprintf(u, "repe "); - } else if (u->pfx_repne) { - ud_asmprintf(u, "repne "); - } - - /* special instructions */ - switch (u->mnemonic) { - case UD_Iretf: - ud_asmprintf(u, "lret "); - break; - case UD_Idb: - ud_asmprintf(u, ".byte 0x%x", u->operand[0].lval.ubyte); - return; - case UD_Ijmp: - case UD_Icall: - if (u->br_far) ud_asmprintf(u, "l"); - if (u->operand[0].type == UD_OP_REG) { - star = 1; - } - ud_asmprintf(u, "%s", ud_lookup_mnemonic(u->mnemonic)); - break; - case UD_Ibound: - case UD_Ienter: - if (u->operand[0].type != UD_NONE) - gen_operand(u, &u->operand[0]); - if (u->operand[1].type != UD_NONE) { - ud_asmprintf(u, ","); - gen_operand(u, &u->operand[1]); - } - return; - default: - ud_asmprintf(u, "%s", ud_lookup_mnemonic(u->mnemonic)); - } - - if (size == 8) { - ud_asmprintf(u, "b"); - } else if (size == 16) { - ud_asmprintf(u, "w"); - } else if (size == 64) { - ud_asmprintf(u, "q"); - } - - if (star) { - ud_asmprintf(u, " *"); - } else { - ud_asmprintf(u, " "); - } - - if (u->operand[3].type != UD_NONE) { - gen_operand(u, &u->operand[3]); - ud_asmprintf(u, ", "); - } - if (u->operand[2].type != UD_NONE) { - gen_operand(u, &u->operand[2]); - ud_asmprintf(u, ", "); - } - if (u->operand[1].type != UD_NONE) { - gen_operand(u, &u->operand[1]); - ud_asmprintf(u, ", "); - } - if (u->operand[0].type != UD_NONE) { - gen_operand(u, &u->operand[0]); - } -} - -/* -vim: set ts=2 sw=2 expandtab -*/ diff --git a/src/libs/udis86/syn-intel.c b/src/libs/udis86/syn-intel.c deleted file mode 100644 index 0664fea092..0000000000 --- a/src/libs/udis86/syn-intel.c +++ /dev/null @@ -1,224 +0,0 @@ -/* udis86 - libudis86/syn-intel.c - * - * Copyright (c) 2002-2013 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" -#include "itab.h" -#include "syn.h" -#include "udint.h" - -/* ----------------------------------------------------------------------------- - * opr_cast() - Prints an operand cast. - * ----------------------------------------------------------------------------- - */ -static void -opr_cast(struct ud* u, struct ud_operand* op) -{ - if (u->br_far) { - ud_asmprintf(u, "far "); - } - switch(op->size) { - case 8: ud_asmprintf(u, "byte " ); break; - case 16: ud_asmprintf(u, "word " ); break; - case 32: ud_asmprintf(u, "dword "); break; - case 64: ud_asmprintf(u, "qword "); break; - case 80: ud_asmprintf(u, "tword "); break; - case 128: ud_asmprintf(u, "oword "); break; - case 256: ud_asmprintf(u, "yword "); break; - default: break; - } -} - -/* ----------------------------------------------------------------------------- - * gen_operand() - Generates assembly output for each operand. - * ----------------------------------------------------------------------------- - */ -static void gen_operand(struct ud* u, struct ud_operand* op, int syn_cast) -{ - switch(op->type) { - case UD_OP_REG: - ud_asmprintf(u, "%s", ud_reg_tab[op->base - UD_R_AL]); - break; - - case UD_OP_MEM: - if (syn_cast) { - opr_cast(u, op); - } - ud_asmprintf(u, "["); - if (u->pfx_seg) { - ud_asmprintf(u, "%s:", ud_reg_tab[u->pfx_seg - UD_R_AL]); - } - if (op->base) { - ud_asmprintf(u, "%s", ud_reg_tab[op->base - UD_R_AL]); - } - if (op->index) { - ud_asmprintf(u, "%s%s", op->base != UD_NONE? "+" : "", - ud_reg_tab[op->index - UD_R_AL]); - if (op->scale) { - ud_asmprintf(u, "*%d", op->scale); - } - } - if (op->offset != 0) { - ud_syn_print_mem_disp(u, op, (op->base != UD_NONE || - op->index != UD_NONE) ? 1 : 0); - } - ud_asmprintf(u, "]"); - break; - - case UD_OP_IMM: - ud_syn_print_imm(u, op); - break; - - - case UD_OP_JIMM: - ud_syn_print_addr(u, ud_syn_rel_target(u, op)); - break; - - case UD_OP_PTR: - switch (op->size) { - case 32: - ud_asmprintf(u, "word 0x%x:0x%x", op->lval.ptr.seg, - op->lval.ptr.off & 0xFFFF); - break; - case 48: - ud_asmprintf(u, "dword 0x%x:0x%x", op->lval.ptr.seg, - op->lval.ptr.off); - break; - } - break; - - case UD_OP_CONST: - if (syn_cast) opr_cast(u, op); - ud_asmprintf(u, "%d", op->lval.udword); - break; - - default: return; - } -} - -/* ============================================================================= - * translates to intel syntax - * ============================================================================= - */ -extern void -ud_translate_intel(struct ud* u) -{ - /* check if P_OSO prefix is used */ - if (!P_OSO(u->itab_entry->prefix) && u->pfx_opr) { - switch (u->dis_mode) { - case 16: ud_asmprintf(u, "o32 "); break; - case 32: - case 64: ud_asmprintf(u, "o16 "); break; - } - } - - /* check if P_ASO prefix was used */ - if (!P_ASO(u->itab_entry->prefix) && u->pfx_adr) { - switch (u->dis_mode) { - case 16: ud_asmprintf(u, "a32 "); break; - case 32: ud_asmprintf(u, "a16 "); break; - case 64: ud_asmprintf(u, "a32 "); break; - } - } - - if (u->pfx_seg && - u->operand[0].type != UD_OP_MEM && - u->operand[1].type != UD_OP_MEM ) { - ud_asmprintf(u, "%s ", ud_reg_tab[u->pfx_seg - UD_R_AL]); - } - - if (u->pfx_lock) { - ud_asmprintf(u, "lock "); - } - if (u->pfx_rep) { - ud_asmprintf(u, "rep "); - } else if (u->pfx_repe) { - ud_asmprintf(u, "repe "); - } else if (u->pfx_repne) { - ud_asmprintf(u, "repne "); - } - - /* print the instruction mnemonic */ - ud_asmprintf(u, "%s", ud_lookup_mnemonic(u->mnemonic)); - - if (u->operand[0].type != UD_NONE) { - int cast = 0; - ud_asmprintf(u, " "); - if (u->operand[0].type == UD_OP_MEM) { - if (u->operand[1].type == UD_OP_IMM || - u->operand[1].type == UD_OP_CONST || - u->operand[1].type == UD_NONE || - (u->operand[0].size != u->operand[1].size)) { - cast = 1; - } else if (u->operand[1].type == UD_OP_REG && - u->operand[1].base == UD_R_CL) { - switch (u->mnemonic) { - case UD_Ircl: - case UD_Irol: - case UD_Iror: - case UD_Ircr: - case UD_Ishl: - case UD_Ishr: - case UD_Isar: - cast = 1; - break; - default: break; - } - } - } - gen_operand(u, &u->operand[0], cast); - } - - if (u->operand[1].type != UD_NONE) { - int cast = 0; - ud_asmprintf(u, ", "); - if (u->operand[1].type == UD_OP_MEM && - u->operand[0].size != u->operand[1].size && - !ud_opr_is_sreg(&u->operand[0])) { - cast = 1; - } - gen_operand(u, &u->operand[1], cast); - } - - if (u->operand[2].type != UD_NONE) { - int cast = 0; - ud_asmprintf(u, ", "); - if (u->operand[2].type == UD_OP_MEM && - u->operand[2].size != u->operand[1].size) { - cast = 1; - } - gen_operand(u, &u->operand[2], cast); - } - - if (u->operand[3].type != UD_NONE) { - ud_asmprintf(u, ", "); - gen_operand(u, &u->operand[3], 0); - } -} - -/* -vim: set ts=2 sw=2 expandtab -*/ diff --git a/src/libs/udis86/syn.c b/src/libs/udis86/syn.c deleted file mode 100644 index 1b9e1d42a5..0000000000 --- a/src/libs/udis86/syn.c +++ /dev/null @@ -1,212 +0,0 @@ -/* udis86 - libudis86/syn.c - * - * Copyright (c) 2002-2013 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 "decode.h" -#include "syn.h" -#include "udint.h" - -/* - * Register Table - Order Matters (types.h)! - * - */ -const char* ud_reg_tab[] = -{ - "al", "cl", "dl", "bl", - "ah", "ch", "dh", "bh", - "spl", "bpl", "sil", "dil", - "r8b", "r9b", "r10b", "r11b", - "r12b", "r13b", "r14b", "r15b", - - "ax", "cx", "dx", "bx", - "sp", "bp", "si", "di", - "r8w", "r9w", "r10w", "r11w", - "r12w", "r13w", "r14w", "r15w", - - "eax", "ecx", "edx", "ebx", - "esp", "ebp", "esi", "edi", - "r8d", "r9d", "r10d", "r11d", - "r12d", "r13d", "r14d", "r15d", - - "rax", "rcx", "rdx", "rbx", - "rsp", "rbp", "rsi", "rdi", - "r8", "r9", "r10", "r11", - "r12", "r13", "r14", "r15", - - "es", "cs", "ss", "ds", - "fs", "gs", - - "cr0", "cr1", "cr2", "cr3", - "cr4", "cr5", "cr6", "cr7", - "cr8", "cr9", "cr10", "cr11", - "cr12", "cr13", "cr14", "cr15", - - "dr0", "dr1", "dr2", "dr3", - "dr4", "dr5", "dr6", "dr7", - "dr8", "dr9", "dr10", "dr11", - "dr12", "dr13", "dr14", "dr15", - - "mm0", "mm1", "mm2", "mm3", - "mm4", "mm5", "mm6", "mm7", - - "st0", "st1", "st2", "st3", - "st4", "st5", "st6", "st7", - - "xmm0", "xmm1", "xmm2", "xmm3", - "xmm4", "xmm5", "xmm6", "xmm7", - "xmm8", "xmm9", "xmm10", "xmm11", - "xmm12", "xmm13", "xmm14", "xmm15", - - "ymm0", "ymm1", "ymm2", "ymm3", - "ymm4", "ymm5", "ymm6", "ymm7", - "ymm8", "ymm9", "ymm10", "ymm11", - "ymm12", "ymm13", "ymm14", "ymm15", - - "rip" -}; - - -uint64_t -ud_syn_rel_target(struct ud *u, struct ud_operand *opr) -{ - const uint64_t trunc_mask = 0xffffffffffffffffull >> (64 - u->opr_mode); - switch (opr->size) { - case 8 : return (u->pc + opr->lval.sbyte) & trunc_mask; - case 16: return (u->pc + opr->lval.sword) & trunc_mask; - case 32: return (u->pc + opr->lval.sdword) & trunc_mask; - default: UD_ASSERT(!"invalid relative offset size."); - return 0ull; - } -} - - -/* - * asmprintf - * Printf style function for printing translated assembly - * output. Returns the number of characters written and - * moves the buffer pointer forward. On an overflow, - * returns a negative number and truncates the output. - */ -int -ud_asmprintf(struct ud *u, const char *fmt, ...) -{ - int ret; - int avail; - va_list ap; - va_start(ap, fmt); - avail = u->asm_buf_size - u->asm_buf_fill - 1 /* nullchar */; - ret = vsnprintf((char*) u->asm_buf + u->asm_buf_fill, avail, fmt, ap); - if (ret < 0 || ret > avail) { - u->asm_buf_fill = u->asm_buf_size - 1; - } else { - u->asm_buf_fill += ret; - } - va_end(ap); - return ret; -} - - -void -ud_syn_print_addr(struct ud *u, uint64_t addr) -{ - const char *name = NULL; - if (u->sym_resolver) { - int64_t offset = 0; - name = u->sym_resolver(u, addr, &offset); - if (name) { - if (offset) { - ud_asmprintf(u, "%s%+" FMT64 "d", name, offset); - } else { - ud_asmprintf(u, "%s", name); - } - return; - } - } - ud_asmprintf(u, "0x%" FMT64 "x", addr); -} - - -void -ud_syn_print_imm(struct ud* u, const struct ud_operand *op) -{ - uint64_t v; - if (op->_oprcode == OP_sI && op->size != u->opr_mode) { - if (op->size == 8) { - v = (int64_t)op->lval.sbyte; - } else { - UD_ASSERT(op->size == 32); - v = (int64_t)op->lval.sdword; - } - if (u->opr_mode < 64) { - v = v & ((1ull << u->opr_mode) - 1ull); - } - } else { - switch (op->size) { - case 8 : v = op->lval.ubyte; break; - case 16: v = op->lval.uword; break; - case 32: v = op->lval.udword; break; - case 64: v = op->lval.uqword; break; - default: UD_ASSERT(!"invalid offset"); v = 0; /* keep cc happy */ - } - } - ud_asmprintf(u, "0x%" FMT64 "x", v); -} - - -void -ud_syn_print_mem_disp(struct ud* u, const struct ud_operand *op, int sign) -{ - UD_ASSERT(op->offset != 0); - if (op->base == UD_NONE && op->index == UD_NONE) { - uint64_t v; - UD_ASSERT(op->scale == UD_NONE && op->offset != 8); - /* unsigned mem-offset */ - switch (op->offset) { - case 16: v = op->lval.uword; break; - case 32: v = op->lval.udword; break; - case 64: v = op->lval.uqword; break; - default: UD_ASSERT(!"invalid offset"); v = 0; /* keep cc happy */ - } - ud_asmprintf(u, "0x%" FMT64 "x", v); - } else { - int64_t v; - UD_ASSERT(op->offset != 64); - switch (op->offset) { - case 8 : v = op->lval.sbyte; break; - case 16: v = op->lval.sword; break; - case 32: v = op->lval.sdword; break; - default: UD_ASSERT(!"invalid offset"); v = 0; /* keep cc happy */ - } - if (v < 0) { - ud_asmprintf(u, "-0x%" FMT64 "x", -v); - } else if (v > 0) { - ud_asmprintf(u, "%s0x%" FMT64 "x", sign? "+" : "", v); - } - } -} - -/* -vim: set ts=2 sw=2 expandtab -*/ diff --git a/src/libs/udis86/udis86.c b/src/libs/udis86/udis86.c deleted file mode 100644 index ba24569c6e..0000000000 --- a/src/libs/udis86/udis86.c +++ /dev/null @@ -1,454 +0,0 @@ -/* udis86 - libudis86/udis86.c - * - * Copyright (c) 2002-2013 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 "udint.h" -#include "extern.h" -#include "decode.h" - -#include - -static void ud_inp_init(struct ud *u); - -/* ============================================================================= - * ud_init - * Initializes ud_t object. - * ============================================================================= - */ -extern void -ud_init(struct ud* u) -{ - memset((void*)u, 0, sizeof(struct ud)); - ud_set_mode(u, 16); - u->mnemonic = UD_Iinvalid; - ud_set_pc(u, 0); -#ifndef __UD_STANDALONE__ - ud_set_input_file(u, stdin); -#endif /* __UD_STANDALONE__ */ - - ud_set_asm_buffer(u, u->asm_buf_int, sizeof(u->asm_buf_int)); -} - - -/* ============================================================================= - * ud_disassemble - * Disassembles one instruction and returns the number of - * bytes disassembled. A zero means end of disassembly. - * ============================================================================= - */ -extern unsigned int -ud_disassemble(struct ud* u) -{ - int len; - if (u->inp_end) { - return 0; - } - if ((len = ud_decode(u)) > 0) { - if (u->translator != NULL) { - u->asm_buf[0] = '\0'; - u->translator(u); - } - } - return len; -} - - -/* ============================================================================= - * ud_set_mode() - Set Disassemly Mode. - * ============================================================================= - */ -extern void -ud_set_mode(struct ud* u, uint8_t m) -{ - switch(m) { - case 16: - case 32: - case 64: u->dis_mode = m ; return; - default: u->dis_mode = 16; return; - } -} - -/* ============================================================================= - * ud_set_vendor() - Set vendor. - * ============================================================================= - */ -extern void -ud_set_vendor(struct ud* u, unsigned v) -{ - switch(v) { - case UD_VENDOR_INTEL: - u->vendor = v; - break; - case UD_VENDOR_ANY: - u->vendor = v; - break; - default: - u->vendor = UD_VENDOR_AMD; - } -} - -/* ============================================================================= - * ud_set_pc() - Sets code origin. - * ============================================================================= - */ -extern void -ud_set_pc(struct ud* u, uint64_t o) -{ - u->pc = o; -} - -/* ============================================================================= - * ud_set_syntax() - Sets the output syntax. - * ============================================================================= - */ -extern void -ud_set_syntax(struct ud* u, void (*t)(struct ud*)) -{ - u->translator = t; -} - -/* ============================================================================= - * ud_insn() - returns the disassembled instruction - * ============================================================================= - */ -const char* -ud_insn_asm(const struct ud* u) -{ - return u->asm_buf; -} - -/* ============================================================================= - * ud_insn_offset() - Returns the offset. - * ============================================================================= - */ -uint64_t -ud_insn_off(const struct ud* u) -{ - return u->insn_offset; -} - - -/* ============================================================================= - * ud_insn_hex() - Returns hex form of disassembled instruction. - * ============================================================================= - */ -const char* -ud_insn_hex(struct ud* u) -{ - u->insn_hexcode[0] = 0; - if (!u->error) { - unsigned int i; - const unsigned char *src_ptr = ud_insn_ptr(u); - char* src_hex; - src_hex = (char*) u->insn_hexcode; - /* for each byte used to decode instruction */ - for (i = 0; i < ud_insn_len(u) && i < sizeof(u->insn_hexcode) / 2; - ++i, ++src_ptr) { - sprintf(src_hex, "%02x", *src_ptr & 0xFF); - src_hex += 2; - } - } - return u->insn_hexcode; -} - - -/* ============================================================================= - * ud_insn_ptr - * Returns a pointer to buffer containing the bytes that were - * disassembled. - * ============================================================================= - */ -extern const uint8_t* -ud_insn_ptr(const struct ud* u) -{ - return (u->inp_buf == NULL) ? - u->inp_sess : u->inp_buf + (u->inp_buf_index - u->inp_ctr); -} - - -/* ============================================================================= - * ud_insn_len - * Returns the count of bytes disassembled. - * ============================================================================= - */ -extern unsigned int -ud_insn_len(const struct ud* u) -{ - return u->inp_ctr; -} - - -/* ============================================================================= - * ud_insn_get_opr - * Return the operand struct representing the nth operand of - * the currently disassembled instruction. Returns NULL if - * there's no such operand. - * ============================================================================= - */ -const struct ud_operand* -ud_insn_opr(const struct ud *u, unsigned int n) -{ - if (n > 3 || u->operand[n].type == UD_NONE) { - return NULL; - } else { - return &u->operand[n]; - } -} - - -/* ============================================================================= - * ud_opr_is_sreg - * Returns non-zero if the given operand is of a segment register type. - * ============================================================================= - */ -int -ud_opr_is_sreg(const struct ud_operand *opr) -{ - return opr->type == UD_OP_REG && - opr->base >= UD_R_ES && - opr->base <= UD_R_GS; -} - - -/* ============================================================================= - * ud_opr_is_sreg - * Returns non-zero if the given operand is of a general purpose - * register type. - * ============================================================================= - */ -int -ud_opr_is_gpr(const struct ud_operand *opr) -{ - return opr->type == UD_OP_REG && - opr->base >= UD_R_AL && - opr->base <= UD_R_R15; -} - - -/* ============================================================================= - * ud_set_user_opaque_data - * ud_get_user_opaque_data - * Get/set user opaqute data pointer - * ============================================================================= - */ -void -ud_set_user_opaque_data(struct ud * u, void* opaque) -{ - u->user_opaque_data = opaque; -} - -void* -ud_get_user_opaque_data(const struct ud *u) -{ - return u->user_opaque_data; -} - - -/* ============================================================================= - * ud_set_asm_buffer - * Allow the user to set an assembler output buffer. If `buf` is NULL, - * we switch back to the internal buffer. - * ============================================================================= - */ -void -ud_set_asm_buffer(struct ud *u, char *buf, size_t size) -{ - if (buf == NULL) { - ud_set_asm_buffer(u, u->asm_buf_int, sizeof(u->asm_buf_int)); - } else { - u->asm_buf = buf; - u->asm_buf_size = size; - } -} - - -/* ============================================================================= - * ud_set_sym_resolver - * Set symbol resolver for relative targets used in the translation - * phase. - * - * The resolver is a function that takes a uint64_t address and returns a - * symbolic name for the that address. The function also takes a second - * argument pointing to an integer that the client can optionally set to a - * non-zero value for offsetted targets. (symbol+offset) The function may - * also return NULL, in which case the translator only prints the target - * address. - * - * The function pointer maybe NULL which resets symbol resolution. - * ============================================================================= - */ -void -ud_set_sym_resolver(struct ud *u, const char* (*resolver)(struct ud*, - uint64_t addr, - int64_t *offset)) -{ - u->sym_resolver = resolver; -} - - -/* ============================================================================= - * ud_insn_mnemonic - * Return the current instruction mnemonic. - * ============================================================================= - */ -enum ud_mnemonic_code -ud_insn_mnemonic(const struct ud *u) -{ - return u->mnemonic; -} - - -/* ============================================================================= - * ud_lookup_mnemonic - * Looks up mnemonic code in the mnemonic string table. - * Returns NULL if the mnemonic code is invalid. - * ============================================================================= - */ -const char* -ud_lookup_mnemonic(enum ud_mnemonic_code c) -{ - if (c < UD_MAX_MNEMONIC_CODE) { - return ud_mnemonics_str[c]; - } else { - return NULL; - } -} - - -/* - * ud_inp_init - * Initializes the input system. - */ -static void -ud_inp_init(struct ud *u) -{ - u->inp_hook = NULL; - u->inp_buf = NULL; - u->inp_buf_size = 0; - u->inp_buf_index = 0; - u->inp_curr = 0; - u->inp_ctr = 0; - u->inp_end = 0; - u->inp_peek = UD_EOI; - UD_NON_STANDALONE(u->inp_file = NULL); -} - - -/* ============================================================================= - * ud_inp_set_hook - * Sets input hook. - * ============================================================================= - */ -void -ud_set_input_hook(register struct ud* u, int (*hook)(struct ud*)) -{ - ud_inp_init(u); - u->inp_hook = hook; -} - -/* ============================================================================= - * ud_inp_set_buffer - * Set buffer as input. - * ============================================================================= - */ -void -ud_set_input_buffer(register struct ud* u, const uint8_t* buf, size_t len) -{ - ud_inp_init(u); - u->inp_buf = buf; - u->inp_buf_size = len; - u->inp_buf_index = 0; -} - - -#ifndef __UD_STANDALONE__ -/* ============================================================================= - * ud_input_set_file - * Set FILE as input. - * ============================================================================= - */ -static int -inp_file_hook(struct ud* u) -{ - return fgetc(u->inp_file); -} - -void -ud_set_input_file(register struct ud* u, FILE* f) -{ - ud_inp_init(u); - u->inp_hook = inp_file_hook; - u->inp_file = f; -} -#endif /* __UD_STANDALONE__ */ - - -/* ============================================================================= - * ud_input_skip - * Skip n input bytes. - * ============================================================================ - */ -void -ud_input_skip(struct ud* u, size_t n) -{ - if (u->inp_end) { - return; - } - if (u->inp_buf == NULL) { - while (n--) { - int c = u->inp_hook(u); - if (c == UD_EOI) { - goto eoi; - } - } - return; - } else { - if (n > u->inp_buf_size || - u->inp_buf_index > u->inp_buf_size - n) { - u->inp_buf_index = u->inp_buf_size; - goto eoi; - } - u->inp_buf_index += n; - return; - } -eoi: - u->inp_end = 1; - UDERR(u, "cannot skip, eoi received\b"); - return; -} - - -/* ============================================================================= - * ud_input_end - * Returns non-zero on end-of-input. - * ============================================================================= - */ -int -ud_input_end(const struct ud *u) -{ - return u->inp_end; -} - -/* vim:set ts=2 sw=2 expandtab */