OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 /* | |
6 * Opcode decoding maps. Based on the IA-32 Intel Architecture | |
7 * Software Developer's Manual Volume 2: Instruction Set Reference. Idea | |
8 * for how to lay out the tables in memory taken from the implementation | |
9 * in the Bastard disassembly environment. | |
10 */ | |
11 | |
12 #include "mini_disassembler.h" | |
13 | |
14 namespace sidestep { | |
15 | |
16 /* | |
17 * This is the first table to be searched; the first field of each | |
18 * Opcode in the table is either 0 to indicate you're in the | |
19 * right table, or an index to the correct table, in the global | |
20 * map g_pentiumOpcodeMap | |
21 */ | |
22 const Opcode s_first_opcode_byte[] = { | |
23 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "add", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
24 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "add", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
25 /* 0x2 */ { 0, IT_GENERIC, AM_G | OT_B, AM_E | OT_B, AM_NOT_USED, "add", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
26 /* 0x3 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "add", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
27 /* 0x4 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "add"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
28 /* 0x5 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "add"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
29 /* 0x6 */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "push
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
30 /* 0x7 */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "pop"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
31 /* 0x8 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "or", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
32 /* 0x9 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "or", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
33 /* 0xA */ { 0, IT_GENERIC, AM_G | OT_B, AM_E | OT_B, AM_NOT_USED, "or", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
34 /* 0xB */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "or", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
35 /* 0xC */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "or",
false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
36 /* 0xD */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "or",
false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
37 /* 0xE */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "push
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
38 /* 0xF */ { 1, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
39 /* 0x10 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "adc", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
40 /* 0x11 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "adc", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
41 /* 0x12 */ { 0, IT_GENERIC, AM_G | OT_B, AM_E | OT_B, AM_NOT_USED, "adc", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
42 /* 0x13 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "adc", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
43 /* 0x14 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "adc
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
44 /* 0x15 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "adc
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
45 /* 0x16 */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
46 /* 0x17 */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
47 /* 0x18 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "sbb", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
48 /* 0x19 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "sbb", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
49 /* 0x1A */ { 0, IT_GENERIC, AM_G | OT_B, AM_E | OT_B, AM_NOT_USED, "sbb", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
50 /* 0x1B */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "sbb", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
51 /* 0x1C */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "sbb
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
52 /* 0x1D */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "sbb
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
53 /* 0x1E */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
54 /* 0x1F */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
55 /* 0x20 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "and", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
56 /* 0x21 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "and", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
57 /* 0x22 */ { 0, IT_GENERIC, AM_G | OT_B, AM_E | OT_B, AM_NOT_USED, "and", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
58 /* 0x23 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "and", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
59 /* 0x24 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "and
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
60 /* 0x25 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "and
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
61 /* 0x26 */ { 0, IT_PREFIX, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
62 /* 0x27 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "daa", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
63 /* 0x28 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "sub", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
64 /* 0x29 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "sub", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
65 /* 0x2A */ { 0, IT_GENERIC, AM_G | OT_B, AM_E | OT_B, AM_NOT_USED, "sub", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
66 /* 0x2B */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "sub", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
67 /* 0x2C */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "sub
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
68 /* 0x2D */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "sub
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
69 /* 0x2E */ { 0, IT_PREFIX, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
70 /* 0x2F */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "das", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
71 /* 0x30 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "xor", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
72 /* 0x31 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "xor", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
73 /* 0x32 */ { 0, IT_GENERIC, AM_G | OT_B, AM_E | OT_B, AM_NOT_USED, "xor", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
74 /* 0x33 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "xor", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
75 /* 0x34 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "xor
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
76 /* 0x35 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "xor
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
77 /* 0x36 */ { 0, IT_PREFIX, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
78 /* 0x37 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "aaa", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
79 /* 0x38 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "cmp", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
80 /* 0x39 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "cmp", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
81 /* 0x3A */ { 0, IT_GENERIC, AM_G | OT_B, AM_E | OT_B, AM_NOT_USED, "cmp", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
82 /* 0x3B */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmp", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
83 /* 0x3C */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "cmp
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
84 /* 0x3D */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "cmp
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
85 /* 0x3E */ { 0, IT_PREFIX, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
86 /* 0x3F */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "aas", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
87 /* 0x40 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "inc
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
88 /* 0x41 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "inc
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
89 /* 0x42 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "inc
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
90 /* 0x43 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "inc
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
91 /* 0x44 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "inc
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
92 /* 0x45 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "inc
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
93 /* 0x46 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "inc
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
94 /* 0x47 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "inc
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
95 /* 0x48 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "dec
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
96 /* 0x49 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "dec
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
97 /* 0x4A */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "dec
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
98 /* 0x4B */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "dec
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
99 /* 0x4C */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "dec
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
100 /* 0x4D */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "dec
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
101 /* 0x4E */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "dec
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
102 /* 0x4F */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "dec
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
103 /* 0x50 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
104 /* 0x51 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
105 /* 0x52 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
106 /* 0x53 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
107 /* 0x54 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
108 /* 0x55 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
109 /* 0x56 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
110 /* 0x57 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
111 /* 0x58 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
112 /* 0x59 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
113 /* 0x5A */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
114 /* 0x5B */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
115 /* 0x5C */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
116 /* 0x5D */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
117 /* 0x5E */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
118 /* 0x5F */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
119 /* 0x60 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "pushad", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
120 /* 0x61 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "popad", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
121 /* 0x62 */ { 0, IT_GENERIC, AM_G | OT_V, AM_M | OT_A, AM_NOT_USED, "bound", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
122 /* 0x63 */ { 0, IT_GENERIC, AM_E | OT_W, AM_G | OT_W, AM_NOT_USED, "arpl", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
123 /* 0x64 */ { 0, IT_PREFIX, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
124 /* 0x65 */ { 0, IT_PREFIX, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
125 /* 0x66 */ { 0, IT_PREFIX_OPERAND, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
126 /* 0x67 */ { 0, IT_PREFIX_ADDRESS, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
127 /* 0x68 */ { 0, IT_GENERIC, AM_I | OT_V, AM_NOT_USED, AM_NOT_USED, "push", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
128 /* 0x69 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_I | OT_V, "imul", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
129 /* 0x6A */ { 0, IT_GENERIC, AM_I | OT_B, AM_NOT_USED, AM_NOT_USED, "push", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
130 /* 0x6B */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_I | OT_B, "imul", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
131 /* 0x6C */ { 0, IT_GENERIC, AM_Y | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "ins
b", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
132 /* 0x6D */ { 0, IT_GENERIC, AM_Y | OT_V, AM_REGISTER | OT_V, AM_NOT_USED, "ins
d", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
133 /* 0x6E */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_X | OT_B, AM_NOT_USED, "out
sb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
134 /* 0x6F */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_X | OT_V, AM_NOT_USED, "out
sb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
135 /* 0x70 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jo", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
136 /* 0x71 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jno", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
137 /* 0x72 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jc", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
138 /* 0x73 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jnc", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
139 /* 0x74 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jz", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
140 /* 0x75 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jnz", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
141 /* 0x76 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jbe", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
142 /* 0x77 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "ja", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
143 /* 0x78 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "js", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
144 /* 0x79 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jns", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
145 /* 0x7A */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jpe", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
146 /* 0x7B */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jpo", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
147 /* 0x7C */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jl", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
148 /* 0x7D */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jge", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
149 /* 0x7E */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jle", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
150 /* 0x7F */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jg", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
151 /* 0x80 */ { 2, IT_REFERENCE, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
152 /* 0x81 */ { 3, IT_REFERENCE, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
153 /* 0x82 */ { 4, IT_REFERENCE, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
154 /* 0x83 */ { 5, IT_REFERENCE, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
155 /* 0x84 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "test", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
156 /* 0x85 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "test", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
157 /* 0x86 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "xchg", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
158 /* 0x87 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "xchg", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
159 /* 0x88 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
160 /* 0x89 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
161 /* 0x8A */ { 0, IT_GENERIC, AM_G | OT_B, AM_E | OT_B, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
162 /* 0x8B */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
163 /* 0x8C */ { 0, IT_GENERIC, AM_E | OT_W, AM_S | OT_W, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
164 /* 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 } }, | |
165 /* 0x8E */ { 0, IT_GENERIC, AM_S | OT_W, AM_E | OT_W, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
166 /* 0x8F */ { 0, IT_GENERIC, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, "pop", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
167 /* 0x90 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "nop", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
168 /* 0x91 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_REGISTER | OT_V, AM_NOT_USE
D, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
169 /* 0x92 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_REGISTER | OT_V, AM_NOT_USE
D, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
170 /* 0x93 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_REGISTER | OT_V, AM_NOT_USE
D, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
171 /* 0x94 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_REGISTER | OT_V, AM_NOT_USE
D, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
172 /* 0x95 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_REGISTER | OT_V, AM_NOT_USE
D, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
173 /* 0x96 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_REGISTER | OT_V, AM_NOT_USE
D, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
174 /* 0x97 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_REGISTER | OT_V, AM_NOT_USE
D, "xchg", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
175 /* 0x98 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "cwde", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
176 /* 0x99 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "cdq", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
177 /* 0x9A */ { 0, IT_JUMP, AM_A | OT_P, AM_NOT_USED, AM_NOT_USED, "callf", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
178 /* 0x9B */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "wait", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
179 /* 0x9C */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "pushfd", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
180 /* 0x9D */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "popfd", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
181 /* 0x9E */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "sahf", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
182 /* 0x9F */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "lahf", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
183 /* 0xA0 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_O | OT_B, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
184 /* 0xA1 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_O | OT_V, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
185 /* 0xA2 */ { 0, IT_GENERIC, AM_O | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
186 /* 0xA3 */ { 0, IT_GENERIC, AM_O | OT_V, AM_REGISTER | OT_V, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
187 /* 0xA4 */ { 0, IT_GENERIC, AM_X | OT_B, AM_Y | OT_B, AM_NOT_USED, "movsb", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
188 /* 0xA5 */ { 0, IT_GENERIC, AM_X | OT_V, AM_Y | OT_V, AM_NOT_USED, "movsd", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
189 /* 0xA6 */ { 0, IT_GENERIC, AM_X | OT_B, AM_Y | OT_B, AM_NOT_USED, "cmpsb", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
190 /* 0xA7 */ { 0, IT_GENERIC, AM_X | OT_V, AM_Y | OT_V, AM_NOT_USED, "cmpsd", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
191 /* 0xA8 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "tes
t", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
192 /* 0xA9 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "tes
t", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
193 /* 0xAA */ { 0, IT_GENERIC, AM_Y | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "sto
sb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
194 /* 0xAB */ { 0, IT_GENERIC, AM_Y | OT_V, AM_REGISTER | OT_V, AM_NOT_USED, "sto
sd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
195 /* 0xAC */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_X| OT_B, AM_NOT_USED, "lods
b", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
196 /* 0xAD */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_X| OT_V, AM_NOT_USED, "lods
d", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
197 /* 0xAE */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_Y | OT_B, AM_NOT_USED, "sca
sb", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
198 /* 0xAF */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_Y | OT_V, AM_NOT_USED, "sca
sd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
199 /* 0xB0 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
200 /* 0xB1 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
201 /* 0xB2 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
202 /* 0xB3 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
203 /* 0xB4 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
204 /* 0xB5 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
205 /* 0xB6 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
206 /* 0xB7 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
207 /* 0xB8 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
208 /* 0xB9 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
209 /* 0xBA */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
210 /* 0xBB */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
211 /* 0xBC */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
212 /* 0xBD */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
213 /* 0xBE */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
214 /* 0xBF */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_I | OT_V, AM_NOT_USED, "mov
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
215 /* 0xC0 */ { 6, IT_REFERENCE, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
216 /* 0xC1 */ { 7, IT_REFERENCE, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
217 /* 0xC2 */ { 0, IT_RETURN, AM_I | OT_W, AM_NOT_USED, AM_NOT_USED, "ret", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
218 /* 0xC3 */ { 0, IT_RETURN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "ret", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
219 /* 0xC4 */ { 0, IT_GENERIC, AM_G | OT_V, AM_M | OT_P, AM_NOT_USED, "les", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
220 /* 0xC5 */ { 0, IT_GENERIC, AM_G | OT_V, AM_M | OT_P, AM_NOT_USED, "lds", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
221 /* 0xC6 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
222 /* 0xC7 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
223 /* 0xC8 */ { 0, IT_GENERIC, AM_I | OT_W, AM_I | OT_B, AM_NOT_USED, "enter", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
224 /* 0xC9 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "leave", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
225 /* 0xCA */ { 0, IT_RETURN, AM_I | OT_W, AM_NOT_USED, AM_NOT_USED, "retf", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
226 /* 0xCB */ { 0, IT_RETURN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "retf", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
227 /* 0xCC */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "int3", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
228 /* 0xCD */ { 0, IT_GENERIC, AM_I | OT_B, AM_NOT_USED, AM_NOT_USED, "int", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
229 /* 0xCE */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "into", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
230 /* 0xCF */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "iret", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
231 /* 0xD0 */ { 8, IT_REFERENCE, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
232 /* 0xD1 */ { 9, IT_REFERENCE, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
233 /* 0xD2 */ { 10, IT_REFERENCE, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
234 /* 0xD3 */ { 11, IT_REFERENCE, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
235 /* 0xD4 */ { 0, IT_GENERIC, AM_I | OT_B, AM_NOT_USED, AM_NOT_USED, "aam", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
236 /* 0xD5 */ { 0, IT_GENERIC, AM_I | OT_B, AM_NOT_USED, AM_NOT_USED, "aad", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
237 /* 0xD6 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
238 /* 0xD7 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "xlat", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
239 | |
240 // The following 8 lines would be references to the FPU tables, but we current
ly | |
241 // do not support the FPU instructions in this disassembler. | |
242 | |
243 /* 0xD8 */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
244 /* 0xD9 */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
245 /* 0xDA */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
246 /* 0xDB */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
247 /* 0xDC */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
248 /* 0xDD */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
249 /* 0xDE */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
250 /* 0xDF */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
251 | |
252 | |
253 /* 0xE0 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "loopnz", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
254 /* 0xE1 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "loopz", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
255 /* 0xE2 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "loop", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
256 /* 0xE3 */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jcxz", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
257 /* 0xE4 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "in"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
258 /* 0xE5 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_I | OT_B, AM_NOT_USED, "in"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
259 /* 0xE6 */ { 0, IT_GENERIC, AM_I | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "out
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
260 /* 0xE7 */ { 0, IT_GENERIC, AM_I | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "out
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
261 /* 0xE8 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "call", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
262 /* 0xE9 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jmp", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
263 /* 0xEA */ { 0, IT_JUMP, AM_A | OT_P, AM_NOT_USED, AM_NOT_USED, "jmp", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
264 /* 0xEB */ { 0, IT_JUMP, AM_J | OT_B, AM_NOT_USED, AM_NOT_USED, "jmp", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
265 /* 0xEC */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_REGISTER | OT_W, AM_NOT_USE
D, "in", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
266 /* 0xED */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_REGISTER | OT_W, AM_NOT_USE
D, "in", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
267 /* 0xEE */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_REGISTER | OT_B, AM_NOT_USE
D, "out", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
268 /* 0xEF */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_REGISTER | OT_V, AM_NOT_USE
D, "out", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
269 /* 0xF0 */ { 0, IT_PREFIX, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "lock:", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
270 /* 0xF1 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
271 /* 0xF2 */ { 0, IT_PREFIX, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "repne:", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
272 /* 0xF3 */ { 0, IT_PREFIX, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "rep:", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
273 /* 0xF4 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "hlt", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
274 /* 0xF5 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "cmc", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
275 /* 0xF6 */ { 12, IT_REFERENCE, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
276 /* 0xF7 */ { 13, IT_REFERENCE, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
277 /* 0xF8 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "clc", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
278 /* 0xF9 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "stc", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
279 /* 0xFA */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "cli", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
280 /* 0xFB */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "sti", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
281 /* 0xFC */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "cld", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
282 /* 0xFD */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "std", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
283 /* 0xFE */ { 14, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
284 /* 0xFF */ { 15, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
285 }; | |
286 | |
287 const Opcode s_opcode_byte_after_0f[] = { | |
288 /* 0x0 */ { 16, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
289 /* 0x1 */ { 17, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
290 /* 0x2 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_W, AM_NOT_USED, "lar", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
291 /* 0x3 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_W, AM_NOT_USED, "lsl", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
292 /* 0x4 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
293 /* 0x5 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
294 /* 0x6 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "clts", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
295 /* 0x7 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
296 /* 0x8 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "invd", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
297 /* 0x9 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "wbinvd", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
298 /* 0xA */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
299 /* 0xB */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "ud2", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
300 /* 0xC */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
301 /* 0xD */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
302 /* 0xE */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
303 /* 0xF */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
304 /* 0x10 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "movups",
true, | |
305 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "movsd"
}, | |
306 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "movss"
}, | |
307 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "movupd"
} }, | |
308 /* 0x11 */ { 0, IT_GENERIC, AM_W | OT_PS, AM_V | OT_PS, AM_NOT_USED, "movups",
true, | |
309 /* F2h */ { 0, IT_GENERIC, AM_W | OT_SD, AM_V | OT_SD, AM_NOT_USED, "movsd"
}, | |
310 /* F3h */ { 0, IT_GENERIC, AM_W | OT_SS, AM_V | OT_SS, AM_NOT_USED, "movss"
}, | |
311 /* 66h */ { 0, IT_GENERIC, AM_W | OT_PD, AM_V | OT_PD, AM_NOT_USED, "movupd"
} }, | |
312 /* 0x12 */ { 0, IT_GENERIC, AM_W | OT_Q, AM_V | OT_Q, AM_NOT_USED, "movlps", t
rue, | |
313 /* F2h */ { 0, IT_GENERIC, AM_V | OT_Q, AM_V | OT_Q, AM_NOT_USED, "movhlps"
}, // only one of ... | |
314 /* 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 | |
315 /* 66h */ { 0, IT_GENERIC, AM_V | OT_Q, AM_W | OT_S, AM_NOT_USED, "movlpd" }
}, | |
316 /* 0x13 */ { 0, IT_GENERIC, AM_V | OT_Q, AM_W | OT_Q, AM_NOT_USED, "movlps", t
rue, | |
317 /* F2h */ { 0 }, | |
318 /* F3h */ { 0 }, | |
319 /* 66h */ { 0, IT_GENERIC, AM_V | OT_Q, AM_W | OT_Q, AM_NOT_USED, "movlpd" }
}, | |
320 /* 0x14 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_Q, AM_NOT_USED, "unpcklps"
, true, | |
321 /* F2h */ { 0 }, | |
322 /* F3h */ { 0 }, | |
323 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_Q, AM_NOT_USED, "unpcklpd
" } }, | |
324 /* 0x15 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_Q, AM_NOT_USED, "unpckhps"
, true, | |
325 /* F2h */ { 0 }, | |
326 /* F3h */ { 0 }, | |
327 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_Q, AM_NOT_USED, "unpckhpd
" } }, | |
328 /* 0x16 */ { 0, IT_GENERIC, AM_V | OT_Q, AM_W | OT_Q, AM_NOT_USED, "movhps", t
rue, | |
329 /* F2h */ { 0, IT_GENERIC, AM_V | OT_Q, AM_V | OT_Q, AM_NOT_USED, "movlhps"
}, // only one of... | |
330 /* 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 | |
331 /* 66h */ { 0, IT_GENERIC, AM_V | OT_Q, AM_W | OT_Q, AM_NOT_USED, "movhpd" }
}, | |
332 /* 0x17 */ { 0, IT_GENERIC, AM_W | OT_Q, AM_V | OT_Q, AM_NOT_USED, "movhps", t
rue, | |
333 /* F2h */ { 0 }, | |
334 /* F3h */ { 0 }, | |
335 /* 66h */ { 0, IT_GENERIC, AM_W | OT_Q, AM_V | OT_Q, AM_NOT_USED, "movhpd" }
}, | |
336 /* 0x18 */ { 18, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
337 /* 0x19 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
338 /* 0x1A */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
339 /* 0x1B */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
340 /* 0x1C */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
341 /* 0x1D */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
342 /* 0x1E */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
343 /* 0x1F */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
344 /* 0x20 */ { 0, IT_GENERIC, AM_R | OT_D, AM_C | OT_D, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
345 /* 0x21 */ { 0, IT_GENERIC, AM_R | OT_D, AM_D | OT_D, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
346 /* 0x22 */ { 0, IT_GENERIC, AM_C | OT_D, AM_R | OT_D, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
347 /* 0x23 */ { 0, IT_GENERIC, AM_D | OT_D, AM_R | OT_D, AM_NOT_USED, "mov", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
348 /* 0x24 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
349 /* 0x25 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
350 /* 0x26 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
351 /* 0x27 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
352 /* 0x28 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "movaps",
true, | |
353 /* F2h */ { 0 }, | |
354 /* F3h */ { 0 }, | |
355 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "movapd"
} }, | |
356 /* 0x29 */ { 0, IT_GENERIC, AM_W | OT_PS, AM_V | OT_PS, AM_NOT_USED, "movaps",
true, | |
357 /* F2h */ { 0 }, | |
358 /* F3h */ { 0 }, | |
359 /* 66h */ { 0, IT_GENERIC, AM_W | OT_PD, AM_V | OT_PD, AM_NOT_USED, "movapd"
} }, | |
360 /* 0x2A */ { 0, IT_GENERIC, AM_V | OT_PS, AM_Q | OT_Q, AM_NOT_USED, "cvtpi2ps"
, true, | |
361 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_E | OT_D, AM_NOT_USED, "cvtsi2sd
" }, | |
362 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_E | OT_D, AM_NOT_USED, "cvtsi2ss
" }, | |
363 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_Q | OT_DQ, AM_NOT_USED, "cvtpi2p
d" } }, | |
364 /* 0x2B */ { 0, IT_GENERIC, AM_W | OT_PS, AM_V | OT_PS, AM_NOT_USED, "movntps"
, true, | |
365 /* F2h */ { 0 }, | |
366 /* F3h */ { 0 }, | |
367 /* 66h */ { 0, IT_GENERIC, AM_W | OT_PD, AM_V | OT_PD, AM_NOT_USED, "movntpd
" } }, | |
368 /* 0x2C */ { 0, IT_GENERIC, AM_Q | OT_Q, AM_W | OT_PS, AM_NOT_USED, "cvttps2pi
", true, | |
369 /* F2h */ { 0, IT_GENERIC, AM_G | OT_D, AM_W | OT_SD, AM_NOT_USED, "cvttsd2s
i" }, | |
370 /* F3h */ { 0, IT_GENERIC, AM_G | OT_D, AM_W | OT_SS, AM_NOT_USED, "cvttss2s
i" }, | |
371 /* 66h */ { 0, IT_GENERIC, AM_Q | OT_DQ, AM_W | OT_PD, AM_NOT_USED, "cvttpd2
pi" } }, | |
372 /* 0x2D */ { 0, IT_GENERIC, AM_Q | OT_Q, AM_W | OT_PS, AM_NOT_USED, "cvtps2pi"
, true, | |
373 /* F2h */ { 0, IT_GENERIC, AM_G | OT_D, AM_W | OT_SD, AM_NOT_USED, "cvtsd2si
" }, | |
374 /* F3h */ { 0, IT_GENERIC, AM_G | OT_D, AM_W | OT_SS, AM_NOT_USED, "cvtss2si
" }, | |
375 /* 66h */ { 0, IT_GENERIC, AM_Q | OT_DQ, AM_W | OT_PD, AM_NOT_USED, "cvtpd2p
i" } }, | |
376 /* 0x2E */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "ucomiss"
, true, | |
377 /* F2h */ { 0 }, | |
378 /* F3h */ { 0 }, | |
379 /* 66h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "ucomisd
" } }, | |
380 /* 0x2F */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_SS, AM_NOT_USED, "comiss",
true, | |
381 /* F2h */ { 0 }, | |
382 /* F3h */ { 0 }, | |
383 /* 66h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "comisd"
} }, | |
384 /* 0x30 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "wrmsr", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
385 /* 0x31 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "rdtsc", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
386 /* 0x32 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "rdmsr", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
387 /* 0x33 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "rdpmc", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
388 /* 0x34 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "sysenter",
false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
389 /* 0x35 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "sysexit",
false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
390 /* 0x36 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
391 /* 0x37 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
392 /* 0x38 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
393 /* 0x39 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
394 /* 0x3A */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
395 /* 0x3B */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
396 /* 0x3C */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "movnti", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
397 /* 0x3D */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
398 /* 0x3E */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
399 /* 0x3F */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
400 /* 0x40 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovo", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
401 /* 0x41 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovno", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
402 /* 0x42 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovc", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
403 /* 0x43 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovnc", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
404 /* 0x44 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovz", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
405 /* 0x45 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovnz", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
406 /* 0x46 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovbe", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
407 /* 0x47 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmova", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
408 /* 0x48 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovs", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
409 /* 0x49 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovns", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
410 /* 0x4A */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovpe", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
411 /* 0x4B */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovpo", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
412 /* 0x4C */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovl", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
413 /* 0x4D */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovge", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
414 /* 0x4E */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovle", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
415 /* 0x4F */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "cmovg", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
416 /* 0x50 */ { 0, IT_GENERIC, AM_E | OT_D, AM_V | OT_PS, AM_NOT_USED, "movmskps"
, true, | |
417 /* F2h */ { 0 }, | |
418 /* F3h */ { 0 }, | |
419 /* 66h */ { 0, IT_GENERIC, AM_E | OT_D, AM_V | OT_PD, AM_NOT_USED, "movmskpd
" } }, | |
420 /* 0x51 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "sqrtps",
true, | |
421 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "sqrtsd"
}, | |
422 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "sqrtss"
}, | |
423 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "sqrtpd"
} }, | |
424 /* 0x52 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "rsqrtps"
, true, | |
425 /* F2h */ { 0 }, | |
426 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "rsqrtss
" }, | |
427 /* 66h */ { 0 } }, | |
428 /* 0x53 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "rcpps",
true, | |
429 /* F2h */ { 0 }, | |
430 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "rcpss"
}, | |
431 /* 66h */ { 0 } }, | |
432 /* 0x54 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "andps",
true, | |
433 /* F2h */ { 0 }, | |
434 /* F3h */ { 0 }, | |
435 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "andpd"
} }, | |
436 /* 0x55 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "andnps",
true, | |
437 /* F2h */ { 0 }, | |
438 /* F3h */ { 0 }, | |
439 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "andnpd"
} }, | |
440 /* 0x56 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "orps", t
rue, | |
441 /* F2h */ { 0 }, | |
442 /* F3h */ { 0 }, | |
443 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "orpd" }
}, | |
444 /* 0x57 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "xorps",
true, | |
445 /* F2h */ { 0 }, | |
446 /* F3h */ { 0 }, | |
447 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "xorpd"
} }, | |
448 /* 0x58 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "addps",
true, | |
449 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "addsd"
}, | |
450 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "addss"
}, | |
451 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "addpd"
} }, | |
452 /* 0x59 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "mulps",
true, | |
453 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "mulsd"
}, | |
454 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "mulss"
}, | |
455 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "mulpd"
} }, | |
456 /* 0x5A */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PS, AM_NOT_USED, "cvtps2pd
", true, | |
457 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "cvtsd2s
s" }, | |
458 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "cvtss2s
d" }, | |
459 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PD, AM_NOT_USED, "cvtpd2p
s" } }, | |
460 /* 0x5B */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_DQ, AM_NOT_USED, "cvtdq2ps
", true, | |
461 /* F2h */ { 0 }, | |
462 /* F3h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_PS, AM_NOT_USED, "cvttps2
dq" }, | |
463 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_PS, AM_NOT_USED, "cvtps2d
q" } }, | |
464 /* 0x5C */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "subps",
true, | |
465 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "subsd"
}, | |
466 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "subss"
}, | |
467 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "subpd"
} }, | |
468 /* 0x5D */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "minps",
true, | |
469 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "minsd"
}, | |
470 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "minss"
}, | |
471 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "minpd"
} }, | |
472 /* 0x5E */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "divps",
true, | |
473 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "divsd"
}, | |
474 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "divss"
}, | |
475 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "divpd"
} }, | |
476 /* 0x5F */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_NOT_USED, "maxps",
true, | |
477 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_NOT_USED, "maxsd"
}, | |
478 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_NOT_USED, "maxss"
}, | |
479 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_NOT_USED, "maxpd"
} }, | |
480 /* 0x60 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "punpcklbw"
, true, | |
481 /* F2h */ { 0 }, | |
482 /* F3h */ { 0 }, | |
483 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "punpckl
bw" } }, | |
484 /* 0x61 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "punpcklwd"
, true, | |
485 /* F2h */ { 0 }, | |
486 /* F3h */ { 0 }, | |
487 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "punpckl
wd" } }, | |
488 /* 0x62 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "punpckldq"
, true, | |
489 /* F2h */ { 0 }, | |
490 /* F3h */ { 0 }, | |
491 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "punpckl
dq" } }, | |
492 /* 0x63 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "packsswb",
true, | |
493 /* F2h */ { 0 }, | |
494 /* F3h */ { 0 }, | |
495 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "packssw
b" } }, | |
496 /* 0x64 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "pcmpgtb",
true, | |
497 /* F2h */ { 0 }, | |
498 /* F3h */ { 0 }, | |
499 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pcmpgtb
" } }, | |
500 /* 0x65 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "pcmpgtw",
true, | |
501 /* F2h */ { 0 }, | |
502 /* F3h */ { 0 }, | |
503 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pcmpgtw
" } }, | |
504 /* 0x66 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "pcmpgtd",
true, | |
505 /* F2h */ { 0 }, | |
506 /* F3h */ { 0 }, | |
507 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pcmpgtd
" } }, | |
508 /* 0x67 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "packuswb",
true, | |
509 /* F2h */ { 0 }, | |
510 /* F3h */ { 0 }, | |
511 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "packusw
b" } }, | |
512 /* 0x68 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "punpckhbw"
, true, | |
513 /* F2h */ { 0 }, | |
514 /* F3h */ { 0 }, | |
515 /* 66h */ { 0, IT_GENERIC, AM_P | OT_DQ, AM_Q | OT_DQ, AM_NOT_USED, "punpckh
bw" } }, | |
516 /* 0x69 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "punpckhwd"
, true, | |
517 /* F2h */ { 0 }, | |
518 /* F3h */ { 0 }, | |
519 /* 66h */ { 0, IT_GENERIC, AM_P | OT_DQ, AM_Q | OT_DQ, AM_NOT_USED, "punpckh
wd" } }, | |
520 /* 0x6A */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "punpckhdq"
, true, | |
521 /* F2h */ { 0 }, | |
522 /* F3h */ { 0 }, | |
523 /* 66h */ { 0, IT_GENERIC, AM_P | OT_DQ, AM_Q | OT_DQ, AM_NOT_USED, "punpckh
dq" } }, | |
524 /* 0x6B */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "packssdw",
true, | |
525 /* F2h */ { 0 }, | |
526 /* F3h */ { 0 }, | |
527 /* 66h */ { 0, IT_GENERIC, AM_P | OT_DQ, AM_Q | OT_DQ, AM_NOT_USED, "packssd
w" } }, | |
528 /* 0x6C */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "not used w
ithout prefix", true, | |
529 /* F2h */ { 0 }, | |
530 /* F3h */ { 0 }, | |
531 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "punpckl
qdq" } }, | |
532 /* 0x6D */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "not used w
ithout prefix", true, | |
533 /* F2h */ { 0 }, | |
534 /* F3h */ { 0 }, | |
535 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "punpckl
qdq" } }, | |
536 /* 0x6E */ { 0, IT_GENERIC, AM_P | OT_D, AM_E | OT_D, AM_NOT_USED, "movd", tru
e, | |
537 /* F2h */ { 0 }, | |
538 /* F3h */ { 0 }, | |
539 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_E | OT_D, AM_NOT_USED, "movd" }
}, | |
540 /* 0x6F */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_D, AM_NOT_USED, "movq", tru
e, | |
541 /* F2h */ { 0 }, | |
542 /* F3h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "movdqu"
}, | |
543 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "movdqa"
} }, | |
544 /* 0x70 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_I | OT_B, "pshuf", t
rue, | |
545 /* F2h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_I | OT_B, "pshuflw
" }, | |
546 /* F3h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_I | OT_B, "pshufhw
" }, | |
547 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_I | OT_B, "pshufd"
} }, | |
548 /* 0x71 */ { 19, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
549 /* 0x72 */ { 20, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
550 /* 0x73 */ { 21, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
551 /* 0x74 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pcmpeqb",
true, | |
552 /* F2h */ { 0 }, | |
553 /* F3h */ { 0 }, | |
554 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pcmpeqb
" } }, | |
555 /* 0x75 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pcmpeqw",
true, | |
556 /* F2h */ { 0 }, | |
557 /* F3h */ { 0 }, | |
558 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pcmpeqw
" } }, | |
559 /* 0x76 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pcmpeqd",
true, | |
560 /* F2h */ { 0 }, | |
561 /* F3h */ { 0 }, | |
562 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pcmpeqd
" } }, | |
563 /* 0x77 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "emms", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
564 | |
565 // The following six opcodes are escapes into the MMX stuff, which this disass
embler does not support. | |
566 /* 0x78 */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
567 /* 0x79 */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
568 /* 0x7A */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
569 /* 0x7B */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
570 /* 0x7C */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
571 /* 0x7D */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
572 | |
573 /* 0x7E */ { 0, IT_GENERIC, AM_E | OT_D, AM_P | OT_D, AM_NOT_USED, "movd", tru
e, | |
574 /* F2h */ { 0 }, | |
575 /* F3h */ { 0, IT_GENERIC, AM_V | OT_Q, AM_W | OT_Q, AM_NOT_USED, "movq" }, | |
576 /* 66h */ { 0, IT_GENERIC, AM_E | OT_D, AM_V | OT_DQ, AM_NOT_USED, "movd" }
}, | |
577 /* 0x7F */ { 0, IT_GENERIC, AM_Q | OT_Q, AM_P | OT_Q, AM_NOT_USED, "movq", tru
e, | |
578 /* F2h */ { 0 }, | |
579 /* F3h */ { 0, IT_GENERIC, AM_W | OT_DQ, AM_V | OT_DQ, AM_NOT_USED, "movdqu"
}, | |
580 /* 66h */ { 0, IT_GENERIC, AM_W | OT_DQ, AM_V | OT_DQ, AM_NOT_USED, "movdqa"
} }, | |
581 /* 0x80 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jo", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
582 /* 0x81 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jno", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
583 /* 0x82 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jc", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
584 /* 0x83 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jnc", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
585 /* 0x84 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jz", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
586 /* 0x85 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jnz", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
587 /* 0x86 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jbe", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
588 /* 0x87 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "ja", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
589 /* 0x88 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "js", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
590 /* 0x89 */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jns", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
591 /* 0x8A */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jpe", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
592 /* 0x8B */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jpo", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
593 /* 0x8C */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jl", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
594 /* 0x8D */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jge", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
595 /* 0x8E */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jle", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
596 /* 0x8F */ { 0, IT_JUMP, AM_J | OT_V, AM_NOT_USED, AM_NOT_USED, "jg", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
597 /* 0x90 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "seto", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
598 /* 0x91 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setno", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
599 /* 0x92 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setc", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
600 /* 0x93 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setnc", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
601 /* 0x94 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setz", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
602 /* 0x95 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setnz", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
603 /* 0x96 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setbe", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
604 /* 0x97 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "seta", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
605 /* 0x98 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "sets", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
606 /* 0x99 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setns", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
607 /* 0x9A */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setpe", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
608 /* 0x9B */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setpo", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
609 /* 0x9C */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setl", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
610 /* 0x9D */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setge", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
611 /* 0x9E */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setle", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
612 /* 0x9F */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "setg", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
613 /* 0xA0 */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
614 /* 0xA1 */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
615 /* 0xA2 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "cpuid", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
616 /* 0xA3 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "bt", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
617 /* 0xA4 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_I | OT_B, "shld", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
618 /* 0xA5 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_I | OT_B | AM_REGISTE
R, "shld", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
619 /* 0xA6 */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
620 /* 0xA7 */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
621 /* 0xA8 */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "pus
h", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
622 /* 0xA9 */ { 0, IT_GENERIC, AM_REGISTER | OT_W, AM_NOT_USED, AM_NOT_USED, "pop
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
623 /* 0xAA */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "rsm", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
624 /* 0xAB */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "bts", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
625 /* 0xAC */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_I | OT_B, "shrd", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
626 /* 0xAD */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_I | OT_B | AM_REGISTE
R, "shrd", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
627 /* 0xAE */ { 22, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
628 /* 0xAF */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "imul", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
629 /* 0xB0 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "cmpxchg",
false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
630 /* 0xB1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "cmpxchg",
false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
631 /* 0xB2 */ { 0, IT_GENERIC, AM_M | OT_P, AM_NOT_USED, AM_NOT_USED, "lss", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
632 /* 0xB3 */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "btr", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
633 /* 0xB4 */ { 0, IT_GENERIC, AM_M | OT_P, AM_NOT_USED, AM_NOT_USED, "lfs", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
634 /* 0xB5 */ { 0, IT_GENERIC, AM_M | OT_P, AM_NOT_USED, AM_NOT_USED, "lgs", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
635 /* 0xB6 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_B, AM_NOT_USED, "movzx", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
636 /* 0xB7 */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_W, AM_NOT_USED, "movzx", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
637 /* 0xB8 */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
638 /* 0xB9 */ { 0, IT_UNKNOWN, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "ud1", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
639 /* 0xBA */ { 23, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
640 /* 0xBB */ { 0, IT_GENERIC, AM_E | OT_V, AM_G | OT_V, AM_NOT_USED, "btc", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
641 /* 0xBC */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "bsf", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
642 /* 0xBD */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_V, AM_NOT_USED, "bsr", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
643 /* 0xBE */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_B, AM_NOT_USED, "movsx", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
644 /* 0xBF */ { 0, IT_GENERIC, AM_G | OT_V, AM_E | OT_W, AM_NOT_USED, "movsx", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
645 /* 0xC0 */ { 0, IT_GENERIC, AM_E | OT_B, AM_G | OT_B, AM_NOT_USED, "xadd", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
646 /* 0xC1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, "xadd", fal
se, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
647 /* 0xC2 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_I | OT_B, "cmpps",
true, | |
648 /* F2h */ { 0, IT_GENERIC, AM_V | OT_SD, AM_W | OT_SD, AM_I | OT_B, "cmpsd"
}, | |
649 /* F3h */ { 0, IT_GENERIC, AM_V | OT_SS, AM_W | OT_SS, AM_I | OT_B, "cmpss"
}, | |
650 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_I | OT_B, "cmppd"
} }, | |
651 /* 0xC3 */ { 0, IT_GENERIC, AM_E | OT_D, AM_G | OT_D, AM_NOT_USED, "movnti", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
652 /* 0xC4 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_E | OT_D, AM_I | OT_B, "pinsrw", t
rue, | |
653 /* F2h */ { 0 }, | |
654 /* F3h */ { 0 }, | |
655 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_E | OT_D, AM_I | OT_B, "pinsrw"
} }, | |
656 /* 0xC5 */ { 0, IT_GENERIC, AM_G | OT_D, AM_P | OT_Q, AM_I | OT_B, "pextrw", t
rue, | |
657 /* F2h */ { 0 }, | |
658 /* F3h */ { 0 }, | |
659 /* 66h */ { 0, IT_GENERIC, AM_G | OT_D, AM_V | OT_DQ, AM_I | OT_B, "pextrw"
} }, | |
660 /* 0xC6 */ { 0, IT_GENERIC, AM_V | OT_PS, AM_W | OT_PS, AM_I | OT_B, "shufps",
true, | |
661 /* F2h */ { 0 }, | |
662 /* F3h */ { 0 }, | |
663 /* 66h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_PD, AM_I | OT_B, "shufpd"
} }, | |
664 /* 0xC7 */ { 24, IT_REFERENCE, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
665 /* 0xC8 */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "bsw
ap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
666 /* 0xC9 */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "bsw
ap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
667 /* 0xCA */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "bsw
ap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
668 /* 0xCB */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "bsw
ap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
669 /* 0xCC */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "bsw
ap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
670 /* 0xCD */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "bsw
ap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
671 /* 0xCE */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "bsw
ap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
672 /* 0xCF */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "bsw
ap", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
673 /* 0xD0 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
674 /* 0xD1 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psrlw", tr
ue, | |
675 /* F2h */ { 0 }, | |
676 /* F3h */ { 0 }, | |
677 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psrlw"
} }, | |
678 /* 0xD2 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psrld", tr
ue, | |
679 /* F2h */ { 0 }, | |
680 /* F3h */ { 0 }, | |
681 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psrld"
} }, | |
682 /* 0xD3 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psrlq", tr
ue, | |
683 /* F2h */ { 0 }, | |
684 /* F3h */ { 0 }, | |
685 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psrlq"
} }, | |
686 /* 0xD4 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "paddq", tr
ue, | |
687 /* F2h */ { 0 }, | |
688 /* F3h */ { 0 }, | |
689 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "paddq"
} }, | |
690 /* 0xD5 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pmullw", t
rue, | |
691 /* F2h */ { 0 }, | |
692 /* F3h */ { 0 }, | |
693 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pmullw"
} }, | |
694 /* 0xD6 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "unused wit
hout prefix", true, | |
695 /* F2h */ { 0, IT_GENERIC, AM_P | OT_Q, AM_W | OT_Q, AM_NOT_USED, "movdq2q"
}, | |
696 /* F3h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_Q | OT_Q, AM_NOT_USED, "movq2dq"
}, | |
697 /* 66h */ { 0, IT_GENERIC, AM_W | OT_Q, AM_V | OT_Q, AM_NOT_USED, "movq" } }
, | |
698 /* 0xD7 */ { 0, IT_GENERIC, AM_G | OT_D, AM_P | OT_Q, AM_NOT_USED, "pmovmskb",
true, | |
699 /* F2h */ { 0 }, | |
700 /* F3h */ { 0 }, | |
701 /* 66h */ { 0, IT_GENERIC, AM_G | OT_D, AM_V | OT_DQ, AM_NOT_USED, "pmovmskb
" } }, | |
702 /* 0xD8 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psubusb",
true, | |
703 /* F2h */ { 0 }, | |
704 /* F3h */ { 0 }, | |
705 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psubusb
" } }, | |
706 /* 0xD9 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psubusw",
true, | |
707 /* F2h */ { 0 }, | |
708 /* F3h */ { 0 }, | |
709 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psubusw
" } }, | |
710 /* 0xDA */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pminub", t
rue, | |
711 /* F2h */ { 0 }, | |
712 /* F3h */ { 0 }, | |
713 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pminub"
} }, | |
714 /* 0xDB */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pand", tru
e, | |
715 /* F2h */ { 0 }, | |
716 /* F3h */ { 0 }, | |
717 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pand" }
}, | |
718 /* 0xDC */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "paddusb",
true, | |
719 /* F2h */ { 0 }, | |
720 /* F3h */ { 0 }, | |
721 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "paddusb
" } }, | |
722 /* 0xDD */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "paddusw",
true, | |
723 /* F2h */ { 0 }, | |
724 /* F3h */ { 0 }, | |
725 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "paddusw
" } }, | |
726 /* 0xDE */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pmaxub", t
rue, | |
727 /* F2h */ { 0 }, | |
728 /* F3h */ { 0 }, | |
729 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pmaxub"
} }, | |
730 /* 0xDF */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pandn", tr
ue, | |
731 /* F2h */ { 0 }, | |
732 /* F3h */ { 0 }, | |
733 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pandn"
} }, | |
734 /* 0xE0 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pavgb", tr
ue, | |
735 /* F2h */ { 0 }, | |
736 /* F3h */ { 0 }, | |
737 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pavgb"
} }, | |
738 /* 0xE1 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psraw", tr
ue, | |
739 /* F2h */ { 0 }, | |
740 /* F3h */ { 0 }, | |
741 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psrqw"
} }, | |
742 /* 0xE2 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psrad", tr
ue, | |
743 /* F2h */ { 0 }, | |
744 /* F3h */ { 0 }, | |
745 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psrad"
} }, | |
746 /* 0xE3 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pavgw", tr
ue, | |
747 /* F2h */ { 0 }, | |
748 /* F3h */ { 0 }, | |
749 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pavgw"
} }, | |
750 /* 0xE4 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pmulhuw",
true, | |
751 /* F2h */ { 0 }, | |
752 /* F3h */ { 0 }, | |
753 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pmulhuw
" } }, | |
754 /* 0xE5 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pmulhuw",
true, | |
755 /* F2h */ { 0 }, | |
756 /* F3h */ { 0 }, | |
757 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pmulhw"
} }, | |
758 /* 0xE6 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "not used w
ithout prefix", true, | |
759 /* F2h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_PD, AM_NOT_USED, "cvtpd2d
q" }, | |
760 /* F3h */ { 0, IT_GENERIC, AM_V | OT_PD, AM_W | OT_DQ, AM_NOT_USED, "cvtdq2p
d" }, | |
761 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_PD, AM_NOT_USED, "cvttpd2
dq" } }, | |
762 /* 0xE7 */ { 0, IT_GENERIC, AM_W | OT_Q, AM_V | OT_Q, AM_NOT_USED, "movntq", t
rue, | |
763 /* F2h */ { 0 }, | |
764 /* F3h */ { 0 }, | |
765 /* 66h */ { 0, IT_GENERIC, AM_W | OT_DQ, AM_V | OT_DQ, AM_NOT_USED, "movntdq
" } }, | |
766 /* 0xE8 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psubsb", t
rue, | |
767 /* F2h */ { 0 }, | |
768 /* F3h */ { 0 }, | |
769 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psubsb"
} }, | |
770 /* 0xE9 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psubsw", t
rue, | |
771 /* F2h */ { 0 }, | |
772 /* F3h */ { 0 }, | |
773 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psubsw"
} }, | |
774 /* 0xEA */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pminsw", t
rue, | |
775 /* F2h */ { 0 }, | |
776 /* F3h */ { 0 }, | |
777 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pminsw"
} }, | |
778 /* 0xEB */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "por", true
, | |
779 /* F2h */ { 0 }, | |
780 /* F3h */ { 0 }, | |
781 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "por" }
}, | |
782 /* 0xEC */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "paddsb", t
rue, | |
783 /* F2h */ { 0 }, | |
784 /* F3h */ { 0 }, | |
785 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "paddsb"
} }, | |
786 /* 0xED */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "paddsw", t
rue, | |
787 /* F2h */ { 0 }, | |
788 /* F3h */ { 0 }, | |
789 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "paddsw"
} }, | |
790 /* 0xEE */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pmaxsw", t
rue, | |
791 /* F2h */ { 0 }, | |
792 /* F3h */ { 0 }, | |
793 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pmaxsw"
} }, | |
794 /* 0xEF */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pxor", tru
e, | |
795 /* F2h */ { 0 }, | |
796 /* F3h */ { 0 }, | |
797 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pxor" }
}, | |
798 /* 0xF0 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
799 /* 0xF1 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psllw", tr
ue, | |
800 /* F2h */ { 0 }, | |
801 /* F3h */ { 0 }, | |
802 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psllw"
} }, | |
803 /* 0xF2 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pslld", tr
ue, | |
804 /* F2h */ { 0 }, | |
805 /* F3h */ { 0 }, | |
806 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pslld"
} }, | |
807 /* 0xF3 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psllq", tr
ue, | |
808 /* F2h */ { 0 }, | |
809 /* F3h */ { 0 }, | |
810 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psllq"
} }, | |
811 /* 0xF4 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pmuludq",
true, | |
812 /* F2h */ { 0 }, | |
813 /* F3h */ { 0 }, | |
814 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pmuludq
" } }, | |
815 /* 0xF5 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "pmaddwd",
true, | |
816 /* F2h */ { 0 }, | |
817 /* F3h */ { 0 }, | |
818 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "pmaddwd
" } }, | |
819 /* 0xF6 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psadbw", t
rue, | |
820 /* F2h */ { 0 }, | |
821 /* F3h */ { 0 }, | |
822 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psadbw"
} }, | |
823 /* 0xF7 */ { 0, IT_GENERIC, AM_P | OT_PI, AM_Q | OT_PI, AM_NOT_USED, "maskmovq
", true, | |
824 /* F2h */ { 0 }, | |
825 /* F3h */ { 0 }, | |
826 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "maskmov
dqu" } }, | |
827 /* 0xF8 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psubb", tr
ue, | |
828 /* F2h */ { 0 }, | |
829 /* F3h */ { 0 }, | |
830 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psubb"
} }, | |
831 /* 0xF9 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psubw", tr
ue, | |
832 /* F2h */ { 0 }, | |
833 /* F3h */ { 0 }, | |
834 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psubw"
} }, | |
835 /* 0xFA */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psubd", tr
ue, | |
836 /* F2h */ { 0 }, | |
837 /* F3h */ { 0 }, | |
838 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psubd"
} }, | |
839 /* 0xFB */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "psubq", tr
ue, | |
840 /* F2h */ { 0 }, | |
841 /* F3h */ { 0 }, | |
842 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "psubq"
} }, | |
843 /* 0xFC */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "paddb", tr
ue, | |
844 /* F2h */ { 0 }, | |
845 /* F3h */ { 0 }, | |
846 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "paddb"
} }, | |
847 /* 0xFD */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "paddw", tr
ue, | |
848 /* F2h */ { 0 }, | |
849 /* F3h */ { 0 }, | |
850 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "paddw"
} }, | |
851 /* 0xFE */ { 0, IT_GENERIC, AM_P | OT_Q, AM_Q | OT_Q, AM_NOT_USED, "paddd", tr
ue, | |
852 /* F2h */ { 0 }, | |
853 /* F3h */ { 0 }, | |
854 /* 66h */ { 0, IT_GENERIC, AM_V | OT_DQ, AM_W | OT_DQ, AM_NOT_USED, "paddd"
} }, | |
855 /* 0xFF */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
856 }; | |
857 | |
858 const Opcode s_opcode_byte_after_0f00[] = { | |
859 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_W, AM_NOT_USED, AM_NOT_USED, "sldt", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
860 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_W, AM_NOT_USED, AM_NOT_USED, "str", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
861 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_W, AM_NOT_USED, AM_NOT_USED, "lldt", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
862 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_W, AM_NOT_USED, AM_NOT_USED, "ltr", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
863 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_W, AM_NOT_USED, AM_NOT_USED, "verr", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
864 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_W, AM_NOT_USED, AM_NOT_USED, "verw", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
865 /* 0x6 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
866 /* 0x7 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
867 }; | |
868 | |
869 const Opcode s_opcode_byte_after_0f01[] = { | |
870 /* 0x0 */ { 0, IT_GENERIC, AM_M | OT_S, AM_NOT_USED, AM_NOT_USED, "sgdt", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
871 /* 0x1 */ { 0, IT_GENERIC, AM_M | OT_S, AM_NOT_USED, AM_NOT_USED, "sidt", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
872 /* 0x2 */ { 0, IT_GENERIC, AM_M | OT_S, AM_NOT_USED, AM_NOT_USED, "lgdt", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
873 /* 0x3 */ { 0, IT_GENERIC, AM_M | OT_S, AM_NOT_USED, AM_NOT_USED, "lidt", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
874 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_W, AM_NOT_USED, AM_NOT_USED, "smsw", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
875 /* 0x5 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
876 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_W, AM_NOT_USED, AM_NOT_USED, "lmsw", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
877 /* 0x7 */ { 0, IT_GENERIC, AM_M | OT_B, AM_NOT_USED, AM_NOT_USED, "invlpg", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
878 }; | |
879 | |
880 const Opcode s_opcode_byte_after_0f18[] = { | |
881 /* 0x0 */ { 0, IT_GENERIC, AM_M | OT_ADDRESS_MODE_M, AM_NOT_USED, AM_NOT_USED,
"prefetch", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
882 /* 0x1 */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "pref
etch", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
883 /* 0x2 */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "pref
etch", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
884 /* 0x3 */ { 0, IT_GENERIC, AM_REGISTER | OT_D, AM_NOT_USED, AM_NOT_USED, "pref
etch", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
885 /* 0x4 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
886 /* 0x5 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
887 /* 0x6 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
888 /* 0x7 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
889 }; | |
890 | |
891 const Opcode s_opcode_byte_after_0f71[] = { | |
892 /* 0x0 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
893 /* 0x1 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
894 /* 0x2 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_I | OT_B, AM_NOT_USED, "psrlw", tru
e, | |
895 /* F2h */ { 0 }, | |
896 /* F3h */ { 0 }, | |
897 /* 66h */ { 0, IT_GENERIC, AM_P | OT_DQ, AM_I | OT_B, AM_NOT_USED, "psrlw" }
}, | |
898 /* 0x3 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
899 /* 0x4 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_I | OT_B, AM_NOT_USED, "psraw", tru
e, | |
900 /* F2h */ { 0 }, | |
901 /* F3h */ { 0 }, | |
902 /* 66h */ { 0, IT_GENERIC, AM_P | OT_DQ, AM_I | OT_B, AM_NOT_USED, "psraw" }
}, | |
903 /* 0x5 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
904 /* 0x6 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_I | OT_B, AM_NOT_USED, "psllw", tru
e, | |
905 /* F2h */ { 0 }, | |
906 /* F3h */ { 0 }, | |
907 /* 66h */ { 0, IT_GENERIC, AM_P | OT_DQ, AM_I | OT_B, AM_NOT_USED, "psllw" }
}, | |
908 /* 0x7 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
909 }; | |
910 | |
911 const Opcode s_opcode_byte_after_0f72[] = { | |
912 /* 0x0 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
913 /* 0x1 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
914 /* 0x2 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_I | OT_B, AM_NOT_USED, "psrld", tru
e, | |
915 /* F2h */ { 0 }, | |
916 /* F3h */ { 0 }, | |
917 /* 66h */ { 0, IT_GENERIC, AM_W | OT_DQ, AM_I | OT_B, AM_NOT_USED, "psrld" }
}, | |
918 /* 0x3 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
919 /* 0x4 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_I | OT_B, AM_NOT_USED, "psrad", tru
e, | |
920 /* F2h */ { 0 }, | |
921 /* F3h */ { 0 }, | |
922 /* 66h */ { 0, IT_GENERIC, AM_W | OT_DQ, AM_I | OT_B, AM_NOT_USED, "psrad" }
}, | |
923 /* 0x5 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
924 /* 0x6 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_I | OT_B, AM_NOT_USED, "pslld", tru
e, | |
925 /* F2h */ { 0 }, | |
926 /* F3h */ { 0 }, | |
927 /* 66h */ { 0, IT_GENERIC, AM_W | OT_DQ, AM_I | OT_B, AM_NOT_USED, "pslld" }
}, | |
928 /* 0x7 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
929 }; | |
930 | |
931 const Opcode s_opcode_byte_after_0f73[] = { | |
932 /* 0x0 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
933 /* 0x1 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
934 /* 0x2 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_I | OT_B, AM_NOT_USED, "psrlq", tru
e, | |
935 /* F2h */ { 0 }, | |
936 /* F3h */ { 0 }, | |
937 /* 66h */ { 0, IT_GENERIC, AM_W | OT_DQ, AM_I | OT_B, AM_NOT_USED, "psrlq" }
}, | |
938 /* 0x3 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
939 /* 0x4 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
940 /* 0x5 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
941 /* 0x6 */ { 0, IT_GENERIC, AM_P | OT_Q, AM_I | OT_B, AM_NOT_USED, "psllq", tru
e, | |
942 /* F2h */ { 0 }, | |
943 /* F3h */ { 0 }, | |
944 /* 66h */ { 0, IT_GENERIC, AM_W | OT_DQ, AM_I | OT_B, AM_NOT_USED, "psllq" }
}, | |
945 /* 0x7 */ { 0, IT_GENERIC, AM_W | OT_DQ, AM_I | OT_B, AM_NOT_USED, "pslldq", t
rue, | |
946 /* F2h */ { 0 }, | |
947 /* F3h */ { 0 }, | |
948 /* 66h */ { 0, IT_GENERIC, AM_W | OT_DQ, AM_I | OT_B, AM_NOT_USED, "pslldq"
} }, | |
949 }; | |
950 | |
951 const Opcode s_opcode_byte_after_0fae[] = { | |
952 /* 0x0 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "fxsave", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
953 /* 0x1 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "fxrstor", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
954 /* 0x2 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "ldmxcsr", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
955 /* 0x3 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "stmxcsr", f
alse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
956 /* 0x4 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
957 /* 0x5 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "lfence", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
958 /* 0x6 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "mfence", fa
lse, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
959 /* 0x7 */ { 0, IT_GENERIC, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, "clflush/sfe
nce", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
960 }; | |
961 | |
962 const Opcode s_opcode_byte_after_0fba[] = { | |
963 /* 0x0 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
964 /* 0x1 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
965 /* 0x2 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
966 /* 0x3 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
967 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "bt", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
968 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "bts", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
969 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "btr", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
970 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "btc", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
971 }; | |
972 | |
973 const Opcode s_opcode_byte_after_0fc7[] = { | |
974 /* 0x0 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
975 /* 0x1 */ { 0, IT_GENERIC, AM_M | OT_Q, AM_NOT_USED, AM_NOT_USED, "cmpxch8b",
false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
976 }; | |
977 | |
978 const Opcode s_opcode_byte_after_80[] = { | |
979 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "add", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
980 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "or", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
981 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "adc", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
982 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "sbb", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
983 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "and", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
984 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "sub", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
985 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "xor", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
986 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "cmp", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
987 }; | |
988 | |
989 const Opcode s_opcode_byte_after_81[] = { | |
990 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "add", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
991 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "or", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
992 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "adc", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
993 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "sbb", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
994 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "and", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
995 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "sub", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
996 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "xor", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
997 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "cmp", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
998 }; | |
999 | |
1000 const Opcode s_opcode_byte_after_82[] = { | |
1001 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "add", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1002 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "or", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1003 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "adc", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1004 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "sbb", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1005 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "and", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1006 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "sub", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1007 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "xor", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1008 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "cmp", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1009 }; | |
1010 | |
1011 const Opcode s_opcode_byte_after_83[] = { | |
1012 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "add", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1013 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "or", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1014 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "adc", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1015 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "sbb", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1016 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "and", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1017 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "sub", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1018 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "xor", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1019 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "cmp", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1020 }; | |
1021 | |
1022 const Opcode s_opcode_byte_after_c0[] = { | |
1023 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "rol", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1024 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "ror", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1025 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "rcl", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1026 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "rcr", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1027 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "shl", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1028 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "shr", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1029 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "sal", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1030 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "sar", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1031 }; | |
1032 | |
1033 const Opcode s_opcode_byte_after_c1[] = { | |
1034 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "rol", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1035 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "ror", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1036 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "rcl", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1037 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "rcr", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1038 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "shl", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1039 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "shr", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1040 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "sal", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1041 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_B, AM_NOT_USED, "sar", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1042 }; | |
1043 | |
1044 const Opcode s_opcode_byte_after_d0[] = { | |
1045 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_B, AM_IMPLICIT, AM_NOT_USED, "rol", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1046 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_B, AM_IMPLICIT, AM_NOT_USED, "ror", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1047 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_B, AM_IMPLICIT, AM_NOT_USED, "rcl", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1048 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_B, AM_IMPLICIT, AM_NOT_USED, "rcr", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1049 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_B, AM_IMPLICIT, AM_NOT_USED, "shl", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1050 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_B, AM_IMPLICIT, AM_NOT_USED, "shr", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1051 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_B, AM_IMPLICIT, AM_NOT_USED, "sal", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1052 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_B, AM_IMPLICIT, AM_NOT_USED, "sar", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1053 }; | |
1054 | |
1055 const Opcode s_opcode_byte_after_d1[] = { | |
1056 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_V, AM_IMPLICIT, AM_NOT_USED, "rol", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1057 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_IMPLICIT, AM_NOT_USED, "ror", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1058 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_V, AM_IMPLICIT, AM_NOT_USED, "rcl", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1059 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_V, AM_IMPLICIT, AM_NOT_USED, "rcr", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1060 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_V, AM_IMPLICIT, AM_NOT_USED, "shl", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1061 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_V, AM_IMPLICIT, AM_NOT_USED, "shr", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1062 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_V, AM_IMPLICIT, AM_NOT_USED, "sal", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1063 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_V, AM_IMPLICIT, AM_NOT_USED, "sar", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1064 }; | |
1065 | |
1066 const Opcode s_opcode_byte_after_d2[] = { | |
1067 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "rol"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1068 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "ror"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1069 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "rcl"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1070 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "rcr"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1071 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "shl"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1072 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "shr"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1073 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "sal"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1074 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_B, AM_REGISTER | OT_B, AM_NOT_USED, "sar"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1075 }; | |
1076 | |
1077 const Opcode s_opcode_byte_after_d3[] = { | |
1078 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_V, AM_REGISTER | OT_B, AM_NOT_USED, "rol"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1079 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_REGISTER | OT_B, AM_NOT_USED, "ror"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1080 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_V, AM_REGISTER | OT_B, AM_NOT_USED, "rcl"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1081 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_V, AM_REGISTER | OT_B, AM_NOT_USED, "rcr"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1082 /* 0x4 */ { 0, IT_GENERIC, AM_E | OT_V, AM_REGISTER | OT_B, AM_NOT_USED, "shl"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1083 /* 0x5 */ { 0, IT_GENERIC, AM_E | OT_V, AM_REGISTER | OT_B, AM_NOT_USED, "shr"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1084 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_V, AM_REGISTER | OT_B, AM_NOT_USED, "sal"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1085 /* 0x7 */ { 0, IT_GENERIC, AM_E | OT_V, AM_REGISTER | OT_B, AM_NOT_USED, "sar"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1086 }; | |
1087 | |
1088 const Opcode s_opcode_byte_after_f6[] = { | |
1089 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "test", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1090 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_B, AM_I | OT_B, AM_NOT_USED, "test", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1091 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "not", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1092 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "neg", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1093 /* 0x4 */ { 0, IT_GENERIC, OT_B | AM_REGISTER, AM_E | OT_B, AM_NOT_USED, "mul"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1094 /* 0x5 */ { 0, IT_GENERIC, OT_B | AM_REGISTER, AM_E | OT_B, AM_NOT_USED, "imul
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1095 /* 0x6 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_E | OT_B, AM_NOT_USED, "div"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1096 /* 0x7 */ { 0, IT_GENERIC, AM_REGISTER | OT_B, AM_E | OT_B, AM_NOT_USED, "idiv
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1097 }; | |
1098 | |
1099 const Opcode s_opcode_byte_after_f7[] = { | |
1100 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "test", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1101 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_I | OT_V, AM_NOT_USED, "test", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1102 /* 0x2 */ { 0, IT_GENERIC, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, "not", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1103 /* 0x3 */ { 0, IT_GENERIC, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, "neg", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1104 /* 0x4 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_E | OT_V, AM_NOT_USED, "mul"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1105 /* 0x5 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_E | OT_V, AM_NOT_USED, "imul
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1106 /* 0x6 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_E | OT_V, AM_NOT_USED, "div"
, false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1107 /* 0x7 */ { 0, IT_GENERIC, AM_REGISTER | OT_V, AM_E | OT_V, AM_NOT_USED, "idiv
", false, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1108 }; | |
1109 | |
1110 const Opcode s_opcode_byte_after_fe[] = { | |
1111 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "inc", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1112 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_B, AM_NOT_USED, AM_NOT_USED, "dec", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1113 }; | |
1114 | |
1115 const Opcode s_opcode_byte_after_ff[] = { | |
1116 /* 0x0 */ { 0, IT_GENERIC, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, "inc", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1117 /* 0x1 */ { 0, IT_GENERIC, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, "dec", false
, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1118 /* 0x2 */ { 0, IT_JUMP, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, "call", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1119 /* 0x3 */ { 0, IT_JUMP, AM_E | OT_P, AM_NOT_USED, AM_NOT_USED, "call", false,
/* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1120 /* 0x4 */ { 0, IT_JUMP, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, "jmp", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1121 /* 0x5 */ { 0, IT_JUMP, AM_E | OT_P, AM_NOT_USED, AM_NOT_USED, "jmp", false, /
* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1122 /* 0x6 */ { 0, IT_GENERIC, AM_E | OT_V, AM_NOT_USED, AM_NOT_USED, "push", fals
e, /* F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } }, | |
1123 /* 0x7 */ { 0, IT_UNUSED, AM_NOT_USED, AM_NOT_USED, AM_NOT_USED, 0, false, /*
F2h */ { 0 }, /* F3h */ { 0 }, /* 66h */ { 0 } } | |
1124 }; | |
1125 | |
1126 /* | |
1127 * A table of all the other tables, containing some extra information, e.g. | |
1128 * how to mask out the byte we're looking at. | |
1129 */ | |
1130 const OpcodeTable MiniDisassembler::s_ia32_opcode_map_[]={ | |
1131 // One-byte opcodes and jumps to larger | |
1132 /* 0 */ {s_first_opcode_byte, 0, 0xff, 0, 0xff}, | |
1133 // Two-byte opcodes (second byte) | |
1134 /* 1 */ {s_opcode_byte_after_0f, 0, 0xff, 0, 0xff}, | |
1135 // Start of tables for opcodes using ModR/M bits as extension | |
1136 /* 2 */ {s_opcode_byte_after_80, 3, 0x07, 0, 0x07}, | |
1137 /* 3 */ {s_opcode_byte_after_81, 3, 0x07, 0, 0x07}, | |
1138 /* 4 */ {s_opcode_byte_after_82, 3, 0x07, 0, 0x07}, | |
1139 /* 5 */ {s_opcode_byte_after_83, 3, 0x07, 0, 0x07}, | |
1140 /* 6 */ {s_opcode_byte_after_c0, 3, 0x07, 0, 0x07}, | |
1141 /* 7 */ {s_opcode_byte_after_c1, 3, 0x07, 0, 0x07}, | |
1142 /* 8 */ {s_opcode_byte_after_d0, 3, 0x07, 0, 0x07}, | |
1143 /* 9 */ {s_opcode_byte_after_d1, 3, 0x07, 0, 0x07}, | |
1144 /* 10 */ {s_opcode_byte_after_d2, 3, 0x07, 0, 0x07}, | |
1145 /* 11 */ {s_opcode_byte_after_d3, 3, 0x07, 0, 0x07}, | |
1146 /* 12 */ {s_opcode_byte_after_f6, 3, 0x07, 0, 0x07}, | |
1147 /* 13 */ {s_opcode_byte_after_f7, 3, 0x07, 0, 0x07}, | |
1148 /* 14 */ {s_opcode_byte_after_fe, 3, 0x07, 0, 0x01}, | |
1149 /* 15 */ {s_opcode_byte_after_ff, 3, 0x07, 0, 0x07}, | |
1150 /* 16 */ {s_opcode_byte_after_0f00, 3, 0x07, 0, 0x07}, | |
1151 /* 17 */ {s_opcode_byte_after_0f01, 3, 0x07, 0, 0x07}, | |
1152 /* 18 */ {s_opcode_byte_after_0f18, 3, 0x07, 0, 0x07}, | |
1153 /* 19 */ {s_opcode_byte_after_0f71, 3, 0x07, 0, 0x07}, | |
1154 /* 20 */ {s_opcode_byte_after_0f72, 3, 0x07, 0, 0x07}, | |
1155 /* 21 */ {s_opcode_byte_after_0f73, 3, 0x07, 0, 0x07}, | |
1156 /* 22 */ {s_opcode_byte_after_0fae, 3, 0x07, 0, 0x07}, | |
1157 /* 23 */ {s_opcode_byte_after_0fba, 3, 0x07, 0, 0x07}, | |
1158 /* 24 */ {s_opcode_byte_after_0fc7, 3, 0x07, 0, 0x01} | |
1159 }; | |
1160 | |
1161 }; // namespace sidestep | |
OLD | NEW |