opcode_tables.h

Go to the documentation of this file.
00001 /*
00002  * libdasm -- simple x86 disassembly library
00003  * (c) 2004 - 2006  jt / nologin.org
00004  *
00005  * opcode_tables.h:
00006  * Opcode tables for FPU, 1, 2 and 3-byte opcodes and
00007  * extensions.
00008  *
00009  */
00010 
00011 #include "libdasm.h"
00012 
00013 
00014 // lock/rep prefix name table
00015 const char *rep_table[] = {
00016          "lock ", "repne ", "rep "
00017 };
00018 
00019 // Register name table (also includes Jcc branch hint prefixes)
00020 const char *reg_table[11][8] = {
00021         { "eax",  "ecx",  "edx",  "ebx",  "esp",  "ebp",  "esi",  "edi"  },
00022         { "ax",   "cx",   "dx",   "bx",   "sp",   "bp",   "si",   "di"   },
00023         { "al",   "cl",   "dl",   "bl",   "ah",   "ch",   "dh",   "bh"   },
00024         { "es",   "cs",   "ss",   "ds",   "fs",   "gs",   "??",   "??"   },
00025         { "dr0",  "dr1",  "dr2",  "dr3",  "dr4",  "dr5",  "dr6",  "dr7"  },
00026         { "cr0",  "cr1",  "cr2",  "cr3",  "cr4",  "cr5",  "cr6",  "cr7"  },
00027         { "tr0",  "tr1",  "tr2",  "tr3",  "tr4",  "tr5",  "tr6",  "tr7"  },
00028         { "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7" },
00029         { "mm0",  "mm1",  "mm2",  "mm3",  "mm4",  "mm5",  "mm6",  "mm7"  },
00030         { "st(0)","st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)"},
00031         { "??",   "(bnt)","??",   "(bt)", "??",   "??",   "??",   "??"   },
00032 };
00033 
00034 // Name table index
00035 #define REG_GEN_DWORD 0
00036 #define REG_GEN_WORD  1
00037 #define REG_GEN_BYTE  2
00038 #define REG_SEGMENT   3
00039 #define REG_DEBUG     4
00040 #define REG_CONTROL   5
00041 #define REG_TEST      6
00042 #define REG_XMM       7 
00043 #define REG_MMX       8 
00044 #define REG_FPU       9
00045 #define REG_BRANCH    10        // Not registers strictly speaking..
00046 
00047 // 1-byte opcodes
00048 INST inst_table1[256] = {
00049         { INSTRUCTION_TYPE_ADD,    "add",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1 },
00050         { INSTRUCTION_TYPE_ADD,    "add",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00051         { INSTRUCTION_TYPE_ADD,    "add",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1 },
00052         { INSTRUCTION_TYPE_ADD,    "add",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00053         { INSTRUCTION_TYPE_ADD,    "add",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00054         { INSTRUCTION_TYPE_ADD,    "add",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00055         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_ES|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0 },
00056         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_ES|F_r|P_w,       FLAGS_NONE,                FLAGS_NONE,   0 },
00057         { INSTRUCTION_TYPE_OR,     "or",        AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1 },
00058         { INSTRUCTION_TYPE_OR,     "or",        AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00059         { INSTRUCTION_TYPE_OR,     "or",        AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1 },
00060         { INSTRUCTION_TYPE_OR,     "or",        AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00061         { INSTRUCTION_TYPE_OR,     "or",        AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00062         { INSTRUCTION_TYPE_OR,     "or",        AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00063         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_CS|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0 },
00064         // Escape to 2-byte opcode table
00065         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00066         { INSTRUCTION_TYPE_ADC,    "adc",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1 },
00067         { INSTRUCTION_TYPE_ADC,    "adc",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00068         { INSTRUCTION_TYPE_ADC,    "adc",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1 },
00069         { INSTRUCTION_TYPE_ADC,    "adc",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00070         { INSTRUCTION_TYPE_ADC,    "adc",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00071         { INSTRUCTION_TYPE_ADC,    "adc",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00072         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_SS|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0 },
00073         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_SS|F_r|P_w,       FLAGS_NONE,                FLAGS_NONE,   0 },
00074         { INSTRUCTION_TYPE_SBB,    "sbb",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1 },
00075         { INSTRUCTION_TYPE_SBB,    "sbb",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00076         { INSTRUCTION_TYPE_SBB,    "sbb",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1 },
00077         { INSTRUCTION_TYPE_SBB,    "sbb",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00078         { INSTRUCTION_TYPE_SBB,    "sbb",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00079         { INSTRUCTION_TYPE_SBB,    "sbb",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00080         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_DS|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0 },
00081         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_DS|F_r|P_w,       FLAGS_NONE,                FLAGS_NONE,   0 },
00082         { INSTRUCTION_TYPE_AND,    "and",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1 },
00083         { INSTRUCTION_TYPE_AND,    "and",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00084         { INSTRUCTION_TYPE_AND,    "and",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1 },
00085         { INSTRUCTION_TYPE_AND,    "and",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00086         { INSTRUCTION_TYPE_AND,    "and",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00087         { INSTRUCTION_TYPE_AND,    "and",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00088         // seg ES override
00089         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00090         { INSTRUCTION_TYPE_DCL,    "daa",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00091         { INSTRUCTION_TYPE_SUB,    "sub",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1 },
00092         { INSTRUCTION_TYPE_SUB,    "sub",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00093         { INSTRUCTION_TYPE_SUB,    "sub",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1 },
00094         { INSTRUCTION_TYPE_SUB,    "sub",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00095         { INSTRUCTION_TYPE_SUB,    "sub",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00096         { INSTRUCTION_TYPE_SUB,    "sub",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00097         // seg CS override
00098         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00099         { INSTRUCTION_TYPE_DCL,    "das",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00100         { INSTRUCTION_TYPE_XOR,    "xor",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1 },
00101         { INSTRUCTION_TYPE_XOR,    "xor",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00102         { INSTRUCTION_TYPE_XOR,    "xor",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1 },
00103         { INSTRUCTION_TYPE_XOR,    "xor",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00104         { INSTRUCTION_TYPE_XOR,    "xor",       AM_REG|REG_EAX|OT_b|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00105         { INSTRUCTION_TYPE_XOR,    "xor",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00106         // seg SS override
00107         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
00108         { INSTRUCTION_TYPE_ASC,    "aaa",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00109         { INSTRUCTION_TYPE_CMP,    "cmp",       AM_E|OT_b|P_r,               AM_G|OT_b|P_r,             FLAGS_NONE,   1 },
00110         { INSTRUCTION_TYPE_CMP,    "cmp",       AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00111         { INSTRUCTION_TYPE_CMP,    "cmp",       AM_G|OT_b|P_r,               AM_E|OT_b|P_r,             FLAGS_NONE,   1 },
00112         { INSTRUCTION_TYPE_CMP,    "cmp",       AM_G|OT_v|P_r,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00113         { INSTRUCTION_TYPE_CMP,    "cmp",       AM_REG|REG_EAX|OT_b|P_r,     AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00114         { INSTRUCTION_TYPE_CMP,    "cmp",       AM_REG|REG_EAX|OT_v|P_r,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00115         // seg DS override
00116         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00117         { INSTRUCTION_TYPE_ASC,    "aas",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00118         { INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_EAX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00119         { INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_ECX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00120         { INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_EDX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00121         { INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_EBX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00122         { INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_ESP|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00123         { INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_EBP|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00124         { INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_ESI|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00125         { INSTRUCTION_TYPE_INC,    "inc",       AM_REG|REG_EDI|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00126         { INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_EAX|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0 },
00127         { INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_ECX|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0 },
00128         { INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_EDX|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0 },
00129         { INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_EBX|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0 },
00130         { INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_ESP|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0 },
00131         { INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_EBP|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0 },
00132         { INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_ESI|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0 },
00133         { INSTRUCTION_TYPE_DEC,    "dec",       AM_REG|REG_EDI|OT_v,         FLAGS_NONE,                FLAGS_NONE,   0 },
00134         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_EAX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00135         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_ECX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00136         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_EDX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00137         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_EBX|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00138         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_ESP|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00139         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_EBP|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00140         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_ESI|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00141         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_EDI|OT_v|P_r,     FLAGS_NONE,                FLAGS_NONE,   0 },
00142         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_EAX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00143         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_ECX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00144         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_EDX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00145         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_EBX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00146         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_ESP|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00147         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_EBP|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00148         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_ESI|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00149         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_EDI|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00150         { INSTRUCTION_TYPE_PUSH ,  "pusha",     FLAGS_NONE|P_r,              FLAGS_NONE,                FLAGS_NONE,   0 },
00151         { INSTRUCTION_TYPE_POP,    "popa",      FLAGS_NONE|P_w,              FLAGS_NONE,                FLAGS_NONE,   0 },
00152         { INSTRUCTION_TYPE_OTHER,  "bound",     AM_G|OT_v|P_r,               AM_M|OT_v|P_r,             FLAGS_NONE,   1 },
00153         { INSTRUCTION_TYPE_PRIV,   "arpl",      AM_E|OT_w|P_r,               AM_G|OT_w|P_r,             FLAGS_NONE,   1 },
00154         // seg FS override
00155         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
00156         // seg GS override
00157         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
00158         // operand size override
00159         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
00160         // address size override
00161         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
00162         { INSTRUCTION_TYPE_PUSH,   "push",      AM_I|OT_v|P_r,               FLAGS_NONE,                FLAGS_NONE,   0 },
00163         { INSTRUCTION_TYPE_EIMUL,  "imul",      AM_G|OT_v|P_r,               AM_E|OT_v|P_r,             AM_I|OT_v|P_r,1 },
00164         { INSTRUCTION_TYPE_PUSH,   "push",      AM_I|OT_b|F_s|P_r,           FLAGS_NONE,                FLAGS_NONE,   0 },
00165         { INSTRUCTION_TYPE_EIMUL,  "imul",      AM_G|OT_v|P_r,               AM_E|OT_v|P_r,         AM_I|OT_b|F_s|P_r,1 },
00166         { INSTRUCTION_TYPE_PRIV,   "insb",      FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 },
00167         { INSTRUCTION_TYPE_PRIV,   "insv",      FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 },
00168         { INSTRUCTION_TYPE_PRIV,   "outsb",     FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 },
00169         { INSTRUCTION_TYPE_PRIV,   "outsv",     FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 },
00170         { INSTRUCTION_TYPE_JMPC,   "jo",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00171         { INSTRUCTION_TYPE_JMPC,   "jno",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00172         { INSTRUCTION_TYPE_JMPC,   "jc",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00173         { INSTRUCTION_TYPE_JMPC,   "jnc",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00174         { INSTRUCTION_TYPE_JMPC,   "jz",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00175         { INSTRUCTION_TYPE_JMPC,   "jnz",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00176         { INSTRUCTION_TYPE_JMPC,   "jna",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00177         { INSTRUCTION_TYPE_JMPC,   "ja",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00178         { INSTRUCTION_TYPE_JMPC,   "js",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00179         { INSTRUCTION_TYPE_JMPC,   "jns",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00180         { INSTRUCTION_TYPE_JMPC,   "jp",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00181         { INSTRUCTION_TYPE_JMPC,   "jpo",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00182         { INSTRUCTION_TYPE_JMPC,   "jl",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00183         { INSTRUCTION_TYPE_JMPC,   "jnl",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00184         { INSTRUCTION_TYPE_JMPC,   "jng",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00185         { INSTRUCTION_TYPE_JMPC,   "jg",        AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00186         { INSTRUCTION_TYPE_OTHER,  "g1",        AM_E|OT_b,                   AM_I|OT_b,                 FLAGS_NONE,   1 },
00187         { INSTRUCTION_TYPE_OTHER,  "g1",        AM_E|OT_v,                   AM_I|OT_v,                 FLAGS_NONE,   1 },
00188         { INSTRUCTION_TYPE_OTHER,  "g1",        AM_E|OT_b,                   AM_I|OT_b,                 FLAGS_NONE,   1 },
00189         { INSTRUCTION_TYPE_OTHER,  "g1",        AM_E|OT_v,                   AM_I|OT_b|F_s,             FLAGS_NONE,   1 },
00190         { INSTRUCTION_TYPE_TEST,   "test",      AM_E|OT_b|P_r,               AM_G|OT_b|P_r,             FLAGS_NONE,   1 },
00191         { INSTRUCTION_TYPE_TEST,   "test",      AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00192         { INSTRUCTION_TYPE_XCHG,   "xchg",      AM_E|OT_b|P_w,               AM_G|OT_b|P_w,             FLAGS_NONE,   1 },
00193         { INSTRUCTION_TYPE_XCHG,   "xchg",      AM_E|OT_v|P_w,               AM_G|OT_v|P_w,             FLAGS_NONE,   1 },
00194         { INSTRUCTION_TYPE_MOV,    "mov",       AM_E|OT_b|P_w,               AM_G|OT_b|P_r,             FLAGS_NONE,   1 },
00195         { INSTRUCTION_TYPE_MOV,    "mov",       AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00196         { INSTRUCTION_TYPE_MOV,    "mov",       AM_G|OT_b|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1 },
00197         { INSTRUCTION_TYPE_MOV,    "mov",       AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00198         { INSTRUCTION_TYPE_MOVSR,  "mov",       AM_E|OT_w|P_w,               AM_S|OT_w|P_r,             FLAGS_NONE,   1 },
00199         { INSTRUCTION_TYPE_LEA,    "lea",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1 },
00200         { INSTRUCTION_TYPE_MOVSR,  "mov",       AM_S|OT_w|P_w,               AM_E|OT_w|P_r,             FLAGS_NONE,   1 },
00201         { INSTRUCTION_TYPE_POP,    "pop",       AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00202         { INSTRUCTION_TYPE_OTHER,  "nop",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00203         { INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_ECX|OT_v|P_w,   FLAGS_NONE,   0 },
00204         { INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_EDX|OT_v|P_w,   FLAGS_NONE,   0 },
00205         { INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_EBX|OT_v|P_w,   FLAGS_NONE,   0 },
00206         { INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_ESP|OT_v|P_w,   FLAGS_NONE,   0 },
00207         { INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_EBP|OT_v|P_w,   FLAGS_NONE,   0 },
00208         { INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_ESI|OT_v|P_w,   FLAGS_NONE,   0 },
00209         { INSTRUCTION_TYPE_XCHG,   "xchg",      AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_EDI|OT_v|P_w,   FLAGS_NONE,   0 },
00210         { INSTRUCTION_TYPE_OTHER,  "cbw",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00211         { INSTRUCTION_TYPE_OTHER,  "cwd",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00212         { INSTRUCTION_TYPE_CALL,   "callf",     AM_A|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00213         { INSTRUCTION_TYPE_OTHER,  "wait",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00214         { INSTRUCTION_TYPE_PUSH,   "pushf",     FLAGS_NONE|P_r,              FLAGS_NONE,                FLAGS_NONE,   0 },
00215         { INSTRUCTION_TYPE_POP,    "popf",      FLAGS_NONE|P_w,              FLAGS_NONE,                FLAGS_NONE,   0 },
00216         { INSTRUCTION_TYPE_OTHER,  "sahf",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00217         { INSTRUCTION_TYPE_OTHER,  "lahf",      FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 },
00218         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EAX|OT_b|P_w,     AM_O|OT_v|P_r,             FLAGS_NONE,   0 },
00219         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EAX|OT_v|P_w,     AM_O|OT_v|P_r,             FLAGS_NONE,   0 },
00220         { INSTRUCTION_TYPE_MOV,    "mov",       AM_O|OT_v|P_w,               AM_REG|REG_EAX|OT_b|P_r,   FLAGS_NONE,   0 },
00221         { INSTRUCTION_TYPE_MOV,    "mov",       AM_O|OT_v|P_w,               AM_REG|REG_EAX|OT_v|P_r,   FLAGS_NONE,   0 },
00222         { INSTRUCTION_TYPE_MOVS,   "movsb",     FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 },
00223         { INSTRUCTION_TYPE_MOVS,   "movsd",     FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 },
00224         { INSTRUCTION_TYPE_CMPS,   "cmpsb",     FLAGS_NONE|P_r,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 },
00225         { INSTRUCTION_TYPE_CMPS,   "cmpsd",     FLAGS_NONE|P_r,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 },
00226         { INSTRUCTION_TYPE_TEST,   "test",      AM_REG|REG_EAX|OT_b|P_r,     AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00227         { INSTRUCTION_TYPE_TEST,   "test",      AM_REG|REG_EAX|OT_v|P_r,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00228         { INSTRUCTION_TYPE_STOS,   "stosb",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00229         { INSTRUCTION_TYPE_STOS,   "stosd",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00230         { INSTRUCTION_TYPE_LODS,   "lodsb",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00231         { INSTRUCTION_TYPE_LODS,   "lodsd",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00232         { INSTRUCTION_TYPE_SCAS,   "scasb",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00233         { INSTRUCTION_TYPE_SCAS,   "scasd",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00234         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_AL|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00235         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_CL|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00236         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_DL|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00237         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_BL|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00238         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_AH|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00239         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_CH|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00240         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_DH|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00241         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_BH|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00242         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00243         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_ECX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00244         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EDX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00245         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EBX|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00246         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_ESP|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00247         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EBP|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00248         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_ESI|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00249         { INSTRUCTION_TYPE_MOV,    "mov",       AM_REG|REG_EDI|OT_v|P_w,     AM_I|OT_v|P_r,             FLAGS_NONE,   0 },
00250         { INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_b,                   AM_I|OT_b,                 FLAGS_NONE,   1 }, 
00251         { INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_v,                   AM_I|OT_b,                 FLAGS_NONE,   1 },
00252         { INSTRUCTION_TYPE_RET,    "retn",      AM_I|OT_w|P_r,               FLAGS_NONE,                FLAGS_NONE,   0 },
00253         { INSTRUCTION_TYPE_RET,    "ret",       FLAGS_NONE|P_r,              FLAGS_NONE,                FLAGS_NONE,   0 },
00254         { INSTRUCTION_TYPE_LFP,    "les",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1 },
00255         { INSTRUCTION_TYPE_LFP,    "lds",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1 },
00256         { INSTRUCTION_TYPE_MOV,    "mov",       AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
00257         { INSTRUCTION_TYPE_MOV,    "mov",       AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1 },
00258         { INSTRUCTION_TYPE_OTHER,  "enter",     AM_I|OT_w|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00259         { INSTRUCTION_TYPE_POP,    "leave",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00260         { INSTRUCTION_TYPE_RET,    "retf",      AM_I|OT_w|P_r,               FLAGS_NONE,                FLAGS_NONE,   0 },
00261         { INSTRUCTION_TYPE_OTHER,  "retf",      FLAGS_NONE|P_r,              FLAGS_NONE,                FLAGS_NONE,   0 },
00262         { INSTRUCTION_TYPE_INT,    "int3",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00263         { INSTRUCTION_TYPE_INT,    "int",       AM_I|OT_b|P_r,               FLAGS_NONE,                FLAGS_NONE,   0 },
00264         { INSTRUCTION_TYPE_OTHER,  "into",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00265         { INSTRUCTION_TYPE_OTHER,  "iret",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00266         { INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_b,                   AM_I1|OT_b,                FLAGS_NONE,   1 },
00267         { INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_v,                   AM_I1|OT_b,                FLAGS_NONE,   1 },
00268         { INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_b,                   AM_REG|REG_CL|OT_b,        FLAGS_NONE,   1 },
00269         { INSTRUCTION_TYPE_OTHER,  "g2",        AM_E|OT_v,                   AM_REG|REG_CL|OT_b,        FLAGS_NONE,   1 },
00270         { INSTRUCTION_TYPE_ASC,    "aam",       AM_I|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   0 },
00271         { INSTRUCTION_TYPE_ASC,    "aad",       AM_I|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   0 },
00272         { INSTRUCTION_TYPE_OTHER,  "salc",      FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 },
00273         { INSTRUCTION_TYPE_OTHER,  "xlat",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00274         { INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00275         { INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00276         { INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00277         { INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00278         { INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00279         { INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00280         { INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00281         { INSTRUCTION_TYPE_OTHER,  "esc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00282         { INSTRUCTION_TYPE_LOOP,   "loopn",     AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00283         { INSTRUCTION_TYPE_LOOP,   "loope",     AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00284         { INSTRUCTION_TYPE_LOOP,   "loop",      AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00285         { INSTRUCTION_TYPE_JMPC,   "jecxz",     AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00286         { INSTRUCTION_TYPE_PRIV,   "in",        AM_REG|REG_AL|OT_b|P_w,      AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00287         { INSTRUCTION_TYPE_PRIV,   "in",        AM_REG|REG_EAX|OT_v|P_w,     AM_I|OT_b|P_r,             FLAGS_NONE,   0 },
00288         { INSTRUCTION_TYPE_PRIV,   "out",       AM_I|OT_b|P_w,               AM_REG|REG_AL|OT_b|P_r,    FLAGS_NONE,   0 },
00289         { INSTRUCTION_TYPE_PRIV,   "out",       AM_I|OT_b|P_w,               AM_REG|REG_EAX|OT_v|P_r,   FLAGS_NONE,   0 },
00290         { INSTRUCTION_TYPE_CALL,   "call",      AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00291         { INSTRUCTION_TYPE_JMP,    "jmp",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00292         { INSTRUCTION_TYPE_JMP,    "jmpf",      AM_A|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00293         { INSTRUCTION_TYPE_JMP,    "jmp",       AM_J|OT_b|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00294         { INSTRUCTION_TYPE_PRIV,   "in",        AM_REG|REG_EAX|OT_b|P_w,     AM_REG|REG_EDX|OT_w|P_r,   FLAGS_NONE,   0 },
00295         { INSTRUCTION_TYPE_PRIV,   "in",        AM_REG|REG_EAX|OT_v|P_w,     AM_REG|REG_EDX|OT_w|P_r,   FLAGS_NONE,   0 },
00296         { INSTRUCTION_TYPE_PRIV,   "out",       AM_REG|REG_EDX|OT_w|P_w,     AM_REG|REG_EAX|OT_b|P_r,   FLAGS_NONE,   0 },
00297         { INSTRUCTION_TYPE_PRIV,   "out",       AM_REG|REG_EDX|OT_w|P_w,     AM_REG|REG_EAX|OT_v|P_r,   FLAGS_NONE,   0 },
00298         { INSTRUCTION_TYPE_OTHER,  "ext",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00299         { INSTRUCTION_TYPE_OTHER,  "int1",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00300         { INSTRUCTION_TYPE_OTHER,  "ext",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00301         { INSTRUCTION_TYPE_OTHER,  "ext",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00302         { INSTRUCTION_TYPE_PRIV,   "hlt",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00303         { INSTRUCTION_TYPE_OTHER,  "cmc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00304         { INSTRUCTION_TYPE_OTHER,  "g3",        AM_E|OT_b,                   FLAGS_NONE,                FLAGS_NONE,   1 }, 
00305         { INSTRUCTION_TYPE_OTHER,  "g3",        AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1 }, 
00306         { INSTRUCTION_TYPE_OTHER,  "clc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00307         { INSTRUCTION_TYPE_OTHER,  "stc",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00308         { INSTRUCTION_TYPE_OTHER,  "cli",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00309         { INSTRUCTION_TYPE_OTHER,  "sti",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00310         { INSTRUCTION_TYPE_OTHER,  "cld",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00311         { INSTRUCTION_TYPE_OTHER,  "std",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00312         { INSTRUCTION_TYPE_OTHER,  "g4",        AM_E|OT_b,                   FLAGS_NONE,                FLAGS_NONE,   1 },
00313         { INSTRUCTION_TYPE_OTHER,  "g5",        AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1 }, 
00314 };
00315 
00316 
00317 // 2-byte instructions
00318 
00319 INST inst_table2[256] = {
00320         { INSTRUCTION_TYPE_OTHER,  "g6",        AM_E|OT_w,                   FLAGS_NONE,                FLAGS_NONE,   1 },
00321         { INSTRUCTION_TYPE_OTHER,  "g7",        AM_M|OT_w,                   FLAGS_NONE,                FLAGS_NONE,   1 },
00322         { INSTRUCTION_TYPE_PRIV,   "lar",       AM_G|OT_v|P_w,               AM_E|OT_w|P_r,             FLAGS_NONE,   1 },
00323         { INSTRUCTION_TYPE_PRIV,   "lsl",       AM_G|OT_v|P_w,               AM_E|OT_w|P_r,             FLAGS_NONE,   1 },
00324         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00325         { INSTRUCTION_TYPE_OTHER,  "loadall286",FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00326         { INSTRUCTION_TYPE_OTHER,  "clts",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00327         { INSTRUCTION_TYPE_OTHER,  "loadall",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00328         { INSTRUCTION_TYPE_PRIV,   "invd",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00329         { INSTRUCTION_TYPE_OTHER,  "wbinvd",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00330         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00331         { INSTRUCTION_TYPE_OTHER,  "ud2",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00332         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00333         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00334         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00335         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00336         { INSTRUCTION_TYPE_SSE|TYPE_3,"movups", AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00337         { INSTRUCTION_TYPE_SSE|TYPE_3,"movups", AM_W|OT_ps|P_w,              AM_V|OT_ps|P_r,            FLAGS_NONE,   1 },
00338         { INSTRUCTION_TYPE_SSE|TYPE_3,"movlps", AM_V|OT_q|P_w,               AM_M|OT_q|P_r,             FLAGS_NONE,   1 },
00339         { INSTRUCTION_TYPE_SSE|TYPE_3,"movlps", AM_M|OT_q|P_w,               AM_V|OT_q|P_r,             FLAGS_NONE,   1 },
00340         { INSTRUCTION_TYPE_SSE|TYPE_3,"unpcklps",AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00341         { INSTRUCTION_TYPE_SSE|TYPE_3,"unpcklps",AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00342         { INSTRUCTION_TYPE_SSE|TYPE_3,"movhps", AM_V|OT_q|P_w,               AM_M|OT_q|P_r,             FLAGS_NONE,   1 },
00343         { INSTRUCTION_TYPE_SSE|TYPE_3,"movhps", AM_M|OT_q|P_w,               AM_V|OT_ps|P_r,            FLAGS_NONE,   1 },
00344         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00345         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00346         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00347         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00348         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00349         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00350         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00351         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00352         { INSTRUCTION_TYPE_PRIV,   "mov",       AM_R|OT_d|P_w,               AM_C|OT_d|P_r,             FLAGS_NONE,   1 },
00353         { INSTRUCTION_TYPE_PRIV,   "mov",       AM_R|OT_d|P_w,               AM_D|OT_d|P_r,             FLAGS_NONE,   1 },
00354         { INSTRUCTION_TYPE_PRIV,   "mov",       AM_C|OT_d|P_w,               AM_R|OT_d|P_r,             FLAGS_NONE,   1 },
00355         { INSTRUCTION_TYPE_PRIV,   "mov",       AM_D|OT_d|P_w,               AM_R|OT_d|P_r,             FLAGS_NONE,   1 },
00356         { INSTRUCTION_TYPE_PRIV,   "mov",       AM_R|OT_d|P_w,               AM_T|OT_d|P_r,             FLAGS_NONE,   1 },
00357         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00358         { INSTRUCTION_TYPE_PRIV,   "mov",       AM_T|OT_d|P_w,               AM_R|OT_d|P_r,             FLAGS_NONE,   1 },
00359         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00360         { INSTRUCTION_TYPE_SSE|TYPE_3,"movaps", AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00361         { INSTRUCTION_TYPE_SSE|TYPE_3,"movaps", AM_W|OT_ps|P_w,              AM_V|OT_ps|P_r,            FLAGS_NONE,   1 },
00362         { INSTRUCTION_TYPE_SSE|TYPE_3,"cvtpi2ps",AM_V|OT_ps|P_r,              AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00363         { INSTRUCTION_TYPE_SSE|TYPE_3,"movntps",AM_M|OT_ps|P_w,              AM_V|OT_ps|P_r,            FLAGS_NONE,   1 },
00364         { INSTRUCTION_TYPE_SSE|TYPE_3,"cvttps2pi",AM_P|OT_q|P_r,               AM_W|OT_q|P_r,             FLAGS_NONE,   1 },
00365         { INSTRUCTION_TYPE_SSE|TYPE_3,"cvtps2pi",AM_P|OT_q|P_r,               AM_W|OT_q|P_r,             FLAGS_NONE,   1 },
00366         { INSTRUCTION_TYPE_SSE|TYPE_3,"ucomiss",AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
00367         { INSTRUCTION_TYPE_SSE|TYPE_3,"comiss", AM_V|OT_ss|P_w,              AM_W|OT_ss|P_w,            FLAGS_NONE,   1 },
00368         { INSTRUCTION_TYPE_OTHER, "wrmsr",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00369         { INSTRUCTION_TYPE_OTHER, "rdtsc",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00370         { INSTRUCTION_TYPE_PRIV,  "rdmsr",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00371         { INSTRUCTION_TYPE_OTHER, "rdpmc",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00372         { INSTRUCTION_TYPE_OTHER,  "sysenter",  FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00373         { INSTRUCTION_TYPE_PRIV,  "sysexit",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00374         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00375         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00376         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00377         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00378         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00379         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00380         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00381         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00382         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00383         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00384         { INSTRUCTION_TYPE_MOVC,   "cmovo",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00385         { INSTRUCTION_TYPE_MOVC,   "cmovno",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00386         { INSTRUCTION_TYPE_MOVC,   "cmovb",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00387         { INSTRUCTION_TYPE_MOVC,   "cmovae",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00388         { INSTRUCTION_TYPE_MOVC,   "cmove",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00389         { INSTRUCTION_TYPE_MOVC,   "cmovne",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00390         { INSTRUCTION_TYPE_MOVC,   "cmovbe",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00391         { INSTRUCTION_TYPE_MOVC,   "cmova",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00392         { INSTRUCTION_TYPE_MOVC,   "cmovs",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00393         { INSTRUCTION_TYPE_MOVC,   "cmovns",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00394         { INSTRUCTION_TYPE_MOVC,   "cmovp",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00395         { INSTRUCTION_TYPE_MOVC,   "cmovnp",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00396         { INSTRUCTION_TYPE_MOVC,   "cmovl",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00397         { INSTRUCTION_TYPE_MOVC,   "cmovge",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00398         { INSTRUCTION_TYPE_MOVC,   "cmovle",    AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00399         { INSTRUCTION_TYPE_MOVC,   "cmovg",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00400         { INSTRUCTION_TYPE_SSE|TYPE_3,"movmskps",AM_G|OT_d|P_w,               AM_V|OT_ps|P_r,            FLAGS_NONE,   1 },
00401         { INSTRUCTION_TYPE_SSE|TYPE_3,"sqrtps", AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00402         { INSTRUCTION_TYPE_SSE|TYPE_3,"rsqrtps",AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00403         { INSTRUCTION_TYPE_SSE|TYPE_3,"rcpps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00404         { INSTRUCTION_TYPE_SSE|TYPE_3,"andps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00405         { INSTRUCTION_TYPE_SSE|TYPE_3,"andnps", AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00406         { INSTRUCTION_TYPE_SSE|TYPE_3,"orps",   AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00407         { INSTRUCTION_TYPE_SSE|TYPE_3,"xorps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00408         { INSTRUCTION_TYPE_SSE|TYPE_3,"addps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00409         { INSTRUCTION_TYPE_SSE|TYPE_3,"mulps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00410         { INSTRUCTION_TYPE_SSE|TYPE_3,"cvtps2pd",AM_V|OT_pd|P_r,              AM_W|OT_q|P_r,             FLAGS_NONE,   1 },
00411         { INSTRUCTION_TYPE_SSE|TYPE_3,"cvtdq2ps",AM_V|OT_ps|P_r,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00412         { INSTRUCTION_TYPE_SSE|TYPE_3,"subps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00413         { INSTRUCTION_TYPE_SSE|TYPE_3,"minps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00414         { INSTRUCTION_TYPE_SSE|TYPE_3,"divps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00415         { INSTRUCTION_TYPE_SSE|TYPE_3,"maxps",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00416         { INSTRUCTION_TYPE_MMX|TYPE_3,"punpcklbw",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00417         { INSTRUCTION_TYPE_MMX|TYPE_3,"punpcklwd",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00418         { INSTRUCTION_TYPE_MMX|TYPE_3,"punpckldq",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00419         { INSTRUCTION_TYPE_MMX|TYPE_3,"packusdw",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00420         { INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpgtb",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00421         { INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpgtw",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00422         { INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpgtd",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00423         { INSTRUCTION_TYPE_MMX|TYPE_3,"packsswb",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00424         { INSTRUCTION_TYPE_MMX|TYPE_3,"punpckhbw",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00425         { INSTRUCTION_TYPE_MMX|TYPE_3,"punpckhbd",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00426         { INSTRUCTION_TYPE_MMX|TYPE_3,"punpckhdq",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00427         { INSTRUCTION_TYPE_MMX|TYPE_3,"packssdw",AM_P|OT_q|P_w,               AM_Q|OT_d|P_r,             FLAGS_NONE,   1 },
00428         { INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00429         { INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00430         { INSTRUCTION_TYPE_MMX|TYPE_3, "movd",  AM_P|OT_d|P_w,               AM_E|OT_d|P_r,             FLAGS_NONE,   1 },
00431         { INSTRUCTION_TYPE_MMX|TYPE_3,"movq",   AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00432         { INSTRUCTION_TYPE_MMX|TYPE_3,"pshufw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             AM_I|OT_b,    1 },
00433         // groups 12-14
00434         { INSTRUCTION_TYPE_MMX,    "g12",       AM_P|OT_q,                   AM_I|OT_b,                 FLAGS_NONE,   1 },
00435         { INSTRUCTION_TYPE_MMX,    "g13",       AM_P|OT_q,                   AM_I|OT_b,                 FLAGS_NONE,   1 },
00436         { INSTRUCTION_TYPE_MMX,    "g14",       AM_P|OT_q,                   AM_I|OT_b,                 FLAGS_NONE,   1 },
00437         { INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpeqb",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00438         { INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpeqw",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00439         { INSTRUCTION_TYPE_MMX|TYPE_3,"pcmpeqd",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00440         { INSTRUCTION_TYPE_MMX,    "emms",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00441         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00442         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00443         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00444         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00445         { INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,  FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00446         { INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,  FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00447         { INSTRUCTION_TYPE_MMX|TYPE_3,"movd",   AM_E|OT_d|P_w,               AM_P|OT_d|P_r,             FLAGS_NONE,   1 },
00448         { INSTRUCTION_TYPE_MMX|TYPE_3,"movq",   AM_Q|OT_q|P_w,               AM_P|OT_q|P_r,             FLAGS_NONE,   1 },
00449         { INSTRUCTION_TYPE_JMPC,   "jo",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00450         { INSTRUCTION_TYPE_JMPC,   "jno",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00451         { INSTRUCTION_TYPE_JMPC,   "jc",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00452         { INSTRUCTION_TYPE_JMPC,   "jnc",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00453         { INSTRUCTION_TYPE_JMPC,   "jz",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00454         { INSTRUCTION_TYPE_JMPC,   "jnz",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00455         { INSTRUCTION_TYPE_JMPC,   "jna",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00456         { INSTRUCTION_TYPE_JMPC,   "ja",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00457         { INSTRUCTION_TYPE_JMPC,   "js",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00458         { INSTRUCTION_TYPE_JMPC,   "jns",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00459         { INSTRUCTION_TYPE_JMPC,   "jp",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00460         { INSTRUCTION_TYPE_JMPC,   "jpo",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00461         { INSTRUCTION_TYPE_JMPC,   "jl",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00462         { INSTRUCTION_TYPE_JMPC,   "jnl",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00463         { INSTRUCTION_TYPE_JMPC,   "jng",       AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00464         { INSTRUCTION_TYPE_JMPC,   "jg",        AM_J|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   0 },
00465         { INSTRUCTION_TYPE_SETC,   "seto",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00466         { INSTRUCTION_TYPE_SETC,   "setno",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00467         { INSTRUCTION_TYPE_SETC,   "setb",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00468         { INSTRUCTION_TYPE_SETC,   "setnb",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00469         { INSTRUCTION_TYPE_SETC,   "setz",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00470         { INSTRUCTION_TYPE_SETC,   "setnz",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00471         { INSTRUCTION_TYPE_SETC,   "setbe",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00472         { INSTRUCTION_TYPE_SETC,   "setnbe",    AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00473         { INSTRUCTION_TYPE_SETC,   "sets",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00474         { INSTRUCTION_TYPE_SETC,   "setns",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00475         { INSTRUCTION_TYPE_SETC,   "setp",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00476         { INSTRUCTION_TYPE_SETC,   "setnp",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00477         { INSTRUCTION_TYPE_SETC,   "setl",      AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00478         { INSTRUCTION_TYPE_SETC,   "setnl",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00479         { INSTRUCTION_TYPE_SETC,   "setle",     AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00480         { INSTRUCTION_TYPE_SETC,   "setnle",    AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
00481         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_FS|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0 },
00482         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_FS|F_r|P_w,       FLAGS_NONE,                FLAGS_NONE,   0 },
00483         { INSTRUCTION_TYPE_OTHER,  "cpuid",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00484         { INSTRUCTION_TYPE_BT,     "bt",        AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00485         { INSTRUCTION_TYPE_OTHER,  "shld",      AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             AM_I|OT_b|P_r,1 },
00486         { INSTRUCTION_TYPE_OTHER,  "shld",      AM_E|OT_v|P_w,               AM_G|OT_v|P_r,   AM_REG|REG_ECX|OT_b|P_r,1 },
00487         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00488         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00489         { INSTRUCTION_TYPE_PUSH,   "push",      AM_REG|REG_GS|F_r|P_r,       FLAGS_NONE,                FLAGS_NONE,   0 },
00490         { INSTRUCTION_TYPE_POP,    "pop",       AM_REG|REG_GS|F_r|P_w,       FLAGS_NONE,                FLAGS_NONE,   0 },
00491         { INSTRUCTION_TYPE_OTHER,  "rsm",       FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00492         { INSTRUCTION_TYPE_BTS,    "bts",       AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00493         { INSTRUCTION_TYPE_OTHER,  "shrd",      AM_E|OT_v|P_w,               AM_G|OT_v|P_r,             AM_I|OT_b|P_r,1 },
00494         { INSTRUCTION_TYPE_OTHER,  "shrd",      AM_E|OT_v|P_w,               AM_G|OT_v|P_r,   AM_REG|REG_ECX|OT_b|P_r,1 },
00495         // XXX: check addressing mode, Intel manual is a little bit confusing...
00496         { INSTRUCTION_TYPE_OTHER,  "grp15",     AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1 },
00497         { INSTRUCTION_TYPE_EIMUL,  "imul",      AM_G|OT_v|P_r,               AM_E|OT_v|P_r,            FLAGS_NONE|P_r,1 },
00498         { INSTRUCTION_TYPE_OTHER,  "cmpxchg",   AM_E|OT_b|P_w,               AM_G|OT_b|P_w,             FLAGS_NONE,   1 },
00499         { INSTRUCTION_TYPE_OTHER,  "cmpxchg",   AM_E|OT_v|P_w,               AM_G|OT_v|P_w,             FLAGS_NONE,   1 },
00500         { INSTRUCTION_TYPE_LFP,    "lss",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1 },
00501         { INSTRUCTION_TYPE_BTR,    "btr",       AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00502         { INSTRUCTION_TYPE_LFP,    "lfs",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1 },
00503         { INSTRUCTION_TYPE_LFP,    "lgs",       AM_G|OT_v|P_w,               AM_M|OT_v|P_r,             FLAGS_NONE,   1 },
00504         { INSTRUCTION_TYPE_MOVZX,  "movzx",     AM_G|OT_v|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00505         { INSTRUCTION_TYPE_MOVZX,  "movzx",     AM_G|OT_d|P_w,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00506         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00507         // XXX: group 10 / invalid opcode?
00508         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00509         { INSTRUCTION_TYPE_OTHER, "g8",         AM_E|OT_v,                   AM_I|OT_b,                 FLAGS_NONE,   1 },
00510         { INSTRUCTION_TYPE_BTC,    "btc",       AM_E|OT_v|P_r,               AM_G|OT_v|P_r,             FLAGS_NONE,   1 },
00511         { INSTRUCTION_TYPE_BSF,    "bsf",       AM_G|OT_v|P_r,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00512         { INSTRUCTION_TYPE_BSR,    "bsr",       AM_G|OT_v|P_r,               AM_E|OT_v|P_r,             FLAGS_NONE,   1 },
00513         { INSTRUCTION_TYPE_MOVSX,  "movsx",     AM_G|OT_v|P_w,               AM_E|OT_b|P_r,             FLAGS_NONE,   1 },
00514         { INSTRUCTION_TYPE_MOVSX,  "movsx",     AM_G|OT_v|P_w,               AM_E|OT_w|P_r,             FLAGS_NONE,   1 },
00515         { INSTRUCTION_TYPE_XADD,   "xadd",      AM_E|OT_b|P_w,               AM_G|OT_b|P_w,             FLAGS_NONE,   1 },
00516         { INSTRUCTION_TYPE_XADD,   "xadd",      AM_E|OT_v|P_w,               AM_G|OT_v|P_w,             FLAGS_NONE,   1 },
00517         { INSTRUCTION_TYPE_SSE|TYPE_3,"cmpps",  AM_V|OT_ps|P_r,              AM_W|OT_ps|P_r,            AM_I|OT_b,    1 },
00518         { INSTRUCTION_TYPE_OTHER,  "movnti",    AM_M|OT_d|P_w,               AM_G|OT_d|P_r,             FLAGS_NONE,   1 },
00519         { INSTRUCTION_TYPE_SSE|TYPE_3,"pinsrw", AM_P|OT_w|P_w,               AM_E|OT_w|P_r,             AM_I|OT_b,    1 },
00520         { INSTRUCTION_TYPE_SSE|TYPE_3,"pextrv", AM_G|OT_w|P_w,               AM_P|OT_w|P_r,             AM_I|OT_b|P_r,1 },
00521         { INSTRUCTION_TYPE_SSE|TYPE_3,"shufps", AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            AM_I|OT_b|P_r,1 },
00522         { INSTRUCTION_TYPE_OTHER,  "g9",        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00523         { INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_EAX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00524         { INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_ECX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00525         { INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_EDX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00526         { INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_EBX|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00527         { INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_ESP|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00528         { INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_EBP|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00529         { INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_ESI|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00530         { INSTRUCTION_TYPE_BSWAP,  "bswap",     AM_REG|REG_EDI|OT_v|P_w,     FLAGS_NONE,                FLAGS_NONE,   0 },
00531         { INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00532         { INSTRUCTION_TYPE_MMX|TYPE_3,"psrlw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00533         { INSTRUCTION_TYPE_MMX|TYPE_3,"psrld",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00534         { INSTRUCTION_TYPE_MMX|TYPE_3,"psrlq",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00535         { INSTRUCTION_TYPE_MMX|TYPE_3,"paddq",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00536         { INSTRUCTION_TYPE_MMX|TYPE_3,"pmullw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00537         { INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00538         { INSTRUCTION_TYPE_MMX|TYPE_3,"pmovmskb",AM_G|OT_q|P_w,               AM_P|OT_q|P_r,             FLAGS_NONE,   1 },
00539         { INSTRUCTION_TYPE_MMX|TYPE_3,"psubusb",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00540         { INSTRUCTION_TYPE_MMX|TYPE_3,"psubusw",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00541         { INSTRUCTION_TYPE_MMX|TYPE_3,"pminub", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00542         { INSTRUCTION_TYPE_MMX|TYPE_3,"pand",   AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00543         { INSTRUCTION_TYPE_MMX|TYPE_3,"paddusb",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00544         { INSTRUCTION_TYPE_MMX|TYPE_3,"paddusw",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00545         { INSTRUCTION_TYPE_MMX|TYPE_3,"pmaxsw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00546         { INSTRUCTION_TYPE_MMX|TYPE_3,"pandn",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00547         { INSTRUCTION_TYPE_MMX|TYPE_3,"pavgb",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00548         { INSTRUCTION_TYPE_MMX|TYPE_3,"psraw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00549         { INSTRUCTION_TYPE_MMX|TYPE_3,"psrad",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00550         { INSTRUCTION_TYPE_MMX|TYPE_3,"pavgw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00551         { INSTRUCTION_TYPE_MMX|TYPE_3,"pmulhuw",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00552         { INSTRUCTION_TYPE_MMX|TYPE_3,"pmulhw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00553         { INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00554         { INSTRUCTION_TYPE_MMX|TYPE_3,"movntq", AM_M|OT_q|P_w,               AM_V|OT_q|P_r,             FLAGS_NONE,   1 },
00555         { INSTRUCTION_TYPE_MMX|TYPE_3,"psubsb", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00556         { INSTRUCTION_TYPE_MMX|TYPE_3,"psubsw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00557         { INSTRUCTION_TYPE_MMX|TYPE_3,"pminsw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00558         { INSTRUCTION_TYPE_MMX|TYPE_3,"por",    AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00559         { INSTRUCTION_TYPE_MMX|TYPE_3,"paddsb", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00560         { INSTRUCTION_TYPE_MMX|TYPE_3,"paddsw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00561         { INSTRUCTION_TYPE_MMX|TYPE_3,"pmaxsw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00562         { INSTRUCTION_TYPE_MMX|TYPE_3,"pxor",   AM_P|OT_q,                   AM_Q|OT_q,                 FLAGS_NONE,   1 },
00563         { INSTRUCTION_TYPE_OTHER|TYPE_3,NULL,   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00564         { INSTRUCTION_TYPE_MMX|TYPE_3,"psllw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00565         { INSTRUCTION_TYPE_MMX|TYPE_3,"pslld",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00566         { INSTRUCTION_TYPE_MMX|TYPE_3,"psllq",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00567         { INSTRUCTION_TYPE_MMX|TYPE_3,"pmuludq",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00568         { INSTRUCTION_TYPE_MMX|TYPE_3,"pmaddwd",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00569         { INSTRUCTION_TYPE_MMX|TYPE_3,"psadbw", AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00570         // XXX: check operand types
00571         { INSTRUCTION_TYPE_MMX|TYPE_3,"maskmovq",AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00572         { INSTRUCTION_TYPE_MMX|TYPE_3,"psubb",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00573         { INSTRUCTION_TYPE_MMX|TYPE_3,"psubw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00574         { INSTRUCTION_TYPE_MMX|TYPE_3,"psubd",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00575         { INSTRUCTION_TYPE_MMX|TYPE_3,"psubq",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00576         { INSTRUCTION_TYPE_MMX|TYPE_3,"paddb",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00577         { INSTRUCTION_TYPE_MMX|TYPE_3,"paddw",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00578         { INSTRUCTION_TYPE_MMX|TYPE_3,"paddd",  AM_P|OT_q|P_w,               AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00579         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00580 };
00581 
00582 // 3-byte instructions, prefix 0x66
00583 
00584 // Yeah, I know, it's waste to use a full 256-instruction table but now
00585 // I'm prepared for future Intel extensions ;-)
00586 
00587 INST inst_table3_66[256] = {
00588         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00589         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00590         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00591         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00592         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00593         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00594         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00595         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00596         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00597         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00598         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00599         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00600         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00601         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00602         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00603         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00604         { INSTRUCTION_TYPE_SSE,    "movupd",    AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00605         { INSTRUCTION_TYPE_SSE,    "movupd",    AM_W|OT_pd|P_w,              AM_V|OT_pd|P_r,            FLAGS_NONE,   1 },
00606         { INSTRUCTION_TYPE_SSE,    "movlpd",    AM_V|OT_q|P_w,               AM_M|OT_q|P_r,             FLAGS_NONE,   1 },
00607         { INSTRUCTION_TYPE_SSE,    "movlpd",    AM_M|OT_q|P_w,               AM_V|OT_q|P_r,             FLAGS_NONE,   1 },
00608         { INSTRUCTION_TYPE_SSE,    "unpcklpd",  AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00609         { INSTRUCTION_TYPE_SSE,    "unpcklpd",  AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00610         { INSTRUCTION_TYPE_SSE,    "movhpd",    AM_V|OT_q|P_w,               AM_M|OT_q|P_r,             FLAGS_NONE,   1 },
00611         { INSTRUCTION_TYPE_SSE,    "movhpd",    AM_M|OT_q|P_w,               AM_V|OT_pd|P_r,            FLAGS_NONE,   1 },
00612         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00613         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00614         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00615         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00616         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00617         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00618         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00619         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00620         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00621         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00622         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00623         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00624         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00625         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00626         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00627         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00628         { INSTRUCTION_TYPE_SSE,    "movapd",    AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00629         { INSTRUCTION_TYPE_SSE,    "movapd",    AM_W|OT_pd|P_w,              AM_V|OT_pd|P_r,            FLAGS_NONE,   1 },
00630         { INSTRUCTION_TYPE_SSE,    "cvtpi2pd",  AM_V|OT_pd|P_r,              AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
00631         { INSTRUCTION_TYPE_SSE,    "movntpd",   AM_M|OT_pd|P_w,              AM_V|OT_pd|P_r,            FLAGS_NONE,   1 },
00632         { INSTRUCTION_TYPE_SSE,    "cvttpd2pi", AM_P|OT_q|P_r,               AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00633         { INSTRUCTION_TYPE_SSE,    "cvtpd2pi",  AM_P|OT_q|P_r,               AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00634         { INSTRUCTION_TYPE_SSE,    "ucomisd",   AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00635         { INSTRUCTION_TYPE_SSE,    "comisd",    AM_V|OT_sd|P_w,              AM_W|OT_sd|P_w,            FLAGS_NONE,   1 },
00636         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00637         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00638         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00639         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00640         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00641         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00642         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00643         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00644         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00645         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00646         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00647         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00648         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00649         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00650         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00651         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00652         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00653         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00654         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00655         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00656         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00657         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00658         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00659         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00660         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00661         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00662         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00663         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00664         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00665         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00666         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00667         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00668         { INSTRUCTION_TYPE_SSE,    "movmskpd",  AM_G|OT_d|P_w,               AM_V|OT_pd|P_r,            FLAGS_NONE,   1 },
00669         { INSTRUCTION_TYPE_SSE,    "sqrtpd",    AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00670         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00671         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00672         { INSTRUCTION_TYPE_SSE,    "andpd",     AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00673         { INSTRUCTION_TYPE_SSE,    "andnpd",    AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00674         { INSTRUCTION_TYPE_SSE,    "orpd",      AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00675         { INSTRUCTION_TYPE_SSE,    "xorpd",     AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00676         { INSTRUCTION_TYPE_SSE,    "addpd",     AM_V|OT_pd|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00677         { INSTRUCTION_TYPE_SSE,    "mulpd",     AM_V|OT_pd|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00678         { INSTRUCTION_TYPE_SSE,    "cvtpd2ps",  AM_V|OT_pd|P_r,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00679         { INSTRUCTION_TYPE_SSE,    "cvtps2dq",  AM_V|OT_pd|P_r,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00680         { INSTRUCTION_TYPE_SSE,    "subpd",     AM_V|OT_pd|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
00681         { INSTRUCTION_TYPE_SSE,    "minpd",     AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00682         { INSTRUCTION_TYPE_SSE,    "divpd",     AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00683         { INSTRUCTION_TYPE_SSE,    "maxpd",     AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00684         { INSTRUCTION_TYPE_SSE,    "punpcklbw", AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00685         { INSTRUCTION_TYPE_SSE,    "punpcklwd", AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00686         { INSTRUCTION_TYPE_SSE,    "punockldq", AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00687         { INSTRUCTION_TYPE_SSE,    "packusdw",  AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00688         { INSTRUCTION_TYPE_SSE,    "pcmpgtb",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00689         { INSTRUCTION_TYPE_SSE,    "pcmpgtw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00690         { INSTRUCTION_TYPE_SSE,    "pcmpgtd",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00691         { INSTRUCTION_TYPE_SSE,    "packsswb",  AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00692         { INSTRUCTION_TYPE_SSE,    "punpckhbw", AM_V|OT_dq|P_w,              AM_Q|OT_dq|P_r,            FLAGS_NONE,   1 },
00693         { INSTRUCTION_TYPE_SSE,    "punpckhbd", AM_V|OT_dq|P_w,              AM_Q|OT_dq|P_r,            FLAGS_NONE,   1 },
00694         { INSTRUCTION_TYPE_SSE,    "punpckhdq", AM_V|OT_dq|P_w,              AM_Q|OT_dq|P_r,            FLAGS_NONE,   1 },
00695         { INSTRUCTION_TYPE_SSE,    "packssdw",  AM_V|OT_dq|P_w,              AM_Q|OT_dq|P_r,            FLAGS_NONE,   1 },
00696         { INSTRUCTION_TYPE_SSE,    "punpcklqdq", AM_V|OT_dq|P_w,             AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00697         { INSTRUCTION_TYPE_SSE,    "punpckhqd", AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00698         { INSTRUCTION_TYPE_SSE,    "movd",      AM_V|OT_d|P_w,               AM_E|OT_dq|P_r,            FLAGS_NONE,   1 },
00699         { INSTRUCTION_TYPE_SSE,    "movdqa",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00700         { INSTRUCTION_TYPE_SSE,    "pshufd",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            AM_I|OT_b,    1 },
00701         // groups 12-14
00702         { INSTRUCTION_TYPE_SSE,   "g12",        AM_P|OT_dq,                  AM_I|OT_b,                 FLAGS_NONE,   1 },
00703         { INSTRUCTION_TYPE_SSE,   "g13",        AM_W|OT_dq,                  AM_I|OT_b,                 FLAGS_NONE,   1 },
00704         { INSTRUCTION_TYPE_SSE,   "g14",        AM_W|OT_dq,                  AM_I|OT_b,                 FLAGS_NONE,   1 },
00705         { INSTRUCTION_TYPE_SSE,    "pcmpeqb",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00706         { INSTRUCTION_TYPE_SSE,    "pcmpeqw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00707         { INSTRUCTION_TYPE_SSE,    "pcmpeqd",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00708         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00709         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00710         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00711         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00712         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00713         { INSTRUCTION_TYPE_SSE,   "haddpd",     AM_V|OT_pd,                  AM_W|OT_pd,                FLAGS_NONE,   1 },
00714         { INSTRUCTION_TYPE_SSE,   "hsubpd",     AM_V|OT_pd,                  AM_W|OT_pd,                FLAGS_NONE,   1 },
00715         { INSTRUCTION_TYPE_SSE,    "movd",      AM_E|OT_d|P_w,               AM_V|OT_d|P_r,             FLAGS_NONE,   1 },
00716         { INSTRUCTION_TYPE_SSE,    "movdqa",    AM_W|OT_dq|P_w,              AM_V|OT_dq|P_r,            FLAGS_NONE,   1 },
00717         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00718         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00719         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00720         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00721         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00722         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00723         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00724         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00725         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00726         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00727         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00728         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00729         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00730         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00731         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00732         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00733         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00734         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00735         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00736         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00737         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00738         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00739         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00740         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00741         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00742         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00743         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00744         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00745         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00746         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00747         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00748         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00749         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00750         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00751         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00752         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00753         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00754         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00755         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00756         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00757         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00758         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00759         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00760         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00761         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00762         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00763         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00764         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00765         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00766         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00767         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00768         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00769         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00770         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00771         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00772         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00773         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00774         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00775         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00776         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00777         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00778         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00779         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00780         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00781         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00782         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00783         { INSTRUCTION_TYPE_SSE,    "cmppd",     AM_V|OT_pd|P_r,              AM_W|OT_pd|P_r,            AM_I|OT_b,    1 },
00784         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00785         { INSTRUCTION_TYPE_SSE,    "pinsrw",    AM_V|OT_w|P_w,               AM_E|OT_w|P_r,             AM_I|OT_b,    1 },
00786         { INSTRUCTION_TYPE_SSE,    "pextrv",    AM_G|OT_w|P_w,               AM_V|OT_w|P_r,             AM_I|OT_b|P_r,1 },
00787         { INSTRUCTION_TYPE_SSE,    "shufpd",    AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            AM_I|OT_b|P_r,1 },
00788         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00789         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00790         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00791         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00792         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00793         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00794         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00795         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00796         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00797         { INSTRUCTION_TYPE_SSE,    "addsubpd",  AM_V|OT_pd|P_w,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00798         { INSTRUCTION_TYPE_SSE,    "psrlw",     AM_V|OT_dq|P_w,              AM_Q|OT_dq|P_r,            FLAGS_NONE,   1 },
00799         { INSTRUCTION_TYPE_SSE,    "psrld",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00800         { INSTRUCTION_TYPE_SSE,    "psrlq",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00801         { INSTRUCTION_TYPE_SSE,    "paddq",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00802         { INSTRUCTION_TYPE_SSE,    "pmullw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00803         { INSTRUCTION_TYPE_SSE,    "movq",      AM_W|OT_q|P_w,               AM_V|OT_q|P_r,             FLAGS_NONE,   1 },
00804         { INSTRUCTION_TYPE_SSE,    "pmovmskb",  AM_G|OT_d|P_w,               AM_V|OT_dq|P_r,            FLAGS_NONE,   1 },
00805         { INSTRUCTION_TYPE_SSE,    "psubusb",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00806         { INSTRUCTION_TYPE_SSE,    "psubusw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00807         { INSTRUCTION_TYPE_SSE,    "pminub",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00808         { INSTRUCTION_TYPE_SSE,    "pand",      AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00809         { INSTRUCTION_TYPE_SSE,    "paddusb",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00810         { INSTRUCTION_TYPE_SSE,    "paddusw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00811         { INSTRUCTION_TYPE_SSE,    "pmaxsw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00812         { INSTRUCTION_TYPE_SSE,    "pandn",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00813         { INSTRUCTION_TYPE_SSE,    "pavgb",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00814         { INSTRUCTION_TYPE_SSE,    "psraw",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00815         { INSTRUCTION_TYPE_SSE,    "psrad",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00816         { INSTRUCTION_TYPE_SSE,    "pavgw",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00817         { INSTRUCTION_TYPE_SSE,    "pmulhuw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00818         { INSTRUCTION_TYPE_SSE,    "pmulhw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00819         { INSTRUCTION_TYPE_SSE,    "cvttpd2dq", AM_V|OT_dq|P_r,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
00820         { INSTRUCTION_TYPE_SSE,    "movntq",    AM_M|OT_dq|P_w,              AM_V|OT_dq|P_r,            FLAGS_NONE,   1 },
00821         { INSTRUCTION_TYPE_SSE,    "psubsb",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00822         { INSTRUCTION_TYPE_SSE,    "psubsw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00823         { INSTRUCTION_TYPE_SSE,    "pminsw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00824         { INSTRUCTION_TYPE_SSE,    "por",       AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00825         { INSTRUCTION_TYPE_SSE,    "paddsb",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00826         { INSTRUCTION_TYPE_SSE,    "paddsw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00827         { INSTRUCTION_TYPE_SSE,    "pmaxsw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00828         { INSTRUCTION_TYPE_SSE,    "pxor",      AM_V|OT_dq,                  AM_W|OT_dq,                FLAGS_NONE,   1 },
00829         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00830         { INSTRUCTION_TYPE_SSE,    "psllw",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00831         { INSTRUCTION_TYPE_SSE,    "pslld",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00832         { INSTRUCTION_TYPE_SSE,    "psllq",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00833         { INSTRUCTION_TYPE_SSE,    "pmuludq",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00834         { INSTRUCTION_TYPE_SSE,    "pmaddwd",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00835         { INSTRUCTION_TYPE_SSE,    "psadbw",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00836         { INSTRUCTION_TYPE_SSE,    "maskmovdqu", AM_V|OT_dq|P_w,             AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00837         { INSTRUCTION_TYPE_SSE,    "psubb",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00838         { INSTRUCTION_TYPE_SSE,    "psubw",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00839         { INSTRUCTION_TYPE_SSE,    "psubd",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00840         { INSTRUCTION_TYPE_SSE,    "psubq",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00841         { INSTRUCTION_TYPE_SSE,    "paddb",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00842         { INSTRUCTION_TYPE_SSE,    "paddw",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00843         { INSTRUCTION_TYPE_SSE,    "paddd",     AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
00844         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00845 }; 
00846 
00847 // 3-byte instructions, prefix 0xf2
00848 
00849 INST inst_table3_f2[256] = {
00850         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00851         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00852         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00853         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00854         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00855         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00856         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00857         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00858         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00859         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00860         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00861         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00862         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00863         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00864         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00865         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00866         { INSTRUCTION_TYPE_SSE,    "movsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00867         { INSTRUCTION_TYPE_SSE,    "movsd",     AM_W|OT_sd|P_w,              AM_V|OT_sd|P_r,            FLAGS_NONE,   1 },
00868         { INSTRUCTION_TYPE_SSE,    "movddup",   AM_V|OT_q|P_w,               AM_W|OT_q|P_r,             FLAGS_NONE,   1 },
00869         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00870         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00871         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00872         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00873         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00874         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00875         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00876         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00877         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00878         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00879         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00880         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00881         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00882         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00883         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00884         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00885         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00886         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00887         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00888         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00889         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00890         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00891         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00892         { INSTRUCTION_TYPE_SSE,    "cvtsi2sd",  AM_V|OT_sd|P_r,              AM_E|OT_d|P_r,             FLAGS_NONE,   1 },
00893         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00894         { INSTRUCTION_TYPE_SSE,    "cvttsd2si", AM_G|OT_d|P_r,               AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00895         { INSTRUCTION_TYPE_SSE,    "cvtsd2si",  AM_G|OT_d|P_r,               AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00896         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00897         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00898         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00899         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00900         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00901         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00902         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00903         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00904         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00905         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00906         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00907         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00908         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00909         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00910         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00911         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00912         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00913         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00914         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00915         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00916         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00917         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00918         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00919         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00920         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00921         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00922         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00923         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00924         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00925         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00926         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00927         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00928         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00929         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00930         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00931         { INSTRUCTION_TYPE_SSE,    "sqrtsd",    AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00932         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00933         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00934         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00935         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00936         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00937         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00938         { INSTRUCTION_TYPE_SSE,    "addsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00939         { INSTRUCTION_TYPE_SSE,    "mulsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00940         { INSTRUCTION_TYPE_SSE,    "cvtsd2ss",  AM_V|OT_ss|P_r,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00941         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00942         { INSTRUCTION_TYPE_SSE,    "subsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00943         { INSTRUCTION_TYPE_SSE,    "minsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00944         { INSTRUCTION_TYPE_SSE,    "divsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00945         { INSTRUCTION_TYPE_SSE,    "maxsd",     AM_V|OT_sd|P_w,              AM_W|OT_sd|P_r,            FLAGS_NONE,   1 },
00946         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00947         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00948         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00949         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00950         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00951         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00952         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00953         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00954         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00955         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00956         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00957         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00958         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00959         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00960         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00961         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00962         { INSTRUCTION_TYPE_SSE,    "pshuflw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            AM_I|OT_b,    1 },
00963         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00964         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00965         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00966         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00967         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00968         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00969         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00970         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00971         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00972         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00973         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00974         { INSTRUCTION_TYPE_SSE,   "haddps",     AM_V|OT_ps,                  AM_W|OT_ps,                FLAGS_NONE,   1 },
00975         { INSTRUCTION_TYPE_SSE,   "hsubps",     AM_V|OT_ps,                  AM_W|OT_ps,                FLAGS_NONE,   1 },
00976         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00977         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00978         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00979         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00980         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00981         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00982         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00983         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00984         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00985         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00986         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00987         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00988         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00989         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00990         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00991         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00992         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00993         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00994         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00995         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00996         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00997         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00998         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
00999         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01000         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01001         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01002         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01003         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01004         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01005         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01006         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01007         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01008         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01009         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01010         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01011         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01012         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01013         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01014         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01015         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01016         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01017         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01018         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01019         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01020         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01021         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01022         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01023         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01024         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01025         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01026         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01027         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01028         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01029         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01030         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01031         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01032         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01033         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01034         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01035         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01036         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01037         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01038         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01039         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01040         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01041         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01042         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01043         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01044         { INSTRUCTION_TYPE_SSE,    "cmpsd",     AM_V|OT_sd|P_r,              AM_W|OT_sd|P_r,            AM_I|OT_b,    1 },
01045         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01046         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01047         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01048         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01049         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01050         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01051         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01052         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01053         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01054         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01055         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01056         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01057         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01058         { INSTRUCTION_TYPE_SSE,    "addsubpd",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
01059         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01060         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01061         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01062         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01063         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01064         { INSTRUCTION_TYPE_SSE,    "movdq2q",   AM_P|OT_q|P_w,               AM_V|OT_q|P_r,             FLAGS_NONE,   1 },
01065         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01066         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01067         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01068         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01069         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01070         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01071         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01072         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01073         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01074         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01075         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01076         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01077         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01078         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01079         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01080         { INSTRUCTION_TYPE_SSE,    "cvtpd2dq",  AM_V|OT_dq|P_r,              AM_W|OT_pd|P_r,            FLAGS_NONE,   1 },
01081         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01082         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01083         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01084         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01085         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01086         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01087         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01088         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01089         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01090         { INSTRUCTION_TYPE_SSE,   "lddqu",      AM_V|OT_dq,                  AM_M|OT_dq,                FLAGS_NONE,   1 },
01091         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01092         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01093         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01094         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01095         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01096         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01097         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01098         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01099         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01100         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01101         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01102         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01103         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01104         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01105         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01106 }; 
01107 
01108 // 3-byte instructions, prefix 0xf3
01109 
01110 INST inst_table3_f3[256] = {
01111         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01112         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01113         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01114         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01115         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01116         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01117         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01118         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01119         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01120         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01121         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01122         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01123         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01124         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01125         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01126         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01127         { INSTRUCTION_TYPE_SSE,    "movss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01128         { INSTRUCTION_TYPE_SSE,    "movss",     AM_W|OT_ss|P_w,              AM_V|OT_ss|P_r,            FLAGS_NONE,   1 },
01129         { INSTRUCTION_TYPE_SSE,    "movsldup",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
01130         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01131         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01132         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01133         { INSTRUCTION_TYPE_SSE,    "movshdup",  AM_V|OT_ps|P_w,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
01134         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01135         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01136         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01137         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01138         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01139         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01140         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01141         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01142         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01143         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01144         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01145         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01146         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01147         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01148         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01149         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01150         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01151         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01152         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01153         { INSTRUCTION_TYPE_SSE,    "cvtsi2ss",  AM_V|OT_ss|P_r,              AM_E|OT_d|P_r,             FLAGS_NONE,   1 },
01154         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01155         { INSTRUCTION_TYPE_SSE,    "cvttss2si", AM_G|OT_d|P_r,               AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01156         { INSTRUCTION_TYPE_SSE,    "cvtss2si",  AM_G|OT_d|P_r,               AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01157         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01158         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01159         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01160         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01161         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01162         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01163         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01164         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01165         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01166         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01167         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01168         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01169         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01170         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01171         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01172         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01173         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01174         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01175         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01176         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01177         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01178         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01179         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01180         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01181         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01182         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01183         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01184         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01185         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01186         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01187         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01188         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01189         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01190         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01191         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01192         { INSTRUCTION_TYPE_SSE,    "sqrtss",    AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01193         { INSTRUCTION_TYPE_SSE,    "rsqrtss",   AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01194         { INSTRUCTION_TYPE_SSE,    "rcpss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01195         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01196         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01197         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01198         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01199         { INSTRUCTION_TYPE_SSE,    "addss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01200         { INSTRUCTION_TYPE_SSE,    "mulss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01201         { INSTRUCTION_TYPE_SSE,    "cvtsd2sd",  AM_V|OT_sd|P_r,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01202         { INSTRUCTION_TYPE_SSE,    "cvttps2dq", AM_V|OT_dq|P_r,              AM_W|OT_ps|P_r,            FLAGS_NONE,   1 },
01203         { INSTRUCTION_TYPE_SSE,    "subss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01204         { INSTRUCTION_TYPE_SSE,    "minss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01205         { INSTRUCTION_TYPE_SSE,    "divss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01206         { INSTRUCTION_TYPE_SSE,    "maxss",     AM_V|OT_ss|P_w,              AM_W|OT_ss|P_r,            FLAGS_NONE,   1 },
01207         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01208         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01209         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01210         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01211         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01212         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01213         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01214         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01215         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01216         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01217         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01218         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01219         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01220         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01221         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01222         { INSTRUCTION_TYPE_SSE,    "movdqu",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            AM_I|OT_b,    1 },
01223         { INSTRUCTION_TYPE_SSE,    "pshufhw",   AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            AM_I|OT_b,    1 },
01224         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01225         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01226         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01227         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01228         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01229         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01230         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01231         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01232         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01233         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01234         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01235         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01236         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01237         { INSTRUCTION_TYPE_SSE,    "movq",      AM_V|OT_q|P_w,               AM_W|OT_q|P_r,             FLAGS_NONE,   1 },
01238         { INSTRUCTION_TYPE_SSE,    "movdqu",    AM_V|OT_dq|P_w,              AM_W|OT_dq|P_r,            FLAGS_NONE,   1 },
01239         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01240         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01241         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01242         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01243         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01244         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01245         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01246         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01247         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01248         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01249         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01250         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01251         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01252         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01253         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01254         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01255         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01256         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01257         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01258         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01259         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01260         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01261         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01262         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01263         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01264         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01265         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01266         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01267         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01268         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01269         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01270         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01271         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01272         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01273         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01274         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01275         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01276         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01277         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01278         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01279         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01280         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01281         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01282         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01283         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01284         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01285         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01286         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01287         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01288         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01289         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01290         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01291         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01292         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01293         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01294         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01295         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01296         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01297         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01298         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01299         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01300         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01301         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01302         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01303         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01304         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01305         { INSTRUCTION_TYPE_SSE,    "cmpss",     AM_V|OT_ss|P_r,              AM_W|OT_ss|P_r,            AM_I|OT_b,    1 },
01306         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01307         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01308         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01309         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01310         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01311         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01312         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01313         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01314         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01315         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01316         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01317         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01318         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01319         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01320         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01321         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01322         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01323         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01324         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01325         { INSTRUCTION_TYPE_SSE,    "movq2dq",   AM_V|OT_dq|P_w,              AM_Q|OT_q|P_r,             FLAGS_NONE,   1 },
01326         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01327         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01328         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01329         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01330         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01331         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01332         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01333         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01334         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01335         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01336         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01337         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01338         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01339         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01340         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01341         { INSTRUCTION_TYPE_SSE,    "cvtdq2pd",  AM_V|OT_pd|P_r,              AM_W|OT_q|P_r,             FLAGS_NONE,   1 },
01342         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01343         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01344         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01345         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01346         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01347         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01348         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01349         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01350         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01351         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01352         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01353         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01354         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01355         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01356         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01357         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01358         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01359         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01360         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01361         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01362         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01363         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01364         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01365         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01366         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01367 }; 
01368 
01369 // Extension tables
01370 
01371 INST inst_table_ext1_1[8] = {
01372         { INSTRUCTION_TYPE_ADD,   "add",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01373         { INSTRUCTION_TYPE_OR,    "or",         AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01374         { INSTRUCTION_TYPE_ADC,   "adc",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01375         { INSTRUCTION_TYPE_SBB,   "sbb",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01376         { INSTRUCTION_TYPE_AND,   "and",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01377         { INSTRUCTION_TYPE_SUB,   "sub",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01378         { INSTRUCTION_TYPE_XOR,   "xor",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01379         { INSTRUCTION_TYPE_CMP,   "cmp",        AM_E|OT_b|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01380 };
01381 INST inst_table_ext1_2[8] = {
01382         { INSTRUCTION_TYPE_ADD,   "add",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1 },
01383         { INSTRUCTION_TYPE_OR,    "or",         AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1 },
01384         { INSTRUCTION_TYPE_ADC,   "adc",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1 },
01385         { INSTRUCTION_TYPE_SBB,   "sbb",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1 },
01386         { INSTRUCTION_TYPE_AND,   "and",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1 },
01387         { INSTRUCTION_TYPE_SUB,   "sub",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1 },
01388         { INSTRUCTION_TYPE_XOR,   "xor",        AM_E|OT_v|P_w,               AM_I|OT_v|P_r,             FLAGS_NONE,   1 },
01389         { INSTRUCTION_TYPE_CMP,   "cmp",        AM_E|OT_v|P_r,               AM_I|OT_v|P_r,             FLAGS_NONE,   1 },
01390 };
01391 INST inst_table_ext1_3[8] = {
01392         { INSTRUCTION_TYPE_ADD,   "add",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1 },
01393         { INSTRUCTION_TYPE_OR,    "or",         AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1 },
01394         { INSTRUCTION_TYPE_ADC,   "adc",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1 },
01395         { INSTRUCTION_TYPE_SBB,   "sbb",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1 },
01396         { INSTRUCTION_TYPE_AND,   "and",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1 },
01397         { INSTRUCTION_TYPE_SUB,   "sub",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1 },
01398         { INSTRUCTION_TYPE_XOR,   "xor",        AM_E|OT_v|P_w,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1 },
01399         { INSTRUCTION_TYPE_CMP,   "cmp",        AM_E|OT_v|P_r,               AM_I|OT_b|F_s|P_r,         FLAGS_NONE,   1 },
01400 };
01401 
01402 INST inst_table_ext2_1[8] = {
01403         { INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01404         { INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01405         { INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01406         { INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01407         { INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01408         { INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01409         { INSTRUCTION_TYPE_OTHER, NULL,         FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01410         { INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_b|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01411 };
01412 INST inst_table_ext2_2[8] = {
01413         { INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01414         { INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01415         { INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01416         { INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01417         { INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01418         { INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01419         { INSTRUCTION_TYPE_OTHER, NULL,         FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01420         { INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_v|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01421 };
01422 INST inst_table_ext2_3[8] = {
01423         { INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01424         { INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01425         { INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01426         { INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01427         { INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01428         { INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01429         { INSTRUCTION_TYPE_OTHER, NULL,         FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01430         { INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_b|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01431 };
01432 INST inst_table_ext2_4[8] = {
01433         { INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01434         { INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01435         { INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01436         { INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01437         { INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01438         { INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01439         { INSTRUCTION_TYPE_OTHER, NULL,         FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01440         { INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_v|P_w,               AM_I1|OT_b|P_r,            FLAGS_NONE,   1 },
01441 };
01442 INST inst_table_ext2_5[8] = {
01443         { INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01444         { INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01445         { INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01446         { INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01447         { INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01448         { INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01449         { INSTRUCTION_TYPE_OTHER, NULL,         FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01450         { INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_b|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01451 };
01452 INST inst_table_ext2_6[8] = {
01453         { INSTRUCTION_TYPE_ROX,   "rol",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01454         { INSTRUCTION_TYPE_ROX,   "ror",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01455         { INSTRUCTION_TYPE_ROX,   "rcl",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01456         { INSTRUCTION_TYPE_ROX,   "rcr",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01457         { INSTRUCTION_TYPE_SHX,   "shl",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01458         { INSTRUCTION_TYPE_SHX,   "shr",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01459         { INSTRUCTION_TYPE_OTHER, NULL,         FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01460         { INSTRUCTION_TYPE_SHX,   "sar",        AM_E|OT_v|P_w,               AM_REG|REG_CL|OT_b|P_r,    FLAGS_NONE,   1 },
01461 };
01462 
01463 INST inst_table_ext3_1[8] = {
01464         { INSTRUCTION_TYPE_TEST,   "test",      AM_E|OT_b|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01465         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01466         { INSTRUCTION_TYPE_NOT,    "not",       AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01467         { INSTRUCTION_TYPE_NEG,    "neg",       AM_E|OT_b|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01468         { INSTRUCTION_TYPE_MUL,    "mul",       AM_E|OT_b|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01469         { INSTRUCTION_TYPE_IMUL,   "imul",      AM_E|OT_b|P_r,               FLAGS_NONE|P_r,           FLAGS_NONE|P_r,1 },
01470         { INSTRUCTION_TYPE_DIV,    "div",       AM_E|OT_b|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01471         { INSTRUCTION_TYPE_IDIV,   "idiv",      AM_E|OT_b|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01472 };
01473 INST inst_table_ext3_2[8] = {
01474         { INSTRUCTION_TYPE_TEST,   "test",      AM_E|OT_v|P_r,               AM_I|OT_v|P_r,             FLAGS_NONE,   1 },
01475         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01476         { INSTRUCTION_TYPE_NOT,    "not",       AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01477         { INSTRUCTION_TYPE_NEG,    "neg",       AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01478         { INSTRUCTION_TYPE_MUL,    "mul",       AM_E|OT_v|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01479         { INSTRUCTION_TYPE_IMUL,   "imul",      AM_E|OT_v|P_r,               FLAGS_NONE|P_r,           FLAGS_NONE|P_r,1 },
01480         { INSTRUCTION_TYPE_DIV,    "div",       AM_E|OT_v|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01481         { INSTRUCTION_TYPE_IDIV,   "idiv",      AM_E|OT_v|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01482 };
01483 
01484 INST inst_table_ext4[8] = {
01485         { INSTRUCTION_TYPE_INC,    "inc",       AM_E|OT_b|P_r,               FLAGS_NONE,                FLAGS_NONE,   1 },
01486         { INSTRUCTION_TYPE_DEC,    "dec",       AM_E|OT_b,                   FLAGS_NONE,                FLAGS_NONE,   1 },
01487         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01488         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01489         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01490         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01491         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01492         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01493 };
01494 
01495 INST inst_table_ext5[8] = {
01496         { INSTRUCTION_TYPE_INC,    "inc",       AM_E|OT_v|P_r,               FLAGS_NONE,                FLAGS_NONE,   1 },
01497         { INSTRUCTION_TYPE_DEC,    "dec",       AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1 },
01498         { INSTRUCTION_TYPE_CALL,   "call",      AM_E|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   1 },
01499         { INSTRUCTION_TYPE_CALL,   "callf",     AM_E|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   1 },
01500         { INSTRUCTION_TYPE_JMP,    "jmp",       AM_E|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   1 },
01501         { INSTRUCTION_TYPE_JMP,    "jmpf",      AM_E|OT_v|P_x,               FLAGS_NONE,                FLAGS_NONE,   1 },
01502         { INSTRUCTION_TYPE_PUSH,   "push",      AM_E|OT_v|P_r,               FLAGS_NONE,                FLAGS_NONE,   1 },
01503         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01504 };
01505 
01506 INST inst_table_ext6[8] = {
01507         { INSTRUCTION_TYPE_SLDT,   "sldt",      AM_E|OT_w|P_r,               FLAGS_NONE,                FLAGS_NONE,   1 },
01508         { INSTRUCTION_TYPE_PRIV,   "str",       AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01509         { INSTRUCTION_TYPE_PRIV,   "lldt",      AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01510         { INSTRUCTION_TYPE_PRIV,   "ltr",       AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01511         { INSTRUCTION_TYPE_PRIV,   "verr",      AM_E|OT_w|P_r,               FLAGS_NONE,                FLAGS_NONE,   1 },
01512         { INSTRUCTION_TYPE_PRIV,   "verw",      AM_E|OT_w|P_r,               FLAGS_NONE,                FLAGS_NONE,   1 },
01513         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01514         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01515 };
01516 
01517 INST inst_table_ext7[8] = {
01518         { INSTRUCTION_TYPE_SGDT,  "sgdt",       AM_M|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01519         { INSTRUCTION_TYPE_SIDT,  "sidt",       AM_M|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01520         { INSTRUCTION_TYPE_PRIV,  "lgdt",       AM_M|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01521         { INSTRUCTION_TYPE_PRIV,  "lidt",       AM_M|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01522         { INSTRUCTION_TYPE_PRIV,  "smsw",       AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01523         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01524         { INSTRUCTION_TYPE_PRIV,  "lmsw",       AM_E|OT_w|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01525         { INSTRUCTION_TYPE_PRIV,  "invlpg",     AM_M|OT_b|P_r,               FLAGS_NONE,                FLAGS_NONE,   1 },
01526 };
01527 INST inst_monitor =
01528         { INSTRUCTION_TYPE_OTHER,  "monitor",   FLAGS_NONE|P_w,              FLAGS_NONE|P_r,            FLAGS_NONE,   0 };
01529 INST inst_mwait =
01530         { INSTRUCTION_TYPE_OTHER,  "mwait",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 };
01531 
01532 INST inst_table_ext8[8] = {
01533         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01534         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01535         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01536         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01537         { INSTRUCTION_TYPE_BT,     "bt",        AM_E|OT_v|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01538         { INSTRUCTION_TYPE_BTS,    "bts",       AM_E|OT_v|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01539         { INSTRUCTION_TYPE_BTR,    "btr",       AM_E|OT_v|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01540         { INSTRUCTION_TYPE_BTC,    "btc",       AM_E|OT_v|P_r,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01541 };
01542 
01543 INST inst_table_ext9[8] = {
01544         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01545         { INSTRUCTION_TYPE_SSE,   "cmpxch8b",   AM_M|OT_q,                   FLAGS_NONE,                FLAGS_NONE,   1 }, 
01546         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01547         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01548         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01549         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01550         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01551         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01552 };
01553 
01554 INST inst_table_ext10[8] = {
01555         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01556         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01557         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01558         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01559         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01560         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01561         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01562         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01563 };
01564 
01565 // XXX: not used yet
01566 INST inst_table_ext11[8] = {
01567         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01568         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01569         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01570         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01571         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01572         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01573         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01574         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01575 };
01576 
01577 // XXX: intel manual says AM_P.. but that seems to produce wrong disasm
01578 INST inst_table_ext12[8] = {
01579         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01580         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01581         { INSTRUCTION_TYPE_MMX,    "psrlw",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01582         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01583         { INSTRUCTION_TYPE_MMX,    "psraw",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01584         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01585         { INSTRUCTION_TYPE_MMX,    "psllw",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01586         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01587 };
01588 // XXX: intel manual says AM_P.. but that seems to produce wrong disasm
01589 INST inst_table_ext12_66[8] = {
01590         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01591         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01592         { INSTRUCTION_TYPE_SSE,    "psrlw",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01593         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01594         { INSTRUCTION_TYPE_SSE,    "psraw",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01595         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01596         { INSTRUCTION_TYPE_SSE,    "psllw",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01597         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01598 };
01599 
01600 // XXX: intel manual says AM_P.. but that seems to produce wrong disasm
01601 INST inst_table_ext13[8] = {
01602         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01603         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01604         { INSTRUCTION_TYPE_MMX,    "psrld",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01605         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01606         { INSTRUCTION_TYPE_MMX,    "psrad",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01607         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01608         { INSTRUCTION_TYPE_MMX,    "pslld",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01609         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01610 };
01611 // XXX: intel manual says AM_P.. but that seems to produce wrong disasm
01612 INST inst_table_ext13_66[8] = {
01613         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01614         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01615         { INSTRUCTION_TYPE_SSE,    "psrld",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01616         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01617         { INSTRUCTION_TYPE_SSE,    "psrad",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01618         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01619         { INSTRUCTION_TYPE_SSE,    "pslld",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01620         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01621 };
01622 
01623 // XXX: intel manual says AM_P.. but that seems to produce wrong disasm
01624 INST inst_table_ext14[8] = {
01625         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01626         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01627         { INSTRUCTION_TYPE_MMX,    "psrlq",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01628         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01629         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01630         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01631         { INSTRUCTION_TYPE_MMX,    "psllq",     AM_Q|OT_q|P_w,               AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01632         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01633 };
01634 // XXX: intel manual says AM_P.. but that seems to produce wrong disasm
01635 INST inst_table_ext14_66[8] = {
01636         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01637         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01638         { INSTRUCTION_TYPE_SSE,    "psrlq",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01639         { INSTRUCTION_TYPE_SSE,    "psrldq",    AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01640         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01641         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01642         { INSTRUCTION_TYPE_SSE,    "psllq",     AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01643         { INSTRUCTION_TYPE_SSE,    "pslldq",    AM_W|OT_dq|P_w,              AM_I|OT_b|P_r,             FLAGS_NONE,   1 },
01644 };
01645 
01646 INST inst_table_ext15[8] = {
01647         { INSTRUCTION_TYPE_OTHER, "fxsave",     AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1 },
01648         { INSTRUCTION_TYPE_OTHER, "fxrstor",    AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1 },
01649         { INSTRUCTION_TYPE_OTHER, "ldmxcsr",    AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1 },
01650         { INSTRUCTION_TYPE_OTHER, "stmxcsr",    AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1 },
01651         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01652         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01653         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01654         { INSTRUCTION_TYPE_OTHER, "sfence",     AM_E|OT_v,                   FLAGS_NONE,                FLAGS_NONE,   1 },
01655 };
01656 
01657 INST inst_table_ext16[8] = {
01658         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01659         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01660         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01661         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01662         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01663         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01664         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01665         { INSTRUCTION_TYPE_OTHER,  NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01666 };
01667 
01668 // Table of extension tables
01669 
01670 INST * inst_table_ext[25] = {
01671         inst_table_ext1_1,
01672         inst_table_ext1_2,
01673         inst_table_ext1_3,
01674         inst_table_ext2_1,
01675         inst_table_ext2_2,
01676         inst_table_ext2_3,
01677         inst_table_ext2_4,
01678         inst_table_ext2_5,
01679         inst_table_ext2_6,
01680         inst_table_ext3_1,
01681         inst_table_ext3_2,
01682         inst_table_ext4,
01683         inst_table_ext5,
01684         inst_table_ext6,
01685         inst_table_ext7,
01686         inst_table_ext8,
01687         inst_table_ext9,
01688         inst_table_ext10,
01689         inst_table_ext11,
01690         inst_table_ext12,
01691         inst_table_ext13,
01692         inst_table_ext14,
01693         inst_table_ext15,
01694         inst_table_ext16,
01695 };
01696 
01697 // FPU instruction tables
01698 
01699 /*
01700  * Tables are composed in two parts:
01701  *
01702  * - 1st part (index 0-7) are identified by the reg field of MODRM byte
01703  *   if the MODRM is < 0xc0. reg field can be used directly as an index to table.
01704  *
01705  * - 2nd part (8 - 0x47) are identified by the MODRM byte itself. In that case,
01706  *   the index can be calculated by "index = MODRM - 0xb8"
01707  *
01708  */
01709 INST inst_table_fpu_d8[72] = {
01710         { INSTRUCTION_TYPE_FADD,   "fadds",     AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01711         { INSTRUCTION_TYPE_FMUL,   "fmuls",     AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01712         { INSTRUCTION_TYPE_FCOM,   "fcoms",     AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01713         { INSTRUCTION_TYPE_FCOMP,  "fcomps",    AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01714         { INSTRUCTION_TYPE_FSUB,   "fsubs",     AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01715         { INSTRUCTION_TYPE_FSUBR,  "fsubrs",    AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01716         { INSTRUCTION_TYPE_FDIV,   "fdivs",     AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01717         { INSTRUCTION_TYPE_FDIVR,  "fdivrs",    AM_E|OT_d|P_w,               FLAGS_NONE|P_r,            FLAGS_NONE,   1 },
01718         { INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01719         { INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01720         { INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01721         { INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01722         { INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01723         { INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01724         { INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01725         { INSTRUCTION_TYPE_FADD,   "fadd",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01726         { INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01727         { INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01728         { INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01729         { INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01730         { INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01731         { INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01732         { INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01733         { INSTRUCTION_TYPE_FMUL,   "fmul",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01734         { INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01735         { INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01736         { INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01737         { INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01738         { INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01739         { INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01740         { INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01741         { INSTRUCTION_TYPE_FCOM,   "fcom",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01742         { INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01743         { INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01744         { INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01745         { INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01746         { INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01747         { INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01748         { INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01749         { INSTRUCTION_TYPE_FCOMP,  "fcomp",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01750         { INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01751         { INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01752         { INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01753         { INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01754         { INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01755         { INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01756         { INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01757         { INSTRUCTION_TYPE_FSUB,   "fsub",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01758         { INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01759         { INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01760         { INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01761         { INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01762         { INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01763         { INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01764         { INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01765         { INSTRUCTION_TYPE_FSUBR,  "fsubr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01766         { INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01767         { INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01768         { INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01769         { INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01770         { INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01771         { INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01772         { INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01773         { INSTRUCTION_TYPE_FDIV,   "fdiv",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01774         { INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01775         { INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01776         { INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01777         { INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01778         { INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01779         { INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01780         { INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01781         { INSTRUCTION_TYPE_FDIVR,  "fdivr",     AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01782 };
01783 INST inst_table_fpu_d9[72] = {
01784         { INSTRUCTION_TYPE_FLD,    "flds",      AM_E|OT_d,                   FLAGS_NONE,                FLAGS_NONE,   1 }, 
01785         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01786         { INSTRUCTION_TYPE_FST,    "fst",       AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01787         { INSTRUCTION_TYPE_FSTP,   "fstp",      AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01788         // XXX: operand type is not correct
01789         { INSTRUCTION_TYPE_FPU,    "fldenv",    AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01790         { INSTRUCTION_TYPE_FPU,    "fldcw",     AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01791         { INSTRUCTION_TYPE_FPU,    "fstenv",    AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01792         { INSTRUCTION_TYPE_FPU,    "fstcw",     AM_E|OT_v|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01793         { INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01794         { INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01795         { INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01796         { INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01797         { INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01798         { INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01799         { INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01800         { INSTRUCTION_TYPE_FLD,    "fld",       AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01801         { INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01802         { INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01803         { INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01804         { INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01805         { INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01806         { INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01807         { INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01808         { INSTRUCTION_TYPE_FXCH,   "fxch",      AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01809         { INSTRUCTION_TYPE_FPU,    "fnop",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01810         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01811         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01812         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01813         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01814         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01815         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01816         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01817         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01818         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01819         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01820         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01821         { INSTRUCTION_TYPE_FPU,    "fchs",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01822         { INSTRUCTION_TYPE_FPU,    "fabs",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01823         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01824         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01825         { INSTRUCTION_TYPE_FPU,    "ftst",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01826         { INSTRUCTION_TYPE_FPU,    "fxam",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01827         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01828         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01829         { INSTRUCTION_TYPE_FPU,    "fld1",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01830         { INSTRUCTION_TYPE_FPU,    "fldl2t",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01831         { INSTRUCTION_TYPE_FPU,    "fldl2e",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01832         { INSTRUCTION_TYPE_FPU,    "fldpi",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01833         { INSTRUCTION_TYPE_FPU,    "fldlg2",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01834         { INSTRUCTION_TYPE_FPU,    "fldln2",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01835         { INSTRUCTION_TYPE_FPU,    "fldz",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01836         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01837         { INSTRUCTION_TYPE_FPU,    "f2xm1",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01838         { INSTRUCTION_TYPE_FPU,    "fyl2x",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01839         { INSTRUCTION_TYPE_FPU,    "fptan",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01840         { INSTRUCTION_TYPE_FPU,    "fpatan",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01841         { INSTRUCTION_TYPE_FPU,    "fxtract",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01842         { INSTRUCTION_TYPE_FPU,    "fprem1",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01843         { INSTRUCTION_TYPE_FPU,    "fdecstp",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01844         { INSTRUCTION_TYPE_FPU,    "fincstp",   FLAGS_NONE|P_w,              FLAGS_NONE,                FLAGS_NONE,   0 },
01845         { INSTRUCTION_TYPE_FPU,    "fprem",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01846         { INSTRUCTION_TYPE_FPU,    "fyl2xp1",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01847         { INSTRUCTION_TYPE_FPU,    "fsqrt",     FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01848         { INSTRUCTION_TYPE_FPU,    "fsincos",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01849         { INSTRUCTION_TYPE_FPU,    "frndint",   FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01850         { INSTRUCTION_TYPE_FPU,    "fscale",    FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01851         { INSTRUCTION_TYPE_FPU,    "fsin",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01852         { INSTRUCTION_TYPE_FPU,    "fcos",      FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 },
01853 };
01854 INST inst_table_fpu_da[72] = {
01855         { INSTRUCTION_TYPE_FIADD,  "fiaddl",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01856         { INSTRUCTION_TYPE_FIMUL,  "fimull",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01857         { INSTRUCTION_TYPE_FICOM,  "ficoml",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01858         { INSTRUCTION_TYPE_FICOMP, "ficompl",   AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01859         { INSTRUCTION_TYPE_FISUB,  "fisubl",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01860         { INSTRUCTION_TYPE_FISUBR, "fisubrl",   AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01861         { INSTRUCTION_TYPE_FIDIV,  "fidivl",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01862         { INSTRUCTION_TYPE_FIDIVR, "fidivrl",   AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01863         { INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01864         { INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01865         { INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01866         { INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01867         { INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01868         { INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01869         { INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01870         { INSTRUCTION_TYPE_FCMOVC, "fcmovb",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01871         { INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01872         { INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01873         { INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01874         { INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01875         { INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01876         { INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01877         { INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01878         { INSTRUCTION_TYPE_FCMOVC, "fcmove",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01879         { INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01880         { INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01881         { INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01882         { INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01883         { INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01884         { INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01885         { INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01886         { INSTRUCTION_TYPE_FCMOVC, "fcmovbe",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01887         { INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01888         { INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01889         { INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01890         { INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01891         { INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01892         { INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01893         { INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01894         { INSTRUCTION_TYPE_FCMOVC, "fcmovu",    AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01895         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01896         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01897         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01898         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01899         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01900         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01901         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01902         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01903         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01904         { INSTRUCTION_TYPE_FUCOMP, "fucompp",   FLAGS_NONE|P_w,              FLAGS_NONE,                FLAGS_NONE,   0 },
01905         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01906         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01907         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01908         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01909         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01910         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01911         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01912         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01913         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01914         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01915         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01916         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01917         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01918         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01919         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01920         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01921         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01922         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01923         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01924         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01925         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01926         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01927 };
01928 
01929 // XXX: fsetpm??
01930 INST inst_table_fpu_db[72] = {
01931         { INSTRUCTION_TYPE_FILD,   "fildl",     AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01932         { INSTRUCTION_TYPE_FISTTP, "fisttp",    AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01933         { INSTRUCTION_TYPE_FIST,   "fistl",     AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01934         { INSTRUCTION_TYPE_FISTP,  "fistp",     AM_E|OT_d|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01935         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01936         { INSTRUCTION_TYPE_FLD,    "fldt",      AM_E|OT_t,                   FLAGS_NONE,                FLAGS_NONE,   1 }, 
01937         { INSTRUCTION_TYPE_FPU,    NULL,        FLAGS_NONE,                  FLAGS_NONE,                FLAGS_NONE,   0 }, 
01938         { INSTRUCTION_TYPE_FSTP,   "fstpl",     AM_E|OT_t|P_w,               FLAGS_NONE,                FLAGS_NONE,   1 },
01939         { INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01940         { INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01941         { INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01942         { INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01943         { INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01944         { INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01945         { INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01946         { INSTRUCTION_TYPE_FCMOVC, "fcmovnb",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01947         { INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01948         { INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01949         { INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01950         { INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01951         { INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01952         { INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01953         { INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01954         { INSTRUCTION_TYPE_FCMOVC, "fcmovne",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01955         { INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01956         { INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|F_f|P_r,    FLAGS_NONE,   0 },
01957         { INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST2|F_f|P_r,    FLAGS_NONE,   0 },
01958         { INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST3|F_f|P_r,    FLAGS_NONE,   0 },
01959         { INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST4|F_f|P_r,    FLAGS_NONE,   0 },
01960         { INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST5|F_f|P_r,    FLAGS_NONE,   0 },
01961         { INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST6|F_f|P_r,    FLAGS_NONE,   0 },
01962         { INSTRUCTION_TYPE_FCMOVC, "fcmovnbe",  AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST7|F_f|P_r,    FLAGS_NONE,   0 },
01963         { INSTRUCTION_TYPE_FCMOVC, "fcmovnu",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST0|F_f|P_r,    FLAGS_NONE,   0 },
01964         { INSTRUCTION_TYPE_FCMOVC, "fcmovnu",   AM_REG|REG_ST0|F_f|P_w,      AM_REG|REG_ST1|