1 /* Copyright (c) 2007, Google Inc.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above
11 * copyright notice, this list of conditions and the following disclaimer
12 * in the documentation and/or other materials provided with the
14 * * Neither the name of Google Inc. nor the names of its
15 * contributors may be used to endorse or promote products derived from
16 * this software without specific prior written permission.
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 * Author: Joi Sigurdsson
33 * Opcode decoding maps. Based on the IA-32 IntelĀ® Architecture
34 * Software Developer's Manual Volume 2: Instruction Set Reference. Idea
35 * for how to lay out the tables in memory taken from the implementation
36 * in the Bastard disassembly environment.
39 #include "mini_disassembler.h"
44 * This is the first table to be searched; the first field of each
45 * Opcode in the table is either 0 to indicate you're in the
46 * right table, or an index to the correct table, in the global
47 * map g_pentiumOpcodeMap
49 const Opcode s_first_opcode_byte
[] = {
50 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "add", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
51 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "add", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
52 /* 0x2 */ { 0, IT_GENERIC
, AM_G
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "add", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
53 /* 0x3 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "add", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
54 /* 0x4 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "add", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
55 /* 0x5 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "add", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
56 /* 0x6 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
57 /* 0x7 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
58 /* 0x8 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "or", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
59 /* 0x9 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "or", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
60 /* 0xA */ { 0, IT_GENERIC
, AM_G
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "or", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
61 /* 0xB */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "or", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
62 /* 0xC */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "or", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
63 /* 0xD */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "or", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
64 /* 0xE */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
65 /* 0xF */ { 1, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
66 /* 0x10 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "adc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
67 /* 0x11 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "adc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
68 /* 0x12 */ { 0, IT_GENERIC
, AM_G
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "adc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
69 /* 0x13 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "adc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
70 /* 0x14 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "adc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
71 /* 0x15 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "adc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
72 /* 0x16 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
73 /* 0x17 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
74 /* 0x18 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "sbb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
75 /* 0x19 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "sbb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
76 /* 0x1A */ { 0, IT_GENERIC
, AM_G
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "sbb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
77 /* 0x1B */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "sbb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
78 /* 0x1C */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "sbb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
79 /* 0x1D */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "sbb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
80 /* 0x1E */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
81 /* 0x1F */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
82 /* 0x20 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "and", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
83 /* 0x21 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "and", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
84 /* 0x22 */ { 0, IT_GENERIC
, AM_G
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "and", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
85 /* 0x23 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "and", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
86 /* 0x24 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "and", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
87 /* 0x25 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "and", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
88 /* 0x26 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
89 /* 0x27 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "daa", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
90 /* 0x28 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "sub", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
91 /* 0x29 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "sub", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
92 /* 0x2A */ { 0, IT_GENERIC
, AM_G
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "sub", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
93 /* 0x2B */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "sub", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
94 /* 0x2C */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "sub", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
95 /* 0x2D */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "sub", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
96 /* 0x2E */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
97 /* 0x2F */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "das", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
98 /* 0x30 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "xor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
99 /* 0x31 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "xor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
100 /* 0x32 */ { 0, IT_GENERIC
, AM_G
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "xor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
101 /* 0x33 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "xor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
102 /* 0x34 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "xor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
103 /* 0x35 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "xor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
104 /* 0x36 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
105 /* 0x37 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "aaa", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
106 /* 0x38 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "cmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
107 /* 0x39 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "cmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
108 /* 0x3A */ { 0, IT_GENERIC
, AM_G
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "cmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
109 /* 0x3B */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
110 /* 0x3C */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "cmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
111 /* 0x3D */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "cmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
112 /* 0x3E */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
113 /* 0x3F */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "aas", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
115 /* REX Prefixes in 64-bit mode. */
116 /* 0x40 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
117 /* 0x41 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
118 /* 0x42 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
119 /* 0x43 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
120 /* 0x44 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
121 /* 0x45 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
122 /* 0x46 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
123 /* 0x47 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
124 /* 0x48 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
125 /* 0x49 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
126 /* 0x4A */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
127 /* 0x4B */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
128 /* 0x4C */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
129 /* 0x4D */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
130 /* 0x4E */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
131 /* 0x4F */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
133 /* 0x40 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "inc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
134 /* 0x41 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "inc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
135 /* 0x42 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "inc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
136 /* 0x43 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "inc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
137 /* 0x44 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "inc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
138 /* 0x45 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "inc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
139 /* 0x46 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "inc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
140 /* 0x47 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "inc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
141 /* 0x48 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "dec", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
142 /* 0x49 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "dec", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
143 /* 0x4A */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "dec", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
144 /* 0x4B */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "dec", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
145 /* 0x4C */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "dec", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
146 /* 0x4D */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "dec", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
147 /* 0x4E */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "dec", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
148 /* 0x4F */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "dec", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
150 /* 0x50 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
151 /* 0x51 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
152 /* 0x52 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
153 /* 0x53 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
154 /* 0x54 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
155 /* 0x55 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
156 /* 0x56 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
157 /* 0x57 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
158 /* 0x58 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
159 /* 0x59 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
160 /* 0x5A */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
161 /* 0x5B */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
162 /* 0x5C */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
163 /* 0x5D */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
164 /* 0x5E */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
165 /* 0x5F */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
166 /* 0x60 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "pushad", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
167 /* 0x61 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "popad", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
168 /* 0x62 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_M
| OT_A
, AM_NOT_USED
, "bound", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
169 /* 0x63 */ { 0, IT_GENERIC
, AM_E
| OT_W
, AM_G
| OT_W
, AM_NOT_USED
, "arpl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
170 /* 0x64 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
171 /* 0x65 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
172 /* 0x66 */ { 0, IT_PREFIX_OPERAND
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
173 /* 0x67 */ { 0, IT_PREFIX_ADDRESS
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
174 /* 0x68 */ { 0, IT_GENERIC
, AM_I
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
175 /* 0x69 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_I
| OT_V
, "imul", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
176 /* 0x6A */ { 0, IT_GENERIC
, AM_I
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
177 /* 0x6B */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_I
| OT_B
, "imul", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
178 /* 0x6C */ { 0, IT_GENERIC
, AM_Y
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "insb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
179 /* 0x6D */ { 0, IT_GENERIC
, AM_Y
| OT_V
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "insd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
180 /* 0x6E */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_X
| OT_B
, AM_NOT_USED
, "outsb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
181 /* 0x6F */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_X
| OT_V
, AM_NOT_USED
, "outsb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
182 /* 0x70 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jo", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
183 /* 0x71 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jno", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
184 /* 0x72 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
185 /* 0x73 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jnc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
186 /* 0x74 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
187 /* 0x75 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jnz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
188 /* 0x76 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jbe", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
189 /* 0x77 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "ja", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
190 /* 0x78 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "js", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
191 /* 0x79 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jns", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
192 /* 0x7A */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jpe", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
193 /* 0x7B */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jpo", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
194 /* 0x7C */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
195 /* 0x7D */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jge", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
196 /* 0x7E */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jle", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
197 /* 0x7F */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
198 /* 0x80 */ { 2, IT_REFERENCE
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
199 /* 0x81 */ { 3, IT_REFERENCE
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
200 /* 0x82 */ { 4, IT_REFERENCE
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
201 /* 0x83 */ { 5, IT_REFERENCE
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
202 /* 0x84 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "test", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
203 /* 0x85 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "test", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
204 /* 0x86 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
205 /* 0x87 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
206 /* 0x88 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
207 /* 0x89 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
208 /* 0x8A */ { 0, IT_GENERIC
, AM_G
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
209 /* 0x8B */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
210 /* 0x8C */ { 0, IT_GENERIC
, AM_E
| OT_W
, AM_S
| OT_W
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
211 /* 0x8D */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_M
| OT_ADDRESS_MODE_M
, AM_NOT_USED
, "lea", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
212 /* 0x8E */ { 0, IT_GENERIC
, AM_S
| OT_W
, AM_E
| OT_W
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
213 /* 0x8F */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
214 /* 0x90 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "nop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
215 /* 0x91 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
216 /* 0x92 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
217 /* 0x93 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
218 /* 0x94 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
219 /* 0x95 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
220 /* 0x96 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
221 /* 0x97 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
222 /* 0x98 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "cwde", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
223 /* 0x99 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "cdq", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
224 /* 0x9A */ { 0, IT_JUMP
, AM_A
| OT_P
, AM_NOT_USED
, AM_NOT_USED
, "callf", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
225 /* 0x9B */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "wait", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
226 /* 0x9C */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "pushfd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
227 /* 0x9D */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "popfd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
228 /* 0x9E */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "sahf", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
229 /* 0x9F */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "lahf", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
230 /* 0xA0 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_O
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
231 /* 0xA1 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_O
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
232 /* 0xA2 */ { 0, IT_GENERIC
, AM_O
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
233 /* 0xA3 */ { 0, IT_GENERIC
, AM_O
| OT_V
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
234 /* 0xA4 */ { 0, IT_GENERIC
, AM_X
| OT_B
, AM_Y
| OT_B
, AM_NOT_USED
, "movsb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
235 /* 0xA5 */ { 0, IT_GENERIC
, AM_X
| OT_V
, AM_Y
| OT_V
, AM_NOT_USED
, "movsd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
236 /* 0xA6 */ { 0, IT_GENERIC
, AM_X
| OT_B
, AM_Y
| OT_B
, AM_NOT_USED
, "cmpsb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
237 /* 0xA7 */ { 0, IT_GENERIC
, AM_X
| OT_V
, AM_Y
| OT_V
, AM_NOT_USED
, "cmpsd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
238 /* 0xA8 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "test", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
239 /* 0xA9 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "test", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
240 /* 0xAA */ { 0, IT_GENERIC
, AM_Y
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "stosb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
241 /* 0xAB */ { 0, IT_GENERIC
, AM_Y
| OT_V
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "stosd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
242 /* 0xAC */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_X
| OT_B
, AM_NOT_USED
, "lodsb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
243 /* 0xAD */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_X
| OT_V
, AM_NOT_USED
, "lodsd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
244 /* 0xAE */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_Y
| OT_B
, AM_NOT_USED
, "scasb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
245 /* 0xAF */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_Y
| OT_V
, AM_NOT_USED
, "scasd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
246 /* 0xB0 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
247 /* 0xB1 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
248 /* 0xB2 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
249 /* 0xB3 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
250 /* 0xB4 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
251 /* 0xB5 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
252 /* 0xB6 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
253 /* 0xB7 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
255 /* 0xB8 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
| IOS_64
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
256 /* 0xB9 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
| IOS_64
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
257 /* 0xBA */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
| IOS_64
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
258 /* 0xBB */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
| IOS_64
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
259 /* 0xBC */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
| IOS_64
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
260 /* 0xBD */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
| IOS_64
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
261 /* 0xBE */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
| IOS_64
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
262 /* 0xBF */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
| IOS_64
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
264 /* 0xB8 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
265 /* 0xB9 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
266 /* 0xBA */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
267 /* 0xBB */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
268 /* 0xBC */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
269 /* 0xBD */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
270 /* 0xBE */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
271 /* 0xBF */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
273 /* 0xC0 */ { 6, IT_REFERENCE
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
274 /* 0xC1 */ { 7, IT_REFERENCE
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
275 /* 0xC2 */ { 0, IT_RETURN
, AM_I
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "ret", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
276 /* 0xC3 */ { 0, IT_RETURN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "ret", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
277 /* 0xC4 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_M
| OT_P
, AM_NOT_USED
, "les", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
278 /* 0xC5 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_M
| OT_P
, AM_NOT_USED
, "lds", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
279 /* 0xC6 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
280 /* 0xC7 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
281 /* 0xC8 */ { 0, IT_GENERIC
, AM_I
| OT_W
, AM_I
| OT_B
, AM_NOT_USED
, "enter", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
282 /* 0xC9 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "leave", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
283 /* 0xCA */ { 0, IT_RETURN
, AM_I
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "retf", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
284 /* 0xCB */ { 0, IT_RETURN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "retf", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
285 /* 0xCC */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "int3", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
286 /* 0xCD */ { 0, IT_GENERIC
, AM_I
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "int", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
287 /* 0xCE */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "into", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
288 /* 0xCF */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "iret", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
289 /* 0xD0 */ { 8, IT_REFERENCE
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
290 /* 0xD1 */ { 9, IT_REFERENCE
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
291 /* 0xD2 */ { 10, IT_REFERENCE
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
292 /* 0xD3 */ { 11, IT_REFERENCE
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
293 /* 0xD4 */ { 0, IT_GENERIC
, AM_I
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "aam", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
294 /* 0xD5 */ { 0, IT_GENERIC
, AM_I
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "aad", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
295 /* 0xD6 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
296 /* 0xD7 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "xlat", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
298 // The following 8 lines would be references to the FPU tables, but we currently
299 // do not support the FPU instructions in this disassembler.
301 /* 0xD8 */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
302 /* 0xD9 */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
303 /* 0xDA */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
304 /* 0xDB */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
305 /* 0xDC */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
306 /* 0xDD */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
307 /* 0xDE */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
308 /* 0xDF */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
311 /* 0xE0 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "loopnz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
312 /* 0xE1 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "loopz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
313 /* 0xE2 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "loop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
314 /* 0xE3 */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jcxz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
315 /* 0xE4 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "in", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
316 /* 0xE5 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "in", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
317 /* 0xE6 */ { 0, IT_GENERIC
, AM_I
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "out", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
318 /* 0xE7 */ { 0, IT_GENERIC
, AM_I
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "out", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
319 /* 0xE8 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "call", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
320 /* 0xE9 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
321 /* 0xEA */ { 0, IT_JUMP
, AM_A
| OT_P
, AM_NOT_USED
, AM_NOT_USED
, "jmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
322 /* 0xEB */ { 0, IT_JUMP
, AM_J
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "jmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
323 /* 0xEC */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_REGISTER
| OT_W
, AM_NOT_USED
, "in", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
324 /* 0xED */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_REGISTER
| OT_W
, AM_NOT_USED
, "in", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
325 /* 0xEE */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "out", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
326 /* 0xEF */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_REGISTER
| OT_V
, AM_NOT_USED
, "out", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
327 /* 0xF0 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "lock:", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
328 /* 0xF1 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
329 /* 0xF2 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "repne:", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
330 /* 0xF3 */ { 0, IT_PREFIX
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "rep:", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
331 /* 0xF4 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "hlt", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
332 /* 0xF5 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "cmc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
333 /* 0xF6 */ { 12, IT_REFERENCE
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
334 /* 0xF7 */ { 13, IT_REFERENCE
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
335 /* 0xF8 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "clc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
336 /* 0xF9 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "stc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
337 /* 0xFA */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "cli", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
338 /* 0xFB */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "sti", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
339 /* 0xFC */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "cld", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
340 /* 0xFD */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "std", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
341 /* 0xFE */ { 14, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
342 /* 0xFF */ { 15, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
345 const Opcode s_opcode_byte_after_0f
[] = {
346 /* 0x0 */ { 16, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
347 /* 0x1 */ { 17, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
348 /* 0x2 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_W
, AM_NOT_USED
, "lar", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
349 /* 0x3 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_W
, AM_NOT_USED
, "lsl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
350 /* 0x4 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
351 /* 0x5 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
352 /* 0x6 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "clts", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
353 /* 0x7 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
354 /* 0x8 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "invd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
355 /* 0x9 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "wbinvd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
356 /* 0xA */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
357 /* 0xB */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "ud2", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
358 /* 0xC */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
359 /* 0xD */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
360 /* 0xE */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
361 /* 0xF */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
362 /* 0x10 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "movups", true,
363 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "movsd" },
364 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "movss" },
365 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "movupd" } },
366 /* 0x11 */ { 0, IT_GENERIC
, AM_W
| OT_PS
, AM_V
| OT_PS
, AM_NOT_USED
, "movups", true,
367 /* F2h */ { 0, IT_GENERIC
, AM_W
| OT_SD
, AM_V
| OT_SD
, AM_NOT_USED
, "movsd" },
368 /* F3h */ { 0, IT_GENERIC
, AM_W
| OT_SS
, AM_V
| OT_SS
, AM_NOT_USED
, "movss" },
369 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_PD
, AM_V
| OT_PD
, AM_NOT_USED
, "movupd" } },
370 /* 0x12 */ { 0, IT_GENERIC
, AM_W
| OT_Q
, AM_V
| OT_Q
, AM_NOT_USED
, "movlps", true,
371 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_Q
, AM_V
| OT_Q
, AM_NOT_USED
, "movhlps" }, // only one of ...
372 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_Q
, AM_V
| OT_Q
, AM_NOT_USED
, "movhlps" }, // ...these two is correct, Intel doesn't specify which
373 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_Q
, AM_W
| OT_S
, AM_NOT_USED
, "movlpd" } },
374 /* 0x13 */ { 0, IT_GENERIC
, AM_V
| OT_Q
, AM_W
| OT_Q
, AM_NOT_USED
, "movlps", true,
377 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_Q
, AM_W
| OT_Q
, AM_NOT_USED
, "movlpd" } },
378 /* 0x14 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_Q
, AM_NOT_USED
, "unpcklps", true,
381 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_Q
, AM_NOT_USED
, "unpcklpd" } },
382 /* 0x15 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_Q
, AM_NOT_USED
, "unpckhps", true,
385 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_Q
, AM_NOT_USED
, "unpckhpd" } },
386 /* 0x16 */ { 0, IT_GENERIC
, AM_V
| OT_Q
, AM_W
| OT_Q
, AM_NOT_USED
, "movhps", true,
387 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_Q
, AM_V
| OT_Q
, AM_NOT_USED
, "movlhps" }, // only one of...
388 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_Q
, AM_V
| OT_Q
, AM_NOT_USED
, "movlhps" }, // ...these two is correct, Intel doesn't specify which
389 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_Q
, AM_W
| OT_Q
, AM_NOT_USED
, "movhpd" } },
390 /* 0x17 */ { 0, IT_GENERIC
, AM_W
| OT_Q
, AM_V
| OT_Q
, AM_NOT_USED
, "movhps", true,
393 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_Q
, AM_V
| OT_Q
, AM_NOT_USED
, "movhpd" } },
394 /* 0x18 */ { 18, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
395 /* 0x19 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
396 /* 0x1A */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
397 /* 0x1B */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
398 /* 0x1C */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
399 /* 0x1D */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
400 /* 0x1E */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
401 /* 0x1F */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
402 /* 0x20 */ { 0, IT_GENERIC
, AM_R
| OT_D
, AM_C
| OT_D
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
403 /* 0x21 */ { 0, IT_GENERIC
, AM_R
| OT_D
, AM_D
| OT_D
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
404 /* 0x22 */ { 0, IT_GENERIC
, AM_C
| OT_D
, AM_R
| OT_D
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
405 /* 0x23 */ { 0, IT_GENERIC
, AM_D
| OT_D
, AM_R
| OT_D
, AM_NOT_USED
, "mov", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
406 /* 0x24 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
407 /* 0x25 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
408 /* 0x26 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
409 /* 0x27 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
410 /* 0x28 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "movaps", true,
413 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "movapd" } },
414 /* 0x29 */ { 0, IT_GENERIC
, AM_W
| OT_PS
, AM_V
| OT_PS
, AM_NOT_USED
, "movaps", true,
417 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_PD
, AM_V
| OT_PD
, AM_NOT_USED
, "movapd" } },
418 /* 0x2A */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_Q
| OT_Q
, AM_NOT_USED
, "cvtpi2ps", true,
419 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_E
| OT_D
, AM_NOT_USED
, "cvtsi2sd" },
420 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_E
| OT_D
, AM_NOT_USED
, "cvtsi2ss" },
421 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_Q
| OT_DQ
, AM_NOT_USED
, "cvtpi2pd" } },
422 /* 0x2B */ { 0, IT_GENERIC
, AM_W
| OT_PS
, AM_V
| OT_PS
, AM_NOT_USED
, "movntps", true,
425 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_PD
, AM_V
| OT_PD
, AM_NOT_USED
, "movntpd" } },
426 /* 0x2C */ { 0, IT_GENERIC
, AM_Q
| OT_Q
, AM_W
| OT_PS
, AM_NOT_USED
, "cvttps2pi", true,
427 /* F2h */ { 0, IT_GENERIC
, AM_G
| OT_D
, AM_W
| OT_SD
, AM_NOT_USED
, "cvttsd2si" },
428 /* F3h */ { 0, IT_GENERIC
, AM_G
| OT_D
, AM_W
| OT_SS
, AM_NOT_USED
, "cvttss2si" },
429 /* 66h */ { 0, IT_GENERIC
, AM_Q
| OT_DQ
, AM_W
| OT_PD
, AM_NOT_USED
, "cvttpd2pi" } },
430 /* 0x2D */ { 0, IT_GENERIC
, AM_Q
| OT_Q
, AM_W
| OT_PS
, AM_NOT_USED
, "cvtps2pi", true,
431 /* F2h */ { 0, IT_GENERIC
, AM_G
| OT_D
, AM_W
| OT_SD
, AM_NOT_USED
, "cvtsd2si" },
432 /* F3h */ { 0, IT_GENERIC
, AM_G
| OT_D
, AM_W
| OT_SS
, AM_NOT_USED
, "cvtss2si" },
433 /* 66h */ { 0, IT_GENERIC
, AM_Q
| OT_DQ
, AM_W
| OT_PD
, AM_NOT_USED
, "cvtpd2pi" } },
434 /* 0x2E */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "ucomiss", true,
437 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "ucomisd" } },
438 /* 0x2F */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_SS
, AM_NOT_USED
, "comiss", true,
441 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "comisd" } },
442 /* 0x30 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "wrmsr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
443 /* 0x31 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "rdtsc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
444 /* 0x32 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "rdmsr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
445 /* 0x33 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "rdpmc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
446 /* 0x34 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "sysenter", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
447 /* 0x35 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "sysexit", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
448 /* 0x36 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
449 /* 0x37 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
450 /* 0x38 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
451 /* 0x39 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
452 /* 0x3A */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
453 /* 0x3B */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
454 /* 0x3C */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "movnti", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
455 /* 0x3D */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
456 /* 0x3E */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
457 /* 0x3F */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
458 /* 0x40 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovo", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
459 /* 0x41 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovno", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
460 /* 0x42 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
461 /* 0x43 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovnc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
462 /* 0x44 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
463 /* 0x45 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovnz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
464 /* 0x46 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovbe", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
465 /* 0x47 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmova", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
466 /* 0x48 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovs", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
467 /* 0x49 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovns", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
468 /* 0x4A */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovpe", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
469 /* 0x4B */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovpo", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
470 /* 0x4C */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
471 /* 0x4D */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovge", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
472 /* 0x4E */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovle", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
473 /* 0x4F */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "cmovg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
474 /* 0x50 */ { 0, IT_GENERIC
, AM_E
| OT_D
, AM_V
| OT_PS
, AM_NOT_USED
, "movmskps", true,
477 /* 66h */ { 0, IT_GENERIC
, AM_E
| OT_D
, AM_V
| OT_PD
, AM_NOT_USED
, "movmskpd" } },
478 /* 0x51 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "sqrtps", true,
479 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "sqrtsd" },
480 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "sqrtss" },
481 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "sqrtpd" } },
482 /* 0x52 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "rsqrtps", true,
484 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "rsqrtss" },
486 /* 0x53 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "rcpps", true,
488 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "rcpss" },
490 /* 0x54 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "andps", true,
493 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "andpd" } },
494 /* 0x55 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "andnps", true,
497 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "andnpd" } },
498 /* 0x56 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "orps", true,
501 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "orpd" } },
502 /* 0x57 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "xorps", true,
505 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "xorpd" } },
506 /* 0x58 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "addps", true,
507 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "addsd" },
508 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "addss" },
509 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "addpd" } },
510 /* 0x59 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "mulps", true,
511 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "mulsd" },
512 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "mulss" },
513 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "mulpd" } },
514 /* 0x5A */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PS
, AM_NOT_USED
, "cvtps2pd", true,
515 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "cvtsd2ss" },
516 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "cvtss2sd" },
517 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PD
, AM_NOT_USED
, "cvtpd2ps" } },
518 /* 0x5B */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_DQ
, AM_NOT_USED
, "cvtdq2ps", true,
520 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_PS
, AM_NOT_USED
, "cvttps2dq" },
521 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_PS
, AM_NOT_USED
, "cvtps2dq" } },
522 /* 0x5C */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "subps", true,
523 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "subsd" },
524 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "subss" },
525 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "subpd" } },
526 /* 0x5D */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "minps", true,
527 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "minsd" },
528 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "minss" },
529 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "minpd" } },
530 /* 0x5E */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "divps", true,
531 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "divsd" },
532 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "divss" },
533 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "divpd" } },
534 /* 0x5F */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_NOT_USED
, "maxps", true,
535 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_NOT_USED
, "maxsd" },
536 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_NOT_USED
, "maxss" },
537 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_NOT_USED
, "maxpd" } },
538 /* 0x60 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "punpcklbw", true,
541 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "punpcklbw" } },
542 /* 0x61 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "punpcklwd", true,
545 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "punpcklwd" } },
546 /* 0x62 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "punpckldq", true,
549 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "punpckldq" } },
550 /* 0x63 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "packsswb", true,
553 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "packsswb" } },
554 /* 0x64 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "pcmpgtb", true,
557 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pcmpgtb" } },
558 /* 0x65 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "pcmpgtw", true,
561 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pcmpgtw" } },
562 /* 0x66 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "pcmpgtd", true,
565 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pcmpgtd" } },
566 /* 0x67 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "packuswb", true,
569 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "packuswb" } },
570 /* 0x68 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "punpckhbw", true,
573 /* 66h */ { 0, IT_GENERIC
, AM_P
| OT_DQ
, AM_Q
| OT_DQ
, AM_NOT_USED
, "punpckhbw" } },
574 /* 0x69 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "punpckhwd", true,
577 /* 66h */ { 0, IT_GENERIC
, AM_P
| OT_DQ
, AM_Q
| OT_DQ
, AM_NOT_USED
, "punpckhwd" } },
578 /* 0x6A */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "punpckhdq", true,
581 /* 66h */ { 0, IT_GENERIC
, AM_P
| OT_DQ
, AM_Q
| OT_DQ
, AM_NOT_USED
, "punpckhdq" } },
582 /* 0x6B */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "packssdw", true,
585 /* 66h */ { 0, IT_GENERIC
, AM_P
| OT_DQ
, AM_Q
| OT_DQ
, AM_NOT_USED
, "packssdw" } },
586 /* 0x6C */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "not used without prefix", true,
589 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "punpcklqdq" } },
590 /* 0x6D */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "not used without prefix", true,
593 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "punpcklqdq" } },
594 /* 0x6E */ { 0, IT_GENERIC
, AM_P
| OT_D
, AM_E
| OT_D
, AM_NOT_USED
, "movd", true,
597 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_E
| OT_D
, AM_NOT_USED
, "movd" } },
598 /* 0x6F */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_D
, AM_NOT_USED
, "movq", true,
600 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "movdqu" },
601 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "movdqa" } },
602 /* 0x70 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_I
| OT_B
, "pshuf", true,
603 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_I
| OT_B
, "pshuflw" },
604 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_I
| OT_B
, "pshufhw" },
605 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_I
| OT_B
, "pshufd" } },
606 /* 0x71 */ { 19, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
607 /* 0x72 */ { 20, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
608 /* 0x73 */ { 21, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
609 /* 0x74 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pcmpeqb", true,
612 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pcmpeqb" } },
613 /* 0x75 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pcmpeqw", true,
616 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pcmpeqw" } },
617 /* 0x76 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pcmpeqd", true,
620 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pcmpeqd" } },
621 /* 0x77 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "emms", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
623 // The following six opcodes are escapes into the MMX stuff, which this disassembler does not support.
624 /* 0x78 */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
625 /* 0x79 */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
626 /* 0x7A */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
627 /* 0x7B */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
628 /* 0x7C */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
629 /* 0x7D */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
631 /* 0x7E */ { 0, IT_GENERIC
, AM_E
| OT_D
, AM_P
| OT_D
, AM_NOT_USED
, "movd", true,
633 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_Q
, AM_W
| OT_Q
, AM_NOT_USED
, "movq" },
634 /* 66h */ { 0, IT_GENERIC
, AM_E
| OT_D
, AM_V
| OT_DQ
, AM_NOT_USED
, "movd" } },
635 /* 0x7F */ { 0, IT_GENERIC
, AM_Q
| OT_Q
, AM_P
| OT_Q
, AM_NOT_USED
, "movq", true,
637 /* F3h */ { 0, IT_GENERIC
, AM_W
| OT_DQ
, AM_V
| OT_DQ
, AM_NOT_USED
, "movdqu" },
638 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_DQ
, AM_V
| OT_DQ
, AM_NOT_USED
, "movdqa" } },
639 /* 0x80 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jo", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
640 /* 0x81 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jno", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
641 /* 0x82 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
642 /* 0x83 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jnc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
643 /* 0x84 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
644 /* 0x85 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jnz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
645 /* 0x86 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jbe", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
646 /* 0x87 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "ja", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
647 /* 0x88 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "js", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
648 /* 0x89 */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jns", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
649 /* 0x8A */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jpe", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
650 /* 0x8B */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jpo", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
651 /* 0x8C */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
652 /* 0x8D */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jge", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
653 /* 0x8E */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jle", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
654 /* 0x8F */ { 0, IT_JUMP
, AM_J
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
655 /* 0x90 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "seto", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
656 /* 0x91 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setno", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
657 /* 0x92 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
658 /* 0x93 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setnc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
659 /* 0x94 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
660 /* 0x95 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setnz", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
661 /* 0x96 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setbe", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
662 /* 0x97 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "seta", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
663 /* 0x98 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "sets", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
664 /* 0x99 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setns", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
665 /* 0x9A */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setpe", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
666 /* 0x9B */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setpo", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
667 /* 0x9C */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
668 /* 0x9D */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setge", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
669 /* 0x9E */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setle", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
670 /* 0x9F */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "setg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
671 /* 0xA0 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
672 /* 0xA1 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
673 /* 0xA2 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "cpuid", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
674 /* 0xA3 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "bt", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
675 /* 0xA4 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_I
| OT_B
, "shld", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
676 /* 0xA5 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_I
| OT_B
| AM_REGISTER
, "shld", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
677 /* 0xA6 */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
678 /* 0xA7 */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
679 /* 0xA8 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
680 /* 0xA9 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "pop", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
681 /* 0xAA */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "rsm", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
682 /* 0xAB */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "bts", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
683 /* 0xAC */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_I
| OT_B
, "shrd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
684 /* 0xAD */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_I
| OT_B
| AM_REGISTER
, "shrd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
685 /* 0xAE */ { 22, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
686 /* 0xAF */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "imul", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
687 /* 0xB0 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "cmpxchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
688 /* 0xB1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "cmpxchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
689 /* 0xB2 */ { 0, IT_GENERIC
, AM_M
| OT_P
, AM_NOT_USED
, AM_NOT_USED
, "lss", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
690 /* 0xB3 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "btr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
691 /* 0xB4 */ { 0, IT_GENERIC
, AM_M
| OT_P
, AM_NOT_USED
, AM_NOT_USED
, "lfs", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
692 /* 0xB5 */ { 0, IT_GENERIC
, AM_M
| OT_P
, AM_NOT_USED
, AM_NOT_USED
, "lgs", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
693 /* 0xB6 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_B
, AM_NOT_USED
, "movzx", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
694 /* 0xB7 */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_W
, AM_NOT_USED
, "movzx", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
695 /* 0xB8 */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
696 /* 0xB9 */ { 0, IT_UNKNOWN
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "ud1", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
697 /* 0xBA */ { 23, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
698 /* 0xBB */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_G
| OT_V
, AM_NOT_USED
, "btc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
699 /* 0xBC */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "bsf", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
700 /* 0xBD */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "bsr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
701 /* 0xBE */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_B
, AM_NOT_USED
, "movsx", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
702 /* 0xBF */ { 0, IT_GENERIC
, AM_G
| OT_V
, AM_E
| OT_W
, AM_NOT_USED
, "movsx", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
703 /* 0xC0 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_G
| OT_B
, AM_NOT_USED
, "xadd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
704 /* 0xC1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "xadd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
705 /* 0xC2 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_I
| OT_B
, "cmpps", true,
706 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_SD
, AM_W
| OT_SD
, AM_I
| OT_B
, "cmpsd" },
707 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_SS
, AM_W
| OT_SS
, AM_I
| OT_B
, "cmpss" },
708 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_I
| OT_B
, "cmppd" } },
709 /* 0xC3 */ { 0, IT_GENERIC
, AM_E
| OT_D
, AM_G
| OT_D
, AM_NOT_USED
, "movnti", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
710 /* 0xC4 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_E
| OT_D
, AM_I
| OT_B
, "pinsrw", true,
713 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_E
| OT_D
, AM_I
| OT_B
, "pinsrw" } },
714 /* 0xC5 */ { 0, IT_GENERIC
, AM_G
| OT_D
, AM_P
| OT_Q
, AM_I
| OT_B
, "pextrw", true,
717 /* 66h */ { 0, IT_GENERIC
, AM_G
| OT_D
, AM_V
| OT_DQ
, AM_I
| OT_B
, "pextrw" } },
718 /* 0xC6 */ { 0, IT_GENERIC
, AM_V
| OT_PS
, AM_W
| OT_PS
, AM_I
| OT_B
, "shufps", true,
721 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_PD
, AM_I
| OT_B
, "shufpd" } },
722 /* 0xC7 */ { 24, IT_REFERENCE
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
723 /* 0xC8 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "bswap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
724 /* 0xC9 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "bswap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
725 /* 0xCA */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "bswap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
726 /* 0xCB */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "bswap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
727 /* 0xCC */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "bswap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
728 /* 0xCD */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "bswap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
729 /* 0xCE */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "bswap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
730 /* 0xCF */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "bswap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
731 /* 0xD0 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
732 /* 0xD1 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psrlw", true,
735 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psrlw" } },
736 /* 0xD2 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psrld", true,
739 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psrld" } },
740 /* 0xD3 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psrlq", true,
743 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psrlq" } },
744 /* 0xD4 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "paddq", true,
747 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "paddq" } },
748 /* 0xD5 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pmullw", true,
751 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pmullw" } },
752 /* 0xD6 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "unused without prefix", true,
753 /* F2h */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_W
| OT_Q
, AM_NOT_USED
, "movdq2q" },
754 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_Q
| OT_Q
, AM_NOT_USED
, "movq2dq" },
755 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_Q
, AM_V
| OT_Q
, AM_NOT_USED
, "movq" } },
756 /* 0xD7 */ { 0, IT_GENERIC
, AM_G
| OT_D
, AM_P
| OT_Q
, AM_NOT_USED
, "pmovmskb", true,
759 /* 66h */ { 0, IT_GENERIC
, AM_G
| OT_D
, AM_V
| OT_DQ
, AM_NOT_USED
, "pmovmskb" } },
760 /* 0xD8 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psubusb", true,
763 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psubusb" } },
764 /* 0xD9 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psubusw", true,
767 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psubusw" } },
768 /* 0xDA */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pminub", true,
771 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pminub" } },
772 /* 0xDB */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pand", true,
775 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pand" } },
776 /* 0xDC */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "paddusb", true,
779 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "paddusb" } },
780 /* 0xDD */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "paddusw", true,
783 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "paddusw" } },
784 /* 0xDE */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pmaxub", true,
787 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pmaxub" } },
788 /* 0xDF */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pandn", true,
791 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pandn" } },
792 /* 0xE0 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pavgb", true,
795 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pavgb" } },
796 /* 0xE1 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psraw", true,
799 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psrqw" } },
800 /* 0xE2 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psrad", true,
803 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psrad" } },
804 /* 0xE3 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pavgw", true,
807 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pavgw" } },
808 /* 0xE4 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pmulhuw", true,
811 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pmulhuw" } },
812 /* 0xE5 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pmulhuw", true,
815 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pmulhw" } },
816 /* 0xE6 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "not used without prefix", true,
817 /* F2h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_PD
, AM_NOT_USED
, "cvtpd2dq" },
818 /* F3h */ { 0, IT_GENERIC
, AM_V
| OT_PD
, AM_W
| OT_DQ
, AM_NOT_USED
, "cvtdq2pd" },
819 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_PD
, AM_NOT_USED
, "cvttpd2dq" } },
820 /* 0xE7 */ { 0, IT_GENERIC
, AM_W
| OT_Q
, AM_V
| OT_Q
, AM_NOT_USED
, "movntq", true,
823 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_DQ
, AM_V
| OT_DQ
, AM_NOT_USED
, "movntdq" } },
824 /* 0xE8 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psubsb", true,
827 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psubsb" } },
828 /* 0xE9 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psubsw", true,
831 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psubsw" } },
832 /* 0xEA */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pminsw", true,
835 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pminsw" } },
836 /* 0xEB */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "por", true,
839 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "por" } },
840 /* 0xEC */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "paddsb", true,
843 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "paddsb" } },
844 /* 0xED */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "paddsw", true,
847 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "paddsw" } },
848 /* 0xEE */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pmaxsw", true,
851 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pmaxsw" } },
852 /* 0xEF */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pxor", true,
855 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pxor" } },
856 /* 0xF0 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
857 /* 0xF1 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psllw", true,
860 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psllw" } },
861 /* 0xF2 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pslld", true,
864 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pslld" } },
865 /* 0xF3 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psllq", true,
868 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psllq" } },
869 /* 0xF4 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pmuludq", true,
872 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pmuludq" } },
873 /* 0xF5 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "pmaddwd", true,
876 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "pmaddwd" } },
877 /* 0xF6 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psadbw", true,
880 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psadbw" } },
881 /* 0xF7 */ { 0, IT_GENERIC
, AM_P
| OT_PI
, AM_Q
| OT_PI
, AM_NOT_USED
, "maskmovq", true,
884 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "maskmovdqu" } },
885 /* 0xF8 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psubb", true,
888 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psubb" } },
889 /* 0xF9 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psubw", true,
892 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psubw" } },
893 /* 0xFA */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psubd", true,
896 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psubd" } },
897 /* 0xFB */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "psubq", true,
900 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "psubq" } },
901 /* 0xFC */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "paddb", true,
904 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "paddb" } },
905 /* 0xFD */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "paddw", true,
908 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "paddw" } },
909 /* 0xFE */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_Q
| OT_Q
, AM_NOT_USED
, "paddd", true,
912 /* 66h */ { 0, IT_GENERIC
, AM_V
| OT_DQ
, AM_W
| OT_DQ
, AM_NOT_USED
, "paddd" } },
913 /* 0xFF */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
916 const Opcode s_opcode_byte_after_0f00
[] = {
917 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "sldt", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
918 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "str", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
919 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "lldt", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
920 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "ltr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
921 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "verr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
922 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "verw", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
923 /* 0x6 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
924 /* 0x7 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
927 const Opcode s_opcode_byte_after_0f01
[] = {
928 /* 0x0 */ { 0, IT_GENERIC
, AM_M
| OT_S
, AM_NOT_USED
, AM_NOT_USED
, "sgdt", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
929 /* 0x1 */ { 0, IT_GENERIC
, AM_M
| OT_S
, AM_NOT_USED
, AM_NOT_USED
, "sidt", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
930 /* 0x2 */ { 0, IT_GENERIC
, AM_M
| OT_S
, AM_NOT_USED
, AM_NOT_USED
, "lgdt", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
931 /* 0x3 */ { 0, IT_GENERIC
, AM_M
| OT_S
, AM_NOT_USED
, AM_NOT_USED
, "lidt", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
932 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "smsw", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
933 /* 0x5 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
934 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_W
, AM_NOT_USED
, AM_NOT_USED
, "lmsw", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
935 /* 0x7 */ { 0, IT_GENERIC
, AM_M
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "invlpg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
938 const Opcode s_opcode_byte_after_0f18
[] = {
939 /* 0x0 */ { 0, IT_GENERIC
, AM_M
| OT_ADDRESS_MODE_M
, AM_NOT_USED
, AM_NOT_USED
, "prefetch", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
940 /* 0x1 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "prefetch", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
941 /* 0x2 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "prefetch", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
942 /* 0x3 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_D
, AM_NOT_USED
, AM_NOT_USED
, "prefetch", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
943 /* 0x4 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
944 /* 0x5 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
945 /* 0x6 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
946 /* 0x7 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
949 const Opcode s_opcode_byte_after_0f71
[] = {
950 /* 0x0 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
951 /* 0x1 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
952 /* 0x2 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_I
| OT_B
, AM_NOT_USED
, "psrlw", true,
955 /* 66h */ { 0, IT_GENERIC
, AM_P
| OT_DQ
, AM_I
| OT_B
, AM_NOT_USED
, "psrlw" } },
956 /* 0x3 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
957 /* 0x4 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_I
| OT_B
, AM_NOT_USED
, "psraw", true,
960 /* 66h */ { 0, IT_GENERIC
, AM_P
| OT_DQ
, AM_I
| OT_B
, AM_NOT_USED
, "psraw" } },
961 /* 0x5 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
962 /* 0x6 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_I
| OT_B
, AM_NOT_USED
, "psllw", true,
965 /* 66h */ { 0, IT_GENERIC
, AM_P
| OT_DQ
, AM_I
| OT_B
, AM_NOT_USED
, "psllw" } },
966 /* 0x7 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
969 const Opcode s_opcode_byte_after_0f72
[] = {
970 /* 0x0 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
971 /* 0x1 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
972 /* 0x2 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_I
| OT_B
, AM_NOT_USED
, "psrld", true,
975 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_DQ
, AM_I
| OT_B
, AM_NOT_USED
, "psrld" } },
976 /* 0x3 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
977 /* 0x4 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_I
| OT_B
, AM_NOT_USED
, "psrad", true,
980 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_DQ
, AM_I
| OT_B
, AM_NOT_USED
, "psrad" } },
981 /* 0x5 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
982 /* 0x6 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_I
| OT_B
, AM_NOT_USED
, "pslld", true,
985 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_DQ
, AM_I
| OT_B
, AM_NOT_USED
, "pslld" } },
986 /* 0x7 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
989 const Opcode s_opcode_byte_after_0f73
[] = {
990 /* 0x0 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
991 /* 0x1 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
992 /* 0x2 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_I
| OT_B
, AM_NOT_USED
, "psrlq", true,
995 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_DQ
, AM_I
| OT_B
, AM_NOT_USED
, "psrlq" } },
996 /* 0x3 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
997 /* 0x4 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
998 /* 0x5 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
999 /* 0x6 */ { 0, IT_GENERIC
, AM_P
| OT_Q
, AM_I
| OT_B
, AM_NOT_USED
, "psllq", true,
1002 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_DQ
, AM_I
| OT_B
, AM_NOT_USED
, "psllq" } },
1003 /* 0x7 */ { 0, IT_GENERIC
, AM_W
| OT_DQ
, AM_I
| OT_B
, AM_NOT_USED
, "pslldq", true,
1006 /* 66h */ { 0, IT_GENERIC
, AM_W
| OT_DQ
, AM_I
| OT_B
, AM_NOT_USED
, "pslldq" } },
1009 const Opcode s_opcode_byte_after_0fae
[] = {
1010 /* 0x0 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "fxsave", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1011 /* 0x1 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "fxrstor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1012 /* 0x2 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "ldmxcsr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1013 /* 0x3 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "stmxcsr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1014 /* 0x4 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1015 /* 0x5 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "lfence", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1016 /* 0x6 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "mfence", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1017 /* 0x7 */ { 0, IT_GENERIC
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, "clflush/sfence", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1020 const Opcode s_opcode_byte_after_0fba
[] = {
1021 /* 0x0 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1022 /* 0x1 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1023 /* 0x2 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1024 /* 0x3 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1025 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "bt", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1026 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "bts", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1027 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "btr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1028 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "btc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1031 const Opcode s_opcode_byte_after_0fc7
[] = {
1032 /* 0x0 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1033 /* 0x1 */ { 0, IT_GENERIC
, AM_M
| OT_Q
, AM_NOT_USED
, AM_NOT_USED
, "cmpxch8b", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1036 const Opcode s_opcode_byte_after_80
[] = {
1037 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "add", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1038 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "or", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1039 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "adc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1040 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "sbb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1041 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "and", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1042 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "sub", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1043 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "xor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1044 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "cmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1047 const Opcode s_opcode_byte_after_81
[] = {
1048 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "add", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1049 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "or", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1050 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "adc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1051 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "sbb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1052 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "and", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1053 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "sub", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1054 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "xor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1055 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "cmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1058 const Opcode s_opcode_byte_after_82
[] = {
1059 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "add", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1060 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "or", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1061 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "adc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1062 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "sbb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1063 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "and", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1064 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "sub", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1065 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "xor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1066 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "cmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1069 const Opcode s_opcode_byte_after_83
[] = {
1070 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "add", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1071 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "or", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1072 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "adc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1073 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "sbb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1074 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "and", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1075 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "sub", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1076 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "xor", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1077 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "cmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1080 const Opcode s_opcode_byte_after_c0
[] = {
1081 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "rol", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1082 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "ror", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1083 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "rcl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1084 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "rcr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1085 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "shl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1086 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "shr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1087 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "sal", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1088 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "sar", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1091 const Opcode s_opcode_byte_after_c1
[] = {
1092 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "rol", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1093 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "ror", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1094 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "rcl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1095 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "rcr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1096 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "shl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1097 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "shr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1098 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "sal", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1099 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_B
, AM_NOT_USED
, "sar", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1102 const Opcode s_opcode_byte_after_d0
[] = {
1103 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_IMPLICIT
, AM_NOT_USED
, "rol", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1104 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_IMPLICIT
, AM_NOT_USED
, "ror", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1105 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_IMPLICIT
, AM_NOT_USED
, "rcl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1106 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_IMPLICIT
, AM_NOT_USED
, "rcr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1107 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_IMPLICIT
, AM_NOT_USED
, "shl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1108 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_IMPLICIT
, AM_NOT_USED
, "shr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1109 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_IMPLICIT
, AM_NOT_USED
, "sal", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1110 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_IMPLICIT
, AM_NOT_USED
, "sar", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1113 const Opcode s_opcode_byte_after_d1
[] = {
1114 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_IMPLICIT
, AM_NOT_USED
, "rol", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1115 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_IMPLICIT
, AM_NOT_USED
, "ror", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1116 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_IMPLICIT
, AM_NOT_USED
, "rcl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1117 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_IMPLICIT
, AM_NOT_USED
, "rcr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1118 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_IMPLICIT
, AM_NOT_USED
, "shl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1119 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_IMPLICIT
, AM_NOT_USED
, "shr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1120 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_IMPLICIT
, AM_NOT_USED
, "sal", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1121 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_IMPLICIT
, AM_NOT_USED
, "sar", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1124 const Opcode s_opcode_byte_after_d2
[] = {
1125 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "rol", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1126 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "ror", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1127 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "rcl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1128 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "rcr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1129 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "shl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1130 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "shr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1131 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "sal", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1132 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "sar", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1135 const Opcode s_opcode_byte_after_d3
[] = {
1136 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "rol", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1137 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "ror", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1138 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "rcl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1139 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "rcr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1140 /* 0x4 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "shl", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1141 /* 0x5 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "shr", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1142 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "sal", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1143 /* 0x7 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_REGISTER
| OT_B
, AM_NOT_USED
, "sar", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1146 const Opcode s_opcode_byte_after_f6
[] = {
1147 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "test", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1148 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_I
| OT_B
, AM_NOT_USED
, "test", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1149 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "not", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1150 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "neg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1151 /* 0x4 */ { 0, IT_GENERIC
, OT_B
| AM_REGISTER
, AM_E
| OT_B
, AM_NOT_USED
, "mul", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1152 /* 0x5 */ { 0, IT_GENERIC
, OT_B
| AM_REGISTER
, AM_E
| OT_B
, AM_NOT_USED
, "imul", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1153 /* 0x6 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "div", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1154 /* 0x7 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_B
, AM_E
| OT_B
, AM_NOT_USED
, "idiv", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1157 const Opcode s_opcode_byte_after_f7
[] = {
1158 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "test", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1159 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_I
| OT_V
, AM_NOT_USED
, "test", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1160 /* 0x2 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "not", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1161 /* 0x3 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "neg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1162 /* 0x4 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "mul", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1163 /* 0x5 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "imul", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1164 /* 0x6 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "div", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1165 /* 0x7 */ { 0, IT_GENERIC
, AM_REGISTER
| OT_V
, AM_E
| OT_V
, AM_NOT_USED
, "idiv", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1168 const Opcode s_opcode_byte_after_fe
[] = {
1169 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "inc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1170 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_B
, AM_NOT_USED
, AM_NOT_USED
, "dec", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1173 const Opcode s_opcode_byte_after_ff
[] = {
1174 /* 0x0 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "inc", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1175 /* 0x1 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "dec", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1176 /* 0x2 */ { 0, IT_JUMP
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "call", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1177 /* 0x3 */ { 0, IT_JUMP
, AM_E
| OT_P
, AM_NOT_USED
, AM_NOT_USED
, "call", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1178 /* 0x4 */ { 0, IT_JUMP
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "jmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1179 /* 0x5 */ { 0, IT_JUMP
, AM_E
| OT_P
, AM_NOT_USED
, AM_NOT_USED
, "jmp", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1180 /* 0x6 */ { 0, IT_GENERIC
, AM_E
| OT_V
, AM_NOT_USED
, AM_NOT_USED
, "push", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } },
1181 /* 0x7 */ { 0, IT_UNUSED
, AM_NOT_USED
, AM_NOT_USED
, AM_NOT_USED
, 0, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }
1185 * A table of all the other tables, containing some extra information, e.g.
1186 * how to mask out the byte we're looking at.
1188 const OpcodeTable
MiniDisassembler::s_ia32_opcode_map_
[]={
1189 // One-byte opcodes and jumps to larger
1190 /* 0 */ {s_first_opcode_byte
, 0, 0xff, 0, 0xff},
1191 // Two-byte opcodes (second byte)
1192 /* 1 */ {s_opcode_byte_after_0f
, 0, 0xff, 0, 0xff},
1193 // Start of tables for opcodes using ModR/M bits as extension
1194 /* 2 */ {s_opcode_byte_after_80
, 3, 0x07, 0, 0x07},
1195 /* 3 */ {s_opcode_byte_after_81
, 3, 0x07, 0, 0x07},
1196 /* 4 */ {s_opcode_byte_after_82
, 3, 0x07, 0, 0x07},
1197 /* 5 */ {s_opcode_byte_after_83
, 3, 0x07, 0, 0x07},
1198 /* 6 */ {s_opcode_byte_after_c0
, 3, 0x07, 0, 0x07},
1199 /* 7 */ {s_opcode_byte_after_c1
, 3, 0x07, 0, 0x07},
1200 /* 8 */ {s_opcode_byte_after_d0
, 3, 0x07, 0, 0x07},
1201 /* 9 */ {s_opcode_byte_after_d1
, 3, 0x07, 0, 0x07},
1202 /* 10 */ {s_opcode_byte_after_d2
, 3, 0x07, 0, 0x07},
1203 /* 11 */ {s_opcode_byte_after_d3
, 3, 0x07, 0, 0x07},
1204 /* 12 */ {s_opcode_byte_after_f6
, 3, 0x07, 0, 0x07},
1205 /* 13 */ {s_opcode_byte_after_f7
, 3, 0x07, 0, 0x07},
1206 /* 14 */ {s_opcode_byte_after_fe
, 3, 0x07, 0, 0x01},
1207 /* 15 */ {s_opcode_byte_after_ff
, 3, 0x07, 0, 0x07},
1208 /* 16 */ {s_opcode_byte_after_0f00
, 3, 0x07, 0, 0x07},
1209 /* 17 */ {s_opcode_byte_after_0f01
, 3, 0x07, 0, 0x07},
1210 /* 18 */ {s_opcode_byte_after_0f18
, 3, 0x07, 0, 0x07},
1211 /* 19 */ {s_opcode_byte_after_0f71
, 3, 0x07, 0, 0x07},
1212 /* 20 */ {s_opcode_byte_after_0f72
, 3, 0x07, 0, 0x07},
1213 /* 21 */ {s_opcode_byte_after_0f73
, 3, 0x07, 0, 0x07},
1214 /* 22 */ {s_opcode_byte_after_0fae
, 3, 0x07, 0, 0x07},
1215 /* 23 */ {s_opcode_byte_after_0fba
, 3, 0x07, 0, 0x07},
1216 /* 24 */ {s_opcode_byte_after_0fc7
, 3, 0x07, 0, 0x01}
1219 }; // namespace sidestep