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