diff --git a/Bindings/Cpp/VXOpcodeTable.cpp b/Bindings/Cpp/VXOpcodeTable.cpp deleted file mode 100644 index 5b6b5e8..0000000 --- a/Bindings/Cpp/VXOpcodeTable.cpp +++ /dev/null @@ -1,9655 +0,0 @@ -/************************************************************************************************** - - Verteron Disassembler Engine - Version 1.0 - - Remarks : Freeware, Copyright must be included - - Original Author : Florian Bernd - Modifications : - - Last change : 14. October 2014 - - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - -**************************************************************************************************/ -#include "VXOpcodeTable.hpp" - -namespace Verteron -{ - -namespace Internal -{ - -#define VX_INVALID 0 -#define NODE(type, n) (static_cast(type) << 12 | (n)) - -const VXOpcodeTreeNode optreeTable[][256] = -{ - { - /* 00 */ 0x0015, - /* 01 */ 0x0014, - /* 02 */ 0x0016, - /* 03 */ 0x0018, - /* 04 */ 0x0017, - /* 05 */ 0x0010, - /* 06 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0000), - /* 07 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0001), - /* 08 */ 0x0394, - /* 09 */ 0x0393, - /* 0A */ 0x0396, - /* 0B */ 0x0395, - /* 0C */ 0x0390, - /* 0D */ 0x038F, - /* 0E */ NODE(VXOpcodeTreeNodeType::MODE, 0x0002), - /* 0F */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0001), - /* 10 */ 0x000B, - /* 11 */ 0x000A, - /* 12 */ 0x000C, - /* 13 */ 0x000E, - /* 14 */ 0x000D, - /* 15 */ 0x0006, - /* 16 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0007), - /* 17 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0008), - /* 18 */ 0x04FE, - /* 19 */ 0x04F7, - /* 1A */ 0x04F8, - /* 1B */ 0x04FB, - /* 1C */ 0x04FA, - /* 1D */ 0x04F9, - /* 1E */ NODE(VXOpcodeTreeNodeType::MODE, 0x0009), - /* 1F */ NODE(VXOpcodeTreeNodeType::MODE, 0x000A), - /* 20 */ 0x0026, - /* 21 */ 0x0027, - /* 22 */ 0x0025, - /* 23 */ 0x002C, - /* 24 */ 0x002D, - /* 25 */ 0x002E, - /* 26 */ VX_INVALID, - /* 27 */ NODE(VXOpcodeTreeNodeType::MODE, 0x000B), - /* 28 */ 0x0542, - /* 29 */ 0x0549, - /* 2A */ 0x0548, - /* 2B */ 0x054B, - /* 2C */ 0x054A, - /* 2D */ 0x0547, - /* 2E */ VX_INVALID, - /* 2F */ NODE(VXOpcodeTreeNodeType::MODE, 0x000C), - /* 30 */ 0x06B8, - /* 31 */ 0x06B9, - /* 32 */ 0x06B6, - /* 33 */ 0x06B7, - /* 34 */ 0x06BA, - /* 35 */ 0x06BB, - /* 36 */ VX_INVALID, - /* 37 */ NODE(VXOpcodeTreeNodeType::MODE, 0x000D), - /* 38 */ 0x006C, - /* 39 */ 0x006D, - /* 3A */ 0x006B, - /* 3B */ 0x006A, - /* 3C */ 0x0070, - /* 3D */ 0x006F, - /* 3E */ VX_INVALID, - /* 3F */ NODE(VXOpcodeTreeNodeType::MODE, 0x000E), - /* 40 */ 0x02AB, - /* 41 */ 0x02AC, - /* 42 */ 0x02B2, - /* 43 */ 0x02B1, - /* 44 */ 0x02B3, - /* 45 */ 0x02B4, - /* 46 */ 0x02AE, - /* 47 */ 0x02AD, - /* 48 */ 0x00A7, - /* 49 */ 0x00A6, - /* 4A */ 0x00A8, - /* 4B */ 0x00AA, - /* 4C */ 0x00A9, - /* 4D */ 0x00A2, - /* 4E */ 0x00A1, - /* 4F */ 0x00A3, - /* 50 */ 0x04B4, - /* 51 */ 0x04B9, - /* 52 */ 0x04B3, - /* 53 */ 0x04AE, - /* 54 */ 0x04AF, - /* 55 */ 0x04B0, - /* 56 */ 0x04B1, - /* 57 */ 0x04B2, - /* 58 */ 0x0449, - /* 59 */ 0x0447, - /* 5A */ 0x0448, - /* 5B */ 0x0442, - /* 5C */ 0x043E, - /* 5D */ 0x043D, - /* 5E */ 0x043F, - /* 5F */ 0x0441, - /* 60 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0007), - /* 61 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0008), - /* 62 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0013), - /* 63 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0014), - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ 0x04B7, - /* 69 */ 0x02A4, - /* 6A */ 0x04AB, - /* 6B */ 0x02A6, - /* 6C */ 0x02B5, - /* 6D */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0009), - /* 6E */ 0x039F, - /* 6F */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x000A), - /* 70 */ 0x02E8, - /* 71 */ 0x02E2, - /* 72 */ 0x02CA, - /* 73 */ 0x02DE, - /* 74 */ 0x02CE, - /* 75 */ 0x02E1, - /* 76 */ 0x02CB, - /* 77 */ 0x02C7, - /* 78 */ 0x02ED, - /* 79 */ 0x02E6, - /* 7A */ 0x02EB, - /* 7B */ 0x02E5, - /* 7C */ 0x02D5, - /* 7D */ 0x02D3, - /* 7E */ 0x02D8, - /* 7F */ 0x02D1, - /* 80 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0013), - /* 81 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0014), - /* 82 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0015), - /* 83 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0016), - /* 84 */ 0x055C, - /* 85 */ 0x055D, - /* 86 */ 0x06A8, - /* 87 */ 0x06A7, - /* 88 */ 0x0334, - /* 89 */ 0x0336, - /* 8A */ 0x0335, - /* 8B */ 0x0331, - /* 8C */ 0x031D, - /* 8D */ 0x02F4, - /* 8E */ 0x031C, - /* 8F */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0017), - /* 90 */ 0x06A9, - /* 91 */ 0x06AB, - /* 92 */ 0x06AA, - /* 93 */ 0x06A3, - /* 94 */ 0x06A2, - /* 95 */ 0x06A4, - /* 96 */ 0x06A6, - /* 97 */ 0x06A5, - /* 98 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x000B), - /* 99 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x000C), - /* 9A */ NODE(VXOpcodeTreeNodeType::MODE, 0x001D), - /* 9B */ 0x069D, - /* 9C */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x000D), - /* 9D */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x000E), - /* 9E */ 0x04EF, - /* 9F */ 0x02EF, - /* A0 */ 0x031B, - /* A1 */ 0x0320, - /* A2 */ 0x031F, - /* A3 */ 0x031E, - /* A4 */ 0x0367, - /* A5 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x000F), - /* A6 */ 0x0076, - /* A7 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0010), - /* A8 */ 0x055E, - /* A9 */ 0x055B, - /* AA */ 0x053D, - /* AB */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0011), - /* AC */ 0x0300, - /* AD */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0012), - /* AE */ 0x0501, - /* AF */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0013), - /* B0 */ 0x0317, - /* B1 */ 0x031A, - /* B2 */ 0x0318, - /* B3 */ 0x0319, - /* B4 */ 0x0321, - /* B5 */ 0x032C, - /* B6 */ 0x032B, - /* B7 */ 0x032A, - /* B8 */ 0x032D, - /* B9 */ 0x0330, - /* BA */ 0x032F, - /* BB */ 0x032E, - /* BC */ 0x0329, - /* BD */ 0x0324, - /* BE */ 0x0323, - /* BF */ 0x0322, - /* C0 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0018), - /* C1 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0019), - /* C2 */ 0x04D9, - /* C3 */ 0x04D8, - /* C4 */ NODE(VXOpcodeTreeNodeType::VEX, 0x0000), - /* C5 */ NODE(VXOpcodeTreeNodeType::VEX, 0x0001), - /* C6 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x001E), - /* C7 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x001F), - /* C8 */ 0x00B4, - /* C9 */ 0x02F5, - /* CA */ 0x04DA, - /* CB */ 0x04DB, - /* CC */ 0x02BB, - /* CD */ 0x02B9, - /* CE */ NODE(VXOpcodeTreeNodeType::MODE, 0x0027), - /* CF */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0017), - /* D0 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0020), - /* D1 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0021), - /* D2 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0022), - /* D3 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0023), - /* D4 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0028), - /* D5 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0029), - /* D6 */ NODE(VXOpcodeTreeNodeType::MODE, 0x002A), - /* D7 */ 0x06B2, - /* D8 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0015), - /* D9 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0016), - /* DA */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0017), - /* DB */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0018), - /* DC */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0019), - /* DD */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x001A), - /* DE */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x001B), - /* DF */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x001C), - /* E0 */ 0x0306, - /* E1 */ 0x0305, - /* E2 */ 0x0304, - /* E3 */ NODE(VXOpcodeTreeNodeType::ADDRESS_SIZE, 0x0000), - /* E4 */ 0x02A9, - /* E5 */ 0x02AA, - /* E6 */ 0x039D, - /* E7 */ 0x039E, - /* E8 */ 0x004E, - /* E9 */ 0x02DB, - /* EA */ NODE(VXOpcodeTreeNodeType::MODE, 0x002B), - /* EB */ 0x02DD, - /* EC */ 0x02A7, - /* ED */ 0x02A8, - /* EE */ 0x039B, - /* EF */ 0x039C, - /* F0 */ 0x02FF, - /* F1 */ 0x02BA, - /* F2 */ 0x04D7, - /* F3 */ 0x04D6, - /* F4 */ 0x029D, - /* F5 */ 0x0059, - /* F6 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x002C), - /* F7 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x002D), - /* F8 */ 0x0053, - /* F9 */ 0x0538, - /* FA */ 0x0057, - /* FB */ 0x053B, - /* FC */ 0x0054, - /* FD */ 0x0539, - /* FE */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x002E), - /* FF */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x002F), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0000), - /* 01 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0000), - /* 02 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0003), - /* 03 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0004), - /* 04 */ VX_INVALID, - /* 05 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0005), - /* 06 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0006), - /* 07 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0007), - /* 08 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0008), - /* 09 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0009), - /* 0A */ VX_INVALID, - /* 0B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x000A), - /* 0C */ VX_INVALID, - /* 0D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x000B), - /* 0E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x000C), - /* 0F */ NODE(VXOpcodeTreeNodeType::AMD3DNOW, 0x0000), - /* 10 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x000D), - /* 11 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x000E), - /* 12 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0001), - /* 13 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0011), - /* 14 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0012), - /* 15 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0013), - /* 16 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0002), - /* 17 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0016), - /* 18 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0017), - /* 19 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0018), - /* 1A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0019), - /* 1B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x001A), - /* 1C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x001B), - /* 1D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x001C), - /* 1E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x001D), - /* 1F */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x001E), - /* 20 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x001F), - /* 21 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0020), - /* 22 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0021), - /* 23 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0022), - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0023), - /* 29 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0024), - /* 2A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0025), - /* 2B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0026), - /* 2C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0027), - /* 2D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0028), - /* 2E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0029), - /* 2F */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x002A), - /* 30 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x002B), - /* 31 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x002C), - /* 32 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x002D), - /* 33 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x002E), - /* 34 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x002F), - /* 35 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0030), - /* 36 */ VX_INVALID, - /* 37 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0031), - /* 38 */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0002), - /* 39 */ VX_INVALID, - /* 3A */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0003), - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0081), - /* 41 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0082), - /* 42 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0083), - /* 43 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0084), - /* 44 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0085), - /* 45 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0086), - /* 46 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0087), - /* 47 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0088), - /* 48 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0089), - /* 49 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x008A), - /* 4A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x008B), - /* 4B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x008C), - /* 4C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x008D), - /* 4D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x008E), - /* 4E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x008F), - /* 4F */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0090), - /* 50 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0091), - /* 51 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0092), - /* 52 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0093), - /* 53 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0094), - /* 54 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0095), - /* 55 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0096), - /* 56 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0097), - /* 57 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0098), - /* 58 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0099), - /* 59 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x009A), - /* 5A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x009B), - /* 5B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x009C), - /* 5C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x009D), - /* 5D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x009E), - /* 5E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x009F), - /* 5F */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00A0), - /* 60 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00A1), - /* 61 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00A2), - /* 62 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00A3), - /* 63 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00A4), - /* 64 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00A5), - /* 65 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00A6), - /* 66 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00A7), - /* 67 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00A8), - /* 68 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00A9), - /* 69 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00AA), - /* 6A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00AB), - /* 6B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00AC), - /* 6C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00AD), - /* 6D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00AE), - /* 6E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00AF), - /* 6F */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00B0), - /* 70 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00B1), - /* 71 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00B2), - /* 72 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00B3), - /* 73 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00B4), - /* 74 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00B5), - /* 75 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00B6), - /* 76 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00B7), - /* 77 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00B8), - /* 78 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00B9), - /* 79 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00BA), - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00BB), - /* 7D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00BC), - /* 7E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00BD), - /* 7F */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00BE), - /* 80 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00BF), - /* 81 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00C0), - /* 82 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00C1), - /* 83 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00C2), - /* 84 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00C3), - /* 85 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00C4), - /* 86 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00C5), - /* 87 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00C6), - /* 88 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00C7), - /* 89 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00C8), - /* 8A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00C9), - /* 8B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00CA), - /* 8C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00CB), - /* 8D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00CC), - /* 8E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00CD), - /* 8F */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00CE), - /* 90 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00CF), - /* 91 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00D0), - /* 92 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00D1), - /* 93 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00D2), - /* 94 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00D3), - /* 95 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00D4), - /* 96 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00D5), - /* 97 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00D6), - /* 98 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00D7), - /* 99 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00D8), - /* 9A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00D9), - /* 9B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00DA), - /* 9C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00DB), - /* 9D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00DC), - /* 9E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00DD), - /* 9F */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00DE), - /* A0 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00DF), - /* A1 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00E0), - /* A2 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00E1), - /* A3 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00E2), - /* A4 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00E3), - /* A5 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00E4), - /* A6 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0003), - /* A7 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0004), - /* A8 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00E7), - /* A9 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00E8), - /* AA */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00E9), - /* AB */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00EA), - /* AC */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00EB), - /* AD */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00EC), - /* AE */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0005), - /* AF */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00EF), - /* B0 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00F0), - /* B1 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00F1), - /* B2 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00F2), - /* B3 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00F3), - /* B4 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00F4), - /* B5 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00F5), - /* B6 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00F6), - /* B7 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00F7), - /* B8 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00F8), - /* B9 */ VX_INVALID, - /* BA */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00F9), - /* BB */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00FA), - /* BC */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00FB), - /* BD */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00FC), - /* BE */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00FD), - /* BF */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00FE), - /* C0 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00FF), - /* C1 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0100), - /* C2 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0101), - /* C3 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0102), - /* C4 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0103), - /* C5 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0104), - /* C6 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0105), - /* C7 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0006), - /* C8 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0108), - /* C9 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0109), - /* CA */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x010A), - /* CB */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x010B), - /* CC */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x010C), - /* CD */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x010D), - /* CE */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x010E), - /* CF */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x010F), - /* D0 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0110), - /* D1 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0111), - /* D2 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0112), - /* D3 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0113), - /* D4 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0114), - /* D5 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0115), - /* D6 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0116), - /* D7 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0117), - /* D8 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0118), - /* D9 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0119), - /* DA */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x011A), - /* DB */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x011B), - /* DC */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x011C), - /* DD */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x011D), - /* DE */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x011E), - /* DF */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x011F), - /* E0 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0120), - /* E1 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0121), - /* E2 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0122), - /* E3 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0123), - /* E4 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0124), - /* E5 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0125), - /* E6 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0126), - /* E7 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0127), - /* E8 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0128), - /* E9 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0129), - /* EA */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x012A), - /* EB */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x012B), - /* EC */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x012C), - /* ED */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x012D), - /* EE */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x012E), - /* EF */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x012F), - /* F0 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0130), - /* F1 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0131), - /* F2 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0132), - /* F3 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0133), - /* F4 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0134), - /* F5 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0135), - /* F6 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0136), - /* F7 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0007), - /* F8 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0138), - /* F9 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0139), - /* FA */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x013A), - /* FB */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x013B), - /* FC */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x013C), - /* FD */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x013D), - /* FE */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x013E), - /* FF */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0032), - /* 01 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0033), - /* 02 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0034), - /* 03 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0035), - /* 04 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0036), - /* 05 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0037), - /* 06 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0038), - /* 07 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0039), - /* 08 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x003A), - /* 09 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x003B), - /* 0A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x003C), - /* 0B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x003D), - /* 0C */ VX_INVALID, - /* 0D */ VX_INVALID, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - /* 10 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x003E), - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x003F), - /* 15 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0040), - /* 16 */ VX_INVALID, - /* 17 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0041), - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0042), - /* 1D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0043), - /* 1E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0044), - /* 1F */ VX_INVALID, - /* 20 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0045), - /* 21 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0046), - /* 22 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0047), - /* 23 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0048), - /* 24 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0049), - /* 25 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x004A), - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x004B), - /* 29 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x004C), - /* 2A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x004D), - /* 2B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x004E), - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x004F), - /* 31 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0050), - /* 32 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0051), - /* 33 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0052), - /* 34 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0053), - /* 35 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0054), - /* 36 */ VX_INVALID, - /* 37 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0055), - /* 38 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0056), - /* 39 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0057), - /* 3A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0058), - /* 3B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0059), - /* 3C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x005A), - /* 3D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x005B), - /* 3E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x005C), - /* 3F */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x005D), - /* 40 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x005E), - /* 41 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x005F), - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ VX_INVALID, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ VX_INVALID, - /* 59 */ VX_INVALID, - /* 5A */ VX_INVALID, - /* 5B */ VX_INVALID, - /* 5C */ VX_INVALID, - /* 5D */ VX_INVALID, - /* 5E */ VX_INVALID, - /* 5F */ VX_INVALID, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0060), - /* 81 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0061), - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ VX_INVALID, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0062), - /* DC */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0063), - /* DD */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0064), - /* DE */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0065), - /* DF */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0066), - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0067), - /* F1 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0068), - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0069), - /* 09 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x006A), - /* 0A */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x006B), - /* 0B */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x006C), - /* 0C */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x006D), - /* 0D */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x006E), - /* 0E */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x006F), - /* 0F */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0070), - /* 10 */ VX_INVALID, - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0071), - /* 15 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0072), - /* 16 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0073), - /* 17 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0074), - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0075), - /* 21 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0076), - /* 22 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0077), - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ VX_INVALID, - /* 2A */ VX_INVALID, - /* 2B */ VX_INVALID, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0078), - /* 41 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0079), - /* 42 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x007A), - /* 43 */ VX_INVALID, - /* 44 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x007B), - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ VX_INVALID, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ VX_INVALID, - /* 59 */ VX_INVALID, - /* 5A */ VX_INVALID, - /* 5B */ VX_INVALID, - /* 5C */ VX_INVALID, - /* 5D */ VX_INVALID, - /* 5E */ VX_INVALID, - /* 5F */ VX_INVALID, - /* 60 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x007C), - /* 61 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x007D), - /* 62 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x007E), - /* 63 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x007F), - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ VX_INVALID, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0080), - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_INVALID, - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ VX_INVALID, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - /* 10 */ 0x05E6, - /* 11 */ 0x05E5, - /* 12 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0008), - /* 13 */ 0x05CC, - /* 14 */ 0x0698, - /* 15 */ 0x0696, - /* 16 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0009), - /* 17 */ 0x05C7, - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ 0x05B8, - /* 29 */ 0x05B7, - /* 2A */ VX_INVALID, - /* 2B */ 0x05D2, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ 0x0694, - /* 2F */ 0x0581, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_INVALID, - /* 41 */ VX_INVALID, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ 0x05CE, - /* 51 */ 0x0689, - /* 52 */ 0x0684, - /* 53 */ 0x067E, - /* 54 */ 0x0575, - /* 55 */ 0x0573, - /* 56 */ 0x05F6, - /* 57 */ 0x069A, - /* 58 */ 0x0567, - /* 59 */ 0x05EF, - /* 5A */ 0x0587, - /* 5B */ 0x0583, - /* 5C */ 0x068E, - /* 5D */ 0x05AF, - /* 5E */ 0x0593, - /* 5F */ 0x05A9, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x0000), - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x000A), - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ 0x057D, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ 0x0687, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ VX_INVALID, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_INVALID, - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ VX_INVALID, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - /* 10 */ 0x05E4, - /* 11 */ 0x05E3, - /* 12 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x000B), - /* 13 */ 0x05CA, - /* 14 */ 0x0697, - /* 15 */ 0x0695, - /* 16 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x000C), - /* 17 */ 0x05C5, - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ 0x05B5, - /* 29 */ 0x05B6, - /* 2A */ VX_INVALID, - /* 2B */ 0x05D1, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ 0x0693, - /* 2F */ 0x0580, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_INVALID, - /* 41 */ VX_INVALID, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ 0x05CD, - /* 51 */ 0x0688, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ 0x0574, - /* 55 */ 0x0572, - /* 56 */ 0x05F5, - /* 57 */ 0x0699, - /* 58 */ 0x0566, - /* 59 */ 0x05EE, - /* 5A */ 0x0585, - /* 5B */ 0x0586, - /* 5C */ 0x068D, - /* 5D */ 0x05AE, - /* 5E */ 0x0592, - /* 5F */ 0x05A8, - /* 60 */ 0x0679, - /* 61 */ 0x067C, - /* 62 */ 0x067A, - /* 63 */ 0x05FB, - /* 64 */ 0x0614, - /* 65 */ 0x0617, - /* 66 */ 0x0615, - /* 67 */ 0x05FD, - /* 68 */ 0x0675, - /* 69 */ 0x0678, - /* 6A */ 0x0676, - /* 6B */ 0x05FA, - /* 6C */ 0x067B, - /* 6D */ 0x0677, - /* 6E */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0014), - /* 6F */ 0x05BF, - /* 70 */ 0x0654, - /* 71 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x001B), - /* 72 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x001C), - /* 73 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x001D), - /* 74 */ 0x060E, - /* 75 */ 0x0611, - /* 76 */ 0x060F, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ 0x059C, - /* 7D */ 0x059E, - /* 7E */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0015), - /* 7F */ 0x05C0, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ 0x057C, - /* C3 */ VX_INVALID, - /* C4 */ 0x0630, - /* C5 */ 0x0623, - /* C6 */ 0x0686, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ 0x056A, - /* D1 */ 0x066B, - /* D2 */ 0x0665, - /* D3 */ 0x0669, - /* D4 */ 0x0600, - /* D5 */ 0x0650, - /* D6 */ 0x05D4, - /* D7 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x0004), - /* D8 */ 0x0671, - /* D9 */ 0x0672, - /* DA */ 0x063C, - /* DB */ 0x0607, - /* DC */ 0x0603, - /* DD */ 0x0604, - /* DE */ 0x0636, - /* DF */ 0x0608, - /* E0 */ 0x0609, - /* E1 */ 0x0663, - /* E2 */ 0x0662, - /* E3 */ 0x060A, - /* E4 */ 0x064D, - /* E5 */ 0x064E, - /* E6 */ 0x058E, - /* E7 */ 0x05CF, - /* E8 */ 0x066F, - /* E9 */ 0x0670, - /* EA */ 0x063B, - /* EB */ 0x0651, - /* EC */ 0x0601, - /* ED */ 0x0602, - /* EE */ 0x0635, - /* EF */ 0x067D, - /* F0 */ VX_INVALID, - /* F1 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x0005), - /* F2 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x0006), - /* F3 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x0007), - /* F4 */ VX_INVALID, - /* F5 */ 0x0632, - /* F6 */ 0x0652, - /* F7 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x000D), - /* F8 */ 0x066C, - /* F9 */ 0x0673, - /* FA */ 0x066D, - /* FB */ 0x066E, - /* FC */ 0x05FE, - /* FD */ 0x0605, - /* FE */ 0x05FF, - /* FF */ VX_INVALID, - }, - { - /* 00 */ 0x0653, - /* 01 */ 0x0627, - /* 02 */ 0x0625, - /* 03 */ 0x0626, - /* 04 */ 0x0631, - /* 05 */ 0x062B, - /* 06 */ 0x0629, - /* 07 */ 0x062A, - /* 08 */ 0x0657, - /* 09 */ 0x0659, - /* 0A */ 0x0658, - /* 0B */ 0x064C, - /* 0C */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0000), - /* 0D */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0001), - /* 0E */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0002), - /* 0F */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0003), - /* 10 */ VX_INVALID, - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ VX_INVALID, - /* 15 */ VX_INVALID, - /* 16 */ VX_INVALID, - /* 17 */ 0x0674, - /* 18 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0004), - /* 19 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0005), - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ 0x05F7, - /* 1D */ 0x05F9, - /* 1E */ 0x05F8, - /* 1F */ VX_INVALID, - /* 20 */ 0x0642, - /* 21 */ 0x0640, - /* 22 */ 0x0641, - /* 23 */ 0x0643, - /* 24 */ 0x0644, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ 0x064B, - /* 29 */ 0x0610, - /* 2A */ 0x05D0, - /* 2B */ 0x05FC, - /* 2C */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0006), - /* 2D */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0007), - /* 2E */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0008), - /* 2F */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0009), - /* 30 */ 0x0647, - /* 31 */ 0x0645, - /* 32 */ 0x0646, - /* 33 */ 0x0649, - /* 34 */ 0x064A, - /* 35 */ 0x0648, - /* 36 */ VX_INVALID, - /* 37 */ 0x0616, - /* 38 */ 0x0639, - /* 39 */ 0x063A, - /* 3A */ 0x063E, - /* 3B */ 0x063D, - /* 3C */ 0x0633, - /* 3D */ 0x0634, - /* 3E */ 0x0638, - /* 3F */ 0x0637, - /* 40 */ 0x064F, - /* 41 */ 0x0628, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ VX_INVALID, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ VX_INVALID, - /* 59 */ VX_INVALID, - /* 5A */ VX_INVALID, - /* 5B */ VX_INVALID, - /* 5C */ VX_INVALID, - /* 5D */ VX_INVALID, - /* 5E */ VX_INVALID, - /* 5F */ VX_INVALID, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ VX_INVALID, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ 0x0570, - /* DC */ 0x056E, - /* DD */ 0x056F, - /* DE */ 0x056C, - /* DF */ 0x056D, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x000A), - /* 05 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x000B), - /* 06 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x000C), - /* 07 */ VX_INVALID, - /* 08 */ 0x0681, - /* 09 */ 0x0680, - /* 0A */ 0x0683, - /* 0B */ 0x0682, - /* 0C */ 0x0577, - /* 0D */ 0x0576, - /* 0E */ 0x060C, - /* 0F */ 0x0606, - /* 10 */ VX_INVALID, - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x000D), - /* 15 */ 0x0624, - /* 16 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0016), - /* 17 */ 0x059B, - /* 18 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0011), - /* 19 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0012), - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0013), - /* 21 */ 0x05A1, - /* 22 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0025), - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ VX_INVALID, - /* 2A */ VX_INVALID, - /* 2B */ VX_INVALID, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ 0x0597, - /* 41 */ 0x0596, - /* 42 */ 0x05E7, - /* 43 */ VX_INVALID, - /* 44 */ 0x060D, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0016), - /* 4B */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0017), - /* 4C */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0018), - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ VX_INVALID, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ VX_INVALID, - /* 59 */ VX_INVALID, - /* 5A */ VX_INVALID, - /* 5B */ VX_INVALID, - /* 5C */ VX_INVALID, - /* 5D */ VX_INVALID, - /* 5E */ VX_INVALID, - /* 5F */ VX_INVALID, - /* 60 */ 0x0613, - /* 61 */ 0x0612, - /* 62 */ 0x0619, - /* 63 */ 0x0618, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ VX_INVALID, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ 0x0571, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_INVALID, - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ VX_INVALID, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - /* 10 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x000E), - /* 11 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x000F), - /* 12 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0010), - /* 13 */ VX_INVALID, - /* 14 */ VX_INVALID, - /* 15 */ VX_INVALID, - /* 16 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0011), - /* 17 */ VX_INVALID, - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ VX_INVALID, - /* 2A */ 0x058B, - /* 2B */ VX_INVALID, - /* 2C */ 0x0591, - /* 2D */ 0x058D, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_INVALID, - /* 41 */ VX_INVALID, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ 0x068B, - /* 52 */ 0x0685, - /* 53 */ 0x067F, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ 0x0569, - /* 59 */ 0x05F1, - /* 5A */ 0x058C, - /* 5B */ 0x058F, - /* 5C */ 0x0690, - /* 5D */ 0x05B1, - /* 5E */ 0x0595, - /* 5F */ 0x05AB, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ 0x05C2, - /* 70 */ 0x0655, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ 0x05D3, - /* 7F */ 0x05C1, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ 0x057F, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ VX_INVALID, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ 0x0582, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_INVALID, - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ VX_INVALID, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - /* 10 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0012), - /* 11 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0013), - /* 12 */ NODE(VXOpcodeTreeNodeType::MODRM_MOD, 0x0014), - /* 13 */ VX_INVALID, - /* 14 */ VX_INVALID, - /* 15 */ VX_INVALID, - /* 16 */ VX_INVALID, - /* 17 */ VX_INVALID, - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ VX_INVALID, - /* 2A */ 0x058A, - /* 2B */ VX_INVALID, - /* 2C */ 0x0590, - /* 2D */ 0x0588, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_INVALID, - /* 41 */ VX_INVALID, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ 0x068A, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ 0x0568, - /* 59 */ 0x05F0, - /* 5A */ 0x0589, - /* 5B */ VX_INVALID, - /* 5C */ 0x068F, - /* 5D */ 0x05B0, - /* 5E */ 0x0594, - /* 5F */ 0x05AA, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ 0x0656, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ 0x059D, - /* 7D */ 0x059F, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ 0x057E, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ 0x056B, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ VX_INVALID, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ 0x0584, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ 0x05A2, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, - }, -}; - -const VXOpcodeTreeNode optreeModrmMod[][2] = -{ - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0001), - /* 01 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0002), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x000F), - /* 01 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0010), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0014), - /* 01 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0015), - }, - { - /* 00 */ VX_INVALID, - /* 01 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00E5), - }, - { - /* 00 */ VX_INVALID, - /* 01 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00E6), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00ED), - /* 01 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x00EE), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0106), - /* 01 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0107), - }, - { - /* 00 */ VX_INVALID, - /* 01 */ NODE(VXOpcodeTreeNodeType::MANDATORY, 0x0137), - }, - { - /* 00 */ 0x05CB, - /* 01 */ 0x05C3, - }, - { - /* 00 */ 0x05C6, - /* 01 */ 0x05C8, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x001A), - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x05C9, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x05C4, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05A3, - }, - { - /* 00 */ 0x05E2, - /* 01 */ 0x05DF, - }, - { - /* 00 */ 0x05E0, - /* 01 */ 0x05E1, - }, - { - /* 00 */ 0x05DE, - /* 01 */ 0x05DD, - }, - { - /* 00 */ 0x05DB, - /* 01 */ 0x05DC, - }, - { - /* 00 */ 0x05DA, - /* 01 */ 0x05D9, - }, - { - /* 00 */ 0x05D8, - /* 01 */ 0x05D7, - }, - { - /* 00 */ 0x05BE, - /* 01 */ 0x05BD, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0024), - /* 01 */ NODE(VXOpcodeTreeNodeType::X87, 0x0000), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0025), - /* 01 */ NODE(VXOpcodeTreeNodeType::X87, 0x0001), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0026), - /* 01 */ NODE(VXOpcodeTreeNodeType::X87, 0x0002), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0027), - /* 01 */ NODE(VXOpcodeTreeNodeType::X87, 0x0003), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0028), - /* 01 */ NODE(VXOpcodeTreeNodeType::X87, 0x0004), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0029), - /* 01 */ NODE(VXOpcodeTreeNodeType::X87, 0x0005), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x002A), - /* 01 */ NODE(VXOpcodeTreeNodeType::X87, 0x0006), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x002B), - /* 01 */ NODE(VXOpcodeTreeNodeType::X87, 0x0007), - }, -}; - -const VXOpcodeTreeNode optreeModrmReg[][8] = -{ - { - /* 00 */ 0x0531, - /* 01 */ 0x0541, - /* 02 */ 0x02FC, - /* 03 */ 0x0309, - /* 04 */ 0x0598, - /* 05 */ 0x0599, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x0516, - /* 01 */ 0x052F, - /* 02 */ 0x02F9, - /* 03 */ 0x02FB, - /* 04 */ 0x0533, - /* 05 */ VX_INVALID, - /* 06 */ 0x02FE, - /* 07 */ 0x02C0, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x0000), - /* 01 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x0001), - /* 02 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x0002), - /* 03 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x0003), - /* 04 */ 0x0532, - /* 05 */ VX_INVALID, - /* 06 */ 0x02FD, - /* 07 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x0004), - }, - { - /* 00 */ 0x0455, - /* 01 */ 0x0456, - /* 02 */ 0x0457, - /* 03 */ 0x0458, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ 0x0486, - /* 03 */ VX_INVALID, - /* 04 */ 0x0479, - /* 05 */ VX_INVALID, - /* 06 */ 0x0470, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ 0x0485, - /* 03 */ VX_INVALID, - /* 04 */ 0x0478, - /* 05 */ VX_INVALID, - /* 06 */ 0x0473, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ 0x047E, - /* 03 */ VX_INVALID, - /* 04 */ 0x0475, - /* 05 */ VX_INVALID, - /* 06 */ 0x0468, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ 0x047C, - /* 03 */ VX_INVALID, - /* 04 */ 0x0476, - /* 05 */ VX_INVALID, - /* 06 */ 0x046A, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ 0x0482, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ 0x046D, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ 0x0481, - /* 03 */ 0x0480, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ 0x046C, - /* 07 */ 0x046B, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x0005), - /* 01 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x0006), - /* 02 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x0007), - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x0008), - /* 01 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x0009), - /* 02 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x000A), - /* 03 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x000B), - /* 04 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x000C), - /* 05 */ NODE(VXOpcodeTreeNodeType::MODRM_RM, 0x000D), - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x0296, - /* 01 */ 0x0295, - /* 02 */ 0x02F2, - /* 03 */ 0x053C, - /* 04 */ 0x06C0, - /* 05 */ 0x06BF, - /* 06 */ VX_INVALID, - /* 07 */ 0x0055, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ 0x02F7, - /* 06 */ 0x0310, - /* 07 */ 0x0515, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ 0x0043, - /* 05 */ 0x0049, - /* 06 */ 0x0047, - /* 07 */ 0x0045, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0006), - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0015), - /* 07 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0016), - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0017), - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0018), - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ 0x04D3, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x000F, - /* 01 */ 0x0392, - /* 02 */ 0x0005, - /* 03 */ 0x04FF, - /* 04 */ 0x0028, - /* 05 */ 0x0544, - /* 06 */ 0x06BC, - /* 07 */ 0x006E, - }, - { - /* 00 */ 0x0013, - /* 01 */ 0x0391, - /* 02 */ 0x0009, - /* 03 */ 0x0500, - /* 04 */ 0x0029, - /* 05 */ 0x0543, - /* 06 */ 0x06B5, - /* 07 */ 0x0072, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0015), - /* 01 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0016), - /* 02 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0017), - /* 03 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0018), - /* 04 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0019), - /* 05 */ NODE(VXOpcodeTreeNodeType::MODE, 0x001A), - /* 06 */ NODE(VXOpcodeTreeNodeType::MODE, 0x001B), - /* 07 */ NODE(VXOpcodeTreeNodeType::MODE, 0x001C), - }, - { - /* 00 */ 0x0012, - /* 01 */ 0x0397, - /* 02 */ 0x0008, - /* 03 */ 0x04FD, - /* 04 */ 0x002B, - /* 05 */ 0x0545, - /* 06 */ 0x06B4, - /* 07 */ 0x0071, - }, - { - /* 00 */ 0x0440, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x04DE, - /* 01 */ 0x04E6, - /* 02 */ 0x04C6, - /* 03 */ 0x04D0, - /* 04 */ 0x0517, - /* 05 */ 0x0526, - /* 06 */ 0x051D, - /* 07 */ 0x04F3, - }, - { - /* 00 */ 0x04DF, - /* 01 */ 0x04E7, - /* 02 */ 0x04C7, - /* 03 */ 0x04CE, - /* 04 */ 0x051C, - /* 05 */ 0x0528, - /* 06 */ 0x051E, - /* 07 */ 0x04F6, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x068C, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ 0x066A, - /* 03 */ VX_INVALID, - /* 04 */ 0x0664, - /* 05 */ VX_INVALID, - /* 06 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x0001), - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ 0x0666, - /* 03 */ VX_INVALID, - /* 04 */ 0x0661, - /* 05 */ VX_INVALID, - /* 06 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x0002), - /* 07 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ 0x0668, - /* 03 */ 0x0667, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x0003), - /* 07 */ 0x065C, - }, - { - /* 00 */ 0x0333, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x0332, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x04DD, - /* 01 */ 0x04E5, - /* 02 */ 0x04C8, - /* 03 */ 0x04CD, - /* 04 */ 0x0522, - /* 05 */ 0x0527, - /* 06 */ 0x051F, - /* 07 */ 0x04F1, - }, - { - /* 00 */ 0x04DC, - /* 01 */ 0x04E2, - /* 02 */ 0x04C5, - /* 03 */ 0x04CF, - /* 04 */ 0x0520, - /* 05 */ 0x052A, - /* 06 */ 0x0519, - /* 07 */ 0x04F4, - }, - { - /* 00 */ 0x04E1, - /* 01 */ 0x04E3, - /* 02 */ 0x04C3, - /* 03 */ 0x04CC, - /* 04 */ 0x0521, - /* 05 */ 0x0529, - /* 06 */ 0x051A, - /* 07 */ 0x04F2, - }, - { - /* 00 */ 0x04E0, - /* 01 */ 0x04E4, - /* 02 */ 0x04C4, - /* 03 */ 0x04CB, - /* 04 */ 0x0518, - /* 05 */ 0x0525, - /* 06 */ 0x051B, - /* 07 */ 0x04F5, - }, - { - /* 00 */ 0x00BB, - /* 01 */ 0x01CF, - /* 02 */ 0x0119, - /* 03 */ 0x013D, - /* 04 */ 0x022C, - /* 05 */ 0x0245, - /* 06 */ 0x0166, - /* 07 */ 0x0171, - }, - { - /* 00 */ 0x01BC, - /* 01 */ VX_INVALID, - /* 02 */ 0x01FF, - /* 03 */ 0x020B, - /* 04 */ 0x01C3, - /* 05 */ 0x01C2, - /* 06 */ 0x01EB, - /* 07 */ 0x01EA, - }, - { - /* 00 */ 0x019A, - /* 01 */ 0x01A8, - /* 02 */ 0x019C, - /* 03 */ 0x019F, - /* 04 */ 0x01B3, - /* 05 */ 0x01B5, - /* 06 */ 0x01A1, - /* 07 */ 0x01A3, - }, - { - /* 00 */ 0x01A4, - /* 01 */ 0x01B1, - /* 02 */ 0x01AB, - /* 03 */ 0x01AD, - /* 04 */ VX_INVALID, - /* 05 */ 0x01BA, - /* 06 */ VX_INVALID, - /* 07 */ 0x020A, - }, - { - /* 00 */ 0x00BA, - /* 01 */ 0x01D2, - /* 02 */ 0x0118, - /* 03 */ 0x013E, - /* 04 */ 0x022B, - /* 05 */ 0x0243, - /* 06 */ 0x0158, - /* 07 */ 0x017A, - }, - { - /* 00 */ 0x01BB, - /* 01 */ 0x01AF, - /* 02 */ 0x01FE, - /* 03 */ 0x0209, - /* 04 */ 0x01F3, - /* 05 */ VX_INVALID, - /* 06 */ 0x01E8, - /* 07 */ 0x01ED, - }, - { - /* 00 */ 0x019B, - /* 01 */ 0x01A7, - /* 02 */ 0x019D, - /* 03 */ 0x019E, - /* 04 */ 0x01B2, - /* 05 */ 0x01B4, - /* 06 */ 0x01A0, - /* 07 */ 0x01A2, - }, - { - /* 00 */ 0x01A6, - /* 01 */ 0x01B0, - /* 02 */ 0x01AA, - /* 03 */ 0x01AE, - /* 04 */ 0x00D2, - /* 05 */ 0x01A5, - /* 06 */ 0x00D3, - /* 07 */ 0x01AC, - }, - { - /* 00 */ 0x0557, - /* 01 */ 0x0558, - /* 02 */ 0x038E, - /* 03 */ 0x0385, - /* 04 */ 0x037E, - /* 05 */ 0x02A5, - /* 06 */ 0x00AC, - /* 07 */ 0x02A0, - }, - { - /* 00 */ 0x0559, - /* 01 */ 0x055A, - /* 02 */ 0x038D, - /* 03 */ 0x0384, - /* 04 */ 0x037D, - /* 05 */ 0x02A3, - /* 06 */ 0x00AB, - /* 07 */ 0x02A1, - }, - { - /* 00 */ 0x02AF, - /* 01 */ 0x00A4, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x02B0, - /* 01 */ 0x00A5, - /* 02 */ NODE(VXOpcodeTreeNodeType::MODE, 0x002C), - /* 03 */ 0x004C, - /* 04 */ 0x02D9, - /* 05 */ 0x02DA, - /* 06 */ 0x04B8, - /* 07 */ VX_INVALID, - }, -}; - -const VXOpcodeTreeNode optreeModrmRm[][8] = -{ - { - /* 00 */ VX_INVALID, - /* 01 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0000), - /* 02 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0001), - /* 03 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0002), - /* 04 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0003), - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x0315, - /* 01 */ 0x0383, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x06B1, - /* 01 */ 0x06C1, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0004), - /* 01 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0005), - /* 02 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0006), - /* 03 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0007), - /* 04 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0008), - /* 05 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0009), - /* 06 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x000A), - /* 07 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x000B), - }, - { - /* 00 */ 0x0550, - /* 01 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x000C), - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x0316, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x06C2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x06C3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x06C4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x06AF, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x06AC, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x06AE, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x06AD, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, - { - /* 00 */ 0x06B0, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - }, -}; - -const VXOpcodeTreeNode optreeMandatory[][4] = -{ - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0000), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0001), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0002), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02F0, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0307, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0551, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0058, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0556, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02BD, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x069E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0561, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0454, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0189, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0379, - /* 01 */ 0x0368, - /* 02 */ 0x0371, - /* 03 */ 0x0377, - }, - { - /* 00 */ 0x0378, - /* 01 */ 0x036A, - /* 02 */ 0x0370, - /* 03 */ 0x0376, - }, - { - /* 00 */ 0x0355, - /* 01 */ 0x0345, - /* 02 */ 0x036D, - /* 03 */ 0x0353, - }, - { - /* 00 */ 0x034C, - /* 01 */ 0x0346, - /* 02 */ 0x036E, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0354, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0352, - }, - { - /* 00 */ 0x0565, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0564, - }, - { - /* 00 */ 0x0563, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0562, - }, - { - /* 00 */ 0x0350, - /* 01 */ VX_INVALID, - /* 02 */ 0x036B, - /* 03 */ 0x034E, - }, - { - /* 00 */ 0x0351, - /* 01 */ VX_INVALID, - /* 02 */ 0x036C, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x034F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x034D, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0003), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x038A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x038B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x038C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0389, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0386, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0387, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0388, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0325, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0328, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0327, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0326, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x033A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0338, - }, - { - /* 00 */ 0x0339, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0337, - }, - { - /* 00 */ 0x008D, - /* 01 */ 0x0093, - /* 02 */ 0x0094, - /* 03 */ 0x008C, - }, - { - /* 00 */ 0x035C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x035B, - }, - { - /* 00 */ 0x009A, - /* 01 */ 0x009B, - /* 02 */ 0x009C, - /* 03 */ 0x0098, - }, - { - /* 00 */ 0x0090, - /* 01 */ 0x0091, - /* 02 */ 0x0096, - /* 03 */ 0x008A, - }, - { - /* 00 */ 0x0560, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x055F, - }, - { - /* 00 */ 0x0082, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0081, - }, - { - /* 00 */ 0x069F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x04D4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x04D1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x04D2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0003), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0004), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x029A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x045B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x045C, - }, - { - /* 00 */ 0x03FD, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03FE, - }, - { - /* 00 */ 0x03FA, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03F9, - }, - { - /* 00 */ 0x03FB, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03FC, - }, - { - /* 00 */ 0x040E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x040F, - }, - { - /* 00 */ 0x0405, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0404, - }, - { - /* 00 */ 0x0400, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0401, - }, - { - /* 00 */ 0x0402, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0403, - }, - { - /* 00 */ 0x0461, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0462, - }, - { - /* 00 */ 0x0466, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0465, - }, - { - /* 00 */ 0x0464, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0463, - }, - { - /* 00 */ 0x0431, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0432, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03CA, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0037, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0036, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x049A, - }, - { - /* 00 */ 0x03A3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03A2, - }, - { - /* 00 */ 0x03A6, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03A7, - }, - { - /* 00 */ 0x03A4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03A5, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0426, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0424, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0425, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0428, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0429, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0427, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0430, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03D1, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0359, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03AC, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x042C, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x042A, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x042B, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x042E, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x042F, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x042D, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03DA, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x041A, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x041B, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0421, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0420, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0412, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0413, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0419, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0418, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0438, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03FF, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0005), - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0006), - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0023, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0021, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0022, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x001F, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0020, - }, - { - /* 00 */ 0x033B, - /* 01 */ 0x0086, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x033C, - /* 01 */ 0x0085, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x04E9, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x04E8, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x04EB, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x04EA, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0035, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0034, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03CB, - }, - { - /* 00 */ 0x03BF, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03C0, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03DF, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03E3, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0000), - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x00B5, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0408, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x02B7, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0001), - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x00B2, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x00B1, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x037C, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03CC, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03D5, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03D4, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03DE, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03DD, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0024, - }, - { - /* 00 */ 0x0067, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0064, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x005C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x005B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x005E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0063, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x005D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x005A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0069, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0066, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0068, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0065, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0061, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0060, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0062, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x005F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0357, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0356, - }, - { - /* 00 */ 0x0535, - /* 01 */ 0x0536, - /* 02 */ 0x0537, - /* 03 */ 0x0534, - }, - { - /* 00 */ 0x04ED, - /* 01 */ VX_INVALID, - /* 02 */ 0x04EE, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x04C9, - /* 01 */ VX_INVALID, - /* 02 */ 0x04CA, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0032, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0031, - }, - { - /* 00 */ 0x0030, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x002F, - }, - { - /* 00 */ 0x039A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0399, - }, - { - /* 00 */ 0x06BE, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x06BD, - }, - { - /* 00 */ 0x001A, - /* 01 */ 0x001B, - /* 02 */ 0x001C, - /* 03 */ 0x0019, - }, - { - /* 00 */ 0x0380, - /* 01 */ 0x0381, - /* 02 */ 0x0382, - /* 03 */ 0x037F, - }, - { - /* 00 */ 0x008F, - /* 01 */ 0x0092, - /* 02 */ 0x0095, - /* 03 */ 0x008B, - }, - { - /* 00 */ 0x0088, - /* 01 */ VX_INVALID, - /* 02 */ 0x0099, - /* 03 */ 0x008E, - }, - { - /* 00 */ 0x054D, - /* 01 */ 0x054E, - /* 02 */ 0x054F, - /* 03 */ 0x054C, - }, - { - /* 00 */ 0x0312, - /* 01 */ 0x0313, - /* 02 */ 0x0314, - /* 03 */ 0x0311, - }, - { - /* 00 */ 0x00AE, - /* 01 */ 0x00AF, - /* 02 */ 0x00B0, - /* 03 */ 0x00AD, - }, - { - /* 00 */ 0x030D, - /* 01 */ 0x030E, - /* 02 */ 0x030F, - /* 03 */ 0x030C, - }, - { - /* 00 */ 0x04A2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x04A3, - }, - { - /* 00 */ 0x04A7, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x04A8, - }, - { - /* 00 */ 0x04A5, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x04A4, - }, - { - /* 00 */ 0x03AA, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03AB, - }, - { - /* 00 */ 0x03D7, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03D6, - }, - { - /* 00 */ 0x03DC, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03DB, - }, - { - /* 00 */ 0x03D8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03D9, - }, - { - /* 00 */ 0x03AD, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03AE, - }, - { - /* 00 */ 0x049B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x049C, - }, - { - /* 00 */ 0x04A1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x04A0, - }, - { - /* 00 */ 0x049E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x049D, - }, - { - /* 00 */ 0x03A8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03A9, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x04A6, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x049F, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0002), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0003), - }, - { - /* 00 */ 0x0363, - /* 01 */ VX_INVALID, - /* 02 */ 0x034A, - /* 03 */ 0x0348, - }, - { - /* 00 */ 0x0460, - /* 01 */ 0x045F, - /* 02 */ 0x045E, - /* 03 */ 0x045D, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0004), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0005), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0006), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0007), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0008), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0009), - }, - { - /* 00 */ 0x03CD, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03CE, - }, - { - /* 00 */ 0x03D2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03D3, - }, - { - /* 00 */ 0x03D0, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03CF, - }, - { - /* 00 */ 0x00B3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0013), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0014), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x029C, - /* 02 */ VX_INVALID, - /* 03 */ 0x029B, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x029F, - /* 02 */ VX_INVALID, - /* 03 */ 0x029E, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0004), - /* 01 */ VX_INVALID, - /* 02 */ 0x035F, - /* 03 */ NODE(VXOpcodeTreeNodeType::OPERAND_SIZE, 0x0005), - }, - { - /* 00 */ 0x0362, - /* 01 */ VX_INVALID, - /* 02 */ 0x034B, - /* 03 */ 0x0349, - }, - { - /* 00 */ 0x02E9, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02E3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02C9, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02DF, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02CF, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02E0, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02CC, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02C8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02EE, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02E7, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02EA, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02E4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02D6, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02D4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02D7, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02D2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0512, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x050F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0507, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0506, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0509, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x050E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0508, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0505, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0514, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0511, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0513, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0510, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x050C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x050B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x050D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x050A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x04B5, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x044A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0083, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0044, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0524, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0523, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x000A), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x000B), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x04B6, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0444, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x04EC, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x004A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x052C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x052B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x000C), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x000D), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02A2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x007C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x007D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0308, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0048, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02F8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x02FA, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x037B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x037A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ 0x044D, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x000E), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0046, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0039, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x003A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0373, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0374, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x06A1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x06A0, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0075, - /* 01 */ 0x0077, - /* 02 */ 0x007A, - /* 03 */ 0x0074, - }, - { - /* 00 */ 0x035A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x040D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x040C, - }, - { - /* 00 */ 0x03E4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03E5, - }, - { - /* 00 */ 0x052E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x052D, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x000F), - /* 01 */ VX_INVALID, - /* 02 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0010), - /* 03 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0011), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODRM_REG, 0x0012), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x003F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x003D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0040, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x003C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x003E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x003B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0042, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0041, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x001E, - /* 02 */ VX_INVALID, - /* 03 */ 0x001D, - }, - { - /* 00 */ 0x0487, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0488, - }, - { - /* 00 */ 0x047D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x047F, - }, - { - /* 00 */ 0x0483, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0484, - }, - { - /* 00 */ 0x03B3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03B4, - }, - { - /* 00 */ 0x0439, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x043A, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x0347, - /* 02 */ 0x0366, - /* 03 */ 0x0361, - }, - { - /* 00 */ 0x0422, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0423, - }, - { - /* 00 */ 0x0494, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0493, - }, - { - /* 00 */ 0x0496, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0495, - }, - { - /* 00 */ 0x041E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x041F, - }, - { - /* 00 */ 0x03C1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03C2, - }, - { - /* 00 */ 0x03BA, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03B9, - }, - { - /* 00 */ 0x03BB, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03BC, - }, - { - /* 00 */ 0x0417, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0416, - }, - { - /* 00 */ 0x03C3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03C4, - }, - { - /* 00 */ 0x03C5, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03C6, - }, - { - /* 00 */ 0x047A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x047B, - }, - { - /* 00 */ 0x0477, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0474, - }, - { - /* 00 */ 0x03C8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03C9, - }, - { - /* 00 */ 0x0434, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0435, - }, - { - /* 00 */ 0x0436, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0437, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x0089, - /* 02 */ 0x0087, - /* 03 */ 0x0097, - }, - { - /* 00 */ 0x035D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0358, - }, - { - /* 00 */ 0x048F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0490, - }, - { - /* 00 */ 0x0492, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0491, - }, - { - /* 00 */ 0x041C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x041D, - }, - { - /* 00 */ 0x0453, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0452, - }, - { - /* 00 */ 0x03B6, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03B5, - }, - { - /* 00 */ 0x03B8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03B7, - }, - { - /* 00 */ 0x0414, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0415, - }, - { - /* 00 */ 0x04C1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x04C2, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x02F1, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - }, - { - /* 00 */ 0x0472, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0471, - }, - { - /* 00 */ 0x0469, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0467, - }, - { - /* 00 */ 0x046E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x046F, - }, - { - /* 00 */ 0x043B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x043C, - }, - { - /* 00 */ 0x0411, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0410, - }, - { - /* 00 */ 0x045A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0459, - }, - { - /* 00 */ 0x030B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x030A, - }, - { - /* 00 */ 0x0489, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x048A, - }, - { - /* 00 */ 0x0498, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x0497, - }, - { - /* 00 */ 0x048B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x048C, - }, - { - /* 00 */ 0x048D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x048E, - }, - { - /* 00 */ 0x03AF, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03B0, - }, - { - /* 00 */ 0x03BE, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03BD, - }, - { - /* 00 */ 0x03B1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ 0x03B2, - }, -}; - -const VXOpcodeTreeNode optreeX87[][64] = -{ - { - /* 00 */ 0x00BC, - /* 01 */ 0x00BF, - /* 02 */ 0x00C2, - /* 03 */ 0x00C1, - /* 04 */ 0x00C0, - /* 05 */ 0x00C5, - /* 06 */ 0x00C3, - /* 07 */ 0x00C4, - /* 08 */ 0x01CE, - /* 09 */ 0x01CD, - /* 0A */ 0x01D9, - /* 0B */ 0x01DA, - /* 0C */ 0x01DB, - /* 0D */ 0x01D6, - /* 0E */ 0x01D7, - /* 0F */ 0x01D8, - /* 10 */ 0x011A, - /* 11 */ 0x011C, - /* 12 */ 0x011B, - /* 13 */ 0x0117, - /* 14 */ 0x0116, - /* 15 */ 0x011D, - /* 16 */ 0x011F, - /* 17 */ 0x011E, - /* 18 */ 0x013A, - /* 19 */ 0x0141, - /* 1A */ 0x013C, - /* 1B */ 0x0138, - /* 1C */ 0x013B, - /* 1D */ 0x0140, - /* 1E */ 0x013F, - /* 1F */ 0x0139, - /* 20 */ 0x022E, - /* 21 */ 0x0226, - /* 22 */ 0x0229, - /* 23 */ 0x0232, - /* 24 */ 0x0231, - /* 25 */ 0x022D, - /* 26 */ 0x022A, - /* 27 */ 0x0227, - /* 28 */ 0x0246, - /* 29 */ 0x024B, - /* 2A */ 0x024C, - /* 2B */ 0x024A, - /* 2C */ 0x0248, - /* 2D */ 0x0249, - /* 2E */ 0x0250, - /* 2F */ 0x0251, - /* 30 */ 0x0161, - /* 31 */ 0x0162, - /* 32 */ 0x0155, - /* 33 */ 0x015A, - /* 34 */ 0x0159, - /* 35 */ 0x0156, - /* 36 */ 0x0157, - /* 37 */ 0x0163, - /* 38 */ 0x0172, - /* 39 */ 0x016F, - /* 3A */ 0x0170, - /* 3B */ 0x0173, - /* 3C */ 0x0176, - /* 3D */ 0x0177, - /* 3E */ 0x0174, - /* 3F */ 0x0175, - }, - { - /* 00 */ 0x01BD, - /* 01 */ 0x01C0, - /* 02 */ 0x01BF, - /* 03 */ 0x01BE, - /* 04 */ 0x01B7, - /* 05 */ 0x01B6, - /* 06 */ 0x01B9, - /* 07 */ 0x01B8, - /* 08 */ 0x0281, - /* 09 */ 0x0282, - /* 0A */ 0x0283, - /* 0B */ 0x0280, - /* 0C */ 0x027D, - /* 0D */ 0x027E, - /* 0E */ 0x027F, - /* 0F */ 0x0284, - /* 10 */ 0x01E7, - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ VX_INVALID, - /* 15 */ VX_INVALID, - /* 16 */ VX_INVALID, - /* 17 */ VX_INVALID, - /* 18 */ 0x0213, - /* 19 */ 0x0212, - /* 1A */ 0x0215, - /* 1B */ 0x0214, - /* 1C */ 0x020F, - /* 1D */ 0x020E, - /* 1E */ 0x0211, - /* 1F */ 0x0210, - /* 20 */ 0x00D4, - /* 21 */ 0x00B7, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ 0x025A, - /* 25 */ 0x027C, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ 0x01C1, - /* 29 */ 0x01C5, - /* 2A */ 0x01C4, - /* 2B */ 0x01C8, - /* 2C */ 0x01C6, - /* 2D */ 0x01C7, - /* 2E */ 0x01C9, - /* 2F */ VX_INVALID, - /* 30 */ 0x00B6, - /* 31 */ 0x0298, - /* 32 */ 0x01F1, - /* 33 */ 0x01EE, - /* 34 */ 0x0297, - /* 35 */ 0x01F0, - /* 36 */ 0x0154, - /* 37 */ 0x01A9, - /* 38 */ 0x01EF, - /* 39 */ 0x0299, - /* 3A */ 0x01F8, - /* 3B */ 0x01F7, - /* 3C */ 0x01F2, - /* 3D */ 0x01F5, - /* 3E */ 0x01F6, - /* 3F */ 0x0153, - }, - { - /* 00 */ 0x00D9, - /* 01 */ 0x00DA, - /* 02 */ 0x00DB, - /* 03 */ 0x00D6, - /* 04 */ 0x00D7, - /* 05 */ 0x00D8, - /* 06 */ 0x00DD, - /* 07 */ 0x00DC, - /* 08 */ 0x00E6, - /* 09 */ 0x00E7, - /* 0A */ 0x00E8, - /* 0B */ 0x00EC, - /* 0C */ 0x00ED, - /* 0D */ 0x00EB, - /* 0E */ 0x00E9, - /* 0F */ 0x00EA, - /* 10 */ 0x00E4, - /* 11 */ 0x00E5, - /* 12 */ 0x00E2, - /* 13 */ 0x00E3, - /* 14 */ 0x00DF, - /* 15 */ 0x00DE, - /* 16 */ 0x00E0, - /* 17 */ 0x00E1, - /* 18 */ 0x0113, - /* 19 */ 0x0114, - /* 1A */ 0x0115, - /* 1B */ 0x010F, - /* 1C */ 0x010E, - /* 1D */ 0x0110, - /* 1E */ 0x0111, - /* 1F */ 0x0112, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ 0x027B, - /* 2A */ VX_INVALID, - /* 2B */ VX_INVALID, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - }, - { - /* 00 */ 0x00F0, - /* 01 */ 0x00F1, - /* 02 */ 0x00EE, - /* 03 */ 0x00EF, - /* 04 */ 0x00F4, - /* 05 */ 0x00F5, - /* 06 */ 0x00F2, - /* 07 */ 0x00F3, - /* 08 */ 0x0103, - /* 09 */ 0x0102, - /* 0A */ 0x0105, - /* 0B */ 0x0104, - /* 0C */ 0x00FF, - /* 0D */ 0x00FE, - /* 0E */ 0x0101, - /* 0F */ 0x0100, - /* 10 */ 0x00F8, - /* 11 */ 0x00F9, - /* 12 */ 0x00F6, - /* 13 */ 0x00F7, - /* 14 */ 0x00FC, - /* 15 */ 0x00FD, - /* 16 */ 0x00FA, - /* 17 */ 0x00FB, - /* 18 */ 0x010B, - /* 19 */ 0x010A, - /* 1A */ 0x010D, - /* 1B */ 0x010C, - /* 1C */ 0x0107, - /* 1D */ 0x0106, - /* 1E */ 0x0109, - /* 1F */ 0x0108, - /* 20 */ 0x01E5, - /* 21 */ 0x01E4, - /* 22 */ 0x00D5, - /* 23 */ 0x01E6, - /* 24 */ 0x01E9, - /* 25 */ 0x01F4, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ 0x0269, - /* 29 */ 0x026A, - /* 2A */ 0x0265, - /* 2B */ 0x0264, - /* 2C */ 0x0263, - /* 2D */ 0x0268, - /* 2E */ 0x0267, - /* 2F */ 0x0266, - /* 30 */ 0x0129, - /* 31 */ 0x0128, - /* 32 */ 0x012B, - /* 33 */ 0x012A, - /* 34 */ 0x012F, - /* 35 */ 0x012E, - /* 36 */ 0x012D, - /* 37 */ 0x012C, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - }, - { - /* 00 */ 0x00B9, - /* 01 */ 0x00B8, - /* 02 */ 0x00C6, - /* 03 */ 0x00C9, - /* 04 */ 0x00C8, - /* 05 */ 0x00C7, - /* 06 */ 0x00BE, - /* 07 */ 0x00BD, - /* 08 */ 0x01D1, - /* 09 */ 0x01D0, - /* 0A */ 0x01D5, - /* 0B */ 0x01D4, - /* 0C */ 0x01D3, - /* 0D */ 0x01CC, - /* 0E */ 0x01CB, - /* 0F */ 0x01CA, - /* 10 */ 0x0125, - /* 11 */ 0x0124, - /* 12 */ 0x0127, - /* 13 */ 0x0126, - /* 14 */ 0x0121, - /* 15 */ 0x0120, - /* 16 */ 0x0123, - /* 17 */ 0x0122, - /* 18 */ 0x0148, - /* 19 */ 0x0142, - /* 1A */ 0x0145, - /* 1B */ 0x0144, - /* 1C */ 0x0143, - /* 1D */ 0x0147, - /* 1E */ 0x0146, - /* 1F */ 0x0149, - /* 20 */ 0x024F, - /* 21 */ 0x0247, - /* 22 */ 0x0241, - /* 23 */ 0x0242, - /* 24 */ 0x0240, - /* 25 */ 0x024E, - /* 26 */ 0x024D, - /* 27 */ 0x0244, - /* 28 */ 0x0228, - /* 29 */ 0x0235, - /* 2A */ 0x0234, - /* 2B */ 0x0237, - /* 2C */ 0x0236, - /* 2D */ 0x0233, - /* 2E */ 0x0230, - /* 2F */ 0x022F, - /* 30 */ 0x017B, - /* 31 */ 0x0178, - /* 32 */ 0x0179, - /* 33 */ 0x017C, - /* 34 */ 0x017F, - /* 35 */ 0x0180, - /* 36 */ 0x017D, - /* 37 */ 0x017E, - /* 38 */ 0x015E, - /* 39 */ 0x015F, - /* 3A */ 0x0160, - /* 3B */ 0x015B, - /* 3C */ 0x015C, - /* 3D */ 0x015D, - /* 3E */ 0x0164, - /* 3F */ 0x0165, - }, - { - /* 00 */ 0x018F, - /* 01 */ 0x018E, - /* 02 */ 0x0191, - /* 03 */ 0x0190, - /* 04 */ 0x018B, - /* 05 */ 0x018A, - /* 06 */ 0x018D, - /* 07 */ 0x018C, - /* 08 */ 0x028A, - /* 09 */ 0x0289, - /* 0A */ 0x028C, - /* 0B */ 0x028B, - /* 0C */ 0x0286, - /* 0D */ 0x0285, - /* 0E */ 0x0288, - /* 0F */ 0x0287, - /* 10 */ 0x0200, - /* 11 */ 0x0202, - /* 12 */ 0x0201, - /* 13 */ 0x01FA, - /* 14 */ 0x01F9, - /* 15 */ 0x01FB, - /* 16 */ 0x01FD, - /* 17 */ 0x01FC, - /* 18 */ 0x020D, - /* 19 */ 0x020C, - /* 1A */ 0x0208, - /* 1B */ 0x0204, - /* 1C */ 0x0203, - /* 1D */ 0x0205, - /* 1E */ 0x0207, - /* 1F */ 0x0206, - /* 20 */ 0x025D, - /* 21 */ 0x025C, - /* 22 */ 0x025B, - /* 23 */ 0x025E, - /* 24 */ 0x0261, - /* 25 */ 0x0262, - /* 26 */ 0x025F, - /* 27 */ 0x0260, - /* 28 */ 0x0278, - /* 29 */ 0x0277, - /* 2A */ 0x027A, - /* 2B */ 0x0279, - /* 2C */ 0x0274, - /* 2D */ 0x0273, - /* 2E */ 0x0276, - /* 2F */ 0x0275, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - }, - { - /* 00 */ 0x00CC, - /* 01 */ 0x00CD, - /* 02 */ 0x00CA, - /* 03 */ 0x00CB, - /* 04 */ 0x00D0, - /* 05 */ 0x00D1, - /* 06 */ 0x00CE, - /* 07 */ 0x00CF, - /* 08 */ 0x01E1, - /* 09 */ 0x01E0, - /* 0A */ 0x01E3, - /* 0B */ 0x01E2, - /* 0C */ 0x01DD, - /* 0D */ 0x01DC, - /* 0E */ 0x01DF, - /* 0F */ 0x01DE, - /* 10 */ 0x014F, - /* 11 */ 0x014E, - /* 12 */ 0x0151, - /* 13 */ 0x0150, - /* 14 */ 0x014B, - /* 15 */ 0x014A, - /* 16 */ 0x014D, - /* 17 */ 0x014C, - /* 18 */ VX_INVALID, - /* 19 */ 0x0152, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ 0x0258, - /* 21 */ 0x0259, - /* 22 */ 0x0256, - /* 23 */ 0x0257, - /* 24 */ 0x0253, - /* 25 */ 0x0252, - /* 26 */ 0x0255, - /* 27 */ 0x0254, - /* 28 */ 0x023B, - /* 29 */ 0x023D, - /* 2A */ 0x023C, - /* 2B */ 0x0239, - /* 2C */ 0x0238, - /* 2D */ 0x023A, - /* 2E */ 0x023E, - /* 2F */ 0x023F, - /* 30 */ 0x0186, - /* 31 */ 0x0185, - /* 32 */ 0x0188, - /* 33 */ 0x0187, - /* 34 */ 0x0182, - /* 35 */ 0x0181, - /* 36 */ 0x0184, - /* 37 */ 0x0183, - /* 38 */ 0x016C, - /* 39 */ 0x016B, - /* 3A */ 0x016E, - /* 3B */ 0x016D, - /* 3C */ 0x0168, - /* 3D */ 0x0167, - /* 3E */ 0x016A, - /* 3F */ 0x0169, - }, - { - /* 00 */ 0x0199, - /* 01 */ 0x0196, - /* 02 */ 0x0197, - /* 03 */ 0x0198, - /* 04 */ 0x0193, - /* 05 */ 0x0192, - /* 06 */ 0x0195, - /* 07 */ 0x0194, - /* 08 */ 0x028F, - /* 09 */ 0x0290, - /* 0A */ 0x028D, - /* 0B */ 0x028E, - /* 0C */ 0x0293, - /* 0D */ 0x0294, - /* 0E */ 0x0291, - /* 0F */ 0x0292, - /* 10 */ 0x021B, - /* 11 */ 0x021A, - /* 12 */ 0x021D, - /* 13 */ 0x021C, - /* 14 */ 0x0217, - /* 15 */ 0x0216, - /* 16 */ 0x0219, - /* 17 */ 0x0218, - /* 18 */ 0x0220, - /* 19 */ 0x0221, - /* 1A */ 0x021E, - /* 1B */ 0x021F, - /* 1C */ 0x0224, - /* 1D */ 0x0225, - /* 1E */ 0x0222, - /* 1F */ 0x0223, - /* 20 */ 0x01EC, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ 0x0271, - /* 29 */ 0x0272, - /* 2A */ 0x026D, - /* 2B */ 0x026C, - /* 2C */ 0x026B, - /* 2D */ 0x0270, - /* 2E */ 0x026F, - /* 2F */ 0x026E, - /* 30 */ 0x0136, - /* 31 */ 0x0137, - /* 32 */ 0x0133, - /* 33 */ 0x0134, - /* 34 */ 0x0135, - /* 35 */ 0x0130, - /* 36 */ 0x0131, - /* 37 */ 0x0132, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - }, -}; - -const VXOpcodeTreeNode optreeAddressSize[][3] = -{ - { - /* 00 */ 0x02CD, - /* 01 */ 0x02D0, - /* 02 */ 0x02EC, - }, -}; - -const VXOpcodeTreeNode optreeOperandSize[][3] = -{ - { - /* 00 */ 0x03E0, - /* 01 */ 0x03E1, - /* 02 */ 0x03E2, - }, - { - /* 00 */ 0x0409, - /* 01 */ 0x040A, - /* 02 */ 0x040B, - }, - { - /* 00 */ 0x033D, - /* 01 */ 0x0343, - /* 02 */ 0x035E, - }, - { - /* 00 */ 0x0341, - /* 01 */ 0x0342, - /* 02 */ 0x0364, - }, - { - /* 00 */ 0x0344, - /* 01 */ 0x033E, - /* 02 */ 0x0365, - }, - { - /* 00 */ 0x0340, - /* 01 */ 0x033F, - /* 02 */ 0x0360, - }, - { - /* 00 */ 0x007F, - /* 01 */ 0x0080, - /* 02 */ 0x007E, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODE, 0x000F), - /* 01 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0010), - /* 02 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0011), - /* 01 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0012), - /* 02 */ VX_INVALID, - }, - { - /* 00 */ 0x02B8, - /* 01 */ 0x02B6, - /* 02 */ VX_INVALID, - }, - { - /* 00 */ 0x03A1, - /* 01 */ 0x03A0, - /* 02 */ VX_INVALID, - }, - { - /* 00 */ 0x0050, - /* 01 */ 0x009E, - /* 02 */ 0x0052, - }, - { - /* 00 */ 0x009D, - /* 01 */ 0x0051, - /* 02 */ 0x0084, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODE, 0x001E), - /* 01 */ NODE(VXOpcodeTreeNodeType::MODE, 0x001F), - /* 02 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0020), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0021), - /* 01 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0022), - /* 02 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0023), - }, - { - /* 00 */ 0x0372, - /* 01 */ 0x0369, - /* 02 */ 0x036F, - }, - { - /* 00 */ 0x007B, - /* 01 */ 0x0078, - /* 02 */ 0x0079, - }, - { - /* 00 */ 0x0540, - /* 01 */ 0x053E, - /* 02 */ 0x053F, - }, - { - /* 00 */ 0x0303, - /* 01 */ 0x0301, - /* 02 */ 0x0302, - }, - { - /* 00 */ 0x0504, - /* 01 */ 0x0502, - /* 02 */ 0x0503, - }, - { - /* 00 */ 0x05BB, - /* 01 */ 0x05BA, - /* 02 */ 0x05D5, - }, - { - /* 00 */ 0x05B9, - /* 01 */ 0x05BC, - /* 02 */ 0x05D6, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x000E), - /* 01 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x000F), - /* 02 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0010), - }, - { - /* 00 */ 0x02C6, - /* 01 */ 0x02C4, - /* 02 */ 0x02C5, - }, -}; - -const VXOpcodeTreeNode optreeMode[][2] = -{ - { - /* 00 */ 0x04AA, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0445, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x04AD, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0553, - /* 01 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x000D), - }, - { - /* 00 */ 0x0555, - /* 01 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x000E), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x000F), - /* 01 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0010), - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0011), - /* 01 */ NODE(VXOpcodeTreeNodeType::VENDOR, 0x0012), - }, - { - /* 00 */ 0x04AC, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0446, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x04A9, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0443, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x009F, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x00A0, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0001, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0004, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x04BA, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x04BB, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x044B, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x044C, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0038, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0033, - /* 01 */ 0x0375, - }, - { - /* 00 */ 0x0011, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0398, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0007, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x04FC, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x002A, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0546, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x06B3, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0073, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x004F, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x04C0, - /* 01 */ 0x04BF, - }, - { - /* 00 */ 0x04BC, - /* 01 */ 0x04BE, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x04BD, - }, - { - /* 00 */ 0x0451, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x044E, - /* 01 */ 0x0450, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x044F, - }, - { - /* 00 */ 0x02F6, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0014), - /* 01 */ NODE(VXOpcodeTreeNodeType::VEXW, 0x0015), - }, - { - /* 00 */ 0x02F3, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x02BC, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0003, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0002, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x04F0, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x02DC, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x004D, - /* 01 */ 0x004B, - }, -}; - -const VXOpcodeTreeNode optreeVendor[][2] = -{ - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05AC, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05B2, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05EB, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05F3, - }, - { - /* 00 */ 0x05EC, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x05B4, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x05B3, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x05ED, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x053A, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0056, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0530, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x02C1, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x04D5, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x0552, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x0554, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x02BE, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x02BF, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x02C3, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x02C2, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05EA, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05F2, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05E8, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05E9, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05F4, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05AD, - }, -}; - -const VXOpcodeTreeNode optree3dnow[][256] = -{ - { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_INVALID, - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ 0x0407, - /* 0D */ 0x0406, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - /* 10 */ VX_INVALID, - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ VX_INVALID, - /* 15 */ VX_INVALID, - /* 16 */ VX_INVALID, - /* 17 */ VX_INVALID, - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ 0x03E7, - /* 1D */ 0x03E6, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ VX_INVALID, - /* 2A */ VX_INVALID, - /* 2B */ VX_INVALID, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_INVALID, - /* 41 */ VX_INVALID, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ VX_INVALID, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ VX_INVALID, - /* 59 */ VX_INVALID, - /* 5A */ VX_INVALID, - /* 5B */ VX_INVALID, - /* 5C */ VX_INVALID, - /* 5D */ VX_INVALID, - /* 5E */ VX_INVALID, - /* 5F */ VX_INVALID, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ 0x03F0, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ 0x03F1, - /* 8F */ VX_INVALID, - /* 90 */ 0x03EB, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ 0x03EE, - /* 95 */ VX_INVALID, - /* 96 */ 0x03F2, - /* 97 */ 0x03F6, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ 0x03F7, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ 0x03E9, - /* 9F */ VX_INVALID, - /* A0 */ 0x03EC, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ 0x03ED, - /* A5 */ VX_INVALID, - /* A6 */ 0x03F3, - /* A7 */ 0x03F5, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ 0x03F8, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ 0x03E8, - /* AF */ VX_INVALID, - /* B0 */ 0x03EA, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ 0x03EF, - /* B5 */ VX_INVALID, - /* B6 */ 0x03F4, - /* B7 */ 0x0433, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ 0x0499, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ 0x03C7, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ VX_INVALID, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ VX_INVALID, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, - }, -}; - -const VXOpcodeTreeNode optreeVex[][16] = -{ - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0024), - /* 01 */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0004), - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0005), - /* 06 */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0006), - /* 07 */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0007), - /* 08 */ VX_INVALID, - /* 09 */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0008), - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0009), - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::MODE, 0x0026), - /* 01 */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0004), - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0005), - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0008), - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ NODE(VXOpcodeTreeNodeType::TABLE, 0x0009), - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - }, -}; - -const VXOpcodeTreeNode optreeVexW[][2] = -{ - { - /* 00 */ 0x061D, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x061C, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0692, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0691, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x057B, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x0008), - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x05A6, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x05A5, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x05A7, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x05A4, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x061E, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x061B, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x0009), - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x061F, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0620, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0621, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x0622, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x000A), - /* 01 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x000B), - /* 01 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x000C), - /* 01 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x000D), - /* 01 */ VX_INVALID, - }, - { - /* 00 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x000E), - /* 01 */ NODE(VXOpcodeTreeNodeType::VEXL, 0x000F), - }, - { - /* 00 */ 0x0579, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x0578, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x060B, - /* 01 */ VX_INVALID, - }, -}; - -const VXOpcodeTreeNode optreeVexL[][2] = -{ - { - /* 00 */ 0x069C, - /* 01 */ 0x069B, - }, - { - /* 00 */ 0x0660, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x065A, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x065E, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x063F, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x065F, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x065B, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x065D, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x057A, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x061A, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x05A0, - }, - { - /* 00 */ VX_INVALID, - /* 01 */ 0x059A, - }, - { - /* 00 */ 0x062C, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x062E, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x062D, - /* 01 */ VX_INVALID, - }, - { - /* 00 */ 0x062F, - /* 01 */ VX_INVALID, - }, -}; - -#undef VX_INVALID -#undef NODE - -#define OPI_NONE { VXDefinedOperandType::NONE, VXDefinedOperandSize::NA } -#define OPI_AL { VXDefinedOperandType::AL, VXDefinedOperandSize::B } -#define OPI_AX { VXDefinedOperandType::AX, VXDefinedOperandSize::W } -#define OPI_Av { VXDefinedOperandType::A, VXDefinedOperandSize::V } -#define OPI_C { VXDefinedOperandType::C, VXDefinedOperandSize::NA } -#define OPI_CL { VXDefinedOperandType::CL, VXDefinedOperandSize::B } -#define OPI_CS { VXDefinedOperandType::CS, VXDefinedOperandSize::NA } -#define OPI_CX { VXDefinedOperandType::CX, VXDefinedOperandSize::W } -#define OPI_D { VXDefinedOperandType::D, VXDefinedOperandSize::NA } -#define OPI_DL { VXDefinedOperandType::DL, VXDefinedOperandSize::B } -#define OPI_DS { VXDefinedOperandType::DS, VXDefinedOperandSize::NA } -#define OPI_DX { VXDefinedOperandType::DX, VXDefinedOperandSize::W } -#define OPI_E { VXDefinedOperandType::E, VXDefinedOperandSize::NA } -#define OPI_ES { VXDefinedOperandType::ES, VXDefinedOperandSize::NA } -#define OPI_Eb { VXDefinedOperandType::E, VXDefinedOperandSize::B } -#define OPI_Ed { VXDefinedOperandType::E, VXDefinedOperandSize::D } -#define OPI_Eq { VXDefinedOperandType::E, VXDefinedOperandSize::Q } -#define OPI_Ev { VXDefinedOperandType::E, VXDefinedOperandSize::V } -#define OPI_Ew { VXDefinedOperandType::E, VXDefinedOperandSize::W } -#define OPI_Ey { VXDefinedOperandType::E, VXDefinedOperandSize::Y } -#define OPI_Ez { VXDefinedOperandType::E, VXDefinedOperandSize::Z } -#define OPI_FS { VXDefinedOperandType::FS, VXDefinedOperandSize::NA } -#define OPI_Fv { VXDefinedOperandType::F, VXDefinedOperandSize::V } -#define OPI_G { VXDefinedOperandType::G, VXDefinedOperandSize::NA } -#define OPI_GS { VXDefinedOperandType::GS, VXDefinedOperandSize::NA } -#define OPI_Gb { VXDefinedOperandType::G, VXDefinedOperandSize::B } -#define OPI_Gd { VXDefinedOperandType::G, VXDefinedOperandSize::D } -#define OPI_Gq { VXDefinedOperandType::G, VXDefinedOperandSize::Q } -#define OPI_Gv { VXDefinedOperandType::G, VXDefinedOperandSize::V } -#define OPI_Gw { VXDefinedOperandType::G, VXDefinedOperandSize::W } -#define OPI_Gy { VXDefinedOperandType::G, VXDefinedOperandSize::Y } -#define OPI_Gz { VXDefinedOperandType::G, VXDefinedOperandSize::Z } -#define OPI_H { VXDefinedOperandType::H, VXDefinedOperandSize::X } -#define OPI_Hqq { VXDefinedOperandType::H, VXDefinedOperandSize::QQ } -#define OPI_Hx { VXDefinedOperandType::H, VXDefinedOperandSize::X } -#define OPI_I1 { VXDefinedOperandType::I1, VXDefinedOperandSize::NA } -#define OPI_Ib { VXDefinedOperandType::I, VXDefinedOperandSize::B } -#define OPI_Iv { VXDefinedOperandType::I, VXDefinedOperandSize::V } -#define OPI_Iw { VXDefinedOperandType::I, VXDefinedOperandSize::W } -#define OPI_Iz { VXDefinedOperandType::I, VXDefinedOperandSize::Z } -#define OPI_Jb { VXDefinedOperandType::J, VXDefinedOperandSize::B } -#define OPI_Jv { VXDefinedOperandType::J, VXDefinedOperandSize::V } -#define OPI_Jz { VXDefinedOperandType::J, VXDefinedOperandSize::Z } -#define OPI_L { VXDefinedOperandType::L, VXDefinedOperandSize::O } -#define OPI_Lx { VXDefinedOperandType::L, VXDefinedOperandSize::X } -#define OPI_M { VXDefinedOperandType::M, VXDefinedOperandSize::NA } -#define OPI_Mb { VXDefinedOperandType::M, VXDefinedOperandSize::B } -#define OPI_MbRd { VXDefinedOperandType::MR, VXDefinedOperandSize::BD } -#define OPI_MbRv { VXDefinedOperandType::MR, VXDefinedOperandSize::BV } -#define OPI_Md { VXDefinedOperandType::M, VXDefinedOperandSize::D } -#define OPI_MdRy { VXDefinedOperandType::MR, VXDefinedOperandSize::DY } -#define OPI_MdU { VXDefinedOperandType::MU, VXDefinedOperandSize::DO } -#define OPI_Mdq { VXDefinedOperandType::M, VXDefinedOperandSize::DQ } -#define OPI_Mo { VXDefinedOperandType::M, VXDefinedOperandSize::O } -#define OPI_Mq { VXDefinedOperandType::M, VXDefinedOperandSize::Q } -#define OPI_MqU { VXDefinedOperandType::MU, VXDefinedOperandSize::QO } -#define OPI_Ms { VXDefinedOperandType::M, VXDefinedOperandSize::W } -#define OPI_Mt { VXDefinedOperandType::M, VXDefinedOperandSize::T } -#define OPI_Mv { VXDefinedOperandType::M, VXDefinedOperandSize::V } -#define OPI_Mw { VXDefinedOperandType::M, VXDefinedOperandSize::W } -#define OPI_MwRd { VXDefinedOperandType::MR, VXDefinedOperandSize::WD } -#define OPI_MwRv { VXDefinedOperandType::MR, VXDefinedOperandSize::WV } -#define OPI_MwRy { VXDefinedOperandType::MR, VXDefinedOperandSize::WY } -#define OPI_MwU { VXDefinedOperandType::MU, VXDefinedOperandSize::WO } -#define OPI_N { VXDefinedOperandType::N, VXDefinedOperandSize::Q } -#define OPI_Ob { VXDefinedOperandType::O, VXDefinedOperandSize::B } -#define OPI_Ov { VXDefinedOperandType::O, VXDefinedOperandSize::V } -#define OPI_Ow { VXDefinedOperandType::O, VXDefinedOperandSize::W } -#define OPI_P { VXDefinedOperandType::P, VXDefinedOperandSize::Q } -#define OPI_Q { VXDefinedOperandType::Q, VXDefinedOperandSize::Q } -#define OPI_R { VXDefinedOperandType::R, VXDefinedOperandSize::RDQ } -#define OPI_R0b { VXDefinedOperandType::R0, VXDefinedOperandSize::B } -#define OPI_R0v { VXDefinedOperandType::R0, VXDefinedOperandSize::V } -#define OPI_R0w { VXDefinedOperandType::R0, VXDefinedOperandSize::W } -#define OPI_R0y { VXDefinedOperandType::R0, VXDefinedOperandSize::Y } -#define OPI_R0z { VXDefinedOperandType::R0, VXDefinedOperandSize::Z } -#define OPI_R1b { VXDefinedOperandType::R1, VXDefinedOperandSize::B } -#define OPI_R1v { VXDefinedOperandType::R1, VXDefinedOperandSize::V } -#define OPI_R1w { VXDefinedOperandType::R1, VXDefinedOperandSize::W } -#define OPI_R1y { VXDefinedOperandType::R1, VXDefinedOperandSize::Y } -#define OPI_R1z { VXDefinedOperandType::R1, VXDefinedOperandSize::Z } -#define OPI_R2b { VXDefinedOperandType::R2, VXDefinedOperandSize::B } -#define OPI_R2v { VXDefinedOperandType::R2, VXDefinedOperandSize::V } -#define OPI_R2w { VXDefinedOperandType::R2, VXDefinedOperandSize::W } -#define OPI_R2y { VXDefinedOperandType::R2, VXDefinedOperandSize::Y } -#define OPI_R2z { VXDefinedOperandType::R2, VXDefinedOperandSize::Z } -#define OPI_R3b { VXDefinedOperandType::R3, VXDefinedOperandSize::B } -#define OPI_R3v { VXDefinedOperandType::R3, VXDefinedOperandSize::V } -#define OPI_R3w { VXDefinedOperandType::R3, VXDefinedOperandSize::W } -#define OPI_R3y { VXDefinedOperandType::R3, VXDefinedOperandSize::Y } -#define OPI_R3z { VXDefinedOperandType::R3, VXDefinedOperandSize::Z } -#define OPI_R4b { VXDefinedOperandType::R4, VXDefinedOperandSize::B } -#define OPI_R4v { VXDefinedOperandType::R4, VXDefinedOperandSize::V } -#define OPI_R4w { VXDefinedOperandType::R4, VXDefinedOperandSize::W } -#define OPI_R4y { VXDefinedOperandType::R4, VXDefinedOperandSize::Y } -#define OPI_R4z { VXDefinedOperandType::R4, VXDefinedOperandSize::Z } -#define OPI_R5b { VXDefinedOperandType::R5, VXDefinedOperandSize::B } -#define OPI_R5v { VXDefinedOperandType::R5, VXDefinedOperandSize::V } -#define OPI_R5w { VXDefinedOperandType::R5, VXDefinedOperandSize::W } -#define OPI_R5y { VXDefinedOperandType::R5, VXDefinedOperandSize::Y } -#define OPI_R5z { VXDefinedOperandType::R5, VXDefinedOperandSize::Z } -#define OPI_R6b { VXDefinedOperandType::R6, VXDefinedOperandSize::B } -#define OPI_R6v { VXDefinedOperandType::R6, VXDefinedOperandSize::V } -#define OPI_R6w { VXDefinedOperandType::R6, VXDefinedOperandSize::W } -#define OPI_R6y { VXDefinedOperandType::R6, VXDefinedOperandSize::Y } -#define OPI_R6z { VXDefinedOperandType::R6, VXDefinedOperandSize::Z } -#define OPI_R7b { VXDefinedOperandType::R7, VXDefinedOperandSize::B } -#define OPI_R7v { VXDefinedOperandType::R7, VXDefinedOperandSize::V } -#define OPI_R7w { VXDefinedOperandType::R7, VXDefinedOperandSize::W } -#define OPI_R7y { VXDefinedOperandType::R7, VXDefinedOperandSize::Y } -#define OPI_R7z { VXDefinedOperandType::R7, VXDefinedOperandSize::Z } -#define OPI_S { VXDefinedOperandType::S, VXDefinedOperandSize::W } -#define OPI_SS { VXDefinedOperandType::SS, VXDefinedOperandSize::NA } -#define OPI_ST0 { VXDefinedOperandType::ST0, VXDefinedOperandSize::NA } -#define OPI_ST1 { VXDefinedOperandType::ST1, VXDefinedOperandSize::NA } -#define OPI_ST2 { VXDefinedOperandType::ST2, VXDefinedOperandSize::NA } -#define OPI_ST3 { VXDefinedOperandType::ST3, VXDefinedOperandSize::NA } -#define OPI_ST4 { VXDefinedOperandType::ST4, VXDefinedOperandSize::NA } -#define OPI_ST5 { VXDefinedOperandType::ST5, VXDefinedOperandSize::NA } -#define OPI_ST6 { VXDefinedOperandType::ST6, VXDefinedOperandSize::NA } -#define OPI_ST7 { VXDefinedOperandType::ST7, VXDefinedOperandSize::NA } -#define OPI_U { VXDefinedOperandType::U, VXDefinedOperandSize::O } -#define OPI_Ux { VXDefinedOperandType::U, VXDefinedOperandSize::X } -#define OPI_V { VXDefinedOperandType::V, VXDefinedOperandSize::DQ } -#define OPI_Vdq { VXDefinedOperandType::V, VXDefinedOperandSize::DQ } -#define OPI_Vqq { VXDefinedOperandType::V, VXDefinedOperandSize::QQ } -#define OPI_Vsd { VXDefinedOperandType::V, VXDefinedOperandSize::Q } -#define OPI_Vx { VXDefinedOperandType::V, VXDefinedOperandSize::X } -#define OPI_W { VXDefinedOperandType::W, VXDefinedOperandSize::DQ } -#define OPI_Wdq { VXDefinedOperandType::W, VXDefinedOperandSize::DQ } -#define OPI_Wqq { VXDefinedOperandType::W, VXDefinedOperandSize::QQ } -#define OPI_Wsd { VXDefinedOperandType::W, VXDefinedOperandSize::Q } -#define OPI_Wx { VXDefinedOperandType::W, VXDefinedOperandSize::X } -#define OPI_eAX { VXDefinedOperandType::EAX, VXDefinedOperandSize::Z } -#define OPI_eCX { VXDefinedOperandType::ECX, VXDefinedOperandSize::Z } -#define OPI_eDX { VXDefinedOperandType::EDX, VXDefinedOperandSize::Z } -#define OPI_rAX { VXDefinedOperandType::RAX, VXDefinedOperandSize::V } -#define OPI_rCX { VXDefinedOperandType::RCX, VXDefinedOperandSize::V } -#define OPI_rDX { VXDefinedOperandType::RDX, VXDefinedOperandSize::V } -#define OPI_sIb { VXDefinedOperandType::sI, VXDefinedOperandSize::B } -#define OPI_sIz { VXDefinedOperandType::sI, VXDefinedOperandSize::Z } - -const VXInstructionDefinition instrDefinitions[] = -{ - /* 000 */ { VXInstructionMnemonic::INVALID, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 001 */ { VXInstructionMnemonic::AAA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 002 */ { VXInstructionMnemonic::AAD, { OPI_Ib, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 003 */ { VXInstructionMnemonic::AAM, { OPI_Ib, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 004 */ { VXInstructionMnemonic::AAS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 005 */ { VXInstructionMnemonic::ADC, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 006 */ { VXInstructionMnemonic::ADC, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, - /* 007 */ { VXInstructionMnemonic::ADC, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, - /* 008 */ { VXInstructionMnemonic::ADC, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 009 */ { VXInstructionMnemonic::ADC, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 00A */ { VXInstructionMnemonic::ADC, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 00B */ { VXInstructionMnemonic::ADC, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 00C */ { VXInstructionMnemonic::ADC, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 00D */ { VXInstructionMnemonic::ADC, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 00E */ { VXInstructionMnemonic::ADC, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 00F */ { VXInstructionMnemonic::ADD, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 010 */ { VXInstructionMnemonic::ADD, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, - /* 011 */ { VXInstructionMnemonic::ADD, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, - /* 012 */ { VXInstructionMnemonic::ADD, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 013 */ { VXInstructionMnemonic::ADD, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 014 */ { VXInstructionMnemonic::ADD, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 015 */ { VXInstructionMnemonic::ADD, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 016 */ { VXInstructionMnemonic::ADD, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 017 */ { VXInstructionMnemonic::ADD, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 018 */ { VXInstructionMnemonic::ADD, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 019 */ { VXInstructionMnemonic::ADDPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 01A */ { VXInstructionMnemonic::ADDPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 01B */ { VXInstructionMnemonic::ADDSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 01C */ { VXInstructionMnemonic::ADDSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 01D */ { VXInstructionMnemonic::ADDSUBPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 01E */ { VXInstructionMnemonic::ADDSUBPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 01F */ { VXInstructionMnemonic::AESDEC, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 020 */ { VXInstructionMnemonic::AESDECLAST, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 021 */ { VXInstructionMnemonic::AESENC, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 022 */ { VXInstructionMnemonic::AESENCLAST, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 023 */ { VXInstructionMnemonic::AESIMC, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 024 */ { VXInstructionMnemonic::AESKEYGENASSIST, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 025 */ { VXInstructionMnemonic::AND, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 026 */ { VXInstructionMnemonic::AND, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 027 */ { VXInstructionMnemonic::AND, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 028 */ { VXInstructionMnemonic::AND, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 029 */ { VXInstructionMnemonic::AND, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 02A */ { VXInstructionMnemonic::AND, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, - /* 02B */ { VXInstructionMnemonic::AND, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 02C */ { VXInstructionMnemonic::AND, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 02D */ { VXInstructionMnemonic::AND, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 02E */ { VXInstructionMnemonic::AND, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, - /* 02F */ { VXInstructionMnemonic::ANDNPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 030 */ { VXInstructionMnemonic::ANDNPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 031 */ { VXInstructionMnemonic::ANDPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 032 */ { VXInstructionMnemonic::ANDPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 033 */ { VXInstructionMnemonic::ARPL, { OPI_Ew, OPI_Gw, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_OPERAND1_WRITE }, - /* 034 */ { VXInstructionMnemonic::BLENDPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 035 */ { VXInstructionMnemonic::BLENDPS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 036 */ { VXInstructionMnemonic::BLENDVPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 037 */ { VXInstructionMnemonic::BLENDVPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 038 */ { VXInstructionMnemonic::BOUND, { OPI_Gv, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, - /* 039 */ { VXInstructionMnemonic::BSF, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 03A */ { VXInstructionMnemonic::BSR, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 03B */ { VXInstructionMnemonic::BSWAP, { OPI_R5y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 03C */ { VXInstructionMnemonic::BSWAP, { OPI_R3y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 03D */ { VXInstructionMnemonic::BSWAP, { OPI_R1y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 03E */ { VXInstructionMnemonic::BSWAP, { OPI_R4y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 03F */ { VXInstructionMnemonic::BSWAP, { OPI_R0y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 040 */ { VXInstructionMnemonic::BSWAP, { OPI_R2y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 041 */ { VXInstructionMnemonic::BSWAP, { OPI_R7y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 042 */ { VXInstructionMnemonic::BSWAP, { OPI_R6y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 043 */ { VXInstructionMnemonic::BT, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 044 */ { VXInstructionMnemonic::BT, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 045 */ { VXInstructionMnemonic::BTC, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 046 */ { VXInstructionMnemonic::BTC, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 047 */ { VXInstructionMnemonic::BTR, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 048 */ { VXInstructionMnemonic::BTR, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 049 */ { VXInstructionMnemonic::BTS, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 04A */ { VXInstructionMnemonic::BTS, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 04B */ { VXInstructionMnemonic::CALL, { OPI_Eq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 04C */ { VXInstructionMnemonic::CALL, { OPI_Fv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 04D */ { VXInstructionMnemonic::CALL, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 04E */ { VXInstructionMnemonic::CALL, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, - /* 04F */ { VXInstructionMnemonic::CALL, { OPI_Av, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, - /* 050 */ { VXInstructionMnemonic::CBW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 051 */ { VXInstructionMnemonic::CDQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 052 */ { VXInstructionMnemonic::CDQE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 053 */ { VXInstructionMnemonic::CLC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 054 */ { VXInstructionMnemonic::CLD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 055 */ { VXInstructionMnemonic::CLFLUSH, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 056 */ { VXInstructionMnemonic::CLGI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 057 */ { VXInstructionMnemonic::CLI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 058 */ { VXInstructionMnemonic::CLTS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 059 */ { VXInstructionMnemonic::CMC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 05A */ { VXInstructionMnemonic::CMOVA, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 05B */ { VXInstructionMnemonic::CMOVAE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 05C */ { VXInstructionMnemonic::CMOVB, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 05D */ { VXInstructionMnemonic::CMOVBE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 05E */ { VXInstructionMnemonic::CMOVE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 05F */ { VXInstructionMnemonic::CMOVG, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 060 */ { VXInstructionMnemonic::CMOVGE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 061 */ { VXInstructionMnemonic::CMOVL, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 062 */ { VXInstructionMnemonic::CMOVLE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 063 */ { VXInstructionMnemonic::CMOVNE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 064 */ { VXInstructionMnemonic::CMOVNO, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 065 */ { VXInstructionMnemonic::CMOVNP, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 066 */ { VXInstructionMnemonic::CMOVNS, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 067 */ { VXInstructionMnemonic::CMOVO, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 068 */ { VXInstructionMnemonic::CMOVP, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 069 */ { VXInstructionMnemonic::CMOVS, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 06A */ { VXInstructionMnemonic::CMP, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 06B */ { VXInstructionMnemonic::CMP, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 06C */ { VXInstructionMnemonic::CMP, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 06D */ { VXInstructionMnemonic::CMP, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 06E */ { VXInstructionMnemonic::CMP, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 06F */ { VXInstructionMnemonic::CMP, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 070 */ { VXInstructionMnemonic::CMP, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, 0 }, - /* 071 */ { VXInstructionMnemonic::CMP, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 072 */ { VXInstructionMnemonic::CMP, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 073 */ { VXInstructionMnemonic::CMP, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 }, - /* 074 */ { VXInstructionMnemonic::CMPPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 075 */ { VXInstructionMnemonic::CMPPS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 076 */ { VXInstructionMnemonic::CMPSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 077 */ { VXInstructionMnemonic::CMPSD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 078 */ { VXInstructionMnemonic::CMPSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 079 */ { VXInstructionMnemonic::CMPSQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 07A */ { VXInstructionMnemonic::CMPSS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 07B */ { VXInstructionMnemonic::CMPSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 07C */ { VXInstructionMnemonic::CMPXCHG, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 07D */ { VXInstructionMnemonic::CMPXCHG, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 07E */ { VXInstructionMnemonic::CMPXCHG16B, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 07F */ { VXInstructionMnemonic::CMPXCHG8B, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 080 */ { VXInstructionMnemonic::CMPXCHG8B, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 081 */ { VXInstructionMnemonic::COMISD, { OPI_Vsd, OPI_Wsd, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 082 */ { VXInstructionMnemonic::COMISS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 083 */ { VXInstructionMnemonic::CPUID, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 084 */ { VXInstructionMnemonic::CQO, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 085 */ { VXInstructionMnemonic::CRC32, { OPI_Gy, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 086 */ { VXInstructionMnemonic::CRC32, { OPI_Gy, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 087 */ { VXInstructionMnemonic::CVTDQ2PD, { OPI_V, OPI_Wdq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 088 */ { VXInstructionMnemonic::CVTDQ2PS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 089 */ { VXInstructionMnemonic::CVTPD2DQ, { OPI_Vdq, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 08A */ { VXInstructionMnemonic::CVTPD2PI, { OPI_P, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 08B */ { VXInstructionMnemonic::CVTPD2PS, { OPI_Vdq, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 08C */ { VXInstructionMnemonic::CVTPI2PD, { OPI_V, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 08D */ { VXInstructionMnemonic::CVTPI2PS, { OPI_V, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 08E */ { VXInstructionMnemonic::CVTPS2DQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 08F */ { VXInstructionMnemonic::CVTPS2PD, { OPI_V, OPI_Wdq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 090 */ { VXInstructionMnemonic::CVTPS2PI, { OPI_P, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 091 */ { VXInstructionMnemonic::CVTSD2SI, { OPI_Gy, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 092 */ { VXInstructionMnemonic::CVTSD2SS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 093 */ { VXInstructionMnemonic::CVTSI2SD, { OPI_V, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 094 */ { VXInstructionMnemonic::CVTSI2SS, { OPI_V, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 095 */ { VXInstructionMnemonic::CVTSS2SD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 096 */ { VXInstructionMnemonic::CVTSS2SI, { OPI_Gy, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 097 */ { VXInstructionMnemonic::CVTTPD2DQ, { OPI_Vdq, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 098 */ { VXInstructionMnemonic::CVTTPD2PI, { OPI_P, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 099 */ { VXInstructionMnemonic::CVTTPS2DQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 09A */ { VXInstructionMnemonic::CVTTPS2PI, { OPI_P, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 09B */ { VXInstructionMnemonic::CVTTSD2SI, { OPI_Gy, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 09C */ { VXInstructionMnemonic::CVTTSS2SI, { OPI_Gy, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 09D */ { VXInstructionMnemonic::CWD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 09E */ { VXInstructionMnemonic::CWDE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 09F */ { VXInstructionMnemonic::DAA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, - /* 0A0 */ { VXInstructionMnemonic::DAS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, - /* 0A1 */ { VXInstructionMnemonic::DEC, { OPI_R6z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 0A2 */ { VXInstructionMnemonic::DEC, { OPI_R5z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 0A3 */ { VXInstructionMnemonic::DEC, { OPI_R7z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 0A4 */ { VXInstructionMnemonic::DEC, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 0A5 */ { VXInstructionMnemonic::DEC, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 0A6 */ { VXInstructionMnemonic::DEC, { OPI_R1z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 0A7 */ { VXInstructionMnemonic::DEC, { OPI_R0z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 0A8 */ { VXInstructionMnemonic::DEC, { OPI_R2z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 0A9 */ { VXInstructionMnemonic::DEC, { OPI_R4z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 0AA */ { VXInstructionMnemonic::DEC, { OPI_R3z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 0AB */ { VXInstructionMnemonic::DIV, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 0AC */ { VXInstructionMnemonic::DIV, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 0AD */ { VXInstructionMnemonic::DIVPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 0AE */ { VXInstructionMnemonic::DIVPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 0AF */ { VXInstructionMnemonic::DIVSD, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 0B0 */ { VXInstructionMnemonic::DIVSS, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 0B1 */ { VXInstructionMnemonic::DPPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 0B2 */ { VXInstructionMnemonic::DPPS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 0B3 */ { VXInstructionMnemonic::EMMS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 0B4 */ { VXInstructionMnemonic::ENTER, { OPI_Iw, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_DEFAULT_64 }, - /* 0B5 */ { VXInstructionMnemonic::EXTRACTPS, { OPI_MdRy, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 0B6 */ { VXInstructionMnemonic::F2XM1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 0B7 */ { VXInstructionMnemonic::FABS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 0B8 */ { VXInstructionMnemonic::FADD, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0B9 */ { VXInstructionMnemonic::FADD, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0BA */ { VXInstructionMnemonic::FADD, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 0BB */ { VXInstructionMnemonic::FADD, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 0BC */ { VXInstructionMnemonic::FADD, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0BD */ { VXInstructionMnemonic::FADD, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0BE */ { VXInstructionMnemonic::FADD, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0BF */ { VXInstructionMnemonic::FADD, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 0C0 */ { VXInstructionMnemonic::FADD, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 0C1 */ { VXInstructionMnemonic::FADD, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 0C2 */ { VXInstructionMnemonic::FADD, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 0C3 */ { VXInstructionMnemonic::FADD, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 0C4 */ { VXInstructionMnemonic::FADD, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 0C5 */ { VXInstructionMnemonic::FADD, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 0C6 */ { VXInstructionMnemonic::FADD, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0C7 */ { VXInstructionMnemonic::FADD, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0C8 */ { VXInstructionMnemonic::FADD, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0C9 */ { VXInstructionMnemonic::FADD, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0CA */ { VXInstructionMnemonic::FADDP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0CB */ { VXInstructionMnemonic::FADDP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0CC */ { VXInstructionMnemonic::FADDP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0CD */ { VXInstructionMnemonic::FADDP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0CE */ { VXInstructionMnemonic::FADDP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0CF */ { VXInstructionMnemonic::FADDP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0D0 */ { VXInstructionMnemonic::FADDP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0D1 */ { VXInstructionMnemonic::FADDP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0D2 */ { VXInstructionMnemonic::FBLD, { OPI_Mt, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 0D3 */ { VXInstructionMnemonic::FBSTP, { OPI_Mt, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 0D4 */ { VXInstructionMnemonic::FCHS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 0D5 */ { VXInstructionMnemonic::FCLEX, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 0D6 */ { VXInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 0D7 */ { VXInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 0D8 */ { VXInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 0D9 */ { VXInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0DA */ { VXInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 0DB */ { VXInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 0DC */ { VXInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 0DD */ { VXInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 0DE */ { VXInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 0DF */ { VXInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 0E0 */ { VXInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 0E1 */ { VXInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 0E2 */ { VXInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 0E3 */ { VXInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 0E4 */ { VXInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0E5 */ { VXInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 0E6 */ { VXInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0E7 */ { VXInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 0E8 */ { VXInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 0E9 */ { VXInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 0EA */ { VXInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 0EB */ { VXInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 0EC */ { VXInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 0ED */ { VXInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 0EE */ { VXInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 0EF */ { VXInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 0F0 */ { VXInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0F1 */ { VXInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 0F2 */ { VXInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 0F3 */ { VXInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 0F4 */ { VXInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 0F5 */ { VXInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 0F6 */ { VXInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 0F7 */ { VXInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 0F8 */ { VXInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 0F9 */ { VXInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 0FA */ { VXInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 0FB */ { VXInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 0FC */ { VXInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 0FD */ { VXInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 0FE */ { VXInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 0FF */ { VXInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 100 */ { VXInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 101 */ { VXInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 102 */ { VXInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 103 */ { VXInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 104 */ { VXInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 105 */ { VXInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 106 */ { VXInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 107 */ { VXInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 108 */ { VXInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 109 */ { VXInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 10A */ { VXInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 10B */ { VXInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 10C */ { VXInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 10D */ { VXInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 10E */ { VXInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 10F */ { VXInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 110 */ { VXInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 111 */ { VXInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 112 */ { VXInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 113 */ { VXInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 114 */ { VXInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 115 */ { VXInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 116 */ { VXInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 117 */ { VXInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 118 */ { VXInstructionMnemonic::FCOM, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 119 */ { VXInstructionMnemonic::FCOM, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 11A */ { VXInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 11B */ { VXInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 11C */ { VXInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 11D */ { VXInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 11E */ { VXInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 11F */ { VXInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 120 */ { VXInstructionMnemonic::FCOM2, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 121 */ { VXInstructionMnemonic::FCOM2, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 122 */ { VXInstructionMnemonic::FCOM2, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 123 */ { VXInstructionMnemonic::FCOM2, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 124 */ { VXInstructionMnemonic::FCOM2, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 125 */ { VXInstructionMnemonic::FCOM2, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 126 */ { VXInstructionMnemonic::FCOM2, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 127 */ { VXInstructionMnemonic::FCOM2, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 128 */ { VXInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 129 */ { VXInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 12A */ { VXInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 12B */ { VXInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 12C */ { VXInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 12D */ { VXInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 12E */ { VXInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 12F */ { VXInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 130 */ { VXInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 131 */ { VXInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 132 */ { VXInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 133 */ { VXInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 134 */ { VXInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 135 */ { VXInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 136 */ { VXInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 137 */ { VXInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 138 */ { VXInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 139 */ { VXInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 13A */ { VXInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 13B */ { VXInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 13C */ { VXInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 13D */ { VXInstructionMnemonic::FCOMP, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 13E */ { VXInstructionMnemonic::FCOMP, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 13F */ { VXInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 140 */ { VXInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 141 */ { VXInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 142 */ { VXInstructionMnemonic::FCOMP3, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 143 */ { VXInstructionMnemonic::FCOMP3, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 144 */ { VXInstructionMnemonic::FCOMP3, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 145 */ { VXInstructionMnemonic::FCOMP3, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 146 */ { VXInstructionMnemonic::FCOMP3, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 147 */ { VXInstructionMnemonic::FCOMP3, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 148 */ { VXInstructionMnemonic::FCOMP3, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 149 */ { VXInstructionMnemonic::FCOMP3, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 14A */ { VXInstructionMnemonic::FCOMP5, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 14B */ { VXInstructionMnemonic::FCOMP5, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 14C */ { VXInstructionMnemonic::FCOMP5, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 14D */ { VXInstructionMnemonic::FCOMP5, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 14E */ { VXInstructionMnemonic::FCOMP5, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 14F */ { VXInstructionMnemonic::FCOMP5, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 150 */ { VXInstructionMnemonic::FCOMP5, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 151 */ { VXInstructionMnemonic::FCOMP5, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 152 */ { VXInstructionMnemonic::FCOMPP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 153 */ { VXInstructionMnemonic::FCOS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 154 */ { VXInstructionMnemonic::FDECSTP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 155 */ { VXInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 156 */ { VXInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 157 */ { VXInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 158 */ { VXInstructionMnemonic::FDIV, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 159 */ { VXInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 15A */ { VXInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 15B */ { VXInstructionMnemonic::FDIV, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 15C */ { VXInstructionMnemonic::FDIV, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 15D */ { VXInstructionMnemonic::FDIV, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 15E */ { VXInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 15F */ { VXInstructionMnemonic::FDIV, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 160 */ { VXInstructionMnemonic::FDIV, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 161 */ { VXInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 162 */ { VXInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 163 */ { VXInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 164 */ { VXInstructionMnemonic::FDIV, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 165 */ { VXInstructionMnemonic::FDIV, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 166 */ { VXInstructionMnemonic::FDIV, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 167 */ { VXInstructionMnemonic::FDIVP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 168 */ { VXInstructionMnemonic::FDIVP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 169 */ { VXInstructionMnemonic::FDIVP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 16A */ { VXInstructionMnemonic::FDIVP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 16B */ { VXInstructionMnemonic::FDIVP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 16C */ { VXInstructionMnemonic::FDIVP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 16D */ { VXInstructionMnemonic::FDIVP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 16E */ { VXInstructionMnemonic::FDIVP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 16F */ { VXInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 170 */ { VXInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 171 */ { VXInstructionMnemonic::FDIVR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 172 */ { VXInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 173 */ { VXInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 174 */ { VXInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 175 */ { VXInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 176 */ { VXInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 177 */ { VXInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 178 */ { VXInstructionMnemonic::FDIVR, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 179 */ { VXInstructionMnemonic::FDIVR, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 17A */ { VXInstructionMnemonic::FDIVR, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 17B */ { VXInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 17C */ { VXInstructionMnemonic::FDIVR, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 17D */ { VXInstructionMnemonic::FDIVR, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 17E */ { VXInstructionMnemonic::FDIVR, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 17F */ { VXInstructionMnemonic::FDIVR, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 180 */ { VXInstructionMnemonic::FDIVR, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 181 */ { VXInstructionMnemonic::FDIVRP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 182 */ { VXInstructionMnemonic::FDIVRP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 183 */ { VXInstructionMnemonic::FDIVRP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 184 */ { VXInstructionMnemonic::FDIVRP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 185 */ { VXInstructionMnemonic::FDIVRP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 186 */ { VXInstructionMnemonic::FDIVRP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 187 */ { VXInstructionMnemonic::FDIVRP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 188 */ { VXInstructionMnemonic::FDIVRP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 189 */ { VXInstructionMnemonic::FEMMS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 18A */ { VXInstructionMnemonic::FFREE, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 18B */ { VXInstructionMnemonic::FFREE, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 18C */ { VXInstructionMnemonic::FFREE, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 18D */ { VXInstructionMnemonic::FFREE, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 18E */ { VXInstructionMnemonic::FFREE, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 18F */ { VXInstructionMnemonic::FFREE, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 190 */ { VXInstructionMnemonic::FFREE, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 191 */ { VXInstructionMnemonic::FFREE, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 192 */ { VXInstructionMnemonic::FFREEP, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 193 */ { VXInstructionMnemonic::FFREEP, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 194 */ { VXInstructionMnemonic::FFREEP, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 195 */ { VXInstructionMnemonic::FFREEP, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 196 */ { VXInstructionMnemonic::FFREEP, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 197 */ { VXInstructionMnemonic::FFREEP, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 198 */ { VXInstructionMnemonic::FFREEP, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 199 */ { VXInstructionMnemonic::FFREEP, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 19A */ { VXInstructionMnemonic::FIADD, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 19B */ { VXInstructionMnemonic::FIADD, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 19C */ { VXInstructionMnemonic::FICOM, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 19D */ { VXInstructionMnemonic::FICOM, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 19E */ { VXInstructionMnemonic::FICOMP, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 19F */ { VXInstructionMnemonic::FICOMP, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1A0 */ { VXInstructionMnemonic::FIDIV, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1A1 */ { VXInstructionMnemonic::FIDIV, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1A2 */ { VXInstructionMnemonic::FIDIVR, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1A3 */ { VXInstructionMnemonic::FIDIVR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1A4 */ { VXInstructionMnemonic::FILD, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1A5 */ { VXInstructionMnemonic::FILD, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1A6 */ { VXInstructionMnemonic::FILD, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1A7 */ { VXInstructionMnemonic::FIMUL, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1A8 */ { VXInstructionMnemonic::FIMUL, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1A9 */ { VXInstructionMnemonic::FINCSTP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1AA */ { VXInstructionMnemonic::FIST, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1AB */ { VXInstructionMnemonic::FIST, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1AC */ { VXInstructionMnemonic::FISTP, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1AD */ { VXInstructionMnemonic::FISTP, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1AE */ { VXInstructionMnemonic::FISTP, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1AF */ { VXInstructionMnemonic::FISTTP, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1B0 */ { VXInstructionMnemonic::FISTTP, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1B1 */ { VXInstructionMnemonic::FISTTP, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1B2 */ { VXInstructionMnemonic::FISUB, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1B3 */ { VXInstructionMnemonic::FISUB, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1B4 */ { VXInstructionMnemonic::FISUBR, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1B5 */ { VXInstructionMnemonic::FISUBR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1B6 */ { VXInstructionMnemonic::FLD, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1B7 */ { VXInstructionMnemonic::FLD, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1B8 */ { VXInstructionMnemonic::FLD, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1B9 */ { VXInstructionMnemonic::FLD, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1BA */ { VXInstructionMnemonic::FLD, { OPI_Mt, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1BB */ { VXInstructionMnemonic::FLD, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1BC */ { VXInstructionMnemonic::FLD, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1BD */ { VXInstructionMnemonic::FLD, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1BE */ { VXInstructionMnemonic::FLD, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1BF */ { VXInstructionMnemonic::FLD, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1C0 */ { VXInstructionMnemonic::FLD, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1C1 */ { VXInstructionMnemonic::FLD1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1C2 */ { VXInstructionMnemonic::FLDCW, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1C3 */ { VXInstructionMnemonic::FLDENV, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1C4 */ { VXInstructionMnemonic::FLDL2E, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1C5 */ { VXInstructionMnemonic::FLDL2T, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1C6 */ { VXInstructionMnemonic::FLDLG2, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1C7 */ { VXInstructionMnemonic::FLDLN2, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1C8 */ { VXInstructionMnemonic::FLDPI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1C9 */ { VXInstructionMnemonic::FLDZ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1CA */ { VXInstructionMnemonic::FMUL, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1CB */ { VXInstructionMnemonic::FMUL, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1CC */ { VXInstructionMnemonic::FMUL, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1CD */ { VXInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 1CE */ { VXInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1CF */ { VXInstructionMnemonic::FMUL, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1D0 */ { VXInstructionMnemonic::FMUL, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1D1 */ { VXInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1D2 */ { VXInstructionMnemonic::FMUL, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1D3 */ { VXInstructionMnemonic::FMUL, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1D4 */ { VXInstructionMnemonic::FMUL, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1D5 */ { VXInstructionMnemonic::FMUL, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1D6 */ { VXInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 1D7 */ { VXInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 1D8 */ { VXInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 1D9 */ { VXInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 1DA */ { VXInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 1DB */ { VXInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 1DC */ { VXInstructionMnemonic::FMULP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1DD */ { VXInstructionMnemonic::FMULP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1DE */ { VXInstructionMnemonic::FMULP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1DF */ { VXInstructionMnemonic::FMULP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1E0 */ { VXInstructionMnemonic::FMULP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1E1 */ { VXInstructionMnemonic::FMULP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1E2 */ { VXInstructionMnemonic::FMULP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1E3 */ { VXInstructionMnemonic::FMULP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 1E4 */ { VXInstructionMnemonic::FNDISI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1E5 */ { VXInstructionMnemonic::FNENI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1E6 */ { VXInstructionMnemonic::FNINIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1E7 */ { VXInstructionMnemonic::FNOP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1E8 */ { VXInstructionMnemonic::FNSAVE, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1E9 */ { VXInstructionMnemonic::FNSETPM, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1EA */ { VXInstructionMnemonic::FNSTCW, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1EB */ { VXInstructionMnemonic::FNSTENV, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1EC */ { VXInstructionMnemonic::FNSTSW, { OPI_AX, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1ED */ { VXInstructionMnemonic::FNSTSW, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1EE */ { VXInstructionMnemonic::FPATAN, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1EF */ { VXInstructionMnemonic::FPREM, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1F0 */ { VXInstructionMnemonic::FPREM1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1F1 */ { VXInstructionMnemonic::FPTAN, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1F2 */ { VXInstructionMnemonic::FRNDINT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1F3 */ { VXInstructionMnemonic::FRSTOR, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1F4 */ { VXInstructionMnemonic::FRSTPM, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1F5 */ { VXInstructionMnemonic::FSCALE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1F6 */ { VXInstructionMnemonic::FSIN, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1F7 */ { VXInstructionMnemonic::FSINCOS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1F8 */ { VXInstructionMnemonic::FSQRT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1F9 */ { VXInstructionMnemonic::FST, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1FA */ { VXInstructionMnemonic::FST, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1FB */ { VXInstructionMnemonic::FST, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1FC */ { VXInstructionMnemonic::FST, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1FD */ { VXInstructionMnemonic::FST, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 1FE */ { VXInstructionMnemonic::FST, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 1FF */ { VXInstructionMnemonic::FST, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 200 */ { VXInstructionMnemonic::FST, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 201 */ { VXInstructionMnemonic::FST, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 202 */ { VXInstructionMnemonic::FST, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 203 */ { VXInstructionMnemonic::FSTP, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 204 */ { VXInstructionMnemonic::FSTP, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 205 */ { VXInstructionMnemonic::FSTP, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 206 */ { VXInstructionMnemonic::FSTP, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 207 */ { VXInstructionMnemonic::FSTP, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 208 */ { VXInstructionMnemonic::FSTP, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 209 */ { VXInstructionMnemonic::FSTP, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 20A */ { VXInstructionMnemonic::FSTP, { OPI_Mt, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 20B */ { VXInstructionMnemonic::FSTP, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 20C */ { VXInstructionMnemonic::FSTP, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 20D */ { VXInstructionMnemonic::FSTP, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 20E */ { VXInstructionMnemonic::FSTP1, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 20F */ { VXInstructionMnemonic::FSTP1, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 210 */ { VXInstructionMnemonic::FSTP1, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 211 */ { VXInstructionMnemonic::FSTP1, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 212 */ { VXInstructionMnemonic::FSTP1, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 213 */ { VXInstructionMnemonic::FSTP1, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 214 */ { VXInstructionMnemonic::FSTP1, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 215 */ { VXInstructionMnemonic::FSTP1, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 216 */ { VXInstructionMnemonic::FSTP8, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 217 */ { VXInstructionMnemonic::FSTP8, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 218 */ { VXInstructionMnemonic::FSTP8, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 219 */ { VXInstructionMnemonic::FSTP8, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 21A */ { VXInstructionMnemonic::FSTP8, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 21B */ { VXInstructionMnemonic::FSTP8, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 21C */ { VXInstructionMnemonic::FSTP8, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 21D */ { VXInstructionMnemonic::FSTP8, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 21E */ { VXInstructionMnemonic::FSTP9, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 21F */ { VXInstructionMnemonic::FSTP9, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 220 */ { VXInstructionMnemonic::FSTP9, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 221 */ { VXInstructionMnemonic::FSTP9, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 222 */ { VXInstructionMnemonic::FSTP9, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 223 */ { VXInstructionMnemonic::FSTP9, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 224 */ { VXInstructionMnemonic::FSTP9, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 225 */ { VXInstructionMnemonic::FSTP9, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 226 */ { VXInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 227 */ { VXInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 228 */ { VXInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 229 */ { VXInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 22A */ { VXInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 22B */ { VXInstructionMnemonic::FSUB, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 22C */ { VXInstructionMnemonic::FSUB, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 22D */ { VXInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 22E */ { VXInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 22F */ { VXInstructionMnemonic::FSUB, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 230 */ { VXInstructionMnemonic::FSUB, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 231 */ { VXInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 232 */ { VXInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 233 */ { VXInstructionMnemonic::FSUB, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 234 */ { VXInstructionMnemonic::FSUB, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 235 */ { VXInstructionMnemonic::FSUB, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 236 */ { VXInstructionMnemonic::FSUB, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 237 */ { VXInstructionMnemonic::FSUB, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 238 */ { VXInstructionMnemonic::FSUBP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 239 */ { VXInstructionMnemonic::FSUBP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 23A */ { VXInstructionMnemonic::FSUBP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 23B */ { VXInstructionMnemonic::FSUBP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 23C */ { VXInstructionMnemonic::FSUBP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 23D */ { VXInstructionMnemonic::FSUBP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 23E */ { VXInstructionMnemonic::FSUBP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 23F */ { VXInstructionMnemonic::FSUBP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 240 */ { VXInstructionMnemonic::FSUBR, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 241 */ { VXInstructionMnemonic::FSUBR, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 242 */ { VXInstructionMnemonic::FSUBR, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 243 */ { VXInstructionMnemonic::FSUBR, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 244 */ { VXInstructionMnemonic::FSUBR, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 245 */ { VXInstructionMnemonic::FSUBR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 246 */ { VXInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 247 */ { VXInstructionMnemonic::FSUBR, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 248 */ { VXInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 249 */ { VXInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 24A */ { VXInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 24B */ { VXInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 24C */ { VXInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 24D */ { VXInstructionMnemonic::FSUBR, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 24E */ { VXInstructionMnemonic::FSUBR, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 24F */ { VXInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 250 */ { VXInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 251 */ { VXInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 252 */ { VXInstructionMnemonic::FSUBRP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 253 */ { VXInstructionMnemonic::FSUBRP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 254 */ { VXInstructionMnemonic::FSUBRP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 255 */ { VXInstructionMnemonic::FSUBRP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 256 */ { VXInstructionMnemonic::FSUBRP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 257 */ { VXInstructionMnemonic::FSUBRP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 258 */ { VXInstructionMnemonic::FSUBRP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 259 */ { VXInstructionMnemonic::FSUBRP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 25A */ { VXInstructionMnemonic::FTST, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 25B */ { VXInstructionMnemonic::FUCOM, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 25C */ { VXInstructionMnemonic::FUCOM, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 25D */ { VXInstructionMnemonic::FUCOM, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 25E */ { VXInstructionMnemonic::FUCOM, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 25F */ { VXInstructionMnemonic::FUCOM, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 260 */ { VXInstructionMnemonic::FUCOM, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 261 */ { VXInstructionMnemonic::FUCOM, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 262 */ { VXInstructionMnemonic::FUCOM, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 263 */ { VXInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 264 */ { VXInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 265 */ { VXInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 266 */ { VXInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 267 */ { VXInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 268 */ { VXInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 269 */ { VXInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 26A */ { VXInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 26B */ { VXInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 26C */ { VXInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 26D */ { VXInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 26E */ { VXInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 26F */ { VXInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 270 */ { VXInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 271 */ { VXInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 272 */ { VXInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 273 */ { VXInstructionMnemonic::FUCOMP, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 274 */ { VXInstructionMnemonic::FUCOMP, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 275 */ { VXInstructionMnemonic::FUCOMP, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 276 */ { VXInstructionMnemonic::FUCOMP, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 277 */ { VXInstructionMnemonic::FUCOMP, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 278 */ { VXInstructionMnemonic::FUCOMP, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 279 */ { VXInstructionMnemonic::FUCOMP, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 27A */ { VXInstructionMnemonic::FUCOMP, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 27B */ { VXInstructionMnemonic::FUCOMPP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 27C */ { VXInstructionMnemonic::FXAM, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 27D */ { VXInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, - /* 27E */ { VXInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, - /* 27F */ { VXInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, - /* 280 */ { VXInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, - /* 281 */ { VXInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, - /* 282 */ { VXInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, - /* 283 */ { VXInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, - /* 284 */ { VXInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, - /* 285 */ { VXInstructionMnemonic::FXCH4, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 286 */ { VXInstructionMnemonic::FXCH4, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 287 */ { VXInstructionMnemonic::FXCH4, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 288 */ { VXInstructionMnemonic::FXCH4, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 289 */ { VXInstructionMnemonic::FXCH4, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 28A */ { VXInstructionMnemonic::FXCH4, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 28B */ { VXInstructionMnemonic::FXCH4, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 28C */ { VXInstructionMnemonic::FXCH4, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 28D */ { VXInstructionMnemonic::FXCH7, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 28E */ { VXInstructionMnemonic::FXCH7, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 28F */ { VXInstructionMnemonic::FXCH7, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 290 */ { VXInstructionMnemonic::FXCH7, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 291 */ { VXInstructionMnemonic::FXCH7, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 292 */ { VXInstructionMnemonic::FXCH7, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 293 */ { VXInstructionMnemonic::FXCH7, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 294 */ { VXInstructionMnemonic::FXCH7, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 295 */ { VXInstructionMnemonic::FXRSTOR, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 296 */ { VXInstructionMnemonic::FXSAVE, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 297 */ { VXInstructionMnemonic::FXTRACT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 298 */ { VXInstructionMnemonic::FYL2X, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 299 */ { VXInstructionMnemonic::FYL2XP1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 29A */ { VXInstructionMnemonic::GETSEC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 29B */ { VXInstructionMnemonic::HADDPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 29C */ { VXInstructionMnemonic::HADDPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 29D */ { VXInstructionMnemonic::HLT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 29E */ { VXInstructionMnemonic::HSUBPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 29F */ { VXInstructionMnemonic::HSUBPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 2A0 */ { VXInstructionMnemonic::IDIV, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 2A1 */ { VXInstructionMnemonic::IDIV, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 2A2 */ { VXInstructionMnemonic::IMUL, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 2A3 */ { VXInstructionMnemonic::IMUL, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 2A4 */ { VXInstructionMnemonic::IMUL, { OPI_Gv, OPI_Ev, OPI_Iz, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 2A5 */ { VXInstructionMnemonic::IMUL, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 2A6 */ { VXInstructionMnemonic::IMUL, { OPI_Gv, OPI_Ev, OPI_sIb, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 2A7 */ { VXInstructionMnemonic::IN, { OPI_AL, OPI_DX, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, - /* 2A8 */ { VXInstructionMnemonic::IN, { OPI_eAX, OPI_DX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_WRITE }, - /* 2A9 */ { VXInstructionMnemonic::IN, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, - /* 2AA */ { VXInstructionMnemonic::IN, { OPI_eAX, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_WRITE }, - /* 2AB */ { VXInstructionMnemonic::INC, { OPI_R0z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 2AC */ { VXInstructionMnemonic::INC, { OPI_R1z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 2AD */ { VXInstructionMnemonic::INC, { OPI_R7z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 2AE */ { VXInstructionMnemonic::INC, { OPI_R6z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 2AF */ { VXInstructionMnemonic::INC, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 2B0 */ { VXInstructionMnemonic::INC, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 2B1 */ { VXInstructionMnemonic::INC, { OPI_R3z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 2B2 */ { VXInstructionMnemonic::INC, { OPI_R2z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 2B3 */ { VXInstructionMnemonic::INC, { OPI_R4z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 2B4 */ { VXInstructionMnemonic::INC, { OPI_R5z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, - /* 2B5 */ { VXInstructionMnemonic::INSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 2B6 */ { VXInstructionMnemonic::INSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 2B7 */ { VXInstructionMnemonic::INSERTPS, { OPI_V, OPI_Md, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 2B8 */ { VXInstructionMnemonic::INSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 2B9 */ { VXInstructionMnemonic::INT, { OPI_Ib, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2BA */ { VXInstructionMnemonic::INT1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2BB */ { VXInstructionMnemonic::INT3, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2BC */ { VXInstructionMnemonic::INTO, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, - /* 2BD */ { VXInstructionMnemonic::INVD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2BE */ { VXInstructionMnemonic::INVEPT, { OPI_Gd, OPI_Mo, OPI_NONE, OPI_NONE }, 0 }, - /* 2BF */ { VXInstructionMnemonic::INVEPT, { OPI_Gq, OPI_Mo, OPI_NONE, OPI_NONE }, 0 }, - /* 2C0 */ { VXInstructionMnemonic::INVLPG, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 2C1 */ { VXInstructionMnemonic::INVLPGA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2C2 */ { VXInstructionMnemonic::INVVPID, { OPI_Gq, OPI_Mo, OPI_NONE, OPI_NONE }, 0 }, - /* 2C3 */ { VXInstructionMnemonic::INVVPID, { OPI_Gd, OPI_Mo, OPI_NONE, OPI_NONE }, 0 }, - /* 2C4 */ { VXInstructionMnemonic::IRETD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 2C5 */ { VXInstructionMnemonic::IRETQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 2C6 */ { VXInstructionMnemonic::IRETW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 2C7 */ { VXInstructionMnemonic::JA, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2C8 */ { VXInstructionMnemonic::JA, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2C9 */ { VXInstructionMnemonic::JB, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2CA */ { VXInstructionMnemonic::JB, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2CB */ { VXInstructionMnemonic::JBE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2CC */ { VXInstructionMnemonic::JBE, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2CD */ { VXInstructionMnemonic::JCXZ, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX }, - /* 2CE */ { VXInstructionMnemonic::JE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2CF */ { VXInstructionMnemonic::JE, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2D0 */ { VXInstructionMnemonic::JECXZ, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX }, - /* 2D1 */ { VXInstructionMnemonic::JG, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2D2 */ { VXInstructionMnemonic::JG, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2D3 */ { VXInstructionMnemonic::JGE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2D4 */ { VXInstructionMnemonic::JGE, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2D5 */ { VXInstructionMnemonic::JL, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2D6 */ { VXInstructionMnemonic::JL, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2D7 */ { VXInstructionMnemonic::JLE, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2D8 */ { VXInstructionMnemonic::JLE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2D9 */ { VXInstructionMnemonic::JMP, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 2DA */ { VXInstructionMnemonic::JMP, { OPI_Fv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 2DB */ { VXInstructionMnemonic::JMP, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, - /* 2DC */ { VXInstructionMnemonic::JMP, { OPI_Av, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, - /* 2DD */ { VXInstructionMnemonic::JMP, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_DEFAULT_64 }, - /* 2DE */ { VXInstructionMnemonic::JNB, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2DF */ { VXInstructionMnemonic::JNB, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2E0 */ { VXInstructionMnemonic::JNE, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2E1 */ { VXInstructionMnemonic::JNE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2E2 */ { VXInstructionMnemonic::JNO, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2E3 */ { VXInstructionMnemonic::JNO, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2E4 */ { VXInstructionMnemonic::JNP, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2E5 */ { VXInstructionMnemonic::JNP, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2E6 */ { VXInstructionMnemonic::JNS, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2E7 */ { VXInstructionMnemonic::JNS, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2E8 */ { VXInstructionMnemonic::JO, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2E9 */ { VXInstructionMnemonic::JO, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2EA */ { VXInstructionMnemonic::JP, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2EB */ { VXInstructionMnemonic::JP, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2EC */ { VXInstructionMnemonic::JRCXZ, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX }, - /* 2ED */ { VXInstructionMnemonic::JS, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2EE */ { VXInstructionMnemonic::JS, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 2EF */ { VXInstructionMnemonic::LAHF, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2F0 */ { VXInstructionMnemonic::LAR, { OPI_Gv, OPI_Ew, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 2F1 */ { VXInstructionMnemonic::LDDQU, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 2F2 */ { VXInstructionMnemonic::LDMXCSR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 2F3 */ { VXInstructionMnemonic::LDS, { OPI_Gv, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_WRITE }, - /* 2F4 */ { VXInstructionMnemonic::LEA, { OPI_Gv, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 2F5 */ { VXInstructionMnemonic::LEAVE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2F6 */ { VXInstructionMnemonic::LES, { OPI_Gv, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_WRITE }, - /* 2F7 */ { VXInstructionMnemonic::LFENCE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 2F8 */ { VXInstructionMnemonic::LFS, { OPI_Gz, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 2F9 */ { VXInstructionMnemonic::LGDT, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 2FA */ { VXInstructionMnemonic::LGS, { OPI_Gz, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 2FB */ { VXInstructionMnemonic::LIDT, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 2FC */ { VXInstructionMnemonic::LLDT, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 2FD */ { VXInstructionMnemonic::LMSW, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 2FE */ { VXInstructionMnemonic::LMSW, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 2FF */ { VXInstructionMnemonic::LOCK, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 300 */ { VXInstructionMnemonic::LODSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 301 */ { VXInstructionMnemonic::LODSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 302 */ { VXInstructionMnemonic::LODSQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 303 */ { VXInstructionMnemonic::LODSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 304 */ { VXInstructionMnemonic::LOOP, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 305 */ { VXInstructionMnemonic::LOOPE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 306 */ { VXInstructionMnemonic::LOOPNE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 307 */ { VXInstructionMnemonic::LSL, { OPI_Gv, OPI_Ew, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 308 */ { VXInstructionMnemonic::LSS, { OPI_Gv, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 309 */ { VXInstructionMnemonic::LTR, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 30A */ { VXInstructionMnemonic::MASKMOVDQU, { OPI_V, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 30B */ { VXInstructionMnemonic::MASKMOVQ, { OPI_P, OPI_N, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 30C */ { VXInstructionMnemonic::MAXPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 30D */ { VXInstructionMnemonic::MAXPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 30E */ { VXInstructionMnemonic::MAXSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 30F */ { VXInstructionMnemonic::MAXSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 310 */ { VXInstructionMnemonic::MFENCE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 311 */ { VXInstructionMnemonic::MINPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 312 */ { VXInstructionMnemonic::MINPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 313 */ { VXInstructionMnemonic::MINSD, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 314 */ { VXInstructionMnemonic::MINSS, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 315 */ { VXInstructionMnemonic::MONITOR, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 316 */ { VXInstructionMnemonic::MONTMUL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 317 */ { VXInstructionMnemonic::MOV, { OPI_R0b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 318 */ { VXInstructionMnemonic::MOV, { OPI_R2b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 319 */ { VXInstructionMnemonic::MOV, { OPI_R3b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 31A */ { VXInstructionMnemonic::MOV, { OPI_R1b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 31B */ { VXInstructionMnemonic::MOV, { OPI_AL, OPI_Ob, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, - /* 31C */ { VXInstructionMnemonic::MOV, { OPI_S, OPI_MwRv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 31D */ { VXInstructionMnemonic::MOV, { OPI_MwRv, OPI_S, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 31E */ { VXInstructionMnemonic::MOV, { OPI_Ov, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, - /* 31F */ { VXInstructionMnemonic::MOV, { OPI_Ob, OPI_AL, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, - /* 320 */ { VXInstructionMnemonic::MOV, { OPI_rAX, OPI_Ov, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, - /* 321 */ { VXInstructionMnemonic::MOV, { OPI_R4b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 322 */ { VXInstructionMnemonic::MOV, { OPI_R7v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 323 */ { VXInstructionMnemonic::MOV, { OPI_R6v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 324 */ { VXInstructionMnemonic::MOV, { OPI_R5v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 325 */ { VXInstructionMnemonic::MOV, { OPI_R, OPI_C, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 326 */ { VXInstructionMnemonic::MOV, { OPI_D, OPI_R, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 327 */ { VXInstructionMnemonic::MOV, { OPI_C, OPI_R, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 328 */ { VXInstructionMnemonic::MOV, { OPI_R, OPI_D, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 329 */ { VXInstructionMnemonic::MOV, { OPI_R4v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 32A */ { VXInstructionMnemonic::MOV, { OPI_R7b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 32B */ { VXInstructionMnemonic::MOV, { OPI_R6b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 32C */ { VXInstructionMnemonic::MOV, { OPI_R5b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 32D */ { VXInstructionMnemonic::MOV, { OPI_R0v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 32E */ { VXInstructionMnemonic::MOV, { OPI_R3v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 32F */ { VXInstructionMnemonic::MOV, { OPI_R2v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 330 */ { VXInstructionMnemonic::MOV, { OPI_R1v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 331 */ { VXInstructionMnemonic::MOV, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 332 */ { VXInstructionMnemonic::MOV, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 333 */ { VXInstructionMnemonic::MOV, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 334 */ { VXInstructionMnemonic::MOV, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 335 */ { VXInstructionMnemonic::MOV, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 336 */ { VXInstructionMnemonic::MOV, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 337 */ { VXInstructionMnemonic::MOVAPD, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 338 */ { VXInstructionMnemonic::MOVAPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 339 */ { VXInstructionMnemonic::MOVAPS, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 33A */ { VXInstructionMnemonic::MOVAPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 33B */ { VXInstructionMnemonic::MOVBE, { OPI_Gv, OPI_Mv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 33C */ { VXInstructionMnemonic::MOVBE, { OPI_Mv, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 33D */ { VXInstructionMnemonic::MOVD, { OPI_P, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 33E */ { VXInstructionMnemonic::MOVD, { OPI_Ey, OPI_P, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 33F */ { VXInstructionMnemonic::MOVD, { OPI_Ey, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 340 */ { VXInstructionMnemonic::MOVD, { OPI_Ey, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 341 */ { VXInstructionMnemonic::MOVD, { OPI_V, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 342 */ { VXInstructionMnemonic::MOVD, { OPI_V, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 343 */ { VXInstructionMnemonic::MOVD, { OPI_P, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 344 */ { VXInstructionMnemonic::MOVD, { OPI_Ey, OPI_P, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 345 */ { VXInstructionMnemonic::MOVDDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 346 */ { VXInstructionMnemonic::MOVDDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 347 */ { VXInstructionMnemonic::MOVDQ2Q, { OPI_P, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 348 */ { VXInstructionMnemonic::MOVDQA, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 349 */ { VXInstructionMnemonic::MOVDQA, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 34A */ { VXInstructionMnemonic::MOVDQU, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 34B */ { VXInstructionMnemonic::MOVDQU, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 34C */ { VXInstructionMnemonic::MOVHLPS, { OPI_V, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 34D */ { VXInstructionMnemonic::MOVHPD, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 34E */ { VXInstructionMnemonic::MOVHPD, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 34F */ { VXInstructionMnemonic::MOVHPS, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 350 */ { VXInstructionMnemonic::MOVHPS, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 351 */ { VXInstructionMnemonic::MOVLHPS, { OPI_V, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 352 */ { VXInstructionMnemonic::MOVLPD, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 353 */ { VXInstructionMnemonic::MOVLPD, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 354 */ { VXInstructionMnemonic::MOVLPS, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 355 */ { VXInstructionMnemonic::MOVLPS, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 356 */ { VXInstructionMnemonic::MOVMSKPD, { OPI_Gd, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 357 */ { VXInstructionMnemonic::MOVMSKPS, { OPI_Gd, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 358 */ { VXInstructionMnemonic::MOVNTDQ, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 359 */ { VXInstructionMnemonic::MOVNTDQA, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 35A */ { VXInstructionMnemonic::MOVNTI, { OPI_M, OPI_Gy, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 35B */ { VXInstructionMnemonic::MOVNTPD, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 35C */ { VXInstructionMnemonic::MOVNTPS, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 35D */ { VXInstructionMnemonic::MOVNTQ, { OPI_M, OPI_P, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 35E */ { VXInstructionMnemonic::MOVQ, { OPI_P, OPI_Eq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 35F */ { VXInstructionMnemonic::MOVQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 360 */ { VXInstructionMnemonic::MOVQ, { OPI_Eq, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 361 */ { VXInstructionMnemonic::MOVQ, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 362 */ { VXInstructionMnemonic::MOVQ, { OPI_Q, OPI_P, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 363 */ { VXInstructionMnemonic::MOVQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 364 */ { VXInstructionMnemonic::MOVQ, { OPI_V, OPI_Eq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 365 */ { VXInstructionMnemonic::MOVQ, { OPI_Eq, OPI_P, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 366 */ { VXInstructionMnemonic::MOVQ2DQ, { OPI_V, OPI_N, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_OPERAND1_WRITE }, - /* 367 */ { VXInstructionMnemonic::MOVSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_OPERAND1_WRITE }, - /* 368 */ { VXInstructionMnemonic::MOVSD, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 369 */ { VXInstructionMnemonic::MOVSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, - /* 36A */ { VXInstructionMnemonic::MOVSD, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 36B */ { VXInstructionMnemonic::MOVSHDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 36C */ { VXInstructionMnemonic::MOVSHDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 36D */ { VXInstructionMnemonic::MOVSLDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 36E */ { VXInstructionMnemonic::MOVSLDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 36F */ { VXInstructionMnemonic::MOVSQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, - /* 370 */ { VXInstructionMnemonic::MOVSS, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 371 */ { VXInstructionMnemonic::MOVSS, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 372 */ { VXInstructionMnemonic::MOVSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, - /* 373 */ { VXInstructionMnemonic::MOVSX, { OPI_Gv, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 374 */ { VXInstructionMnemonic::MOVSX, { OPI_Gy, OPI_Ew, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 375 */ { VXInstructionMnemonic::MOVSXD, { OPI_Gq, OPI_Ed, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 376 */ { VXInstructionMnemonic::MOVUPD, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 377 */ { VXInstructionMnemonic::MOVUPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 378 */ { VXInstructionMnemonic::MOVUPS, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 379 */ { VXInstructionMnemonic::MOVUPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 37A */ { VXInstructionMnemonic::MOVZX, { OPI_Gy, OPI_Ew, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 37B */ { VXInstructionMnemonic::MOVZX, { OPI_Gv, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 37C */ { VXInstructionMnemonic::MPSADBW, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 37D */ { VXInstructionMnemonic::MUL, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 37E */ { VXInstructionMnemonic::MUL, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 37F */ { VXInstructionMnemonic::MULPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 380 */ { VXInstructionMnemonic::MULPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 381 */ { VXInstructionMnemonic::MULSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 382 */ { VXInstructionMnemonic::MULSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 383 */ { VXInstructionMnemonic::MWAIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 384 */ { VXInstructionMnemonic::NEG, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 385 */ { VXInstructionMnemonic::NEG, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 386 */ { VXInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 387 */ { VXInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 388 */ { VXInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 389 */ { VXInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 38A */ { VXInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 38B */ { VXInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 38C */ { VXInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 38D */ { VXInstructionMnemonic::NOT, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 38E */ { VXInstructionMnemonic::NOT, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 38F */ { VXInstructionMnemonic::OR, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, - /* 390 */ { VXInstructionMnemonic::OR, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 391 */ { VXInstructionMnemonic::OR, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 392 */ { VXInstructionMnemonic::OR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 393 */ { VXInstructionMnemonic::OR, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 394 */ { VXInstructionMnemonic::OR, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 395 */ { VXInstructionMnemonic::OR, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 396 */ { VXInstructionMnemonic::OR, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 397 */ { VXInstructionMnemonic::OR, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 398 */ { VXInstructionMnemonic::OR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 399 */ { VXInstructionMnemonic::ORPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 39A */ { VXInstructionMnemonic::ORPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 39B */ { VXInstructionMnemonic::OUT, { OPI_DX, OPI_AL, OPI_NONE, OPI_NONE }, 0 }, - /* 39C */ { VXInstructionMnemonic::OUT, { OPI_DX, OPI_eAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, - /* 39D */ { VXInstructionMnemonic::OUT, { OPI_Ib, OPI_AL, OPI_NONE, OPI_NONE }, 0 }, - /* 39E */ { VXInstructionMnemonic::OUT, { OPI_Ib, OPI_eAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, - /* 39F */ { VXInstructionMnemonic::OUTSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 3A0 */ { VXInstructionMnemonic::OUTSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 3A1 */ { VXInstructionMnemonic::OUTSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 3A2 */ { VXInstructionMnemonic::PABSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3A3 */ { VXInstructionMnemonic::PABSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3A4 */ { VXInstructionMnemonic::PABSD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3A5 */ { VXInstructionMnemonic::PABSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3A6 */ { VXInstructionMnemonic::PABSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3A7 */ { VXInstructionMnemonic::PABSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3A8 */ { VXInstructionMnemonic::PACKSSDW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3A9 */ { VXInstructionMnemonic::PACKSSDW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3AA */ { VXInstructionMnemonic::PACKSSWB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3AB */ { VXInstructionMnemonic::PACKSSWB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3AC */ { VXInstructionMnemonic::PACKUSDW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3AD */ { VXInstructionMnemonic::PACKUSWB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3AE */ { VXInstructionMnemonic::PACKUSWB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3AF */ { VXInstructionMnemonic::PADDB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3B0 */ { VXInstructionMnemonic::PADDB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3B1 */ { VXInstructionMnemonic::PADDD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3B2 */ { VXInstructionMnemonic::PADDD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3B3 */ { VXInstructionMnemonic::PADDQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3B4 */ { VXInstructionMnemonic::PADDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3B5 */ { VXInstructionMnemonic::PADDSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3B6 */ { VXInstructionMnemonic::PADDSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3B7 */ { VXInstructionMnemonic::PADDSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3B8 */ { VXInstructionMnemonic::PADDSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3B9 */ { VXInstructionMnemonic::PADDUSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3BA */ { VXInstructionMnemonic::PADDUSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3BB */ { VXInstructionMnemonic::PADDUSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3BC */ { VXInstructionMnemonic::PADDUSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3BD */ { VXInstructionMnemonic::PADDW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3BE */ { VXInstructionMnemonic::PADDW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3BF */ { VXInstructionMnemonic::PALIGNR, { OPI_P, OPI_Q, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3C0 */ { VXInstructionMnemonic::PALIGNR, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3C1 */ { VXInstructionMnemonic::PAND, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3C2 */ { VXInstructionMnemonic::PAND, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3C3 */ { VXInstructionMnemonic::PANDN, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3C4 */ { VXInstructionMnemonic::PANDN, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3C5 */ { VXInstructionMnemonic::PAVGB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3C6 */ { VXInstructionMnemonic::PAVGB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3C7 */ { VXInstructionMnemonic::PAVGUSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3C8 */ { VXInstructionMnemonic::PAVGW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3C9 */ { VXInstructionMnemonic::PAVGW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3CA */ { VXInstructionMnemonic::PBLENDVB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3CB */ { VXInstructionMnemonic::PBLENDW, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3CC */ { VXInstructionMnemonic::PCLMULQDQ, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3CD */ { VXInstructionMnemonic::PCMPEQB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3CE */ { VXInstructionMnemonic::PCMPEQB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3CF */ { VXInstructionMnemonic::PCMPEQD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3D0 */ { VXInstructionMnemonic::PCMPEQD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3D1 */ { VXInstructionMnemonic::PCMPEQQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 3D2 */ { VXInstructionMnemonic::PCMPEQW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3D3 */ { VXInstructionMnemonic::PCMPEQW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3D4 */ { VXInstructionMnemonic::PCMPESTRI, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 3D5 */ { VXInstructionMnemonic::PCMPESTRM, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 3D6 */ { VXInstructionMnemonic::PCMPGTB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3D7 */ { VXInstructionMnemonic::PCMPGTB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3D8 */ { VXInstructionMnemonic::PCMPGTD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3D9 */ { VXInstructionMnemonic::PCMPGTD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3DA */ { VXInstructionMnemonic::PCMPGTQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 3DB */ { VXInstructionMnemonic::PCMPGTW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3DC */ { VXInstructionMnemonic::PCMPGTW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3DD */ { VXInstructionMnemonic::PCMPISTRI, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 3DE */ { VXInstructionMnemonic::PCMPISTRM, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 3DF */ { VXInstructionMnemonic::PEXTRB, { OPI_MbRv, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 3E0 */ { VXInstructionMnemonic::PEXTRD, { OPI_Ed, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3E1 */ { VXInstructionMnemonic::PEXTRD, { OPI_Ed, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3E2 */ { VXInstructionMnemonic::PEXTRQ, { OPI_Eq, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 3E3 */ { VXInstructionMnemonic::PEXTRW, { OPI_MwRd, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3E4 */ { VXInstructionMnemonic::PEXTRW, { OPI_Gd, OPI_N, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3E5 */ { VXInstructionMnemonic::PEXTRW, { OPI_Gd, OPI_U, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3E6 */ { VXInstructionMnemonic::PF2ID, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3E7 */ { VXInstructionMnemonic::PF2IW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3E8 */ { VXInstructionMnemonic::PFACC, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3E9 */ { VXInstructionMnemonic::PFADD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3EA */ { VXInstructionMnemonic::PFCMPEQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3EB */ { VXInstructionMnemonic::PFCMPGE, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3EC */ { VXInstructionMnemonic::PFCMPGT, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3ED */ { VXInstructionMnemonic::PFMAX, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3EE */ { VXInstructionMnemonic::PFMIN, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3EF */ { VXInstructionMnemonic::PFMUL, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3F0 */ { VXInstructionMnemonic::PFNACC, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3F1 */ { VXInstructionMnemonic::PFPNACC, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3F2 */ { VXInstructionMnemonic::PFRCP, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3F3 */ { VXInstructionMnemonic::PFRCPIT1, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3F4 */ { VXInstructionMnemonic::PFRCPIT2, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3F5 */ { VXInstructionMnemonic::PFRSQIT1, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3F6 */ { VXInstructionMnemonic::PFRSQRT, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 3F7 */ { VXInstructionMnemonic::PFSUB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3F8 */ { VXInstructionMnemonic::PFSUBR, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3F9 */ { VXInstructionMnemonic::PHADDD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3FA */ { VXInstructionMnemonic::PHADDD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3FB */ { VXInstructionMnemonic::PHADDSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3FC */ { VXInstructionMnemonic::PHADDSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3FD */ { VXInstructionMnemonic::PHADDW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3FE */ { VXInstructionMnemonic::PHADDW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 3FF */ { VXInstructionMnemonic::PHMINPOSUW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 400 */ { VXInstructionMnemonic::PHSUBD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 401 */ { VXInstructionMnemonic::PHSUBD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 402 */ { VXInstructionMnemonic::PHSUBSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 403 */ { VXInstructionMnemonic::PHSUBSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 404 */ { VXInstructionMnemonic::PHSUBW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 405 */ { VXInstructionMnemonic::PHSUBW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 406 */ { VXInstructionMnemonic::PI2FD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 407 */ { VXInstructionMnemonic::PI2FW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 408 */ { VXInstructionMnemonic::PINSRB, { OPI_V, OPI_MbRd, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 409 */ { VXInstructionMnemonic::PINSRD, { OPI_V, OPI_Ed, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 40A */ { VXInstructionMnemonic::PINSRD, { OPI_V, OPI_Ed, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 40B */ { VXInstructionMnemonic::PINSRQ, { OPI_V, OPI_Eq, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 40C */ { VXInstructionMnemonic::PINSRW, { OPI_V, OPI_MwRy, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 40D */ { VXInstructionMnemonic::PINSRW, { OPI_P, OPI_MwRy, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 40E */ { VXInstructionMnemonic::PMADDUBSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 40F */ { VXInstructionMnemonic::PMADDUBSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 410 */ { VXInstructionMnemonic::PMADDWD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 411 */ { VXInstructionMnemonic::PMADDWD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 412 */ { VXInstructionMnemonic::PMAXSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 413 */ { VXInstructionMnemonic::PMAXSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 414 */ { VXInstructionMnemonic::PMAXSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 415 */ { VXInstructionMnemonic::PMAXSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 416 */ { VXInstructionMnemonic::PMAXUB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 417 */ { VXInstructionMnemonic::PMAXUB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 418 */ { VXInstructionMnemonic::PMAXUD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 419 */ { VXInstructionMnemonic::PMAXUW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 41A */ { VXInstructionMnemonic::PMINSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 41B */ { VXInstructionMnemonic::PMINSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 41C */ { VXInstructionMnemonic::PMINSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 41D */ { VXInstructionMnemonic::PMINSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 41E */ { VXInstructionMnemonic::PMINUB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 41F */ { VXInstructionMnemonic::PMINUB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 420 */ { VXInstructionMnemonic::PMINUD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 421 */ { VXInstructionMnemonic::PMINUW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 422 */ { VXInstructionMnemonic::PMOVMSKB, { OPI_Gd, OPI_N, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 423 */ { VXInstructionMnemonic::PMOVMSKB, { OPI_Gd, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 424 */ { VXInstructionMnemonic::PMOVSXBD, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 425 */ { VXInstructionMnemonic::PMOVSXBQ, { OPI_V, OPI_MwU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 426 */ { VXInstructionMnemonic::PMOVSXBW, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 427 */ { VXInstructionMnemonic::PMOVSXDQ, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 428 */ { VXInstructionMnemonic::PMOVSXWD, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 429 */ { VXInstructionMnemonic::PMOVSXWQ, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 42A */ { VXInstructionMnemonic::PMOVZXBD, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 42B */ { VXInstructionMnemonic::PMOVZXBQ, { OPI_V, OPI_MwU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 42C */ { VXInstructionMnemonic::PMOVZXBW, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 42D */ { VXInstructionMnemonic::PMOVZXDQ, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 42E */ { VXInstructionMnemonic::PMOVZXWD, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 42F */ { VXInstructionMnemonic::PMOVZXWQ, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 430 */ { VXInstructionMnemonic::PMULDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 431 */ { VXInstructionMnemonic::PMULHRSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 432 */ { VXInstructionMnemonic::PMULHRSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 433 */ { VXInstructionMnemonic::PMULHRW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 434 */ { VXInstructionMnemonic::PMULHUW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 435 */ { VXInstructionMnemonic::PMULHUW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 436 */ { VXInstructionMnemonic::PMULHW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 437 */ { VXInstructionMnemonic::PMULHW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 438 */ { VXInstructionMnemonic::PMULLD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 439 */ { VXInstructionMnemonic::PMULLW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 43A */ { VXInstructionMnemonic::PMULLW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 43B */ { VXInstructionMnemonic::PMULUDQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 43C */ { VXInstructionMnemonic::PMULUDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 43D */ { VXInstructionMnemonic::POP, { OPI_R5v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 43E */ { VXInstructionMnemonic::POP, { OPI_R4v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 43F */ { VXInstructionMnemonic::POP, { OPI_R6v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 440 */ { VXInstructionMnemonic::POP, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 441 */ { VXInstructionMnemonic::POP, { OPI_R7v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 442 */ { VXInstructionMnemonic::POP, { OPI_R3v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 443 */ { VXInstructionMnemonic::POP, { OPI_DS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 | IDF_OPERAND1_WRITE }, - /* 444 */ { VXInstructionMnemonic::POP, { OPI_GS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, - /* 445 */ { VXInstructionMnemonic::POP, { OPI_ES, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 | IDF_OPERAND1_WRITE }, - /* 446 */ { VXInstructionMnemonic::POP, { OPI_SS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 | IDF_OPERAND1_WRITE }, - /* 447 */ { VXInstructionMnemonic::POP, { OPI_R1v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 448 */ { VXInstructionMnemonic::POP, { OPI_R2v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 449 */ { VXInstructionMnemonic::POP, { OPI_R0v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 44A */ { VXInstructionMnemonic::POP, { OPI_FS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, - /* 44B */ { VXInstructionMnemonic::POPA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_INVALID_64 }, - /* 44C */ { VXInstructionMnemonic::POPAD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_INVALID_64 }, - /* 44D */ { VXInstructionMnemonic::POPCNT, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 44E */ { VXInstructionMnemonic::POPFD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, - /* 44F */ { VXInstructionMnemonic::POPFQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 450 */ { VXInstructionMnemonic::POPFQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 451 */ { VXInstructionMnemonic::POPFW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, - /* 452 */ { VXInstructionMnemonic::POR, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 453 */ { VXInstructionMnemonic::POR, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 454 */ { VXInstructionMnemonic::PREFETCH, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 455 */ { VXInstructionMnemonic::PREFETCHNTA, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 456 */ { VXInstructionMnemonic::PREFETCHT0, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 457 */ { VXInstructionMnemonic::PREFETCHT1, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 458 */ { VXInstructionMnemonic::PREFETCHT2, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 459 */ { VXInstructionMnemonic::PSADBW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 45A */ { VXInstructionMnemonic::PSADBW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 45B */ { VXInstructionMnemonic::PSHUFB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 45C */ { VXInstructionMnemonic::PSHUFB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 45D */ { VXInstructionMnemonic::PSHUFD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 45E */ { VXInstructionMnemonic::PSHUFHW, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 45F */ { VXInstructionMnemonic::PSHUFLW, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 460 */ { VXInstructionMnemonic::PSHUFW, { OPI_P, OPI_Q, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 461 */ { VXInstructionMnemonic::PSIGNB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 462 */ { VXInstructionMnemonic::PSIGNB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 463 */ { VXInstructionMnemonic::PSIGND, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 464 */ { VXInstructionMnemonic::PSIGND, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 465 */ { VXInstructionMnemonic::PSIGNW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 466 */ { VXInstructionMnemonic::PSIGNW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 467 */ { VXInstructionMnemonic::PSLLD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 468 */ { VXInstructionMnemonic::PSLLD, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 469 */ { VXInstructionMnemonic::PSLLD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 46A */ { VXInstructionMnemonic::PSLLD, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 46B */ { VXInstructionMnemonic::PSLLDQ, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 46C */ { VXInstructionMnemonic::PSLLQ, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 46D */ { VXInstructionMnemonic::PSLLQ, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 46E */ { VXInstructionMnemonic::PSLLQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 46F */ { VXInstructionMnemonic::PSLLQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 470 */ { VXInstructionMnemonic::PSLLW, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 471 */ { VXInstructionMnemonic::PSLLW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 472 */ { VXInstructionMnemonic::PSLLW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 473 */ { VXInstructionMnemonic::PSLLW, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 474 */ { VXInstructionMnemonic::PSRAD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 475 */ { VXInstructionMnemonic::PSRAD, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 476 */ { VXInstructionMnemonic::PSRAD, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 477 */ { VXInstructionMnemonic::PSRAD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 478 */ { VXInstructionMnemonic::PSRAW, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 479 */ { VXInstructionMnemonic::PSRAW, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 47A */ { VXInstructionMnemonic::PSRAW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 47B */ { VXInstructionMnemonic::PSRAW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 47C */ { VXInstructionMnemonic::PSRLD, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 47D */ { VXInstructionMnemonic::PSRLD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 47E */ { VXInstructionMnemonic::PSRLD, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 47F */ { VXInstructionMnemonic::PSRLD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 480 */ { VXInstructionMnemonic::PSRLDQ, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 481 */ { VXInstructionMnemonic::PSRLQ, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 482 */ { VXInstructionMnemonic::PSRLQ, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 483 */ { VXInstructionMnemonic::PSRLQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 484 */ { VXInstructionMnemonic::PSRLQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 485 */ { VXInstructionMnemonic::PSRLW, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 486 */ { VXInstructionMnemonic::PSRLW, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 487 */ { VXInstructionMnemonic::PSRLW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 488 */ { VXInstructionMnemonic::PSRLW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 489 */ { VXInstructionMnemonic::PSUBB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 48A */ { VXInstructionMnemonic::PSUBB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 48B */ { VXInstructionMnemonic::PSUBD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 48C */ { VXInstructionMnemonic::PSUBD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 48D */ { VXInstructionMnemonic::PSUBQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 48E */ { VXInstructionMnemonic::PSUBQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 48F */ { VXInstructionMnemonic::PSUBSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 490 */ { VXInstructionMnemonic::PSUBSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 491 */ { VXInstructionMnemonic::PSUBSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 492 */ { VXInstructionMnemonic::PSUBSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 493 */ { VXInstructionMnemonic::PSUBUSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 494 */ { VXInstructionMnemonic::PSUBUSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 495 */ { VXInstructionMnemonic::PSUBUSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 496 */ { VXInstructionMnemonic::PSUBUSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 497 */ { VXInstructionMnemonic::PSUBW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 498 */ { VXInstructionMnemonic::PSUBW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 499 */ { VXInstructionMnemonic::PSWAPD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 49A */ { VXInstructionMnemonic::PTEST, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 49B */ { VXInstructionMnemonic::PUNPCKHBW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 49C */ { VXInstructionMnemonic::PUNPCKHBW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 49D */ { VXInstructionMnemonic::PUNPCKHDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 49E */ { VXInstructionMnemonic::PUNPCKHDQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 49F */ { VXInstructionMnemonic::PUNPCKHQDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4A0 */ { VXInstructionMnemonic::PUNPCKHWD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4A1 */ { VXInstructionMnemonic::PUNPCKHWD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4A2 */ { VXInstructionMnemonic::PUNPCKLBW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4A3 */ { VXInstructionMnemonic::PUNPCKLBW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4A4 */ { VXInstructionMnemonic::PUNPCKLDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4A5 */ { VXInstructionMnemonic::PUNPCKLDQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4A6 */ { VXInstructionMnemonic::PUNPCKLQDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4A7 */ { VXInstructionMnemonic::PUNPCKLWD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4A8 */ { VXInstructionMnemonic::PUNPCKLWD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4A9 */ { VXInstructionMnemonic::PUSH, { OPI_DS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, - /* 4AA */ { VXInstructionMnemonic::PUSH, { OPI_ES, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, - /* 4AB */ { VXInstructionMnemonic::PUSH, { OPI_sIb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, - /* 4AC */ { VXInstructionMnemonic::PUSH, { OPI_SS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, - /* 4AD */ { VXInstructionMnemonic::PUSH, { OPI_CS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, - /* 4AE */ { VXInstructionMnemonic::PUSH, { OPI_R3v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 4AF */ { VXInstructionMnemonic::PUSH, { OPI_R4v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 4B0 */ { VXInstructionMnemonic::PUSH, { OPI_R5v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 4B1 */ { VXInstructionMnemonic::PUSH, { OPI_R6v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 4B2 */ { VXInstructionMnemonic::PUSH, { OPI_R7v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 4B3 */ { VXInstructionMnemonic::PUSH, { OPI_R2v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 4B4 */ { VXInstructionMnemonic::PUSH, { OPI_R0v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 4B5 */ { VXInstructionMnemonic::PUSH, { OPI_FS, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4B6 */ { VXInstructionMnemonic::PUSH, { OPI_GS, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4B7 */ { VXInstructionMnemonic::PUSH, { OPI_sIz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, - /* 4B8 */ { VXInstructionMnemonic::PUSH, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 4B9 */ { VXInstructionMnemonic::PUSH, { OPI_R1v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 4BA */ { VXInstructionMnemonic::PUSHA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_INVALID_64 }, - /* 4BB */ { VXInstructionMnemonic::PUSHAD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_INVALID_64 }, - /* 4BC */ { VXInstructionMnemonic::PUSHFD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, - /* 4BD */ { VXInstructionMnemonic::PUSHFQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, - /* 4BE */ { VXInstructionMnemonic::PUSHFQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, - /* 4BF */ { VXInstructionMnemonic::PUSHFW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, - /* 4C0 */ { VXInstructionMnemonic::PUSHFW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, - /* 4C1 */ { VXInstructionMnemonic::PXOR, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4C2 */ { VXInstructionMnemonic::PXOR, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4C3 */ { VXInstructionMnemonic::RCL, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4C4 */ { VXInstructionMnemonic::RCL, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4C5 */ { VXInstructionMnemonic::RCL, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4C6 */ { VXInstructionMnemonic::RCL, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4C7 */ { VXInstructionMnemonic::RCL, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4C8 */ { VXInstructionMnemonic::RCL, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4C9 */ { VXInstructionMnemonic::RCPPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4CA */ { VXInstructionMnemonic::RCPSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4CB */ { VXInstructionMnemonic::RCR, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4CC */ { VXInstructionMnemonic::RCR, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4CD */ { VXInstructionMnemonic::RCR, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4CE */ { VXInstructionMnemonic::RCR, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4CF */ { VXInstructionMnemonic::RCR, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4D0 */ { VXInstructionMnemonic::RCR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4D1 */ { VXInstructionMnemonic::RDMSR, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4D2 */ { VXInstructionMnemonic::RDPMC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4D3 */ { VXInstructionMnemonic::RDRAND, { OPI_R, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4D4 */ { VXInstructionMnemonic::RDTSC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4D5 */ { VXInstructionMnemonic::RDTSCP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4D6 */ { VXInstructionMnemonic::REP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4D7 */ { VXInstructionMnemonic::REPNE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4D8 */ { VXInstructionMnemonic::RET, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4D9 */ { VXInstructionMnemonic::RET, { OPI_Iw, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4DA */ { VXInstructionMnemonic::RETF, { OPI_Iw, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4DB */ { VXInstructionMnemonic::RETF, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4DC */ { VXInstructionMnemonic::ROL, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4DD */ { VXInstructionMnemonic::ROL, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4DE */ { VXInstructionMnemonic::ROL, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4DF */ { VXInstructionMnemonic::ROL, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4E0 */ { VXInstructionMnemonic::ROL, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4E1 */ { VXInstructionMnemonic::ROL, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4E2 */ { VXInstructionMnemonic::ROR, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4E3 */ { VXInstructionMnemonic::ROR, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4E4 */ { VXInstructionMnemonic::ROR, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4E5 */ { VXInstructionMnemonic::ROR, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4E6 */ { VXInstructionMnemonic::ROR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4E7 */ { VXInstructionMnemonic::ROR, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4E8 */ { VXInstructionMnemonic::ROUNDPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4E9 */ { VXInstructionMnemonic::ROUNDPS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4EA */ { VXInstructionMnemonic::ROUNDSD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4EB */ { VXInstructionMnemonic::ROUNDSS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4EC */ { VXInstructionMnemonic::RSM, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4ED */ { VXInstructionMnemonic::RSQRTPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4EE */ { VXInstructionMnemonic::RSQRTSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4EF */ { VXInstructionMnemonic::SAHF, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 4F0 */ { VXInstructionMnemonic::SALC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, - /* 4F1 */ { VXInstructionMnemonic::SAR, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4F2 */ { VXInstructionMnemonic::SAR, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4F3 */ { VXInstructionMnemonic::SAR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4F4 */ { VXInstructionMnemonic::SAR, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4F5 */ { VXInstructionMnemonic::SAR, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4F6 */ { VXInstructionMnemonic::SAR, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 4F7 */ { VXInstructionMnemonic::SBB, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4F8 */ { VXInstructionMnemonic::SBB, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4F9 */ { VXInstructionMnemonic::SBB, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, - /* 4FA */ { VXInstructionMnemonic::SBB, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, - /* 4FB */ { VXInstructionMnemonic::SBB, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4FC */ { VXInstructionMnemonic::SBB, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_WRITE }, - /* 4FD */ { VXInstructionMnemonic::SBB, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4FE */ { VXInstructionMnemonic::SBB, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 4FF */ { VXInstructionMnemonic::SBB, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 500 */ { VXInstructionMnemonic::SBB, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 501 */ { VXInstructionMnemonic::SCASB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 502 */ { VXInstructionMnemonic::SCASD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 503 */ { VXInstructionMnemonic::SCASQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 504 */ { VXInstructionMnemonic::SCASW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 505 */ { VXInstructionMnemonic::SETA, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 506 */ { VXInstructionMnemonic::SETAE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 507 */ { VXInstructionMnemonic::SETB, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 508 */ { VXInstructionMnemonic::SETBE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 509 */ { VXInstructionMnemonic::SETE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 50A */ { VXInstructionMnemonic::SETG, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 50B */ { VXInstructionMnemonic::SETGE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 50C */ { VXInstructionMnemonic::SETL, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 50D */ { VXInstructionMnemonic::SETLE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 50E */ { VXInstructionMnemonic::SETNE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 50F */ { VXInstructionMnemonic::SETNO, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 510 */ { VXInstructionMnemonic::SETNP, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 511 */ { VXInstructionMnemonic::SETNS, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 512 */ { VXInstructionMnemonic::SETO, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 513 */ { VXInstructionMnemonic::SETP, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 514 */ { VXInstructionMnemonic::SETS, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 515 */ { VXInstructionMnemonic::SFENCE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 516 */ { VXInstructionMnemonic::SGDT, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 517 */ { VXInstructionMnemonic::SHL, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 518 */ { VXInstructionMnemonic::SHL, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 519 */ { VXInstructionMnemonic::SHL, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 51A */ { VXInstructionMnemonic::SHL, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 51B */ { VXInstructionMnemonic::SHL, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 51C */ { VXInstructionMnemonic::SHL, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 51D */ { VXInstructionMnemonic::SHL, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 51E */ { VXInstructionMnemonic::SHL, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 51F */ { VXInstructionMnemonic::SHL, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 520 */ { VXInstructionMnemonic::SHL, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 521 */ { VXInstructionMnemonic::SHL, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 522 */ { VXInstructionMnemonic::SHL, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 523 */ { VXInstructionMnemonic::SHLD, { OPI_Ev, OPI_Gv, OPI_CL, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 524 */ { VXInstructionMnemonic::SHLD, { OPI_Ev, OPI_Gv, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 525 */ { VXInstructionMnemonic::SHR, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 526 */ { VXInstructionMnemonic::SHR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 527 */ { VXInstructionMnemonic::SHR, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 528 */ { VXInstructionMnemonic::SHR, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 529 */ { VXInstructionMnemonic::SHR, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 52A */ { VXInstructionMnemonic::SHR, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 52B */ { VXInstructionMnemonic::SHRD, { OPI_Ev, OPI_Gv, OPI_CL, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 52C */ { VXInstructionMnemonic::SHRD, { OPI_Ev, OPI_Gv, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 52D */ { VXInstructionMnemonic::SHUFPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 52E */ { VXInstructionMnemonic::SHUFPS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 52F */ { VXInstructionMnemonic::SIDT, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 530 */ { VXInstructionMnemonic::SKINIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 531 */ { VXInstructionMnemonic::SLDT, { OPI_MwRv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 532 */ { VXInstructionMnemonic::SMSW, { OPI_MwRv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 533 */ { VXInstructionMnemonic::SMSW, { OPI_MwRv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 534 */ { VXInstructionMnemonic::SQRTPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 535 */ { VXInstructionMnemonic::SQRTPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 536 */ { VXInstructionMnemonic::SQRTSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 537 */ { VXInstructionMnemonic::SQRTSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 538 */ { VXInstructionMnemonic::STC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 539 */ { VXInstructionMnemonic::STD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 53A */ { VXInstructionMnemonic::STGI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 53B */ { VXInstructionMnemonic::STI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 53C */ { VXInstructionMnemonic::STMXCSR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 53D */ { VXInstructionMnemonic::STOSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 53E */ { VXInstructionMnemonic::STOSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 53F */ { VXInstructionMnemonic::STOSQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 540 */ { VXInstructionMnemonic::STOSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 541 */ { VXInstructionMnemonic::STR, { OPI_MwRv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 542 */ { VXInstructionMnemonic::SUB, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 543 */ { VXInstructionMnemonic::SUB, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 544 */ { VXInstructionMnemonic::SUB, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 545 */ { VXInstructionMnemonic::SUB, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 546 */ { VXInstructionMnemonic::SUB, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, - /* 547 */ { VXInstructionMnemonic::SUB, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, - /* 548 */ { VXInstructionMnemonic::SUB, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 549 */ { VXInstructionMnemonic::SUB, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 54A */ { VXInstructionMnemonic::SUB, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 54B */ { VXInstructionMnemonic::SUB, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 54C */ { VXInstructionMnemonic::SUBPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 54D */ { VXInstructionMnemonic::SUBPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 54E */ { VXInstructionMnemonic::SUBSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 54F */ { VXInstructionMnemonic::SUBSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 550 */ { VXInstructionMnemonic::SWAPGS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 551 */ { VXInstructionMnemonic::SYSCALL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 552 */ { VXInstructionMnemonic::SYSENTER, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 553 */ { VXInstructionMnemonic::SYSENTER, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 554 */ { VXInstructionMnemonic::SYSEXIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 555 */ { VXInstructionMnemonic::SYSEXIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 556 */ { VXInstructionMnemonic::SYSRET, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 557 */ { VXInstructionMnemonic::TEST, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 558 */ { VXInstructionMnemonic::TEST, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 559 */ { VXInstructionMnemonic::TEST, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 55A */ { VXInstructionMnemonic::TEST, { OPI_Ev, OPI_Iz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 55B */ { VXInstructionMnemonic::TEST, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, - /* 55C */ { VXInstructionMnemonic::TEST, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 55D */ { VXInstructionMnemonic::TEST, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 55E */ { VXInstructionMnemonic::TEST, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, 0 }, - /* 55F */ { VXInstructionMnemonic::UCOMISD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 560 */ { VXInstructionMnemonic::UCOMISS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 561 */ { VXInstructionMnemonic::UD2, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 562 */ { VXInstructionMnemonic::UNPCKHPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 563 */ { VXInstructionMnemonic::UNPCKHPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 564 */ { VXInstructionMnemonic::UNPCKLPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 565 */ { VXInstructionMnemonic::UNPCKLPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 566 */ { VXInstructionMnemonic::VADDPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 567 */ { VXInstructionMnemonic::VADDPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 568 */ { VXInstructionMnemonic::VADDSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 569 */ { VXInstructionMnemonic::VADDSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 56A */ { VXInstructionMnemonic::VADDSUBPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 56B */ { VXInstructionMnemonic::VADDSUBPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 56C */ { VXInstructionMnemonic::VAESDEC, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 56D */ { VXInstructionMnemonic::VAESDECLAST, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 56E */ { VXInstructionMnemonic::VAESENC, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 56F */ { VXInstructionMnemonic::VAESENCLAST, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 570 */ { VXInstructionMnemonic::VAESIMC, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 571 */ { VXInstructionMnemonic::VAESKEYGENASSIST, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 572 */ { VXInstructionMnemonic::VANDNPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 573 */ { VXInstructionMnemonic::VANDNPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 574 */ { VXInstructionMnemonic::VANDPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 575 */ { VXInstructionMnemonic::VANDPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 576 */ { VXInstructionMnemonic::VBLENDPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 577 */ { VXInstructionMnemonic::VBLENDPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 578 */ { VXInstructionMnemonic::VBLENDVPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Lx }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 579 */ { VXInstructionMnemonic::VBLENDVPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Lx }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 57A */ { VXInstructionMnemonic::VBROADCASTSD, { OPI_Vqq, OPI_Mq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 57B */ { VXInstructionMnemonic::VBROADCASTSS, { OPI_V, OPI_Md, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 57C */ { VXInstructionMnemonic::VCMPPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 57D */ { VXInstructionMnemonic::VCMPPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 57E */ { VXInstructionMnemonic::VCMPSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 57F */ { VXInstructionMnemonic::VCMPSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 580 */ { VXInstructionMnemonic::VCOMISD, { OPI_Vsd, OPI_Wsd, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 581 */ { VXInstructionMnemonic::VCOMISS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 582 */ { VXInstructionMnemonic::VCVTDQ2PD, { OPI_Vx, OPI_Wdq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 583 */ { VXInstructionMnemonic::VCVTDQ2PS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 584 */ { VXInstructionMnemonic::VCVTPD2DQ, { OPI_Vdq, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 585 */ { VXInstructionMnemonic::VCVTPD2PS, { OPI_Vdq, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 586 */ { VXInstructionMnemonic::VCVTPS2DQ, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 587 */ { VXInstructionMnemonic::VCVTPS2PD, { OPI_Vx, OPI_Wdq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 588 */ { VXInstructionMnemonic::VCVTSD2SI, { OPI_Gy, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 589 */ { VXInstructionMnemonic::VCVTSD2SS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 58A */ { VXInstructionMnemonic::VCVTSI2SD, { OPI_Vx, OPI_Hx, OPI_Ey, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 58B */ { VXInstructionMnemonic::VCVTSI2SS, { OPI_Vx, OPI_Hx, OPI_Ey, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 58C */ { VXInstructionMnemonic::VCVTSS2SD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 58D */ { VXInstructionMnemonic::VCVTSS2SI, { OPI_Gy, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 58E */ { VXInstructionMnemonic::VCVTTPD2DQ, { OPI_Vdq, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 58F */ { VXInstructionMnemonic::VCVTTPS2DQ, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 590 */ { VXInstructionMnemonic::VCVTTSD2SI, { OPI_Gy, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 591 */ { VXInstructionMnemonic::VCVTTSS2SI, { OPI_Gy, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 592 */ { VXInstructionMnemonic::VDIVPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 593 */ { VXInstructionMnemonic::VDIVPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 594 */ { VXInstructionMnemonic::VDIVSD, { OPI_Vx, OPI_Hx, OPI_MqU, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 595 */ { VXInstructionMnemonic::VDIVSS, { OPI_Vx, OPI_Hx, OPI_MdU, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 596 */ { VXInstructionMnemonic::VDPPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 597 */ { VXInstructionMnemonic::VDPPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 598 */ { VXInstructionMnemonic::VERR, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 599 */ { VXInstructionMnemonic::VERW, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 59A */ { VXInstructionMnemonic::VEXTRACTF128, { OPI_Wdq, OPI_Vqq, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 59B */ { VXInstructionMnemonic::VEXTRACTPS, { OPI_MdRy, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 59C */ { VXInstructionMnemonic::VHADDPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 59D */ { VXInstructionMnemonic::VHADDPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 59E */ { VXInstructionMnemonic::VHSUBPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 59F */ { VXInstructionMnemonic::VHSUBPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5A0 */ { VXInstructionMnemonic::VINSERTF128, { OPI_Vqq, OPI_Hqq, OPI_Wdq, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5A1 */ { VXInstructionMnemonic::VINSERTPS, { OPI_Vx, OPI_Hx, OPI_Md, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5A2 */ { VXInstructionMnemonic::VLDDQU, { OPI_Vx, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5A3 */ { VXInstructionMnemonic::VMASKMOVDQU, { OPI_Vx, OPI_Ux, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 5A4 */ { VXInstructionMnemonic::VMASKMOVPD, { OPI_M, OPI_H, OPI_V, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5A5 */ { VXInstructionMnemonic::VMASKMOVPD, { OPI_V, OPI_H, OPI_M, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5A6 */ { VXInstructionMnemonic::VMASKMOVPS, { OPI_V, OPI_H, OPI_M, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5A7 */ { VXInstructionMnemonic::VMASKMOVPS, { OPI_M, OPI_H, OPI_V, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5A8 */ { VXInstructionMnemonic::VMAXPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5A9 */ { VXInstructionMnemonic::VMAXPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5AA */ { VXInstructionMnemonic::VMAXSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 5AB */ { VXInstructionMnemonic::VMAXSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 5AC */ { VXInstructionMnemonic::VMCALL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 5AD */ { VXInstructionMnemonic::VMCLEAR, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 5AE */ { VXInstructionMnemonic::VMINPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5AF */ { VXInstructionMnemonic::VMINPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 5B0 */ { VXInstructionMnemonic::VMINSD, { OPI_Vx, OPI_Hx, OPI_MqU, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 5B1 */ { VXInstructionMnemonic::VMINSS, { OPI_Vx, OPI_Hx, OPI_MdU, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 5B2 */ { VXInstructionMnemonic::VMLAUNCH, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 5B3 */ { VXInstructionMnemonic::VMLOAD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 5B4 */ { VXInstructionMnemonic::VMMCALL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 5B5 */ { VXInstructionMnemonic::VMOVAPD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5B6 */ { VXInstructionMnemonic::VMOVAPD, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5B7 */ { VXInstructionMnemonic::VMOVAPS, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5B8 */ { VXInstructionMnemonic::VMOVAPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5B9 */ { VXInstructionMnemonic::VMOVD, { OPI_Ey, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5BA */ { VXInstructionMnemonic::VMOVD, { OPI_Vx, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5BB */ { VXInstructionMnemonic::VMOVD, { OPI_Vx, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5BC */ { VXInstructionMnemonic::VMOVD, { OPI_Ey, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5BD */ { VXInstructionMnemonic::VMOVDDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5BE */ { VXInstructionMnemonic::VMOVDDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5BF */ { VXInstructionMnemonic::VMOVDQA, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5C0 */ { VXInstructionMnemonic::VMOVDQA, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5C1 */ { VXInstructionMnemonic::VMOVDQU, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5C2 */ { VXInstructionMnemonic::VMOVDQU, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5C3 */ { VXInstructionMnemonic::VMOVHLPS, { OPI_Vx, OPI_Ux, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5C4 */ { VXInstructionMnemonic::VMOVHPD, { OPI_Vx, OPI_Hx, OPI_M, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5C5 */ { VXInstructionMnemonic::VMOVHPD, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5C6 */ { VXInstructionMnemonic::VMOVHPS, { OPI_Vx, OPI_Hx, OPI_M, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5C7 */ { VXInstructionMnemonic::VMOVHPS, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5C8 */ { VXInstructionMnemonic::VMOVLHPS, { OPI_Vx, OPI_Hx, OPI_Ux, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5C9 */ { VXInstructionMnemonic::VMOVLPD, { OPI_Vx, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5CA */ { VXInstructionMnemonic::VMOVLPD, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5CB */ { VXInstructionMnemonic::VMOVLPS, { OPI_Vx, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5CC */ { VXInstructionMnemonic::VMOVLPS, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5CD */ { VXInstructionMnemonic::VMOVMSKPD, { OPI_Gd, OPI_Ux, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5CE */ { VXInstructionMnemonic::VMOVMSKPS, { OPI_Gd, OPI_Ux, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5CF */ { VXInstructionMnemonic::VMOVNTDQ, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5D0 */ { VXInstructionMnemonic::VMOVNTDQA, { OPI_Vx, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5D1 */ { VXInstructionMnemonic::VMOVNTPD, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5D2 */ { VXInstructionMnemonic::VMOVNTPS, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5D3 */ { VXInstructionMnemonic::VMOVQ, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5D4 */ { VXInstructionMnemonic::VMOVQ, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5D5 */ { VXInstructionMnemonic::VMOVQ, { OPI_Vx, OPI_Eq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5D6 */ { VXInstructionMnemonic::VMOVQ, { OPI_Eq, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5D7 */ { VXInstructionMnemonic::VMOVSD, { OPI_U, OPI_H, OPI_V, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5D8 */ { VXInstructionMnemonic::VMOVSD, { OPI_Mq, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5D9 */ { VXInstructionMnemonic::VMOVSD, { OPI_V, OPI_H, OPI_U, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5DA */ { VXInstructionMnemonic::VMOVSD, { OPI_V, OPI_Mq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5DB */ { VXInstructionMnemonic::VMOVSHDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5DC */ { VXInstructionMnemonic::VMOVSHDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5DD */ { VXInstructionMnemonic::VMOVSLDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5DE */ { VXInstructionMnemonic::VMOVSLDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5DF */ { VXInstructionMnemonic::VMOVSS, { OPI_V, OPI_H, OPI_U, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5E0 */ { VXInstructionMnemonic::VMOVSS, { OPI_Md, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5E1 */ { VXInstructionMnemonic::VMOVSS, { OPI_U, OPI_H, OPI_V, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5E2 */ { VXInstructionMnemonic::VMOVSS, { OPI_V, OPI_Md, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 5E3 */ { VXInstructionMnemonic::VMOVUPD, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5E4 */ { VXInstructionMnemonic::VMOVUPD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5E5 */ { VXInstructionMnemonic::VMOVUPS, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5E6 */ { VXInstructionMnemonic::VMOVUPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5E7 */ { VXInstructionMnemonic::VMPSADBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5E8 */ { VXInstructionMnemonic::VMPTRLD, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 5E9 */ { VXInstructionMnemonic::VMPTRST, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 5EA */ { VXInstructionMnemonic::VMREAD, { OPI_Ey, OPI_Gy, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 5EB */ { VXInstructionMnemonic::VMRESUME, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 5EC */ { VXInstructionMnemonic::VMRUN, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 5ED */ { VXInstructionMnemonic::VMSAVE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 5EE */ { VXInstructionMnemonic::VMULPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5EF */ { VXInstructionMnemonic::VMULPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5F0 */ { VXInstructionMnemonic::VMULSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 5F1 */ { VXInstructionMnemonic::VMULSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 5F2 */ { VXInstructionMnemonic::VMWRITE, { OPI_Gy, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, - /* 5F3 */ { VXInstructionMnemonic::VMXOFF, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 5F4 */ { VXInstructionMnemonic::VMXON, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 5F5 */ { VXInstructionMnemonic::VORPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5F6 */ { VXInstructionMnemonic::VORPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL }, - /* 5F7 */ { VXInstructionMnemonic::VPABSB, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5F8 */ { VXInstructionMnemonic::VPABSD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5F9 */ { VXInstructionMnemonic::VPABSW, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 5FA */ { VXInstructionMnemonic::VPACKSSDW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5FB */ { VXInstructionMnemonic::VPACKSSWB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5FC */ { VXInstructionMnemonic::VPACKUSDW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5FD */ { VXInstructionMnemonic::VPACKUSWB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5FE */ { VXInstructionMnemonic::VPADDB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 5FF */ { VXInstructionMnemonic::VPADDD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 600 */ { VXInstructionMnemonic::VPADDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 601 */ { VXInstructionMnemonic::VPADDSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 602 */ { VXInstructionMnemonic::VPADDSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 603 */ { VXInstructionMnemonic::VPADDUSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 604 */ { VXInstructionMnemonic::VPADDUSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 605 */ { VXInstructionMnemonic::VPADDW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 606 */ { VXInstructionMnemonic::VPALIGNR, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 607 */ { VXInstructionMnemonic::VPAND, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 608 */ { VXInstructionMnemonic::VPANDN, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 609 */ { VXInstructionMnemonic::VPAVGB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 60A */ { VXInstructionMnemonic::VPAVGW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 60B */ { VXInstructionMnemonic::VPBLENDVB, { OPI_V, OPI_H, OPI_W, OPI_L }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 60C */ { VXInstructionMnemonic::VPBLENDW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 60D */ { VXInstructionMnemonic::VPCLMULQDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 60E */ { VXInstructionMnemonic::VPCMPEQB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 60F */ { VXInstructionMnemonic::VPCMPEQD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 610 */ { VXInstructionMnemonic::VPCMPEQQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 611 */ { VXInstructionMnemonic::VPCMPEQW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 612 */ { VXInstructionMnemonic::VPCMPESTRI, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 613 */ { VXInstructionMnemonic::VPCMPESTRM, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 614 */ { VXInstructionMnemonic::VPCMPGTB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 615 */ { VXInstructionMnemonic::VPCMPGTD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 616 */ { VXInstructionMnemonic::VPCMPGTQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 617 */ { VXInstructionMnemonic::VPCMPGTW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 618 */ { VXInstructionMnemonic::VPCMPISTRI, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 619 */ { VXInstructionMnemonic::VPCMPISTRM, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 61A */ { VXInstructionMnemonic::VPERM2F128, { OPI_Vqq, OPI_Hqq, OPI_Wqq, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 61B */ { VXInstructionMnemonic::VPERMILPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 61C */ { VXInstructionMnemonic::VPERMILPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 61D */ { VXInstructionMnemonic::VPERMILPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 61E */ { VXInstructionMnemonic::VPERMILPS, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 61F */ { VXInstructionMnemonic::VPEXTRB, { OPI_MbRv, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 620 */ { VXInstructionMnemonic::VPEXTRD, { OPI_Ed, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 621 */ { VXInstructionMnemonic::VPEXTRD, { OPI_Ed, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 622 */ { VXInstructionMnemonic::VPEXTRQ, { OPI_Eq, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 623 */ { VXInstructionMnemonic::VPEXTRW, { OPI_Gd, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 624 */ { VXInstructionMnemonic::VPEXTRW, { OPI_MwRd, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 625 */ { VXInstructionMnemonic::VPHADDD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 626 */ { VXInstructionMnemonic::VPHADDSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 627 */ { VXInstructionMnemonic::VPHADDW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 628 */ { VXInstructionMnemonic::VPHMINPOSUW, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 629 */ { VXInstructionMnemonic::VPHSUBD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 62A */ { VXInstructionMnemonic::VPHSUBSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 62B */ { VXInstructionMnemonic::VPHSUBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 62C */ { VXInstructionMnemonic::VPINSRB, { OPI_V, OPI_H, OPI_MbRd, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 62D */ { VXInstructionMnemonic::VPINSRD, { OPI_V, OPI_H, OPI_Ed, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 62E */ { VXInstructionMnemonic::VPINSRD, { OPI_V, OPI_H, OPI_Ed, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 62F */ { VXInstructionMnemonic::VPINSRQ, { OPI_V, OPI_H, OPI_Eq, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 630 */ { VXInstructionMnemonic::VPINSRW, { OPI_Vx, OPI_MwRy, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, - /* 631 */ { VXInstructionMnemonic::VPMADDUBSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 632 */ { VXInstructionMnemonic::VPMADDWD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 633 */ { VXInstructionMnemonic::VPMAXSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 634 */ { VXInstructionMnemonic::VPMAXSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 635 */ { VXInstructionMnemonic::VPMAXSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 636 */ { VXInstructionMnemonic::VPMAXUB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 637 */ { VXInstructionMnemonic::VPMAXUD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 638 */ { VXInstructionMnemonic::VPMAXUW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 639 */ { VXInstructionMnemonic::VPMINSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 63A */ { VXInstructionMnemonic::VPMINSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 63B */ { VXInstructionMnemonic::VPMINSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 63C */ { VXInstructionMnemonic::VPMINUB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 63D */ { VXInstructionMnemonic::VPMINUD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 63E */ { VXInstructionMnemonic::VPMINUW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 63F */ { VXInstructionMnemonic::VPMOVMSKB, { OPI_Gd, OPI_Ux, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 640 */ { VXInstructionMnemonic::VPMOVSXBD, { OPI_Vx, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 641 */ { VXInstructionMnemonic::VPMOVSXBQ, { OPI_Vx, OPI_MwU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 642 */ { VXInstructionMnemonic::VPMOVSXBW, { OPI_Vx, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 643 */ { VXInstructionMnemonic::VPMOVSXWD, { OPI_Vx, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 644 */ { VXInstructionMnemonic::VPMOVSXWQ, { OPI_Vx, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 645 */ { VXInstructionMnemonic::VPMOVZXBD, { OPI_Vx, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 646 */ { VXInstructionMnemonic::VPMOVZXBQ, { OPI_Vx, OPI_MwU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 647 */ { VXInstructionMnemonic::VPMOVZXBW, { OPI_Vx, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 648 */ { VXInstructionMnemonic::VPMOVZXDQ, { OPI_Vx, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 649 */ { VXInstructionMnemonic::VPMOVZXWD, { OPI_Vx, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 64A */ { VXInstructionMnemonic::VPMOVZXWQ, { OPI_Vx, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 64B */ { VXInstructionMnemonic::VPMULDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 64C */ { VXInstructionMnemonic::VPMULHRSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 64D */ { VXInstructionMnemonic::VPMULHUW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 64E */ { VXInstructionMnemonic::VPMULHW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 64F */ { VXInstructionMnemonic::VPMULLD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 650 */ { VXInstructionMnemonic::VPMULLW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 651 */ { VXInstructionMnemonic::VPOR, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 652 */ { VXInstructionMnemonic::VPSADBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 653 */ { VXInstructionMnemonic::VPSHUFB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 654 */ { VXInstructionMnemonic::VPSHUFD, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 655 */ { VXInstructionMnemonic::VPSHUFHW, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 656 */ { VXInstructionMnemonic::VPSHUFLW, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 657 */ { VXInstructionMnemonic::VPSIGNB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 658 */ { VXInstructionMnemonic::VPSIGND, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 659 */ { VXInstructionMnemonic::VPSIGNW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 65A */ { VXInstructionMnemonic::VPSLLD, { OPI_H, OPI_V, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 65B */ { VXInstructionMnemonic::VPSLLD, { OPI_V, OPI_H, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 65C */ { VXInstructionMnemonic::VPSLLDQ, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 65D */ { VXInstructionMnemonic::VPSLLQ, { OPI_V, OPI_H, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 65E */ { VXInstructionMnemonic::VPSLLQ, { OPI_H, OPI_V, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 65F */ { VXInstructionMnemonic::VPSLLW, { OPI_V, OPI_H, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 660 */ { VXInstructionMnemonic::VPSLLW, { OPI_H, OPI_V, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 661 */ { VXInstructionMnemonic::VPSRAD, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 662 */ { VXInstructionMnemonic::VPSRAD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 663 */ { VXInstructionMnemonic::VPSRAW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 664 */ { VXInstructionMnemonic::VPSRAW, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 665 */ { VXInstructionMnemonic::VPSRLD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 666 */ { VXInstructionMnemonic::VPSRLD, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 667 */ { VXInstructionMnemonic::VPSRLDQ, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 668 */ { VXInstructionMnemonic::VPSRLQ, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 669 */ { VXInstructionMnemonic::VPSRLQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 66A */ { VXInstructionMnemonic::VPSRLW, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 66B */ { VXInstructionMnemonic::VPSRLW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 66C */ { VXInstructionMnemonic::VPSUBB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 66D */ { VXInstructionMnemonic::VPSUBD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 66E */ { VXInstructionMnemonic::VPSUBQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 66F */ { VXInstructionMnemonic::VPSUBSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 670 */ { VXInstructionMnemonic::VPSUBSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 671 */ { VXInstructionMnemonic::VPSUBUSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 672 */ { VXInstructionMnemonic::VPSUBUSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 673 */ { VXInstructionMnemonic::VPSUBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 674 */ { VXInstructionMnemonic::VPTEST, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL }, - /* 675 */ { VXInstructionMnemonic::VPUNPCKHBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 676 */ { VXInstructionMnemonic::VPUNPCKHDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 677 */ { VXInstructionMnemonic::VPUNPCKHQDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 678 */ { VXInstructionMnemonic::VPUNPCKHWD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 679 */ { VXInstructionMnemonic::VPUNPCKLBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 67A */ { VXInstructionMnemonic::VPUNPCKLDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 67B */ { VXInstructionMnemonic::VPUNPCKLQDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 67C */ { VXInstructionMnemonic::VPUNPCKLWD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 67D */ { VXInstructionMnemonic::VPXOR, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 67E */ { VXInstructionMnemonic::VRCPPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 67F */ { VXInstructionMnemonic::VRCPSS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 680 */ { VXInstructionMnemonic::VROUNDPD, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 681 */ { VXInstructionMnemonic::VROUNDPS, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 682 */ { VXInstructionMnemonic::VROUNDSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 683 */ { VXInstructionMnemonic::VROUNDSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 684 */ { VXInstructionMnemonic::VRSQRTPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 685 */ { VXInstructionMnemonic::VRSQRTSS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 686 */ { VXInstructionMnemonic::VSHUFPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 687 */ { VXInstructionMnemonic::VSHUFPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 688 */ { VXInstructionMnemonic::VSQRTPD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 689 */ { VXInstructionMnemonic::VSQRTPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, - /* 68A */ { VXInstructionMnemonic::VSQRTSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 68B */ { VXInstructionMnemonic::VSQRTSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 68C */ { VXInstructionMnemonic::VSTMXCSR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, - /* 68D */ { VXInstructionMnemonic::VSUBPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 68E */ { VXInstructionMnemonic::VSUBPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 68F */ { VXInstructionMnemonic::VSUBSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 690 */ { VXInstructionMnemonic::VSUBSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 691 */ { VXInstructionMnemonic::VTESTPD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL }, - /* 692 */ { VXInstructionMnemonic::VTESTPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL }, - /* 693 */ { VXInstructionMnemonic::VUCOMISD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 694 */ { VXInstructionMnemonic::VUCOMISS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 695 */ { VXInstructionMnemonic::VUNPCKHPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 696 */ { VXInstructionMnemonic::VUNPCKHPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 697 */ { VXInstructionMnemonic::VUNPCKLPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 698 */ { VXInstructionMnemonic::VUNPCKLPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 699 */ { VXInstructionMnemonic::VXORPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 69A */ { VXInstructionMnemonic::VXORPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 69B */ { VXInstructionMnemonic::VZEROALL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 69C */ { VXInstructionMnemonic::VZEROUPPER, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 69D */ { VXInstructionMnemonic::WAIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 69E */ { VXInstructionMnemonic::WBINVD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 69F */ { VXInstructionMnemonic::WRMSR, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 6A0 */ { VXInstructionMnemonic::XADD, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_WRITE }, - /* 6A1 */ { VXInstructionMnemonic::XADD, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_WRITE }, - /* 6A2 */ { VXInstructionMnemonic::XCHG, { OPI_R4v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, - /* 6A3 */ { VXInstructionMnemonic::XCHG, { OPI_R3v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, - /* 6A4 */ { VXInstructionMnemonic::XCHG, { OPI_R5v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, - /* 6A5 */ { VXInstructionMnemonic::XCHG, { OPI_R7v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, - /* 6A6 */ { VXInstructionMnemonic::XCHG, { OPI_R6v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, - /* 6A7 */ { VXInstructionMnemonic::XCHG, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, - /* 6A8 */ { VXInstructionMnemonic::XCHG, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, - /* 6A9 */ { VXInstructionMnemonic::XCHG, { OPI_R0v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, - /* 6AA */ { VXInstructionMnemonic::XCHG, { OPI_R2v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, - /* 6AB */ { VXInstructionMnemonic::XCHG, { OPI_R1v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, - /* 6AC */ { VXInstructionMnemonic::XCRYPTCBC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 6AD */ { VXInstructionMnemonic::XCRYPTCFB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 6AE */ { VXInstructionMnemonic::XCRYPTCTR, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 6AF */ { VXInstructionMnemonic::XCRYPTECB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 6B0 */ { VXInstructionMnemonic::XCRYPTOFB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 6B1 */ { VXInstructionMnemonic::XGETBV, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 6B2 */ { VXInstructionMnemonic::XLATB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXW | IDF_ACCEPTS_SEGMENT_PREFIX }, - /* 6B3 */ { VXInstructionMnemonic::XOR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, - /* 6B4 */ { VXInstructionMnemonic::XOR, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 6B5 */ { VXInstructionMnemonic::XOR, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 6B6 */ { VXInstructionMnemonic::XOR, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 6B7 */ { VXInstructionMnemonic::XOR, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 6B8 */ { VXInstructionMnemonic::XOR, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 6B9 */ { VXInstructionMnemonic::XOR, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 6BA */ { VXInstructionMnemonic::XOR, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, - /* 6BB */ { VXInstructionMnemonic::XOR, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, - /* 6BC */ { VXInstructionMnemonic::XOR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 6BD */ { VXInstructionMnemonic::XORPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 6BE */ { VXInstructionMnemonic::XORPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 6BF */ { VXInstructionMnemonic::XRSTOR, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 6C0 */ { VXInstructionMnemonic::XSAVE, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, - /* 6C1 */ { VXInstructionMnemonic::XSETBV, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 6C2 */ { VXInstructionMnemonic::XSHA1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 6C3 */ { VXInstructionMnemonic::XSHA256, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, - /* 6C4 */ { VXInstructionMnemonic::XSTORE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, -}; - -#undef OPI_NONE -#undef OPI_AL -#undef OPI_AX -#undef OPI_Av -#undef OPI_C -#undef OPI_CL -#undef OPI_CS -#undef OPI_CX -#undef OPI_D -#undef OPI_DL -#undef OPI_DS -#undef OPI_DX -#undef OPI_E -#undef OPI_ES -#undef OPI_Eb -#undef OPI_Ed -#undef OPI_Eq -#undef OPI_Ev -#undef OPI_Ew -#undef OPI_Ey -#undef OPI_Ez -#undef OPI_FS -#undef OPI_Fv -#undef OPI_G -#undef OPI_GS -#undef OPI_Gb -#undef OPI_Gd -#undef OPI_Gq -#undef OPI_Gv -#undef OPI_Gw -#undef OPI_Gy -#undef OPI_Gz -#undef OPI_H -#undef OPI_Hqq -#undef OPI_Hx -#undef OPI_I1 -#undef OPI_Ib -#undef OPI_Iv -#undef OPI_Iw -#undef OPI_Iz -#undef OPI_Jb -#undef OPI_Jv -#undef OPI_Jz -#undef OPI_L -#undef OPI_Lx -#undef OPI_M -#undef OPI_Mb -#undef OPI_MbRd -#undef OPI_MbRv -#undef OPI_Md -#undef OPI_MdRy -#undef OPI_MdU -#undef OPI_Mdq -#undef OPI_Mo -#undef OPI_Mq -#undef OPI_MqU -#undef OPI_Ms -#undef OPI_Mt -#undef OPI_Mv -#undef OPI_Mw -#undef OPI_MwRd -#undef OPI_MwRv -#undef OPI_MwRy -#undef OPI_MwU -#undef OPI_N -#undef OPI_Ob -#undef OPI_Ov -#undef OPI_Ow -#undef OPI_P -#undef OPI_Q -#undef OPI_R -#undef OPI_R0b -#undef OPI_R0v -#undef OPI_R0w -#undef OPI_R0y -#undef OPI_R0z -#undef OPI_R1b -#undef OPI_R1v -#undef OPI_R1w -#undef OPI_R1y -#undef OPI_R1z -#undef OPI_R2b -#undef OPI_R2v -#undef OPI_R2w -#undef OPI_R2y -#undef OPI_R2z -#undef OPI_R3b -#undef OPI_R3v -#undef OPI_R3w -#undef OPI_R3y -#undef OPI_R3z -#undef OPI_R4b -#undef OPI_R4v -#undef OPI_R4w -#undef OPI_R4y -#undef OPI_R4z -#undef OPI_R5b -#undef OPI_R5v -#undef OPI_R5w -#undef OPI_R5y -#undef OPI_R5z -#undef OPI_R6b -#undef OPI_R6v -#undef OPI_R6w -#undef OPI_R6y -#undef OPI_R6z -#undef OPI_R7b -#undef OPI_R7v -#undef OPI_R7w -#undef OPI_R7y -#undef OPI_R7z -#undef OPI_S -#undef OPI_SS -#undef OPI_ST0 -#undef OPI_ST1 -#undef OPI_ST2 -#undef OPI_ST3 -#undef OPI_ST4 -#undef OPI_ST5 -#undef OPI_ST6 -#undef OPI_ST7 -#undef OPI_U -#undef OPI_Ux -#undef OPI_V -#undef OPI_Vdq -#undef OPI_Vqq -#undef OPI_Vsd -#undef OPI_Vx -#undef OPI_W -#undef OPI_Wdq -#undef OPI_Wqq -#undef OPI_Wsd -#undef OPI_Wx -#undef OPI_eAX -#undef OPI_eCX -#undef OPI_eDX -#undef OPI_rAX -#undef OPI_rCX -#undef OPI_rDX -#undef OPI_sIb -#undef OPI_sIz - -const char* instrMnemonicStrings[] = -{ - /* 000 */ "invalid", - /* 001 */ "aaa", - /* 002 */ "aad", - /* 003 */ "aam", - /* 004 */ "aas", - /* 005 */ "adc", - /* 006 */ "add", - /* 007 */ "addpd", - /* 008 */ "addps", - /* 009 */ "addsd", - /* 00A */ "addss", - /* 00B */ "addsubpd", - /* 00C */ "addsubps", - /* 00D */ "aesdec", - /* 00E */ "aesdeclast", - /* 00F */ "aesenc", - /* 010 */ "aesenclast", - /* 011 */ "aesimc", - /* 012 */ "aeskeygenassist", - /* 013 */ "and", - /* 014 */ "andnpd", - /* 015 */ "andnps", - /* 016 */ "andpd", - /* 017 */ "andps", - /* 018 */ "arpl", - /* 019 */ "blendpd", - /* 01A */ "blendps", - /* 01B */ "blendvpd", - /* 01C */ "blendvps", - /* 01D */ "bound", - /* 01E */ "bsf", - /* 01F */ "bsr", - /* 020 */ "bswap", - /* 021 */ "bt", - /* 022 */ "btc", - /* 023 */ "btr", - /* 024 */ "bts", - /* 025 */ "call", - /* 026 */ "cbw", - /* 027 */ "cdq", - /* 028 */ "cdqe", - /* 029 */ "clc", - /* 02A */ "cld", - /* 02B */ "clflush", - /* 02C */ "clgi", - /* 02D */ "cli", - /* 02E */ "clts", - /* 02F */ "cmc", - /* 030 */ "cmova", - /* 031 */ "cmovae", - /* 032 */ "cmovb", - /* 033 */ "cmovbe", - /* 034 */ "cmove", - /* 035 */ "cmovg", - /* 036 */ "cmovge", - /* 037 */ "cmovl", - /* 038 */ "cmovle", - /* 039 */ "cmovne", - /* 03A */ "cmovno", - /* 03B */ "cmovnp", - /* 03C */ "cmovns", - /* 03D */ "cmovo", - /* 03E */ "cmovp", - /* 03F */ "cmovs", - /* 040 */ "cmp", - /* 041 */ "cmppd", - /* 042 */ "cmpps", - /* 043 */ "cmpsb", - /* 044 */ "cmpsd", - /* 045 */ "cmpsq", - /* 046 */ "cmpss", - /* 047 */ "cmpsw", - /* 048 */ "cmpxchg", - /* 049 */ "cmpxchg16b", - /* 04A */ "cmpxchg8b", - /* 04B */ "comisd", - /* 04C */ "comiss", - /* 04D */ "cpuid", - /* 04E */ "cqo", - /* 04F */ "crc32", - /* 050 */ "cvtdq2pd", - /* 051 */ "cvtdq2ps", - /* 052 */ "cvtpd2dq", - /* 053 */ "cvtpd2pi", - /* 054 */ "cvtpd2ps", - /* 055 */ "cvtpi2pd", - /* 056 */ "cvtpi2ps", - /* 057 */ "cvtps2dq", - /* 058 */ "cvtps2pd", - /* 059 */ "cvtps2pi", - /* 05A */ "cvtsd2si", - /* 05B */ "cvtsd2ss", - /* 05C */ "cvtsi2sd", - /* 05D */ "cvtsi2ss", - /* 05E */ "cvtss2sd", - /* 05F */ "cvtss2si", - /* 060 */ "cvttpd2dq", - /* 061 */ "cvttpd2pi", - /* 062 */ "cvttps2dq", - /* 063 */ "cvttps2pi", - /* 064 */ "cvttsd2si", - /* 065 */ "cvttss2si", - /* 066 */ "cwd", - /* 067 */ "cwde", - /* 068 */ "daa", - /* 069 */ "das", - /* 06A */ "dec", - /* 06B */ "div", - /* 06C */ "divpd", - /* 06D */ "divps", - /* 06E */ "divsd", - /* 06F */ "divss", - /* 070 */ "dppd", - /* 071 */ "dpps", - /* 072 */ "emms", - /* 073 */ "enter", - /* 074 */ "extractps", - /* 075 */ "f2xm1", - /* 076 */ "fabs", - /* 077 */ "fadd", - /* 078 */ "faddp", - /* 079 */ "fbld", - /* 07A */ "fbstp", - /* 07B */ "fchs", - /* 07C */ "fclex", - /* 07D */ "fcmovb", - /* 07E */ "fcmovbe", - /* 07F */ "fcmove", - /* 080 */ "fcmovnb", - /* 081 */ "fcmovnbe", - /* 082 */ "fcmovne", - /* 083 */ "fcmovnu", - /* 084 */ "fcmovu", - /* 085 */ "fcom", - /* 086 */ "fcom2", - /* 087 */ "fcomi", - /* 088 */ "fcomip", - /* 089 */ "fcomp", - /* 08A */ "fcomp3", - /* 08B */ "fcomp5", - /* 08C */ "fcompp", - /* 08D */ "fcos", - /* 08E */ "fdecstp", - /* 08F */ "fdiv", - /* 090 */ "fdivp", - /* 091 */ "fdivr", - /* 092 */ "fdivrp", - /* 093 */ "femms", - /* 094 */ "ffree", - /* 095 */ "ffreep", - /* 096 */ "fiadd", - /* 097 */ "ficom", - /* 098 */ "ficomp", - /* 099 */ "fidiv", - /* 09A */ "fidivr", - /* 09B */ "fild", - /* 09C */ "fimul", - /* 09D */ "fincstp", - /* 09E */ "fist", - /* 09F */ "fistp", - /* 0A0 */ "fisttp", - /* 0A1 */ "fisub", - /* 0A2 */ "fisubr", - /* 0A3 */ "fld", - /* 0A4 */ "fld1", - /* 0A5 */ "fldcw", - /* 0A6 */ "fldenv", - /* 0A7 */ "fldl2e", - /* 0A8 */ "fldl2t", - /* 0A9 */ "fldlg2", - /* 0AA */ "fldln2", - /* 0AB */ "fldpi", - /* 0AC */ "fldz", - /* 0AD */ "fmul", - /* 0AE */ "fmulp", - /* 0AF */ "fndisi", - /* 0B0 */ "fneni", - /* 0B1 */ "fninit", - /* 0B2 */ "fnop", - /* 0B3 */ "fnsave", - /* 0B4 */ "fnsetpm", - /* 0B5 */ "fnstcw", - /* 0B6 */ "fnstenv", - /* 0B7 */ "fnstsw", - /* 0B8 */ "fpatan", - /* 0B9 */ "fprem", - /* 0BA */ "fprem1", - /* 0BB */ "fptan", - /* 0BC */ "frndint", - /* 0BD */ "frstor", - /* 0BE */ "frstpm", - /* 0BF */ "fscale", - /* 0C0 */ "fsin", - /* 0C1 */ "fsincos", - /* 0C2 */ "fsqrt", - /* 0C3 */ "fst", - /* 0C4 */ "fstp", - /* 0C5 */ "fstp1", - /* 0C6 */ "fstp8", - /* 0C7 */ "fstp9", - /* 0C8 */ "fsub", - /* 0C9 */ "fsubp", - /* 0CA */ "fsubr", - /* 0CB */ "fsubrp", - /* 0CC */ "ftst", - /* 0CD */ "fucom", - /* 0CE */ "fucomi", - /* 0CF */ "fucomip", - /* 0D0 */ "fucomp", - /* 0D1 */ "fucompp", - /* 0D2 */ "fxam", - /* 0D3 */ "fxch", - /* 0D4 */ "fxch4", - /* 0D5 */ "fxch7", - /* 0D6 */ "fxrstor", - /* 0D7 */ "fxsave", - /* 0D8 */ "fxtract", - /* 0D9 */ "fyl2x", - /* 0DA */ "fyl2xp1", - /* 0DB */ "getsec", - /* 0DC */ "haddpd", - /* 0DD */ "haddps", - /* 0DE */ "hlt", - /* 0DF */ "hsubpd", - /* 0E0 */ "hsubps", - /* 0E1 */ "idiv", - /* 0E2 */ "imul", - /* 0E3 */ "in", - /* 0E4 */ "inc", - /* 0E5 */ "insb", - /* 0E6 */ "insd", - /* 0E7 */ "insertps", - /* 0E8 */ "insw", - /* 0E9 */ "int", - /* 0EA */ "int1", - /* 0EB */ "int3", - /* 0EC */ "into", - /* 0ED */ "invd", - /* 0EE */ "invept", - /* 0EF */ "invlpg", - /* 0F0 */ "invlpga", - /* 0F1 */ "invvpid", - /* 0F2 */ "iretd", - /* 0F3 */ "iretq", - /* 0F4 */ "iretw", - /* 0F5 */ "ja", - /* 0F6 */ "jb", - /* 0F7 */ "jbe", - /* 0F8 */ "jcxz", - /* 0F9 */ "je", - /* 0FA */ "jecxz", - /* 0FB */ "jg", - /* 0FC */ "jge", - /* 0FD */ "jl", - /* 0FE */ "jle", - /* 0FF */ "jmp", - /* 100 */ "jnb", - /* 101 */ "jne", - /* 102 */ "jno", - /* 103 */ "jnp", - /* 104 */ "jns", - /* 105 */ "jo", - /* 106 */ "jp", - /* 107 */ "jrcxz", - /* 108 */ "js", - /* 109 */ "lahf", - /* 10A */ "lar", - /* 10B */ "lddqu", - /* 10C */ "ldmxcsr", - /* 10D */ "lds", - /* 10E */ "lea", - /* 10F */ "leave", - /* 110 */ "les", - /* 111 */ "lfence", - /* 112 */ "lfs", - /* 113 */ "lgdt", - /* 114 */ "lgs", - /* 115 */ "lidt", - /* 116 */ "lldt", - /* 117 */ "lmsw", - /* 118 */ "lock", - /* 119 */ "lodsb", - /* 11A */ "lodsd", - /* 11B */ "lodsq", - /* 11C */ "lodsw", - /* 11D */ "loop", - /* 11E */ "loope", - /* 11F */ "loopne", - /* 120 */ "lsl", - /* 121 */ "lss", - /* 122 */ "ltr", - /* 123 */ "maskmovdqu", - /* 124 */ "maskmovq", - /* 125 */ "maxpd", - /* 126 */ "maxps", - /* 127 */ "maxsd", - /* 128 */ "maxss", - /* 129 */ "mfence", - /* 12A */ "minpd", - /* 12B */ "minps", - /* 12C */ "minsd", - /* 12D */ "minss", - /* 12E */ "monitor", - /* 12F */ "montmul", - /* 130 */ "mov", - /* 131 */ "movapd", - /* 132 */ "movaps", - /* 133 */ "movbe", - /* 134 */ "movd", - /* 135 */ "movddup", - /* 136 */ "movdq2q", - /* 137 */ "movdqa", - /* 138 */ "movdqu", - /* 139 */ "movhlps", - /* 13A */ "movhpd", - /* 13B */ "movhps", - /* 13C */ "movlhps", - /* 13D */ "movlpd", - /* 13E */ "movlps", - /* 13F */ "movmskpd", - /* 140 */ "movmskps", - /* 141 */ "movntdq", - /* 142 */ "movntdqa", - /* 143 */ "movnti", - /* 144 */ "movntpd", - /* 145 */ "movntps", - /* 146 */ "movntq", - /* 147 */ "movq", - /* 148 */ "movq2dq", - /* 149 */ "movsb", - /* 14A */ "movsd", - /* 14B */ "movshdup", - /* 14C */ "movsldup", - /* 14D */ "movsq", - /* 14E */ "movss", - /* 14F */ "movsw", - /* 150 */ "movsx", - /* 151 */ "movsxd", - /* 152 */ "movupd", - /* 153 */ "movups", - /* 154 */ "movzx", - /* 155 */ "mpsadbw", - /* 156 */ "mul", - /* 157 */ "mulpd", - /* 158 */ "mulps", - /* 159 */ "mulsd", - /* 15A */ "mulss", - /* 15B */ "mwait", - /* 15C */ "neg", - /* 15D */ "nop", - /* 15E */ "not", - /* 15F */ "or", - /* 160 */ "orpd", - /* 161 */ "orps", - /* 162 */ "out", - /* 163 */ "outsb", - /* 164 */ "outsd", - /* 165 */ "outsw", - /* 166 */ "pabsb", - /* 167 */ "pabsd", - /* 168 */ "pabsw", - /* 169 */ "packssdw", - /* 16A */ "packsswb", - /* 16B */ "packusdw", - /* 16C */ "packuswb", - /* 16D */ "paddb", - /* 16E */ "paddd", - /* 16F */ "paddq", - /* 170 */ "paddsb", - /* 171 */ "paddsw", - /* 172 */ "paddusb", - /* 173 */ "paddusw", - /* 174 */ "paddw", - /* 175 */ "palignr", - /* 176 */ "pand", - /* 177 */ "pandn", - /* 178 */ "pause", - /* 179 */ "pavgb", - /* 17A */ "pavgusb", - /* 17B */ "pavgw", - /* 17C */ "pblendvb", - /* 17D */ "pblendw", - /* 17E */ "pclmulqdq", - /* 17F */ "pcmpeqb", - /* 180 */ "pcmpeqd", - /* 181 */ "pcmpeqq", - /* 182 */ "pcmpeqw", - /* 183 */ "pcmpestri", - /* 184 */ "pcmpestrm", - /* 185 */ "pcmpgtb", - /* 186 */ "pcmpgtd", - /* 187 */ "pcmpgtq", - /* 188 */ "pcmpgtw", - /* 189 */ "pcmpistri", - /* 18A */ "pcmpistrm", - /* 18B */ "pextrb", - /* 18C */ "pextrd", - /* 18D */ "pextrq", - /* 18E */ "pextrw", - /* 18F */ "pf2id", - /* 190 */ "pf2iw", - /* 191 */ "pfacc", - /* 192 */ "pfadd", - /* 193 */ "pfcmpeq", - /* 194 */ "pfcmpge", - /* 195 */ "pfcmpgt", - /* 196 */ "pfmax", - /* 197 */ "pfmin", - /* 198 */ "pfmul", - /* 199 */ "pfnacc", - /* 19A */ "pfpnacc", - /* 19B */ "pfrcp", - /* 19C */ "pfrcpit1", - /* 19D */ "pfrcpit2", - /* 19E */ "pfrsqit1", - /* 19F */ "pfrsqrt", - /* 1A0 */ "pfsub", - /* 1A1 */ "pfsubr", - /* 1A2 */ "phaddd", - /* 1A3 */ "phaddsw", - /* 1A4 */ "phaddw", - /* 1A5 */ "phminposuw", - /* 1A6 */ "phsubd", - /* 1A7 */ "phsubsw", - /* 1A8 */ "phsubw", - /* 1A9 */ "pi2fd", - /* 1AA */ "pi2fw", - /* 1AB */ "pinsrb", - /* 1AC */ "pinsrd", - /* 1AD */ "pinsrq", - /* 1AE */ "pinsrw", - /* 1AF */ "pmaddubsw", - /* 1B0 */ "pmaddwd", - /* 1B1 */ "pmaxsb", - /* 1B2 */ "pmaxsd", - /* 1B3 */ "pmaxsw", - /* 1B4 */ "pmaxub", - /* 1B5 */ "pmaxud", - /* 1B6 */ "pmaxuw", - /* 1B7 */ "pminsb", - /* 1B8 */ "pminsd", - /* 1B9 */ "pminsw", - /* 1BA */ "pminub", - /* 1BB */ "pminud", - /* 1BC */ "pminuw", - /* 1BD */ "pmovmskb", - /* 1BE */ "pmovsxbd", - /* 1BF */ "pmovsxbq", - /* 1C0 */ "pmovsxbw", - /* 1C1 */ "pmovsxdq", - /* 1C2 */ "pmovsxwd", - /* 1C3 */ "pmovsxwq", - /* 1C4 */ "pmovzxbd", - /* 1C5 */ "pmovzxbq", - /* 1C6 */ "pmovzxbw", - /* 1C7 */ "pmovzxdq", - /* 1C8 */ "pmovzxwd", - /* 1C9 */ "pmovzxwq", - /* 1CA */ "pmuldq", - /* 1CB */ "pmulhrsw", - /* 1CC */ "pmulhrw", - /* 1CD */ "pmulhuw", - /* 1CE */ "pmulhw", - /* 1CF */ "pmulld", - /* 1D0 */ "pmullw", - /* 1D1 */ "pmuludq", - /* 1D2 */ "pop", - /* 1D3 */ "popa", - /* 1D4 */ "popad", - /* 1D5 */ "popcnt", - /* 1D6 */ "popfd", - /* 1D7 */ "popfq", - /* 1D8 */ "popfw", - /* 1D9 */ "por", - /* 1DA */ "prefetch", - /* 1DB */ "prefetchnta", - /* 1DC */ "prefetcht0", - /* 1DD */ "prefetcht1", - /* 1DE */ "prefetcht2", - /* 1DF */ "psadbw", - /* 1E0 */ "pshufb", - /* 1E1 */ "pshufd", - /* 1E2 */ "pshufhw", - /* 1E3 */ "pshuflw", - /* 1E4 */ "pshufw", - /* 1E5 */ "psignb", - /* 1E6 */ "psignd", - /* 1E7 */ "psignw", - /* 1E8 */ "pslld", - /* 1E9 */ "pslldq", - /* 1EA */ "psllq", - /* 1EB */ "psllw", - /* 1EC */ "psrad", - /* 1ED */ "psraw", - /* 1EE */ "psrld", - /* 1EF */ "psrldq", - /* 1F0 */ "psrlq", - /* 1F1 */ "psrlw", - /* 1F2 */ "psubb", - /* 1F3 */ "psubd", - /* 1F4 */ "psubq", - /* 1F5 */ "psubsb", - /* 1F6 */ "psubsw", - /* 1F7 */ "psubusb", - /* 1F8 */ "psubusw", - /* 1F9 */ "psubw", - /* 1FA */ "pswapd", - /* 1FB */ "ptest", - /* 1FC */ "punpckhbw", - /* 1FD */ "punpckhdq", - /* 1FE */ "punpckhqdq", - /* 1FF */ "punpckhwd", - /* 200 */ "punpcklbw", - /* 201 */ "punpckldq", - /* 202 */ "punpcklqdq", - /* 203 */ "punpcklwd", - /* 204 */ "push", - /* 205 */ "pusha", - /* 206 */ "pushad", - /* 207 */ "pushfd", - /* 208 */ "pushfq", - /* 209 */ "pushfw", - /* 20A */ "pxor", - /* 20B */ "rcl", - /* 20C */ "rcpps", - /* 20D */ "rcpss", - /* 20E */ "rcr", - /* 20F */ "rdmsr", - /* 210 */ "rdpmc", - /* 211 */ "rdrand", - /* 212 */ "rdtsc", - /* 213 */ "rdtscp", - /* 214 */ "rep", - /* 215 */ "repne", - /* 216 */ "ret", - /* 217 */ "retf", - /* 218 */ "rol", - /* 219 */ "ror", - /* 21A */ "roundpd", - /* 21B */ "roundps", - /* 21C */ "roundsd", - /* 21D */ "roundss", - /* 21E */ "rsm", - /* 21F */ "rsqrtps", - /* 220 */ "rsqrtss", - /* 221 */ "sahf", - /* 222 */ "salc", - /* 223 */ "sar", - /* 224 */ "sbb", - /* 225 */ "scasb", - /* 226 */ "scasd", - /* 227 */ "scasq", - /* 228 */ "scasw", - /* 229 */ "seta", - /* 22A */ "setae", - /* 22B */ "setb", - /* 22C */ "setbe", - /* 22D */ "sete", - /* 22E */ "setg", - /* 22F */ "setge", - /* 230 */ "setl", - /* 231 */ "setle", - /* 232 */ "setne", - /* 233 */ "setno", - /* 234 */ "setnp", - /* 235 */ "setns", - /* 236 */ "seto", - /* 237 */ "setp", - /* 238 */ "sets", - /* 239 */ "sfence", - /* 23A */ "sgdt", - /* 23B */ "shl", - /* 23C */ "shld", - /* 23D */ "shr", - /* 23E */ "shrd", - /* 23F */ "shufpd", - /* 240 */ "shufps", - /* 241 */ "sidt", - /* 242 */ "skinit", - /* 243 */ "sldt", - /* 244 */ "smsw", - /* 245 */ "sqrtpd", - /* 246 */ "sqrtps", - /* 247 */ "sqrtsd", - /* 248 */ "sqrtss", - /* 249 */ "stc", - /* 24A */ "std", - /* 24B */ "stgi", - /* 24C */ "sti", - /* 24D */ "stmxcsr", - /* 24E */ "stosb", - /* 24F */ "stosd", - /* 250 */ "stosq", - /* 251 */ "stosw", - /* 252 */ "str", - /* 253 */ "sub", - /* 254 */ "subpd", - /* 255 */ "subps", - /* 256 */ "subsd", - /* 257 */ "subss", - /* 258 */ "swapgs", - /* 259 */ "syscall", - /* 25A */ "sysenter", - /* 25B */ "sysexit", - /* 25C */ "sysret", - /* 25D */ "test", - /* 25E */ "ucomisd", - /* 25F */ "ucomiss", - /* 260 */ "ud2", - /* 261 */ "unpckhpd", - /* 262 */ "unpckhps", - /* 263 */ "unpcklpd", - /* 264 */ "unpcklps", - /* 265 */ "vaddpd", - /* 266 */ "vaddps", - /* 267 */ "vaddsd", - /* 268 */ "vaddss", - /* 269 */ "vaddsubpd", - /* 26A */ "vaddsubps", - /* 26B */ "vaesdec", - /* 26C */ "vaesdeclast", - /* 26D */ "vaesenc", - /* 26E */ "vaesenclast", - /* 26F */ "vaesimc", - /* 270 */ "vaeskeygenassist", - /* 271 */ "vandnpd", - /* 272 */ "vandnps", - /* 273 */ "vandpd", - /* 274 */ "vandps", - /* 275 */ "vblendpd", - /* 276 */ "vblendps", - /* 277 */ "vblendvpd", - /* 278 */ "vblendvps", - /* 279 */ "vbroadcastsd", - /* 27A */ "vbroadcastss", - /* 27B */ "vcmppd", - /* 27C */ "vcmpps", - /* 27D */ "vcmpsd", - /* 27E */ "vcmpss", - /* 27F */ "vcomisd", - /* 280 */ "vcomiss", - /* 281 */ "vcvtdq2pd", - /* 282 */ "vcvtdq2ps", - /* 283 */ "vcvtpd2dq", - /* 284 */ "vcvtpd2ps", - /* 285 */ "vcvtps2dq", - /* 286 */ "vcvtps2pd", - /* 287 */ "vcvtsd2si", - /* 288 */ "vcvtsd2ss", - /* 289 */ "vcvtsi2sd", - /* 28A */ "vcvtsi2ss", - /* 28B */ "vcvtss2sd", - /* 28C */ "vcvtss2si", - /* 28D */ "vcvttpd2dq", - /* 28E */ "vcvttps2dq", - /* 28F */ "vcvttsd2si", - /* 290 */ "vcvttss2si", - /* 291 */ "vdivpd", - /* 292 */ "vdivps", - /* 293 */ "vdivsd", - /* 294 */ "vdivss", - /* 295 */ "vdppd", - /* 296 */ "vdpps", - /* 297 */ "verr", - /* 298 */ "verw", - /* 299 */ "vextractf128", - /* 29A */ "vextractps", - /* 29B */ "vhaddpd", - /* 29C */ "vhaddps", - /* 29D */ "vhsubpd", - /* 29E */ "vhsubps", - /* 29F */ "vinsertf128", - /* 2A0 */ "vinsertps", - /* 2A1 */ "vlddqu", - /* 2A2 */ "vmaskmovdqu", - /* 2A3 */ "vmaskmovpd", - /* 2A4 */ "vmaskmovps", - /* 2A5 */ "vmaxpd", - /* 2A6 */ "vmaxps", - /* 2A7 */ "vmaxsd", - /* 2A8 */ "vmaxss", - /* 2A9 */ "vmcall", - /* 2AA */ "vmclear", - /* 2AB */ "vminpd", - /* 2AC */ "vminps", - /* 2AD */ "vminsd", - /* 2AE */ "vminss", - /* 2AF */ "vmlaunch", - /* 2B0 */ "vmload", - /* 2B1 */ "vmmcall", - /* 2B2 */ "vmovapd", - /* 2B3 */ "vmovaps", - /* 2B4 */ "vmovd", - /* 2B5 */ "vmovddup", - /* 2B6 */ "vmovdqa", - /* 2B7 */ "vmovdqu", - /* 2B8 */ "vmovhlps", - /* 2B9 */ "vmovhpd", - /* 2BA */ "vmovhps", - /* 2BB */ "vmovlhps", - /* 2BC */ "vmovlpd", - /* 2BD */ "vmovlps", - /* 2BE */ "vmovmskpd", - /* 2BF */ "vmovmskps", - /* 2C0 */ "vmovntdq", - /* 2C1 */ "vmovntdqa", - /* 2C2 */ "vmovntpd", - /* 2C3 */ "vmovntps", - /* 2C4 */ "vmovq", - /* 2C5 */ "vmovsd", - /* 2C6 */ "vmovshdup", - /* 2C7 */ "vmovsldup", - /* 2C8 */ "vmovss", - /* 2C9 */ "vmovupd", - /* 2CA */ "vmovups", - /* 2CB */ "vmpsadbw", - /* 2CC */ "vmptrld", - /* 2CD */ "vmptrst", - /* 2CE */ "vmread", - /* 2CF */ "vmresume", - /* 2D0 */ "vmrun", - /* 2D1 */ "vmsave", - /* 2D2 */ "vmulpd", - /* 2D3 */ "vmulps", - /* 2D4 */ "vmulsd", - /* 2D5 */ "vmulss", - /* 2D6 */ "vmwrite", - /* 2D7 */ "vmxoff", - /* 2D8 */ "vmxon", - /* 2D9 */ "vorpd", - /* 2DA */ "vorps", - /* 2DB */ "vpabsb", - /* 2DC */ "vpabsd", - /* 2DD */ "vpabsw", - /* 2DE */ "vpackssdw", - /* 2DF */ "vpacksswb", - /* 2E0 */ "vpackusdw", - /* 2E1 */ "vpackuswb", - /* 2E2 */ "vpaddb", - /* 2E3 */ "vpaddd", - /* 2E4 */ "vpaddq", - /* 2E5 */ "vpaddsb", - /* 2E6 */ "vpaddsw", - /* 2E7 */ "vpaddusb", - /* 2E8 */ "vpaddusw", - /* 2E9 */ "vpaddw", - /* 2EA */ "vpalignr", - /* 2EB */ "vpand", - /* 2EC */ "vpandn", - /* 2ED */ "vpavgb", - /* 2EE */ "vpavgw", - /* 2EF */ "vpblendvb", - /* 2F0 */ "vpblendw", - /* 2F1 */ "vpclmulqdq", - /* 2F2 */ "vpcmpeqb", - /* 2F3 */ "vpcmpeqd", - /* 2F4 */ "vpcmpeqq", - /* 2F5 */ "vpcmpeqw", - /* 2F6 */ "vpcmpestri", - /* 2F7 */ "vpcmpestrm", - /* 2F8 */ "vpcmpgtb", - /* 2F9 */ "vpcmpgtd", - /* 2FA */ "vpcmpgtq", - /* 2FB */ "vpcmpgtw", - /* 2FC */ "vpcmpistri", - /* 2FD */ "vpcmpistrm", - /* 2FE */ "vperm2f128", - /* 2FF */ "vpermilpd", - /* 300 */ "vpermilps", - /* 301 */ "vpextrb", - /* 302 */ "vpextrd", - /* 303 */ "vpextrq", - /* 304 */ "vpextrw", - /* 305 */ "vphaddd", - /* 306 */ "vphaddsw", - /* 307 */ "vphaddw", - /* 308 */ "vphminposuw", - /* 309 */ "vphsubd", - /* 30A */ "vphsubsw", - /* 30B */ "vphsubw", - /* 30C */ "vpinsrb", - /* 30D */ "vpinsrd", - /* 30E */ "vpinsrq", - /* 30F */ "vpinsrw", - /* 310 */ "vpmaddubsw", - /* 311 */ "vpmaddwd", - /* 312 */ "vpmaxsb", - /* 313 */ "vpmaxsd", - /* 314 */ "vpmaxsw", - /* 315 */ "vpmaxub", - /* 316 */ "vpmaxud", - /* 317 */ "vpmaxuw", - /* 318 */ "vpminsb", - /* 319 */ "vpminsd", - /* 31A */ "vpminsw", - /* 31B */ "vpminub", - /* 31C */ "vpminud", - /* 31D */ "vpminuw", - /* 31E */ "vpmovmskb", - /* 31F */ "vpmovsxbd", - /* 320 */ "vpmovsxbq", - /* 321 */ "vpmovsxbw", - /* 322 */ "vpmovsxwd", - /* 323 */ "vpmovsxwq", - /* 324 */ "vpmovzxbd", - /* 325 */ "vpmovzxbq", - /* 326 */ "vpmovzxbw", - /* 327 */ "vpmovzxdq", - /* 328 */ "vpmovzxwd", - /* 329 */ "vpmovzxwq", - /* 32A */ "vpmuldq", - /* 32B */ "vpmulhrsw", - /* 32C */ "vpmulhuw", - /* 32D */ "vpmulhw", - /* 32E */ "vpmulld", - /* 32F */ "vpmullw", - /* 330 */ "vpor", - /* 331 */ "vpsadbw", - /* 332 */ "vpshufb", - /* 333 */ "vpshufd", - /* 334 */ "vpshufhw", - /* 335 */ "vpshuflw", - /* 336 */ "vpsignb", - /* 337 */ "vpsignd", - /* 338 */ "vpsignw", - /* 339 */ "vpslld", - /* 33A */ "vpslldq", - /* 33B */ "vpsllq", - /* 33C */ "vpsllw", - /* 33D */ "vpsrad", - /* 33E */ "vpsraw", - /* 33F */ "vpsrld", - /* 340 */ "vpsrldq", - /* 341 */ "vpsrlq", - /* 342 */ "vpsrlw", - /* 343 */ "vpsubb", - /* 344 */ "vpsubd", - /* 345 */ "vpsubq", - /* 346 */ "vpsubsb", - /* 347 */ "vpsubsw", - /* 348 */ "vpsubusb", - /* 349 */ "vpsubusw", - /* 34A */ "vpsubw", - /* 34B */ "vptest", - /* 34C */ "vpunpckhbw", - /* 34D */ "vpunpckhdq", - /* 34E */ "vpunpckhqdq", - /* 34F */ "vpunpckhwd", - /* 350 */ "vpunpcklbw", - /* 351 */ "vpunpckldq", - /* 352 */ "vpunpcklqdq", - /* 353 */ "vpunpcklwd", - /* 354 */ "vpxor", - /* 355 */ "vrcpps", - /* 356 */ "vrcpss", - /* 357 */ "vroundpd", - /* 358 */ "vroundps", - /* 359 */ "vroundsd", - /* 35A */ "vroundss", - /* 35B */ "vrsqrtps", - /* 35C */ "vrsqrtss", - /* 35D */ "vshufpd", - /* 35E */ "vshufps", - /* 35F */ "vsqrtpd", - /* 360 */ "vsqrtps", - /* 361 */ "vsqrtsd", - /* 362 */ "vsqrtss", - /* 363 */ "vstmxcsr", - /* 364 */ "vsubpd", - /* 365 */ "vsubps", - /* 366 */ "vsubsd", - /* 367 */ "vsubss", - /* 368 */ "vtestpd", - /* 369 */ "vtestps", - /* 36A */ "vucomisd", - /* 36B */ "vucomiss", - /* 36C */ "vunpckhpd", - /* 36D */ "vunpckhps", - /* 36E */ "vunpcklpd", - /* 36F */ "vunpcklps", - /* 370 */ "vxorpd", - /* 371 */ "vxorps", - /* 372 */ "vzeroall", - /* 373 */ "vzeroupper", - /* 374 */ "wait", - /* 375 */ "wbinvd", - /* 376 */ "wrmsr", - /* 377 */ "xadd", - /* 378 */ "xchg", - /* 379 */ "xcryptcbc", - /* 37A */ "xcryptcfb", - /* 37B */ "xcryptctr", - /* 37C */ "xcryptecb", - /* 37D */ "xcryptofb", - /* 37E */ "xgetbv", - /* 37F */ "xlatb", - /* 380 */ "xor", - /* 381 */ "xorpd", - /* 382 */ "xorps", - /* 383 */ "xrstor", - /* 384 */ "xsave", - /* 385 */ "xsetbv", - /* 386 */ "xsha1", - /* 387 */ "xsha256", - /* 388 */ "xstore", -}; - -} - -} diff --git a/Bindings/Cpp/VXDisassembler.hpp b/Bindings/Cpp/ZyDisDisassembler.hpp similarity index 90% rename from Bindings/Cpp/VXDisassembler.hpp rename to Bindings/Cpp/ZyDisDisassembler.hpp index c537e68..705e21a 100644 --- a/Bindings/Cpp/VXDisassembler.hpp +++ b/Bindings/Cpp/ZyDisDisassembler.hpp @@ -32,7 +32,7 @@ #pragma once -#include "VXDisassemblerTypes.hpp" -#include "VXInstructionDecoder.hpp" -#include "VXInstructionFormatter.hpp" -#include "VXDisassemblerUtils.hpp" +#include "ZyDisDisassemblerTypes.hpp" +#include "ZyDisInstructionDecoder.hpp" +#include "ZyDisInstructionFormatter.hpp" +#include "ZyDisDisassemblerUtils.hpp" diff --git a/Bindings/Cpp/VXDisassemblerTypes.hpp b/Bindings/Cpp/ZyDisDisassemblerTypes.hpp similarity index 97% rename from Bindings/Cpp/VXDisassemblerTypes.hpp rename to Bindings/Cpp/ZyDisDisassemblerTypes.hpp index 1e0d526..257a4df 100644 --- a/Bindings/Cpp/VXDisassemblerTypes.hpp +++ b/Bindings/Cpp/ZyDisDisassemblerTypes.hpp @@ -32,7 +32,7 @@ #pragma once #include -#include "VXOpcodeTable.hpp" +#include "ZyDisOpcodeTable.hpp" namespace Verteron { @@ -128,7 +128,7 @@ enum InstructionFlags : uint32_t /** * @brief Values that represent a cpu register. */ -enum class VXRegister : uint16_t +enum class ZyDisRegister : uint16_t { NONE, /* 8 bit general purpose registers */ @@ -188,7 +188,7 @@ enum class VXRegister : uint16_t /** * @brief Values that represent the type of a decoded operand. */ -enum class VXOperandType : uint8_t +enum class ZyDisOperandType : uint8_t { /** * @brief The operand is not used. @@ -223,7 +223,7 @@ enum class VXOperandType : uint8_t /** * @brief Values that represent the operand access mode. */ -enum class VXOperandAccessMode : uint8_t +enum class ZyDisOperandAccessMode : uint8_t { NA, /** @@ -243,12 +243,12 @@ enum class VXOperandAccessMode : uint8_t /** * @brief This struct holds information about a decoded operand. */ -struct VXOperandInfo +struct ZyDisOperandInfo { /** * @brief The type of the operand. */ - VXOperandType type; + ZyDisOperandType type; /** * @brief The size of the operand. */ @@ -256,15 +256,15 @@ struct VXOperandInfo /** * @brief The operand access mode. */ - VXOperandAccessMode access_mode; + ZyDisOperandAccessMode access_mode; /** * @brief The base register. */ - VXRegister base; + ZyDisRegister base; /** * @brief The index register. */ - VXRegister index; + ZyDisRegister index; /** * @brief The scale factor. */ @@ -300,7 +300,7 @@ struct VXOperandInfo /** * @brief This struct holds information about a decoded instruction. */ -struct VXInstructionInfo +struct ZyDisInstructionInfo { /** * @brief The instruction flags. @@ -309,7 +309,7 @@ struct VXInstructionInfo /** * @brief The instruction mnemonic. */ - VXInstructionMnemonic mnemonic; + ZyDisInstructionMnemonic mnemonic; /** * @brief The total length of the instruction. */ @@ -337,12 +337,12 @@ struct VXInstructionInfo /** * @brief The decoded operands. */ - VXOperandInfo operand[4]; + ZyDisOperandInfo operand[4]; /** * @brief The segment register. This value will default to @c NONE, if no segment register * prefix is present. */ - VXRegister segment; + ZyDisRegister segment; /** * @brief The rex prefix byte. */ @@ -512,7 +512,7 @@ struct VXInstructionInfo /** * @brief The instruction definition. */ - const VXInstructionDefinition *instrDefinition; + const ZyDisInstructionDefinition *instrDefinition; /** * @brief The instruction address points to the current instruction (relative to the * initial instruction pointer). diff --git a/Bindings/Cpp/VXDisassemblerUtils.cpp b/Bindings/Cpp/ZyDisDisassemblerUtils.cpp similarity index 85% rename from Bindings/Cpp/VXDisassemblerUtils.cpp rename to Bindings/Cpp/ZyDisDisassemblerUtils.cpp index 1dad08f..2c7b61a 100644 --- a/Bindings/Cpp/VXDisassemblerUtils.cpp +++ b/Bindings/Cpp/ZyDisDisassemblerUtils.cpp @@ -29,16 +29,16 @@ * SOFTWARE. **************************************************************************************************/ -#include "VXDisassemblerUtils.hpp" +#include "ZyDisDisassemblerUtils.hpp" #include namespace Verteron { -uint64_t VDECalcAbsoluteTarget(const VXInstructionInfo &info, const VXOperandInfo &operand) +uint64_t VDECalcAbsoluteTarget(const ZyDisInstructionInfo &info, const ZyDisOperandInfo &operand) { - assert((operand.type == VXOperandType::REL_IMMEDIATE) || - ((operand.type == VXOperandType::MEMORY) && (operand.base == VXRegister::RIP))); + assert((operand.type == ZyDisOperandType::REL_IMMEDIATE) || + ((operand.type == ZyDisOperandType::MEMORY) && (operand.base == ZyDisRegister::RIP))); uint64_t truncMask = 0xFFFFFFFFFFFFFFFFull; if (!(info.flags & IF_DISASSEMBLER_MODE_64)) @@ -46,7 +46,7 @@ uint64_t VDECalcAbsoluteTarget(const VXInstructionInfo &info, const VXOperandInf truncMask >>= (64 - info.operand_mode); } uint16_t size = operand.size; - if ((operand.type == VXOperandType::MEMORY) && (operand.base == VXRegister::RIP)) + if ((operand.type == ZyDisOperandType::MEMORY) && (operand.base == ZyDisRegister::RIP)) { size = operand.offset; } diff --git a/Bindings/Cpp/VXDisassemblerUtils.hpp b/Bindings/Cpp/ZyDisDisassemblerUtils.hpp similarity index 92% rename from Bindings/Cpp/VXDisassemblerUtils.hpp rename to Bindings/Cpp/ZyDisDisassemblerUtils.hpp index 72086d2..6068ade 100644 --- a/Bindings/Cpp/VXDisassemblerUtils.hpp +++ b/Bindings/Cpp/ZyDisDisassemblerUtils.hpp @@ -32,7 +32,7 @@ #pragma once #include -#include "VXDisassemblerTypes.hpp" +#include "ZyDisDisassemblerTypes.hpp" namespace Verteron { @@ -43,6 +43,6 @@ namespace Verteron * @param operand The operand. * @return The absolute target address. */ -uint64_t VDECalcAbsoluteTarget(const VXInstructionInfo &info, const VXOperandInfo &operand); +uint64_t VDECalcAbsoluteTarget(const ZyDisInstructionInfo &info, const ZyDisOperandInfo &operand); } diff --git a/Bindings/Cpp/VXInstructionDecoder.cpp b/Bindings/Cpp/ZyDisInstructionDecoder.cpp similarity index 69% rename from Bindings/Cpp/VXInstructionDecoder.cpp rename to Bindings/Cpp/ZyDisInstructionDecoder.cpp index 1861388..6672c6c 100644 --- a/Bindings/Cpp/VXInstructionDecoder.cpp +++ b/Bindings/Cpp/ZyDisInstructionDecoder.cpp @@ -29,16 +29,16 @@ * SOFTWARE. **************************************************************************************************/ -#include "VXInstructionDecoder.hpp" +#include "ZyDisInstructionDecoder.hpp" #include namespace Verteron { -bool VXInstructionDecoder::decodeRegisterOperand(VXInstructionInfo &info, VXOperandInfo &operand, - RegisterClass registerClass, uint8_t registerId, VXDefinedOperandSize operandSize) const +bool ZyDisInstructionDecoder::decodeRegisterOperand(ZyDisInstructionInfo &info, ZyDisOperandInfo &operand, + RegisterClass registerClass, uint8_t registerId, ZyDisDefinedOperandSize operandSize) const { - VXRegister reg = VXRegister::NONE; + ZyDisRegister reg = ZyDisRegister::NONE; uint16_t size = getEffectiveOperandSize(info, operandSize); switch (registerClass) { @@ -46,35 +46,35 @@ bool VXInstructionDecoder::decodeRegisterOperand(VXInstructionInfo &info, VXOper switch (size) { case 64: - reg = static_cast(static_cast(VXRegister::RAX) + registerId); + reg = static_cast(static_cast(ZyDisRegister::RAX) + registerId); break; case 32: - reg = static_cast(static_cast(VXRegister::EAX) + registerId); + reg = static_cast(static_cast(ZyDisRegister::EAX) + registerId); break; case 16: - reg = static_cast(static_cast(VXRegister::AX) + registerId); + reg = static_cast(static_cast(ZyDisRegister::AX) + registerId); break; case 8: // TODO: Only REX? Or VEX too? - if (m_disassemblerMode == VXDisassemblerMode::M64BIT && (info.flags & IF_PREFIX_REX)) + if (m_disassemblerMode == ZyDisDisassemblerMode::M64BIT && (info.flags & IF_PREFIX_REX)) { if (registerId >= 4) { - reg = static_cast( - static_cast(VXRegister::SPL) + (registerId - 4)); + reg = static_cast( + static_cast(ZyDisRegister::SPL) + (registerId - 4)); } else { - reg = static_cast( - static_cast(VXRegister::AL) + registerId); + reg = static_cast( + static_cast(ZyDisRegister::AL) + registerId); } } else { - reg = static_cast(static_cast(VXRegister::AL) + registerId); + reg = static_cast(static_cast(ZyDisRegister::AL) + registerId); } break; case 0: // TODO: Error? - reg = VXRegister::NONE; + reg = ZyDisRegister::NONE; break; default: assert(0); @@ -82,13 +82,13 @@ bool VXInstructionDecoder::decodeRegisterOperand(VXInstructionInfo &info, VXOper break; case RegisterClass::MMX: reg = - static_cast(static_cast(VXRegister::MM0) + (registerId & 0x07)); + static_cast(static_cast(ZyDisRegister::MM0) + (registerId & 0x07)); break; case RegisterClass::CONTROL: - reg = static_cast(static_cast(VXRegister::CR0) + registerId); + reg = static_cast(static_cast(ZyDisRegister::CR0) + registerId); break; case RegisterClass::DEBUG: - reg = static_cast(static_cast(VXRegister::DR0) + registerId); + reg = static_cast(static_cast(ZyDisRegister::DR0) + registerId); break; case RegisterClass::SEGMENT: if ((registerId & 7) > 5) @@ -96,23 +96,23 @@ bool VXInstructionDecoder::decodeRegisterOperand(VXInstructionInfo &info, VXOper info.flags |= IF_ERROR_OPERAND; return false; } - reg = static_cast(static_cast(VXRegister::ES) + (registerId & 0x07)); + reg = static_cast(static_cast(ZyDisRegister::ES) + (registerId & 0x07)); break; case RegisterClass::XMM: - reg = static_cast(registerId + static_cast( - ((size == 256) ? VXRegister::YMM0 : VXRegister::XMM0))); + reg = static_cast(registerId + static_cast( + ((size == 256) ? ZyDisRegister::YMM0 : ZyDisRegister::XMM0))); break; default: assert(0); } - operand.type = VXOperandType::REGISTER; - operand.base = static_cast(reg); + operand.type = ZyDisOperandType::REGISTER; + operand.base = static_cast(reg); operand.size = size; return true; } -bool VXInstructionDecoder::decodeRegisterMemoryOperand(VXInstructionInfo &info, - VXOperandInfo &operand, RegisterClass registerClass, VXDefinedOperandSize operandSize) +bool ZyDisInstructionDecoder::decodeRegisterMemoryOperand(ZyDisInstructionInfo &info, + ZyDisOperandInfo &operand, RegisterClass registerClass, ZyDisDefinedOperandSize operandSize) { if (!decodeModrm(info)) { @@ -127,24 +127,24 @@ bool VXInstructionDecoder::decodeRegisterMemoryOperand(VXInstructionInfo &info, } // Decode memory operand uint8_t offset = 0; - operand.type = VXOperandType::MEMORY; + operand.type = ZyDisOperandType::MEMORY; operand.size = getEffectiveOperandSize(info, operandSize); switch (info.address_mode) { case 16: { - static const VXRegister bases[] = { - VXRegister::BX, VXRegister::BX, VXRegister::BP, VXRegister::BP, - VXRegister::SI, VXRegister::DI, VXRegister::BP, VXRegister::BX }; - static const VXRegister indices[] = { - VXRegister::SI, VXRegister::DI, VXRegister::SI, VXRegister::DI, - VXRegister::NONE, VXRegister::NONE, VXRegister::NONE, VXRegister::NONE }; - operand.base = static_cast(bases[info.modrm_rm_ext & 0x07]); - operand.index = static_cast(indices[info.modrm_rm_ext & 0x07]); + static const ZyDisRegister bases[] = { + ZyDisRegister::BX, ZyDisRegister::BX, ZyDisRegister::BP, ZyDisRegister::BP, + ZyDisRegister::SI, ZyDisRegister::DI, ZyDisRegister::BP, ZyDisRegister::BX }; + static const ZyDisRegister indices[] = { + ZyDisRegister::SI, ZyDisRegister::DI, ZyDisRegister::SI, ZyDisRegister::DI, + ZyDisRegister::NONE, ZyDisRegister::NONE, ZyDisRegister::NONE, ZyDisRegister::NONE }; + operand.base = static_cast(bases[info.modrm_rm_ext & 0x07]); + operand.index = static_cast(indices[info.modrm_rm_ext & 0x07]); operand.scale = 0; if (info.modrm_mod == 0 && info.modrm_rm_ext == 6) { offset = 16; - operand.base = VXRegister::NONE; + operand.base = ZyDisRegister::NONE; } else if (info.modrm_mod == 1) { offset = 8; } else if (info.modrm_mod == 2) { @@ -154,13 +154,13 @@ bool VXInstructionDecoder::decodeRegisterMemoryOperand(VXInstructionInfo &info, break; case 32: operand.base = - static_cast(static_cast(VXRegister::EAX) + info.modrm_rm_ext); + static_cast(static_cast(ZyDisRegister::EAX) + info.modrm_rm_ext); switch (info.modrm_mod) { case 0: if (info.modrm_rm_ext == 5) { - operand.base = VXRegister::NONE; + operand.base = ZyDisRegister::NONE; offset = 32; } break; @@ -180,22 +180,22 @@ bool VXInstructionDecoder::decodeRegisterMemoryOperand(VXInstructionInfo &info, return false; } operand.base = - static_cast(static_cast(VXRegister::EAX) + + static_cast(static_cast(ZyDisRegister::EAX) + info.sib_base_ext); operand.index = - static_cast(static_cast(VXRegister::EAX) + + static_cast(static_cast(ZyDisRegister::EAX) + info.sib_index_ext); operand.scale = (1 << info.sib_scale) & ~1; - if (operand.index == VXRegister::ESP) + if (operand.index == ZyDisRegister::ESP) { - operand.index = VXRegister::NONE; + operand.index = ZyDisRegister::NONE; operand.scale = 0; } - if (operand.base == VXRegister::EBP) + if (operand.base == ZyDisRegister::EBP) { if (info.modrm_mod == 0) { - operand.base = VXRegister::NONE; + operand.base = ZyDisRegister::NONE; } if (info.modrm_mod == 1) { @@ -207,20 +207,20 @@ bool VXInstructionDecoder::decodeRegisterMemoryOperand(VXInstructionInfo &info, } } else { - operand.index = VXRegister::NONE; + operand.index = ZyDisRegister::NONE; operand.scale = 0; } break; case 64: operand.base = - static_cast(static_cast(VXRegister::RAX) + info.modrm_rm_ext); + static_cast(static_cast(ZyDisRegister::RAX) + info.modrm_rm_ext); switch (info.modrm_mod) { case 0: if ((info.modrm_rm_ext & 0x07) == 5) { info.flags |= IF_RELATIVE; - operand.base = VXRegister::RIP; + operand.base = ZyDisRegister::RIP; offset = 32; } break; @@ -240,24 +240,24 @@ bool VXInstructionDecoder::decodeRegisterMemoryOperand(VXInstructionInfo &info, return false; } operand.base = - static_cast(static_cast(VXRegister::RAX) + + static_cast(static_cast(ZyDisRegister::RAX) + info.sib_base_ext); operand.index = - static_cast(static_cast(VXRegister::RAX) + + static_cast(static_cast(ZyDisRegister::RAX) + info.sib_index_ext); - if (operand.index == VXRegister::RSP) + if (operand.index == ZyDisRegister::RSP) { - operand.index = VXRegister::NONE; + operand.index = ZyDisRegister::NONE; operand.scale = 0; } else { operand.scale = (1 << info.sib_scale) & ~1; } - if ((operand.base == VXRegister::RBP) || (operand.base == VXRegister::R13)) + if ((operand.base == ZyDisRegister::RBP) || (operand.base == ZyDisRegister::R13)) { if (info.modrm_mod == 0) { - operand.base = VXRegister::NONE; + operand.base = ZyDisRegister::NONE; } if (info.modrm_mod == 1) { @@ -269,7 +269,7 @@ bool VXInstructionDecoder::decodeRegisterMemoryOperand(VXInstructionInfo &info, } } else { - operand.index = VXRegister::NONE; + operand.index = ZyDisRegister::NONE; operand.scale = 0; } break; @@ -287,10 +287,10 @@ bool VXInstructionDecoder::decodeRegisterMemoryOperand(VXInstructionInfo &info, return true; } -bool VXInstructionDecoder::decodeImmediate(VXInstructionInfo &info, VXOperandInfo &operand, - VXDefinedOperandSize operandSize) +bool ZyDisInstructionDecoder::decodeImmediate(ZyDisInstructionInfo &info, ZyDisOperandInfo &operand, + ZyDisDefinedOperandSize operandSize) { - operand.type = VXOperandType::IMMEDIATE; + operand.type = ZyDisOperandType::IMMEDIATE; operand.size = getEffectiveOperandSize(info, operandSize); switch (operand.size) { @@ -317,7 +317,7 @@ bool VXInstructionDecoder::decodeImmediate(VXInstructionInfo &info, VXOperandInf return true; } -bool VXInstructionDecoder::decodeDisplacement(VXInstructionInfo &info, VXOperandInfo &operand, +bool ZyDisInstructionDecoder::decodeDisplacement(ZyDisInstructionInfo &info, ZyDisOperandInfo &operand, uint8_t size) { switch (size) @@ -349,7 +349,7 @@ bool VXInstructionDecoder::decodeDisplacement(VXInstructionInfo &info, VXOperand return true; } -bool VXInstructionDecoder::decodeModrm(VXInstructionInfo &info) +bool ZyDisInstructionDecoder::decodeModrm(ZyDisInstructionInfo &info) { if (!(info.flags & IF_MODRM)) { @@ -372,7 +372,7 @@ bool VXInstructionDecoder::decodeModrm(VXInstructionInfo &info) return true; } -bool VXInstructionDecoder::decodeSIB(VXInstructionInfo &info) +bool ZyDisInstructionDecoder::decodeSIB(ZyDisInstructionInfo &info) { assert(info.flags & IF_MODRM); assert((info.modrm_rm & 0x7) == 4); @@ -395,7 +395,7 @@ bool VXInstructionDecoder::decodeSIB(VXInstructionInfo &info) return true; } -bool VXInstructionDecoder::decodeVex(VXInstructionInfo &info) +bool ZyDisInstructionDecoder::decodeVex(ZyDisInstructionInfo &info) { if (!(info.flags & IF_PREFIX_VEX)) { @@ -451,32 +451,32 @@ bool VXInstructionDecoder::decodeVex(VXInstructionInfo &info) return true; } -uint16_t VXInstructionDecoder::getEffectiveOperandSize(const VXInstructionInfo &info, - VXDefinedOperandSize operandSize) const +uint16_t ZyDisInstructionDecoder::getEffectiveOperandSize(const ZyDisInstructionInfo &info, + ZyDisDefinedOperandSize operandSize) const { switch (operandSize) { - case VXDefinedOperandSize::NA: + case ZyDisDefinedOperandSize::NA: return 0; - case VXDefinedOperandSize::Z: + case ZyDisDefinedOperandSize::Z: return (info.operand_mode == 16) ? 16 : 32; - case VXDefinedOperandSize::V: + case ZyDisDefinedOperandSize::V: return info.operand_mode; - case VXDefinedOperandSize::Y: + case ZyDisDefinedOperandSize::Y: return (info.operand_mode == 16) ? 32 : info.operand_mode; - case VXDefinedOperandSize::X: + case ZyDisDefinedOperandSize::X: assert(info.vex_op != 0); return (info.eff_vex_l) ? - getEffectiveOperandSize(info, VXDefinedOperandSize::QQ) : - getEffectiveOperandSize(info, VXDefinedOperandSize::DQ); - case VXDefinedOperandSize::RDQ: - return (m_disassemblerMode == VXDisassemblerMode::M64BIT) ? 64 : 32; + getEffectiveOperandSize(info, ZyDisDefinedOperandSize::QQ) : + getEffectiveOperandSize(info, ZyDisDefinedOperandSize::DQ); + case ZyDisDefinedOperandSize::RDQ: + return (m_disassemblerMode == ZyDisDisassemblerMode::M64BIT) ? 64 : 32; default: return Internal::VDEGetSimpleOperandSize(operandSize); } } -bool VXInstructionDecoder::decodeOperands(VXInstructionInfo &info) +bool ZyDisInstructionDecoder::decodeOperands(ZyDisInstructionInfo &info) { assert(info.instrDefinition); // Always try to decode the first operand @@ -488,7 +488,7 @@ bool VXInstructionDecoder::decodeOperands(VXInstructionInfo &info) // Decode other operands on demand for (unsigned int i = 1; i < 4; ++i) { - if (info.operand[i - 1].type != VXOperandType::NONE) + if (info.operand[i - 1].type != ZyDisOperandType::NONE) { if (!decodeOperand(info, info.operand[i], info.instrDefinition->operand[i].type, info.instrDefinition->operand[i].size)) @@ -500,26 +500,26 @@ bool VXInstructionDecoder::decodeOperands(VXInstructionInfo &info) // Update operand access modes for (unsigned int i = 0; i < 4; ++i) { - if (info.operand[i].type != VXOperandType::NONE) + if (info.operand[i].type != ZyDisOperandType::NONE) { - info.operand[i].access_mode = VXOperandAccessMode::READ; + info.operand[i].access_mode = ZyDisOperandAccessMode::READ; if (i == 0) { if (info.instrDefinition->flags & IDF_OPERAND1_WRITE) { - info.operand[0].access_mode = VXOperandAccessMode::WRITE; + info.operand[0].access_mode = ZyDisOperandAccessMode::WRITE; } else if (info.instrDefinition->flags & IDF_OPERAND1_READWRITE) { - info.operand[0].access_mode = VXOperandAccessMode::READWRITE; + info.operand[0].access_mode = ZyDisOperandAccessMode::READWRITE; } } else if (i == 1) { if (info.instrDefinition->flags & IDF_OPERAND2_WRITE) { - info.operand[1].access_mode = VXOperandAccessMode::WRITE; + info.operand[1].access_mode = ZyDisOperandAccessMode::WRITE; } else if (info.instrDefinition->flags & IDF_OPERAND2_READWRITE) { - info.operand[1].access_mode = VXOperandAccessMode::READWRITE; + info.operand[1].access_mode = ZyDisOperandAccessMode::READWRITE; } } } @@ -527,17 +527,17 @@ bool VXInstructionDecoder::decodeOperands(VXInstructionInfo &info) return true; } -bool VXInstructionDecoder::decodeOperand(VXInstructionInfo &info, VXOperandInfo &operand, - VXDefinedOperandType operandType, VXDefinedOperandSize operandSize) +bool ZyDisInstructionDecoder::decodeOperand(ZyDisInstructionInfo &info, ZyDisOperandInfo &operand, + ZyDisDefinedOperandType operandType, ZyDisDefinedOperandSize operandSize) { using namespace Internal; - operand.type = VXOperandType::NONE; + operand.type = ZyDisOperandType::NONE; switch (operandType) { - case VXDefinedOperandType::NONE: + case ZyDisDefinedOperandType::NONE: break; - case VXDefinedOperandType::A: - operand.type = VXOperandType::POINTER; + case ZyDisDefinedOperandType::A: + operand.type = ZyDisOperandType::POINTER; if (info.operand_mode == 16) { operand.size = 32; @@ -553,61 +553,61 @@ bool VXInstructionDecoder::decodeOperand(VXInstructionInfo &info, VXOperandInfo return false; } break; - case VXDefinedOperandType::C: + case ZyDisDefinedOperandType::C: if (!decodeModrm(info)) { return false; } return decodeRegisterOperand(info, operand, RegisterClass::CONTROL, info.modrm_reg_ext, operandSize); - case VXDefinedOperandType::D: + case ZyDisDefinedOperandType::D: if (!decodeModrm(info)) { return false; } return decodeRegisterOperand(info, operand, RegisterClass::DEBUG, info.modrm_reg_ext, operandSize); - case VXDefinedOperandType::F: + case ZyDisDefinedOperandType::F: // TODO: FAR flag - case VXDefinedOperandType::M: + case ZyDisDefinedOperandType::M: // ModR/M byte may refer only to a register if (info.modrm_mod == 3) { info.flags |= IF_ERROR_OPERAND; return false; } - case VXDefinedOperandType::E: + case ZyDisDefinedOperandType::E: return decodeRegisterMemoryOperand(info, operand, RegisterClass::GENERAL_PURPOSE, operandSize); - case VXDefinedOperandType::G: + case ZyDisDefinedOperandType::G: if (!decodeModrm(info)) { return false; } return decodeRegisterOperand(info, operand, RegisterClass::GENERAL_PURPOSE, info.modrm_reg_ext, operandSize); - case VXDefinedOperandType::H: + case ZyDisDefinedOperandType::H: assert(info.vex_op != 0); return decodeRegisterOperand(info, operand, RegisterClass::XMM, (0xF & ~info.vex_vvvv), operandSize); - case VXDefinedOperandType::sI: + case ZyDisDefinedOperandType::sI: operand.signed_lval = true; - case VXDefinedOperandType::I: + case ZyDisDefinedOperandType::I: return decodeImmediate(info, operand, operandSize); - case VXDefinedOperandType::I1: - operand.type = VXOperandType::CONSTANT; + case ZyDisDefinedOperandType::I1: + operand.type = ZyDisOperandType::CONSTANT; operand.lval.udword = 1; break; - case VXDefinedOperandType::J: + case ZyDisDefinedOperandType::J: if (!decodeImmediate(info, operand, operandSize)) { return false; } - operand.type = VXOperandType::REL_IMMEDIATE; + operand.type = ZyDisOperandType::REL_IMMEDIATE; operand.signed_lval = true; info.flags |= IF_RELATIVE; break; - case VXDefinedOperandType::L: + case ZyDisDefinedOperandType::L: { assert(info.vex_op != 0); uint8_t imm = inputNext(info); @@ -615,42 +615,42 @@ bool VXInstructionDecoder::decodeOperand(VXInstructionInfo &info, VXOperandInfo { return false; } - uint8_t mask = (m_disassemblerMode == VXDisassemblerMode::M64BIT) ? 0xF : 0x7; + uint8_t mask = (m_disassemblerMode == ZyDisDisassemblerMode::M64BIT) ? 0xF : 0x7; return decodeRegisterOperand(info, operand, RegisterClass::XMM, mask & (imm >> 4), operandSize); } - case VXDefinedOperandType::MR: + case ZyDisDefinedOperandType::MR: return decodeRegisterMemoryOperand(info, operand, RegisterClass::GENERAL_PURPOSE, info.modrm_mod == 3 ? VDEGetComplexOperandRegSize(operandSize) : VDEGetComplexOperandMemSize(operandSize)); - case VXDefinedOperandType::MU: + case ZyDisDefinedOperandType::MU: return decodeRegisterMemoryOperand(info, operand, RegisterClass::XMM, info.modrm_mod == 3 ? VDEGetComplexOperandRegSize(operandSize) : VDEGetComplexOperandMemSize(operandSize)); - case VXDefinedOperandType::N: + case ZyDisDefinedOperandType::N: // ModR/M byte may refer only to memory if (info.modrm_mod != 3) { info.flags |= IF_ERROR_OPERAND; return false; } - case VXDefinedOperandType::Q: + case ZyDisDefinedOperandType::Q: return decodeRegisterMemoryOperand(info, operand, RegisterClass::MMX, operandSize); - case VXDefinedOperandType::O: - operand.type = VXOperandType::MEMORY; - operand.base = VXRegister::NONE; - operand.index = VXRegister::NONE; + case ZyDisDefinedOperandType::O: + operand.type = ZyDisOperandType::MEMORY; + operand.base = ZyDisRegister::NONE; + operand.index = ZyDisRegister::NONE; operand.scale = 0; operand.size = getEffectiveOperandSize(info, operandSize); return decodeDisplacement(info, operand, info.address_mode); - case VXDefinedOperandType::P: + case ZyDisDefinedOperandType::P: if (!decodeModrm(info)) { return false; } return decodeRegisterOperand(info, operand, RegisterClass::MMX, info.modrm_reg_ext, operandSize); - case VXDefinedOperandType::R: + case ZyDisDefinedOperandType::R: // ModR/M byte may refer only to memory if (info.modrm_mod != 3) { @@ -659,91 +659,91 @@ bool VXInstructionDecoder::decodeOperand(VXInstructionInfo &info, VXOperandInfo } return decodeRegisterMemoryOperand(info, operand, RegisterClass::GENERAL_PURPOSE, operandSize); - case VXDefinedOperandType::S: + case ZyDisDefinedOperandType::S: if (!decodeModrm(info)) { return false; } return decodeRegisterOperand(info, operand, RegisterClass::SEGMENT, info.modrm_reg_ext, operandSize); - case VXDefinedOperandType::U: + case ZyDisDefinedOperandType::U: // ModR/M byte may refer only to memory if (info.modrm_mod != 3) { info.flags |= IF_ERROR_OPERAND; return false; } - case VXDefinedOperandType::W: + case ZyDisDefinedOperandType::W: return decodeRegisterMemoryOperand(info, operand, RegisterClass::XMM, operandSize); - case VXDefinedOperandType::V: + case ZyDisDefinedOperandType::V: if (!decodeModrm(info)) { return false; } return decodeRegisterOperand(info, operand, RegisterClass::XMM, info.modrm_reg_ext, operandSize); - case VXDefinedOperandType::R0: - case VXDefinedOperandType::R1: - case VXDefinedOperandType::R2: - case VXDefinedOperandType::R3: - case VXDefinedOperandType::R4: - case VXDefinedOperandType::R5: - case VXDefinedOperandType::R6: - case VXDefinedOperandType::R7: + case ZyDisDefinedOperandType::R0: + case ZyDisDefinedOperandType::R1: + case ZyDisDefinedOperandType::R2: + case ZyDisDefinedOperandType::R3: + case ZyDisDefinedOperandType::R4: + case ZyDisDefinedOperandType::R5: + case ZyDisDefinedOperandType::R6: + case ZyDisDefinedOperandType::R7: return decodeRegisterOperand(info, operand, RegisterClass::GENERAL_PURPOSE, ((info.eff_rexvex_b << 3) | (static_cast(operandType) - - static_cast(VXDefinedOperandType::R0))), operandSize); - case VXDefinedOperandType::AL: - case VXDefinedOperandType::AX: - case VXDefinedOperandType::EAX: - case VXDefinedOperandType::RAX: + static_cast(ZyDisDefinedOperandType::R0))), operandSize); + case ZyDisDefinedOperandType::AL: + case ZyDisDefinedOperandType::AX: + case ZyDisDefinedOperandType::EAX: + case ZyDisDefinedOperandType::RAX: return decodeRegisterOperand(info, operand, RegisterClass::GENERAL_PURPOSE, 0, operandSize); - case VXDefinedOperandType::CL: - case VXDefinedOperandType::CX: - case VXDefinedOperandType::ECX: - case VXDefinedOperandType::RCX: + case ZyDisDefinedOperandType::CL: + case ZyDisDefinedOperandType::CX: + case ZyDisDefinedOperandType::ECX: + case ZyDisDefinedOperandType::RCX: return decodeRegisterOperand(info, operand, RegisterClass::GENERAL_PURPOSE, 1, operandSize); - case VXDefinedOperandType::DL: - case VXDefinedOperandType::DX: - case VXDefinedOperandType::EDX: - case VXDefinedOperandType::RDX: + case ZyDisDefinedOperandType::DL: + case ZyDisDefinedOperandType::DX: + case ZyDisDefinedOperandType::EDX: + case ZyDisDefinedOperandType::RDX: return decodeRegisterOperand(info, operand, RegisterClass::GENERAL_PURPOSE, 2, operandSize); - case VXDefinedOperandType::ES: - case VXDefinedOperandType::CS: - case VXDefinedOperandType::SS: - case VXDefinedOperandType::DS: - case VXDefinedOperandType::FS: - case VXDefinedOperandType::GS: - if (m_disassemblerMode == VXDisassemblerMode::M64BIT) + case ZyDisDefinedOperandType::ES: + case ZyDisDefinedOperandType::CS: + case ZyDisDefinedOperandType::SS: + case ZyDisDefinedOperandType::DS: + case ZyDisDefinedOperandType::FS: + case ZyDisDefinedOperandType::GS: + if (m_disassemblerMode == ZyDisDisassemblerMode::M64BIT) { - if ((operandType != VXDefinedOperandType::FS) && - (operandType != VXDefinedOperandType::GS)) + if ((operandType != ZyDisDefinedOperandType::FS) && + (operandType != ZyDisDefinedOperandType::GS)) { info.flags |= IF_ERROR_OPERAND; return false; } } - operand.type = VXOperandType::REGISTER; - operand.base = static_cast((static_cast(operandType) - - static_cast(VXDefinedOperandType::ES)) + - static_cast(VXRegister::ES)); + operand.type = ZyDisOperandType::REGISTER; + operand.base = static_cast((static_cast(operandType) - + static_cast(ZyDisDefinedOperandType::ES)) + + static_cast(ZyDisRegister::ES)); operand.size = 16; break; - case VXDefinedOperandType::ST0: - case VXDefinedOperandType::ST1: - case VXDefinedOperandType::ST2: - case VXDefinedOperandType::ST3: - case VXDefinedOperandType::ST4: - case VXDefinedOperandType::ST5: - case VXDefinedOperandType::ST6: - case VXDefinedOperandType::ST7: - operand.type = VXOperandType::REGISTER; - operand.base = static_cast((static_cast(operandType) - - static_cast(VXDefinedOperandType::ST0)) + - static_cast(VXRegister::ST0)); + case ZyDisDefinedOperandType::ST0: + case ZyDisDefinedOperandType::ST1: + case ZyDisDefinedOperandType::ST2: + case ZyDisDefinedOperandType::ST3: + case ZyDisDefinedOperandType::ST4: + case ZyDisDefinedOperandType::ST5: + case ZyDisDefinedOperandType::ST6: + case ZyDisDefinedOperandType::ST7: + operand.type = ZyDisOperandType::REGISTER; + operand.base = static_cast((static_cast(operandType) - + static_cast(ZyDisDefinedOperandType::ST0)) + + static_cast(ZyDisRegister::ST0)); operand.size = 80; break; default: @@ -752,20 +752,20 @@ bool VXInstructionDecoder::decodeOperand(VXInstructionInfo &info, VXOperandInfo return true; } -void VXInstructionDecoder::resolveOperandAndAddressMode(VXInstructionInfo &info) const +void ZyDisInstructionDecoder::resolveOperandAndAddressMode(ZyDisInstructionInfo &info) const { assert(info.instrDefinition); switch (m_disassemblerMode) { - case VXDisassemblerMode::M16BIT: + case ZyDisDisassemblerMode::M16BIT: info.operand_mode = (info.flags & IF_PREFIX_OPERAND_SIZE) ? 32 : 16; info.address_mode = (info.flags & IF_PREFIX_ADDRESS_SIZE) ? 32 : 16; break; - case VXDisassemblerMode::M32BIT: + case ZyDisDisassemblerMode::M32BIT: info.operand_mode = (info.flags & IF_PREFIX_OPERAND_SIZE) ? 16 : 32; info.address_mode = (info.flags & IF_PREFIX_ADDRESS_SIZE) ? 16 : 32; break; - case VXDisassemblerMode::M64BIT: + case ZyDisDisassemblerMode::M64BIT: if (info.eff_rexvex_w) { info.operand_mode = 64; @@ -783,7 +783,7 @@ void VXInstructionDecoder::resolveOperandAndAddressMode(VXInstructionInfo &info) } } -void VXInstructionDecoder::calculateEffectiveRexVexValues(VXInstructionInfo &info) const +void ZyDisInstructionDecoder::calculateEffectiveRexVexValues(ZyDisInstructionInfo &info) const { assert(info.instrDefinition); uint8_t rex = info.rex; @@ -809,7 +809,7 @@ void VXInstructionDecoder::calculateEffectiveRexVexValues(VXInstructionInfo &inf info.eff_vex_l = info.vex_l && (info.instrDefinition->flags & IDF_ACCEPTS_VEXL); } -bool VXInstructionDecoder::decodePrefixes(VXInstructionInfo &info) +bool ZyDisInstructionDecoder::decodePrefixes(ZyDisInstructionInfo &info) { bool done = false; do @@ -831,27 +831,27 @@ bool VXInstructionDecoder::decodePrefixes(VXInstructionInfo &info) break; case 0x2E: info.flags |= IF_PREFIX_SEGMENT; - info.segment = VXRegister::CS; + info.segment = ZyDisRegister::CS; break; case 0x36: info.flags |= IF_PREFIX_SEGMENT; - info.segment = VXRegister::SS; + info.segment = ZyDisRegister::SS; break; case 0x3E: info.flags |= IF_PREFIX_SEGMENT; - info.segment = VXRegister::DS; + info.segment = ZyDisRegister::DS; break; case 0x26: info.flags |= IF_PREFIX_SEGMENT; - info.segment = VXRegister::ES; + info.segment = ZyDisRegister::ES; break; case 0x64: info.flags |= IF_PREFIX_SEGMENT; - info.segment = VXRegister::FS; + info.segment = ZyDisRegister::FS; break; case 0x65: info.flags |= IF_PREFIX_SEGMENT; - info.segment = VXRegister::GS; + info.segment = ZyDisRegister::GS; break; case 0x66: info.flags |= IF_PREFIX_OPERAND_SIZE; @@ -860,7 +860,7 @@ bool VXInstructionDecoder::decodePrefixes(VXInstructionInfo &info) info.flags |= IF_PREFIX_ADDRESS_SIZE; break; default: - if ((m_disassemblerMode == VXDisassemblerMode::M64BIT) && + if ((m_disassemblerMode == ZyDisDisassemblerMode::M64BIT) && (inputCurrent() & 0xF0) == 0x40) { info.flags |= IF_PREFIX_REX; @@ -892,7 +892,7 @@ bool VXInstructionDecoder::decodePrefixes(VXInstructionInfo &info) return true; } -bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) +bool ZyDisInstructionDecoder::decodeOpcode(ZyDisInstructionInfo &info) { using namespace Internal; // Read first opcode byte @@ -904,15 +904,15 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) info.opcode[0] = inputCurrent(); info.opcode_length = 1; // Iterate through opcode tree - VXOpcodeTreeNode node = VDEGetOpcodeTreeChild(VDEGetOpcodeTreeRoot(), inputCurrent()); - VXOpcodeTreeNodeType nodeType; + ZyDisOpcodeTreeNode node = VDEGetOpcodeTreeChild(VDEGetOpcodeTreeRoot(), inputCurrent()); + ZyDisOpcodeTreeNodeType nodeType; do { uint16_t index = 0; nodeType = VDEGetOpcodeNodeType(node); switch (nodeType) { - case VXOpcodeTreeNodeType::INSTRUCTION_DEFINITION: + case ZyDisOpcodeTreeNodeType::INSTRUCTION_DEFINITION: { // Check for invalid instruction if (VDEGetOpcodeNodeValue(node) == 0) @@ -921,9 +921,9 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) return false; } // Get instruction definition - const VXInstructionDefinition *instrDefinition = VDEGetInstructionDefinition(node); + const ZyDisInstructionDefinition *instrDefinition = VDEGetInstructionDefinition(node); // Check for invalid 64 bit instruction - if ((m_disassemblerMode == VXDisassemblerMode::M64BIT) && + if ((m_disassemblerMode == ZyDisDisassemblerMode::M64BIT) && (instrDefinition->flags & IDF_INVALID_64)) { info.flags |= IF_ERROR_INVALID_64; @@ -943,7 +943,7 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) } } return true; - case VXOpcodeTreeNodeType::TABLE: + case ZyDisOpcodeTreeNodeType::TABLE: // Read next opcode byte if (!inputNext(info) && (info.flags & IF_ERROR_MASK)) { @@ -956,7 +956,7 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) // Set child node index for next iteration index = inputCurrent(); break; - case VXOpcodeTreeNodeType::MODRM_MOD: + case ZyDisOpcodeTreeNodeType::MODRM_MOD: // Decode modrm byte if (!decodeModrm(info)) { @@ -964,7 +964,7 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) } index = (info.modrm_mod == 0x3) ? 1 : 0; break; - case VXOpcodeTreeNodeType::MODRM_REG: + case ZyDisOpcodeTreeNodeType::MODRM_REG: // Decode modrm byte if (!decodeModrm(info)) { @@ -972,7 +972,7 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) } index = info.modrm_reg; break; - case VXOpcodeTreeNodeType::MODRM_RM: + case ZyDisOpcodeTreeNodeType::MODRM_RM: // Decode modrm byte if (!decodeModrm(info)) { @@ -980,7 +980,7 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) } index = info.modrm_rm; break; - case VXOpcodeTreeNodeType::MANDATORY: + case ZyDisOpcodeTreeNodeType::MANDATORY: // Check if there are any prefixes present if (info.flags & IF_PREFIX_REP) { @@ -1009,7 +1009,7 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) } } break; - case VXOpcodeTreeNodeType::X87: + case ZyDisOpcodeTreeNodeType::X87: // Decode modrm byte if (!decodeModrm(info)) { @@ -1017,63 +1017,63 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) } index = info.modrm - 0xC0; break; - case VXOpcodeTreeNodeType::ADDRESS_SIZE: + case ZyDisOpcodeTreeNodeType::ADDRESS_SIZE: switch (m_disassemblerMode) { - case VXDisassemblerMode::M16BIT: + case ZyDisDisassemblerMode::M16BIT: index = (info.flags & IF_PREFIX_ADDRESS_SIZE) ? 1 : 0; break; - case VXDisassemblerMode::M32BIT: + case ZyDisDisassemblerMode::M32BIT: index = (info.flags & IF_PREFIX_ADDRESS_SIZE) ? 0 : 1; break; - case VXDisassemblerMode::M64BIT: + case ZyDisDisassemblerMode::M64BIT: index = (info.flags & IF_PREFIX_ADDRESS_SIZE) ? 1 : 2; break; default: assert(0); } break; - case VXOpcodeTreeNodeType::OPERAND_SIZE: + case ZyDisOpcodeTreeNodeType::OPERAND_SIZE: switch (m_disassemblerMode) { - case VXDisassemblerMode::M16BIT: + case ZyDisDisassemblerMode::M16BIT: index = (info.flags & IF_PREFIX_OPERAND_SIZE) ? 1 : 0; break; - case VXDisassemblerMode::M32BIT: + case ZyDisDisassemblerMode::M32BIT: index = (info.flags & IF_PREFIX_OPERAND_SIZE) ? 0 : 1; break; - case VXDisassemblerMode::M64BIT: + case ZyDisDisassemblerMode::M64BIT: index = (info.rex_w) ? 2 : ((info.flags & IF_PREFIX_OPERAND_SIZE) ? 0 : 1); break; default: assert(0); } break; - case VXOpcodeTreeNodeType::MODE: - index = (m_disassemblerMode != VXDisassemblerMode::M64BIT) ? 0 : 1; + case ZyDisOpcodeTreeNodeType::MODE: + index = (m_disassemblerMode != ZyDisDisassemblerMode::M64BIT) ? 0 : 1; break; - case VXOpcodeTreeNodeType::VENDOR: + case ZyDisOpcodeTreeNodeType::VENDOR: switch (m_preferredVendor) { - case VXInstructionSetVendor::ANY: + case ZyDisInstructionSetVendor::ANY: index = (VDEGetOpcodeTreeChild(node, 0) != 0) ? 0 : 1; break; - case VXInstructionSetVendor::INTEL: + case ZyDisInstructionSetVendor::INTEL: index = 1; break; - case VXInstructionSetVendor::AMD: + case ZyDisInstructionSetVendor::AMD: index = 0; break; default: assert(0); } break; - case VXOpcodeTreeNodeType::AMD3DNOW: + case ZyDisOpcodeTreeNodeType::AMD3DNOW: { // As all 3dnow instructions got the same operands and flag definitions, we just // decode a random instruction and determine the specific opcode later. assert(VDEGetOpcodeTreeChild(node, 0x0C) != 0); - const VXInstructionDefinition *instrDefinition = + const ZyDisInstructionDefinition *instrDefinition = VDEGetInstructionDefinition(VDEGetOpcodeTreeChild(node, 0x0C)); // Update instruction info info.instrDefinition = instrDefinition; @@ -1097,7 +1097,7 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) instrDefinition = VDEGetInstructionDefinition(VDEGetOpcodeTreeChild(node, info.opcode[2])); if (!instrDefinition || - (instrDefinition->mnemonic == VXInstructionMnemonic::INVALID)) + (instrDefinition->mnemonic == ZyDisInstructionMnemonic::INVALID)) { info.flags |= IF_ERROR_INVALID; return false; @@ -1107,36 +1107,36 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) // Update operand access modes for (unsigned int i = 0; i < 4; ++i) { - if (info.operand[i].type != VXOperandType::NONE) + if (info.operand[i].type != ZyDisOperandType::NONE) { - info.operand[i - 1].access_mode = VXOperandAccessMode::READ; + info.operand[i - 1].access_mode = ZyDisOperandAccessMode::READ; } } - if (info.operand[0].type != VXOperandType::NONE) + if (info.operand[0].type != ZyDisOperandType::NONE) { if (info.instrDefinition->flags & IDF_OPERAND1_WRITE) { - info.operand[0].access_mode = VXOperandAccessMode::WRITE; + info.operand[0].access_mode = ZyDisOperandAccessMode::WRITE; } else if (info.instrDefinition->flags & IDF_OPERAND1_READWRITE) { - info.operand[0].access_mode = VXOperandAccessMode::READWRITE; + info.operand[0].access_mode = ZyDisOperandAccessMode::READWRITE; } } - if (info.operand[1].type != VXOperandType::NONE) + if (info.operand[1].type != ZyDisOperandType::NONE) { if (info.instrDefinition->flags & IDF_OPERAND2_WRITE) { - info.operand[1].access_mode = VXOperandAccessMode::WRITE; + info.operand[1].access_mode = ZyDisOperandAccessMode::WRITE; } else if (info.instrDefinition->flags & IDF_OPERAND2_READWRITE) { - info.operand[1].access_mode = VXOperandAccessMode::READWRITE; + info.operand[1].access_mode = ZyDisOperandAccessMode::READWRITE; } } // Terminate loop return true; } - case VXOpcodeTreeNodeType::VEX: - if ((m_disassemblerMode == VXDisassemblerMode::M64BIT) || + case ZyDisOpcodeTreeNodeType::VEX: + if ((m_disassemblerMode == ZyDisDisassemblerMode::M64BIT) || (((inputCurrent() >> 6) & 0x03) == 0x03)) { // Decode vex prefix @@ -1169,11 +1169,11 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) index = 0; } break; - case VXOpcodeTreeNodeType::VEXW: + case ZyDisOpcodeTreeNodeType::VEXW: assert(info.flags & IF_PREFIX_VEX); index = info.vex_w; break; - case VXOpcodeTreeNodeType::VEXL: + case ZyDisOpcodeTreeNodeType::VEXL: assert(info.flags & IF_PREFIX_VEX); index = info.vex_l; break; @@ -1181,21 +1181,21 @@ bool VXInstructionDecoder::decodeOpcode(VXInstructionInfo &info) assert(0); } node = VDEGetOpcodeTreeChild(node, index); - } while (nodeType != VXOpcodeTreeNodeType::INSTRUCTION_DEFINITION); + } while (nodeType != ZyDisOpcodeTreeNodeType::INSTRUCTION_DEFINITION); return false; } -VXInstructionDecoder::VXInstructionDecoder() +ZyDisInstructionDecoder::ZyDisInstructionDecoder() : m_dataSource(nullptr) - , m_disassemblerMode(VXDisassemblerMode::M32BIT) - , m_preferredVendor(VXInstructionSetVendor::ANY) + , m_disassemblerMode(ZyDisDisassemblerMode::M32BIT) + , m_preferredVendor(ZyDisInstructionSetVendor::ANY) , m_instructionPointer(0) { } -VXInstructionDecoder::VXInstructionDecoder(VXBaseDataSource *input, - VXDisassemblerMode disassemblerMode, VXInstructionSetVendor preferredVendor, +ZyDisInstructionDecoder::ZyDisInstructionDecoder(ZyDisBaseDataSource *input, + ZyDisDisassemblerMode disassemblerMode, ZyDisInstructionSetVendor preferredVendor, uint64_t instructionPointer) : m_dataSource(input) , m_disassemblerMode(disassemblerMode) @@ -1205,20 +1205,20 @@ VXInstructionDecoder::VXInstructionDecoder(VXBaseDataSource *input, } -bool VXInstructionDecoder::decodeInstruction(VXInstructionInfo &info) +bool ZyDisInstructionDecoder::decodeInstruction(ZyDisInstructionInfo &info) { // Clear instruction info memset(&info, 0, sizeof(info)); // Set disassembler mode flags switch (m_disassemblerMode) { - case VXDisassemblerMode::M16BIT: + case ZyDisDisassemblerMode::M16BIT: info.flags |= IF_DISASSEMBLER_MODE_16; break; - case VXDisassemblerMode::M32BIT: + case ZyDisDisassemblerMode::M32BIT: info.flags |= IF_DISASSEMBLER_MODE_32; break; - case VXDisassemblerMode::M64BIT: + case ZyDisDisassemblerMode::M64BIT: info.flags |= IF_DISASSEMBLER_MODE_64; break; default: @@ -1232,34 +1232,34 @@ bool VXInstructionDecoder::decodeInstruction(VXInstructionInfo &info) goto DecodeError; } // SWAPGS is only valid in 64 bit mode - if ((info.mnemonic == VXInstructionMnemonic::SWAPGS) && - (m_disassemblerMode != VXDisassemblerMode::M64BIT)) + if ((info.mnemonic == ZyDisInstructionMnemonic::SWAPGS) && + (m_disassemblerMode != ZyDisDisassemblerMode::M64BIT)) { info.flags &= IF_ERROR_INVALID; goto DecodeError; } // Handle aliases - if (info.mnemonic == VXInstructionMnemonic::XCHG) + if (info.mnemonic == ZyDisInstructionMnemonic::XCHG) { - if ((info.operand[0].type == VXOperandType::REGISTER && - info.operand[0].base == VXRegister::AX && - info.operand[1].type == VXOperandType::REGISTER && - info.operand[1].base == VXRegister::AX) || - (info.operand[0].type == VXOperandType::REGISTER && - info.operand[0].base == VXRegister::EAX && - info.operand[1].type == VXOperandType::REGISTER && - info.operand[1].base == VXRegister::EAX)) + if ((info.operand[0].type == ZyDisOperandType::REGISTER && + info.operand[0].base == ZyDisRegister::AX && + info.operand[1].type == ZyDisOperandType::REGISTER && + info.operand[1].base == ZyDisRegister::AX) || + (info.operand[0].type == ZyDisOperandType::REGISTER && + info.operand[0].base == ZyDisRegister::EAX && + info.operand[1].type == ZyDisOperandType::REGISTER && + info.operand[1].base == ZyDisRegister::EAX)) { - info.mnemonic = VXInstructionMnemonic::NOP; - info.operand[0].type = VXOperandType::NONE; - info.operand[1].type = VXOperandType::NONE; - info.operand[0].access_mode = VXOperandAccessMode::NA; - info.operand[1].access_mode = VXOperandAccessMode::NA; + info.mnemonic = ZyDisInstructionMnemonic::NOP; + info.operand[0].type = ZyDisOperandType::NONE; + info.operand[1].type = ZyDisOperandType::NONE; + info.operand[0].access_mode = ZyDisOperandAccessMode::NA; + info.operand[1].access_mode = ZyDisOperandAccessMode::NA; } } - if ((info.mnemonic == VXInstructionMnemonic::NOP) && (info.flags & IF_PREFIX_REP)) + if ((info.mnemonic == ZyDisInstructionMnemonic::NOP) && (info.flags & IF_PREFIX_REP)) { - info.mnemonic = VXInstructionMnemonic::PAUSE; + info.mnemonic = ZyDisInstructionMnemonic::PAUSE; info.flags &= ~IF_PREFIX_REP; } // Increment instruction pointer diff --git a/Bindings/Cpp/VXInstructionDecoder.hpp b/Bindings/Cpp/ZyDisInstructionDecoder.hpp similarity index 75% rename from Bindings/Cpp/VXInstructionDecoder.hpp rename to Bindings/Cpp/ZyDisInstructionDecoder.hpp index 216b4d0..1f45331 100644 --- a/Bindings/Cpp/VXInstructionDecoder.hpp +++ b/Bindings/Cpp/ZyDisInstructionDecoder.hpp @@ -33,7 +33,7 @@ #include #include -#include "VXDisassemblerTypes.hpp" +#include "ZyDisDisassemblerTypes.hpp" namespace Verteron { @@ -43,7 +43,7 @@ namespace Verteron /** * @brief The base class for all data-source implementations. */ -class VXBaseDataSource +class ZyDisBaseDataSource { private: uint8_t m_currentInput; @@ -66,12 +66,12 @@ protected: /** * @brief Default constructor. */ - VXBaseDataSource() { }; + ZyDisBaseDataSource() { }; public: /** * @brief Destructor. */ - virtual ~VXBaseDataSource() { }; + virtual ~ZyDisBaseDataSource() { }; public: /** * @brief Reads the next byte from the data source. This method does NOT increase the @@ -81,7 +81,7 @@ public: * @c flags field of the @c info parameter for error flags. * Possible error values are @c IF_ERROR_END_OF_INPUT or @c IF_ERROR_LENGTH. */ - uint8_t inputPeek(VXInstructionInfo &info); + uint8_t inputPeek(ZyDisInstructionInfo &info); /** * @brief Reads the next byte from the data source. This method increases the current * input position and the @c length field of the @c info parameter. @@ -92,7 +92,7 @@ public: * @c flags field of the @c info parameter for error flags. * Possible error values are @c IF_ERROR_END_OF_INPUT or @c IF_ERROR_LENGTH. */ - uint8_t inputNext(VXInstructionInfo &info); + uint8_t inputNext(ZyDisInstructionInfo &info); /** * @brief Reads the next byte(s) from the data source. This method increases the current * input position and the @c length field of the @c info parameter. @@ -104,7 +104,7 @@ public: * Possible error values are @c IF_ERROR_END_OF_INPUT or @c IF_ERROR_LENGTH. */ template - T inputNext(VXInstructionInfo &info); + T inputNext(ZyDisInstructionInfo &info); /** * @brief Returns the current input byte. The current input byte is set everytime the * @c inputPeek or @c inputNext method is called. @@ -133,7 +133,7 @@ public: virtual bool setPosition(uint64_t position) = 0; }; -inline uint8_t VXBaseDataSource::inputPeek(VXInstructionInfo &info) +inline uint8_t ZyDisBaseDataSource::inputPeek(ZyDisInstructionInfo &info) { if (info.length == 15) { @@ -149,7 +149,7 @@ inline uint8_t VXBaseDataSource::inputPeek(VXInstructionInfo &info) return m_currentInput; } -inline uint8_t VXBaseDataSource::inputNext(VXInstructionInfo &info) +inline uint8_t ZyDisBaseDataSource::inputNext(ZyDisInstructionInfo &info) { if (info.length == 15) { @@ -168,7 +168,7 @@ inline uint8_t VXBaseDataSource::inputNext(VXInstructionInfo &info) } template -inline T VXBaseDataSource::inputNext(VXInstructionInfo &info) +inline T ZyDisBaseDataSource::inputNext(ZyDisInstructionInfo &info) { static_assert(std::is_integral::value, "integral type required"); T result = 0; @@ -184,7 +184,7 @@ inline T VXBaseDataSource::inputNext(VXInstructionInfo &info) return result; } -inline uint8_t VXBaseDataSource::inputCurrent() const +inline uint8_t ZyDisBaseDataSource::inputCurrent() const { return m_currentInput; } @@ -192,9 +192,9 @@ inline uint8_t VXBaseDataSource::inputCurrent() const /////////////////////////////////////////////////////////////////////////////////////////////////// /** - * @brief A memory-buffer based data source for the @c VXInstructionDecoder class. + * @brief A memory-buffer based data source for the @c ZyDisInstructionDecoder class. */ -class VXMemoryDataSource : public VXBaseDataSource +class ZyDisMemoryDataSource : public ZyDisBaseDataSource { private: const void *m_inputBuffer; @@ -219,7 +219,7 @@ public: * @param buffer The input buffer. * @param bufferLen The length of the input buffer. */ - VXMemoryDataSource(const void* buffer, size_t bufferLen) + ZyDisMemoryDataSource(const void* buffer, size_t bufferLen) : m_inputBuffer(buffer) , m_inputBufferLen(bufferLen) , m_inputBufferPos(0) { }; @@ -242,28 +242,28 @@ public: bool setPosition(uint64_t position) override; }; -inline uint8_t VXMemoryDataSource::internalInputPeek() +inline uint8_t ZyDisMemoryDataSource::internalInputPeek() { return *(static_cast(m_inputBuffer) + m_inputBufferPos); } -inline uint8_t VXMemoryDataSource::internalInputNext() +inline uint8_t ZyDisMemoryDataSource::internalInputNext() { ++m_inputBufferPos; return *(static_cast(m_inputBuffer) + m_inputBufferPos - 1); } -inline bool VXMemoryDataSource::isEndOfInput() const +inline bool ZyDisMemoryDataSource::isEndOfInput() const { return (m_inputBufferPos >= m_inputBufferLen); } -inline uint64_t VXMemoryDataSource::getPosition() const +inline uint64_t ZyDisMemoryDataSource::getPosition() const { return m_inputBufferPos; } -inline bool VXMemoryDataSource::setPosition(uint64_t position) +inline bool ZyDisMemoryDataSource::setPosition(uint64_t position) { m_inputBufferPos = position; return isEndOfInput(); @@ -272,9 +272,9 @@ inline bool VXMemoryDataSource::setPosition(uint64_t position) /////////////////////////////////////////////////////////////////////////////////////////////////// /** - * @brief A stream based data source for the @c VXInstructionDecoder class. + * @brief A stream based data source for the @c ZyDisInstructionDecoder class. */ -class VXStreamDataSource : public VXBaseDataSource +class ZyDisStreamDataSource : public ZyDisBaseDataSource { private: std::istream *m_inputStream; @@ -296,7 +296,7 @@ public: * @brief Constructor. * @param stream The input stream. */ - explicit VXStreamDataSource(std::istream *stream) + explicit ZyDisStreamDataSource(std::istream *stream) : m_inputStream(stream) { }; public: /** @@ -317,7 +317,7 @@ public: bool setPosition(uint64_t position) override; }; -inline uint8_t VXStreamDataSource::internalInputPeek() +inline uint8_t ZyDisStreamDataSource::internalInputPeek() { if (!m_inputStream) { @@ -326,7 +326,7 @@ inline uint8_t VXStreamDataSource::internalInputPeek() return static_cast(m_inputStream->peek()); } -inline uint8_t VXStreamDataSource::internalInputNext() +inline uint8_t ZyDisStreamDataSource::internalInputNext() { if (!m_inputStream) { @@ -335,7 +335,7 @@ inline uint8_t VXStreamDataSource::internalInputNext() return static_cast(m_inputStream->get()); } -inline bool VXStreamDataSource::isEndOfInput() const +inline bool ZyDisStreamDataSource::isEndOfInput() const { if (!m_inputStream) { @@ -346,7 +346,7 @@ inline bool VXStreamDataSource::isEndOfInput() const return !m_inputStream->good(); } -inline uint64_t VXStreamDataSource::getPosition() const +inline uint64_t ZyDisStreamDataSource::getPosition() const { if (!m_inputStream) { @@ -355,7 +355,7 @@ inline uint64_t VXStreamDataSource::getPosition() const return m_inputStream->tellg(); } -inline bool VXStreamDataSource::setPosition(uint64_t position) +inline bool ZyDisStreamDataSource::setPosition(uint64_t position) { if (!m_inputStream) { @@ -370,7 +370,7 @@ inline bool VXStreamDataSource::setPosition(uint64_t position) /** * @brief Values that represent a disassembler mode. */ -enum class VXDisassemblerMode : uint8_t +enum class ZyDisDisassemblerMode : uint8_t { M16BIT, M32BIT, @@ -380,7 +380,7 @@ enum class VXDisassemblerMode : uint8_t /** * @brief Values that represent an instruction-set vendor. */ -enum class VXInstructionSetVendor : uint8_t +enum class ZyDisInstructionSetVendor : uint8_t { ANY, INTEL, @@ -388,10 +388,10 @@ enum class VXInstructionSetVendor : uint8_t }; /** - * @brief The @c VXInstructionDecoder class decodes x86/x86-64 assembly instructions from a + * @brief The @c ZyDisInstructionDecoder class decodes x86/x86-64 assembly instructions from a * given data source. */ -class VXInstructionDecoder +class ZyDisInstructionDecoder { private: enum class RegisterClass : uint8_t @@ -404,9 +404,9 @@ private: XMM }; private: - VXBaseDataSource *m_dataSource; - VXDisassemblerMode m_disassemblerMode; - VXInstructionSetVendor m_preferredVendor; + ZyDisBaseDataSource *m_dataSource; + ZyDisDisassemblerMode m_disassemblerMode; + ZyDisInstructionSetVendor m_preferredVendor; uint64_t m_instructionPointer; private: /** @@ -417,7 +417,7 @@ private: * @c flags field of the @c info parameter for error flags. * Possible error values are @c IF_ERROR_END_OF_INPUT or @c IF_ERROR_LENGTH. */ - uint8_t inputPeek(VXInstructionInfo &info); + uint8_t inputPeek(ZyDisInstructionInfo &info); /** * @brief Reads the next byte from the data source. This method increases the current * input position and the @c length field of the @info parameter. @@ -428,7 +428,7 @@ private: * @c flags field of the @c info parameter for error flags. * Possible error values are @c IF_ERROR_END_OF_INPUT or @c IF_ERROR_LENGTH. */ - uint8_t inputNext(VXInstructionInfo &info); + uint8_t inputNext(ZyDisInstructionInfo &info); /** * @brief Reads the next byte(s) from the data source. This method increases the current * input position and the @c length field of the @info parameter. @@ -440,7 +440,7 @@ private: * Possible error values are @c IF_ERROR_END_OF_INPUT or @c IF_ERROR_LENGTH. */ template - T inputNext(VXInstructionInfo &info); + T inputNext(ZyDisInstructionInfo &info); /** * @brief Returns the current input byte. The current input byte is set everytime the * @c inputPeek or @c inputNext method is called. @@ -451,64 +451,64 @@ private: /** * @brief Decodes a register operand. * @param info The instruction info. - * @param operand The @c VXOperandInfo struct that receives the decoded data. + * @param operand The @c ZyDisOperandInfo struct that receives the decoded data. * @param registerClass The register class to use. * @param registerId The register id. * @param operandSize The defined size of the operand. * @return True if it succeeds, false if it fails. */ - bool decodeRegisterOperand(VXInstructionInfo &info, VXOperandInfo &operand, - RegisterClass registerClass, uint8_t registerId, VXDefinedOperandSize operandSize) const; + bool decodeRegisterOperand(ZyDisInstructionInfo &info, ZyDisOperandInfo &operand, + RegisterClass registerClass, uint8_t registerId, ZyDisDefinedOperandSize operandSize) const; /** * @brief Decodes a register/memory operand. * @param info The instruction info. - * @param operand The @c VXOperandInfo struct that receives the decoded data. + * @param operand The @c ZyDisOperandInfo struct that receives the decoded data. * @param registerClass The register class to use. * @param operandSize The defined size of the operand. * @return True if it succeeds, false if it fails. */ - bool decodeRegisterMemoryOperand(VXInstructionInfo &info, VXOperandInfo &operand, - RegisterClass registerClass, VXDefinedOperandSize operandSize); + bool decodeRegisterMemoryOperand(ZyDisInstructionInfo &info, ZyDisOperandInfo &operand, + RegisterClass registerClass, ZyDisDefinedOperandSize operandSize); /** * @brief Decodes an immediate operand. * @param info The instruction info. - * @param operand The @c VXOperandInfo struct that receives the decoded data. + * @param operand The @c ZyDisOperandInfo struct that receives the decoded data. * @param operandSize The defined size of the operand. * @return True if it succeeds, false if it fails. */ - bool decodeImmediate(VXInstructionInfo &info, VXOperandInfo &operand, - VXDefinedOperandSize operandSize); + bool decodeImmediate(ZyDisInstructionInfo &info, ZyDisOperandInfo &operand, + ZyDisDefinedOperandSize operandSize); /** * @brief Decodes a displacement operand. * @param info The instruction info. - * @param operand The @c VXOperandInfo struct that receives the decoded data. + * @param operand The @c ZyDisOperandInfo struct that receives the decoded data. * @param size The size of the displacement data. * @return True if it succeeds, false if it fails. */ - bool decodeDisplacement(VXInstructionInfo &info, VXOperandInfo &operand, uint8_t size); + bool decodeDisplacement(ZyDisInstructionInfo &info, ZyDisOperandInfo &operand, uint8_t size); private: /** * @brief Decodes the modrm field of the instruction. This method reads an additional * input byte. - * @param The @c VXInstructionInfo struct that receives the decoded data. + * @param The @c ZyDisInstructionInfo struct that receives the decoded data. * @return True if it succeeds, false if it fails. */ - bool decodeModrm(VXInstructionInfo &info); + bool decodeModrm(ZyDisInstructionInfo &info); /** * @brief Decodes the sib field of the instruction. This method reads an additional * input byte. - * @param info The @c VXInstructionInfo struct that receives the decoded data. + * @param info The @c ZyDisInstructionInfo struct that receives the decoded data. * @return True if it succeeds, false if it fails. */ - bool decodeSIB(VXInstructionInfo &info); + bool decodeSIB(ZyDisInstructionInfo &info); /** * @brief Decodes vex prefix of the instruction. This method takes the current input byte * to determine the vex prefix type and reads one or two additional input bytes * on demand. - * @param info The @c VXInstructionInfo struct that receives the decoded data. + * @param info The @c ZyDisInstructionInfo struct that receives the decoded data. * @return True if it succeeds, false if it fails. */ - bool decodeVex(VXInstructionInfo &info); + bool decodeVex(ZyDisInstructionInfo &info); private: /** * @brief Returns the effective operand size. @@ -516,59 +516,59 @@ private: * @param operandSize The defined operand size. * @return The effective operand size. */ - uint16_t getEffectiveOperandSize(const VXInstructionInfo &info, - VXDefinedOperandSize operandSize) const; + uint16_t getEffectiveOperandSize(const ZyDisInstructionInfo &info, + ZyDisDefinedOperandSize operandSize) const; /** * @brief Decodes all instruction operands. - * @param info The @c VXInstructionInfo struct that receives the decoded data. + * @param info The @c ZyDisInstructionInfo struct that receives the decoded data. * @return True if it succeeds, false if it fails. */ - bool decodeOperands(VXInstructionInfo &info); + bool decodeOperands(ZyDisInstructionInfo &info); /** * @brief Decodes the specified instruction operand. * @param info The instruction info. - * @param operand The @c VXOperandInfo struct that receives the decoded data. + * @param operand The @c ZyDisOperandInfo struct that receives the decoded data. * @param operandType The defined type of the operand. * @param operandSize The defined size of the operand. * @return True if it succeeds, false if it fails. */ - bool decodeOperand(VXInstructionInfo &info, VXOperandInfo &operand, - VXDefinedOperandType operandType, VXDefinedOperandSize operandSize); + bool decodeOperand(ZyDisInstructionInfo &info, ZyDisOperandInfo &operand, + ZyDisDefinedOperandType operandType, ZyDisDefinedOperandSize operandSize); private: /** * @brief Resolves the effective operand and address mode of the instruction. * This method requires a non-null value in the @c instrDefinition field of the * @c info struct. - * @param info The @c VXInstructionInfo struct that receives the effective operand and + * @param info The @c ZyDisInstructionInfo struct that receives the effective operand and * address mode. */ - void resolveOperandAndAddressMode(VXInstructionInfo &info) const; + void resolveOperandAndAddressMode(ZyDisInstructionInfo &info) const; /** * @brief Calculates the effective REX/VEX.w, r, x, b, l values. * This method requires a non-null value in the @c instrDefinition field of the * @c info struct. - * @param info The @c VXInstructionInfo struct that receives the effective operand and + * @param info The @c ZyDisInstructionInfo struct that receives the effective operand and * address mode. */ - void calculateEffectiveRexVexValues(VXInstructionInfo &info) const; + void calculateEffectiveRexVexValues(ZyDisInstructionInfo &info) const; private: /** * @brief Collects and decodes optional instruction prefixes. - * @param info The @c VXInstructionInfo struct that receives the decoded data. + * @param info The @c ZyDisInstructionInfo struct that receives the decoded data. * @return True if it succeeds, false if it fails. */ - bool decodePrefixes(VXInstructionInfo &info); + bool decodePrefixes(ZyDisInstructionInfo &info); /** * @brief Collects and decodes the instruction opcodes using the opcode tree. - * @param info The @c VXInstructionInfo struct that receives the decoded data. + * @param info The @c ZyDisInstructionInfo struct that receives the decoded data. * @return True if it succeeds, false if it fails. */ - bool decodeOpcode(VXInstructionInfo &info); + bool decodeOpcode(ZyDisInstructionInfo &info); public: /** * @brief Default constructor. */ - VXInstructionDecoder(); + ZyDisInstructionDecoder(); /** * @brief Constructor. * @param input A reference to the input data source. @@ -576,51 +576,51 @@ public: * @param preferredVendor The preferred instruction-set vendor. * @param instructionPointer The initial instruction pointer. */ - explicit VXInstructionDecoder(VXBaseDataSource *input, - VXDisassemblerMode disassemblerMode = VXDisassemblerMode::M32BIT, - VXInstructionSetVendor preferredVendor = VXInstructionSetVendor::ANY, + explicit ZyDisInstructionDecoder(ZyDisBaseDataSource *input, + ZyDisDisassemblerMode disassemblerMode = ZyDisDisassemblerMode::M32BIT, + ZyDisInstructionSetVendor preferredVendor = ZyDisInstructionSetVendor::ANY, uint64_t instructionPointer = 0); public: /** * @brief Decodes the next instruction from the input data source. - * @param info The @c VXInstructionInfo struct that receives the information about the + * @param info The @c ZyDisInstructionInfo struct that receives the information about the * decoded instruction. * @return This method returns false, if the current position has exceeded the maximum input * length. * In all other cases (valid and invalid instructions) the return value is true. */ - bool decodeInstruction(VXInstructionInfo &info); + bool decodeInstruction(ZyDisInstructionInfo &info); public: /** * @brief Returns a pointer to the current data source. * @return A pointer to the current data source. */ - VXBaseDataSource* getDataSource() const; + ZyDisBaseDataSource* getDataSource() const; /** * @brief Sets a new data source. * @param input A reference to the new input data source. */ - void setDataSource(VXBaseDataSource *input); + void setDataSource(ZyDisBaseDataSource *input); /** * @brief Returns the current disassembler mode. * @return The current disassembler mode. */ - VXDisassemblerMode getDisassemblerMode() const; + ZyDisDisassemblerMode getDisassemblerMode() const; /** * @brief Sets the current disassembler mode. * @param disassemblerMode The new disassembler mode. */ - void setDisassemblerMode(VXDisassemblerMode disassemblerMode); + void setDisassemblerMode(ZyDisDisassemblerMode disassemblerMode); /** * @brief Returns the preferred instruction-set vendor. * @return The preferred instruction-set vendor. */ - VXInstructionSetVendor getPreferredVendor() const; + ZyDisInstructionSetVendor getPreferredVendor() const; /** * @brief Sets the preferred instruction-set vendor. * @param preferredVendor The new preferred instruction-set vendor. */ - void setPreferredVendor(VXInstructionSetVendor preferredVendor); + void setPreferredVendor(ZyDisInstructionSetVendor preferredVendor); /** * @brief Returns the current instruction pointer. * @return The current instruction pointer. @@ -633,7 +633,7 @@ public: void setInstructionPointer(uint64_t instructionPointer); }; -inline uint8_t VXInstructionDecoder::inputPeek(VXInstructionInfo &info) +inline uint8_t ZyDisInstructionDecoder::inputPeek(ZyDisInstructionInfo &info) { if (!m_dataSource) { @@ -643,7 +643,7 @@ inline uint8_t VXInstructionDecoder::inputPeek(VXInstructionInfo &info) return m_dataSource->inputPeek(info); } -inline uint8_t VXInstructionDecoder::inputNext(VXInstructionInfo &info) +inline uint8_t ZyDisInstructionDecoder::inputNext(ZyDisInstructionInfo &info) { if (!m_dataSource) { @@ -654,7 +654,7 @@ inline uint8_t VXInstructionDecoder::inputNext(VXInstructionInfo &info) } template -inline T VXInstructionDecoder::inputNext(VXInstructionInfo &info) +inline T ZyDisInstructionDecoder::inputNext(ZyDisInstructionInfo &info) { if (!m_dataSource) { @@ -664,7 +664,7 @@ inline T VXInstructionDecoder::inputNext(VXInstructionInfo &info) return m_dataSource->inputNext(info); } -inline uint8_t VXInstructionDecoder::inputCurrent() const +inline uint8_t ZyDisInstructionDecoder::inputCurrent() const { if (!m_dataSource) { @@ -673,42 +673,42 @@ inline uint8_t VXInstructionDecoder::inputCurrent() const return m_dataSource->inputCurrent(); } -inline VXBaseDataSource* VXInstructionDecoder::getDataSource() const +inline ZyDisBaseDataSource* ZyDisInstructionDecoder::getDataSource() const { return m_dataSource; } -inline void VXInstructionDecoder::setDataSource(VXBaseDataSource *input) +inline void ZyDisInstructionDecoder::setDataSource(ZyDisBaseDataSource *input) { m_dataSource = input; } -inline VXDisassemblerMode VXInstructionDecoder::getDisassemblerMode() const +inline ZyDisDisassemblerMode ZyDisInstructionDecoder::getDisassemblerMode() const { return m_disassemblerMode; } -inline void VXInstructionDecoder::setDisassemblerMode(VXDisassemblerMode disassemblerMode) +inline void ZyDisInstructionDecoder::setDisassemblerMode(ZyDisDisassemblerMode disassemblerMode) { m_disassemblerMode = disassemblerMode; } -inline VXInstructionSetVendor VXInstructionDecoder::getPreferredVendor() const +inline ZyDisInstructionSetVendor ZyDisInstructionDecoder::getPreferredVendor() const { return m_preferredVendor; } -inline void VXInstructionDecoder::setPreferredVendor(VXInstructionSetVendor preferredVendor) +inline void ZyDisInstructionDecoder::setPreferredVendor(ZyDisInstructionSetVendor preferredVendor) { m_preferredVendor = preferredVendor; } -inline uint64_t VXInstructionDecoder::getInstructionPointer() const +inline uint64_t ZyDisInstructionDecoder::getInstructionPointer() const { return m_instructionPointer; } -inline void VXInstructionDecoder::setInstructionPointer(uint64_t instructionPointer) +inline void ZyDisInstructionDecoder::setInstructionPointer(uint64_t instructionPointer) { m_instructionPointer = instructionPointer; } diff --git a/Bindings/Cpp/VXInstructionFormatter.cpp b/Bindings/Cpp/ZyDisInstructionFormatter.cpp similarity index 76% rename from Bindings/Cpp/VXInstructionFormatter.cpp rename to Bindings/Cpp/ZyDisInstructionFormatter.cpp index a5e0d7f..792c5d3 100644 --- a/Bindings/Cpp/VXInstructionFormatter.cpp +++ b/Bindings/Cpp/ZyDisInstructionFormatter.cpp @@ -29,8 +29,8 @@ * SOFTWARE. **************************************************************************************************/ -#include "VXInstructionFormatter.hpp" -#include "VXDisassemblerUtils.hpp" +#include "ZyDisInstructionFormatter.hpp" +#include "ZyDisDisassemblerUtils.hpp" #include #include #include @@ -42,12 +42,12 @@ namespace Verteron /////////////////////////////////////////////////////////////////////////////////////////////////// -VXBaseSymbolResolver::~VXBaseSymbolResolver() +ZyDisBaseSymbolResolver::~ZyDisBaseSymbolResolver() { } -const char* VXBaseSymbolResolver::resolveSymbol(const VXInstructionInfo &info, uint64_t address, +const char* ZyDisBaseSymbolResolver::resolveSymbol(const ZyDisInstructionInfo &info, uint64_t address, uint64_t &offset) { return nullptr; @@ -55,7 +55,7 @@ const char* VXBaseSymbolResolver::resolveSymbol(const VXInstructionInfo &info, u /////////////////////////////////////////////////////////////////////////////////////////////////// -const char* VXBaseInstructionFormatter::m_registerStrings[] = +const char* ZyDisBaseInstructionFormatter::m_registerStrings[] = { /* 8 bit general purpose registers */ "al", "cl", "dl", "bl", @@ -111,12 +111,12 @@ const char* VXBaseInstructionFormatter::m_registerStrings[] = "rip" }; -void VXBaseInstructionFormatter::internalFormatInstruction(const VXInstructionInfo &info) +void ZyDisBaseInstructionFormatter::internalFormatInstruction(const ZyDisInstructionInfo &info) { // Nothing to do here } -VXBaseInstructionFormatter::VXBaseInstructionFormatter() +ZyDisBaseInstructionFormatter::ZyDisBaseInstructionFormatter() : m_symbolResolver(nullptr) , m_outputStringLen(0) , m_outputUppercase(false) @@ -124,7 +124,7 @@ VXBaseInstructionFormatter::VXBaseInstructionFormatter() } -VXBaseInstructionFormatter::VXBaseInstructionFormatter(VXBaseSymbolResolver *symbolResolver) +ZyDisBaseInstructionFormatter::ZyDisBaseInstructionFormatter(ZyDisBaseSymbolResolver *symbolResolver) : m_symbolResolver(symbolResolver) , m_outputStringLen(0) , m_outputUppercase(false) @@ -132,7 +132,7 @@ VXBaseInstructionFormatter::VXBaseInstructionFormatter(VXBaseSymbolResolver *sym } -const char* VXBaseInstructionFormatter::formatInstruction(const VXInstructionInfo &info) +const char* ZyDisBaseInstructionFormatter::formatInstruction(const ZyDisInstructionInfo &info) { // Clears the internal string buffer outputClear(); @@ -147,22 +147,22 @@ const char* VXBaseInstructionFormatter::formatInstruction(const VXInstructionInf return outputString(); } -VXBaseInstructionFormatter::~VXBaseInstructionFormatter() +ZyDisBaseInstructionFormatter::~ZyDisBaseInstructionFormatter() { } -void VXBaseInstructionFormatter::outputClear() +void ZyDisBaseInstructionFormatter::outputClear() { m_outputStringLen = 0; } -char const* VXBaseInstructionFormatter::outputString() +char const* ZyDisBaseInstructionFormatter::outputString() { return &m_outputBuffer[0]; } - void VXBaseInstructionFormatter::outputAppend(char const *text) + void ZyDisBaseInstructionFormatter::outputAppend(char const *text) { // Get the string length including the null-terminator char size_t strLen = strlen(text) + 1; @@ -191,7 +191,7 @@ char const* VXBaseInstructionFormatter::outputString() } } - void VXBaseInstructionFormatter::outputAppendFormatted(char const *format, ...) + void ZyDisBaseInstructionFormatter::outputAppendFormatted(char const *format, ...) { va_list arguments; va_start(arguments, format); @@ -233,7 +233,7 @@ char const* VXBaseInstructionFormatter::outputString() va_end(arguments); } -void VXBaseInstructionFormatter::outputAppendAddress(const VXInstructionInfo &info, +void ZyDisBaseInstructionFormatter::outputAppendAddress(const ZyDisInstructionInfo &info, uint64_t address, bool resolveSymbols) { uint64_t offset = 0; @@ -269,10 +269,10 @@ void VXBaseInstructionFormatter::outputAppendAddress(const VXInstructionInfo &in } } -void VXBaseInstructionFormatter::outputAppendImmediate(const VXInstructionInfo &info, - const VXOperandInfo &operand, bool resolveSymbols) +void ZyDisBaseInstructionFormatter::outputAppendImmediate(const ZyDisInstructionInfo &info, + const ZyDisOperandInfo &operand, bool resolveSymbols) { - assert(operand.type == VXOperandType::IMMEDIATE); + assert(operand.type == ZyDisOperandType::IMMEDIATE); uint64_t value = 0; if (operand.signed_lval && (operand.size != info.operand_mode)) { @@ -329,11 +329,11 @@ void VXBaseInstructionFormatter::outputAppendImmediate(const VXInstructionInfo & } } -void VXBaseInstructionFormatter::outputAppendDisplacement(const VXInstructionInfo &info, - const VXOperandInfo &operand) +void ZyDisBaseInstructionFormatter::outputAppendDisplacement(const ZyDisInstructionInfo &info, + const ZyDisOperandInfo &operand) { assert(operand.offset > 0); - if ((operand.base == VXRegister::NONE) && (operand.index == VXRegister::NONE)) + if ((operand.base == ZyDisRegister::NONE) && (operand.index == ZyDisRegister::NONE)) { // Assume the displacement value is unsigned assert(operand.scale == 0); @@ -378,16 +378,16 @@ void VXBaseInstructionFormatter::outputAppendDisplacement(const VXInstructionInf outputAppendFormatted("-%.2lX", -value); } else { - outputAppendFormatted("%s%.2lX", (operand.base != VXRegister::NONE || - operand.index != VXRegister::NONE) ? "+" : "", value); + outputAppendFormatted("%s%.2lX", (operand.base != ZyDisRegister::NONE || + operand.index != ZyDisRegister::NONE) ? "+" : "", value); } } } /////////////////////////////////////////////////////////////////////////////////////////////////// -void VXIntelInstructionFormatter::outputAppendOperandCast(const VXInstructionInfo &info, - const VXOperandInfo &operand) +void ZyDisIntelInstructionFormatter::outputAppendOperandCast(const ZyDisInstructionInfo &info, + const ZyDisOperandInfo &operand) { switch(operand.size) { @@ -417,33 +417,33 @@ void VXIntelInstructionFormatter::outputAppendOperandCast(const VXInstructionInf } } -void VXIntelInstructionFormatter::formatOperand(const VXInstructionInfo &info, - const VXOperandInfo &operand) +void ZyDisIntelInstructionFormatter::formatOperand(const ZyDisInstructionInfo &info, + const ZyDisOperandInfo &operand) { switch (operand.type) { - case VXOperandType::REGISTER: + case ZyDisOperandType::REGISTER: outputAppend(registerToString(operand.base)); break; - case VXOperandType::MEMORY: + case ZyDisOperandType::MEMORY: if (info.flags & IF_PREFIX_SEGMENT) { outputAppendFormatted("%s:", registerToString(info.segment)); } outputAppend("["); - if (operand.base == VXRegister::RIP) + if (operand.base == ZyDisRegister::RIP) { // TODO: Add option outputAppendAddress(info, VDECalcAbsoluteTarget(info, operand), true); } else { - if (operand.base != VXRegister::NONE) + if (operand.base != ZyDisRegister::NONE) { outputAppend(registerToString(operand.base)); } - if (operand.index != VXRegister::NONE) + if (operand.index != ZyDisRegister::NONE) { - outputAppendFormatted("%s%s", operand.base != VXRegister::NONE ? "+" : "", + outputAppendFormatted("%s%s", operand.base != ZyDisRegister::NONE ? "+" : "", registerToString(operand.index)); if (operand.scale) { @@ -457,7 +457,7 @@ void VXIntelInstructionFormatter::formatOperand(const VXInstructionInfo &info, } outputAppend("]"); break; - case VXOperandType::POINTER: + case ZyDisOperandType::POINTER: // TODO: resolve symbols switch (operand.size) { @@ -472,12 +472,12 @@ void VXIntelInstructionFormatter::formatOperand(const VXInstructionInfo &info, assert(0); } break; - case VXOperandType::IMMEDIATE: + case ZyDisOperandType::IMMEDIATE: { outputAppendImmediate(info, operand, true); } break; - case VXOperandType::REL_IMMEDIATE: + case ZyDisOperandType::REL_IMMEDIATE: { if (operand.size == 8) { @@ -486,7 +486,7 @@ void VXIntelInstructionFormatter::formatOperand(const VXInstructionInfo &info, outputAppendAddress(info, VDECalcAbsoluteTarget(info, operand), true); } break; - case VXOperandType::CONSTANT: + case ZyDisOperandType::CONSTANT: outputAppendFormatted("%.2X", operand.lval.udword); break; default: @@ -495,7 +495,7 @@ void VXIntelInstructionFormatter::formatOperand(const VXInstructionInfo &info, } } -void VXIntelInstructionFormatter::internalFormatInstruction(const VXInstructionInfo &info) +void ZyDisIntelInstructionFormatter::internalFormatInstruction(const ZyDisInstructionInfo &info) { // Append string prefixes if (info.flags & IF_PREFIX_LOCK) @@ -512,30 +512,30 @@ void VXIntelInstructionFormatter::internalFormatInstruction(const VXInstructionI // Append the instruction mnemonic outputAppend(Internal::VDEGetInstructionMnemonicString(info.mnemonic)); // Append the first operand - if (info.operand[0].type != VXOperandType::NONE) + if (info.operand[0].type != ZyDisOperandType::NONE) { outputAppend(" "); bool cast = false; - if (info.operand[0].type == VXOperandType::MEMORY) + if (info.operand[0].type == ZyDisOperandType::MEMORY) { - if (info.operand[1].type == VXOperandType::IMMEDIATE || - info.operand[1].type == VXOperandType::CONSTANT || - info.operand[1].type == VXOperandType::NONE || + if (info.operand[1].type == ZyDisOperandType::IMMEDIATE || + info.operand[1].type == ZyDisOperandType::CONSTANT || + info.operand[1].type == ZyDisOperandType::NONE || (info.operand[0].size != info.operand[1].size)) { cast = true; - } else if (info.operand[1].type == VXOperandType::REGISTER && - info.operand[1].base == VXRegister::CL) + } else if (info.operand[1].type == ZyDisOperandType::REGISTER && + info.operand[1].base == ZyDisRegister::CL) { switch (info.mnemonic) { - case VXInstructionMnemonic::RCL: - case VXInstructionMnemonic::ROL: - case VXInstructionMnemonic::ROR: - case VXInstructionMnemonic::RCR: - case VXInstructionMnemonic::SHL: - case VXInstructionMnemonic::SHR: - case VXInstructionMnemonic::SAR: + case ZyDisInstructionMnemonic::RCL: + case ZyDisInstructionMnemonic::ROL: + case ZyDisInstructionMnemonic::ROR: + case ZyDisInstructionMnemonic::RCR: + case ZyDisInstructionMnemonic::SHL: + case ZyDisInstructionMnemonic::SHR: + case ZyDisInstructionMnemonic::SAR: cast = true; break; default: @@ -550,19 +550,19 @@ void VXIntelInstructionFormatter::internalFormatInstruction(const VXInstructionI formatOperand(info, info.operand[0]); } // Append the second operand - if (info.operand[1].type != VXOperandType::NONE) + if (info.operand[1].type != ZyDisOperandType::NONE) { outputAppend(", "); bool cast = false; - if (info.operand[1].type == VXOperandType::MEMORY && + if (info.operand[1].type == ZyDisOperandType::MEMORY && info.operand[0].size != info.operand[1].size && - ((info.operand[0].type != VXOperandType::REGISTER) || - ((info.operand[0].base != VXRegister::ES) && - (info.operand[0].base != VXRegister::CS) && - (info.operand[0].base != VXRegister::SS) && - (info.operand[0].base != VXRegister::DS) && - (info.operand[0].base != VXRegister::FS) && - (info.operand[0].base != VXRegister::GS)))) + ((info.operand[0].type != ZyDisOperandType::REGISTER) || + ((info.operand[0].base != ZyDisRegister::ES) && + (info.operand[0].base != ZyDisRegister::CS) && + (info.operand[0].base != ZyDisRegister::SS) && + (info.operand[0].base != ZyDisRegister::DS) && + (info.operand[0].base != ZyDisRegister::FS) && + (info.operand[0].base != ZyDisRegister::GS)))) { cast = true; } @@ -573,11 +573,11 @@ void VXIntelInstructionFormatter::internalFormatInstruction(const VXInstructionI formatOperand(info, info.operand[1]); } // Append the third operand - if (info.operand[2].type != VXOperandType::NONE) + if (info.operand[2].type != ZyDisOperandType::NONE) { outputAppend(", "); bool cast = false; - if (info.operand[2].type == VXOperandType::MEMORY && + if (info.operand[2].type == ZyDisOperandType::MEMORY && (info.operand[2].size != info.operand[1].size)) { cast = true; @@ -589,38 +589,38 @@ void VXIntelInstructionFormatter::internalFormatInstruction(const VXInstructionI formatOperand(info, info.operand[2]); } // Append the fourth operand - if (info.operand[3].type != VXOperandType::NONE) + if (info.operand[3].type != ZyDisOperandType::NONE) { outputAppend(", "); formatOperand(info, info.operand[3]); } } -VXIntelInstructionFormatter::VXIntelInstructionFormatter() - : VXBaseInstructionFormatter() +ZyDisIntelInstructionFormatter::ZyDisIntelInstructionFormatter() + : ZyDisBaseInstructionFormatter() { } -VXIntelInstructionFormatter::VXIntelInstructionFormatter(VXBaseSymbolResolver* symbolResolver) - : VXBaseInstructionFormatter(symbolResolver) +ZyDisIntelInstructionFormatter::ZyDisIntelInstructionFormatter(ZyDisBaseSymbolResolver* symbolResolver) + : ZyDisBaseInstructionFormatter(symbolResolver) { } -VXIntelInstructionFormatter::~VXIntelInstructionFormatter() +ZyDisIntelInstructionFormatter::~ZyDisIntelInstructionFormatter() { } /////////////////////////////////////////////////////////////////////////////////////////////////// -VXExactSymbolResolver::~VXExactSymbolResolver() +ZyDisExactSymbolResolver::~ZyDisExactSymbolResolver() { } -const char* VXExactSymbolResolver::resolveSymbol(const VXInstructionInfo &info, uint64_t address, +const char* ZyDisExactSymbolResolver::resolveSymbol(const ZyDisInstructionInfo &info, uint64_t address, uint64_t &offset) { std::unordered_map::const_iterator iterator = m_symbolMap.find(address); @@ -632,23 +632,23 @@ const char* VXExactSymbolResolver::resolveSymbol(const VXInstructionInfo &info, return nullptr; } -bool VXExactSymbolResolver::containsSymbol(uint64_t address) const +bool ZyDisExactSymbolResolver::containsSymbol(uint64_t address) const { std::unordered_map::const_iterator iterator = m_symbolMap.find(address); return (iterator != m_symbolMap.end()); } -void VXExactSymbolResolver::setSymbol(uint64_t address, const char* name) +void ZyDisExactSymbolResolver::setSymbol(uint64_t address, const char* name) { m_symbolMap[address].assign(name); } -void VXExactSymbolResolver::removeSymbol(uint64_t address) +void ZyDisExactSymbolResolver::removeSymbol(uint64_t address) { m_symbolMap.erase(address); } -void VXExactSymbolResolver::clear() +void ZyDisExactSymbolResolver::clear() { m_symbolMap.clear(); } diff --git a/Bindings/Cpp/VXInstructionFormatter.hpp b/Bindings/Cpp/ZyDisInstructionFormatter.hpp similarity index 79% rename from Bindings/Cpp/VXInstructionFormatter.hpp rename to Bindings/Cpp/ZyDisInstructionFormatter.hpp index b63b263..68d02bf 100644 --- a/Bindings/Cpp/VXInstructionFormatter.hpp +++ b/Bindings/Cpp/ZyDisInstructionFormatter.hpp @@ -34,7 +34,7 @@ #include #include #include -#include "VXDisassemblerTypes.hpp" +#include "ZyDisDisassemblerTypes.hpp" namespace Verteron { @@ -44,13 +44,13 @@ namespace Verteron /** * @brief Base class for all symbol resolver implementations. */ -class VXBaseSymbolResolver +class ZyDisBaseSymbolResolver { public: /** * @brief Destructor. */ - virtual ~VXBaseSymbolResolver(); + virtual ~ZyDisBaseSymbolResolver(); public: /** * @brief Resolves a symbol. @@ -60,7 +60,7 @@ public: * relative to the base address of the symbol. * @return The name of the symbol, if the symbol was found, @c NULL if not. */ - virtual const char* resolveSymbol(const VXInstructionInfo &info, uint64_t address, + virtual const char* resolveSymbol(const ZyDisInstructionInfo &info, uint64_t address, uint64_t &offset); }; @@ -69,11 +69,11 @@ public: /** * @brief Base class for all instruction formatter implementations. */ -class VXBaseInstructionFormatter +class ZyDisBaseInstructionFormatter { private: static const char *m_registerStrings[]; - VXBaseSymbolResolver *m_symbolResolver; + ZyDisBaseSymbolResolver *m_symbolResolver; std::vector m_outputBuffer; size_t m_outputStringLen; bool m_outputUppercase; @@ -109,7 +109,7 @@ protected: * @param resolveSymbols If this parameter is true, the method will try to display a * smybol name instead of the numeric value. */ - void outputAppendAddress(const VXInstructionInfo &info, uint64_t address, + void outputAppendAddress(const ZyDisInstructionInfo &info, uint64_t address, bool resolveSymbols = true); /** * @brief Appends a formatted immediate value to the output string buffer. @@ -118,21 +118,21 @@ protected: * @param resolveSymbols If this parameter is true, the method will try to display a * smybol name instead of the numeric value. */ - void outputAppendImmediate(const VXInstructionInfo &info, const VXOperandInfo &operand, + void outputAppendImmediate(const ZyDisInstructionInfo &info, const ZyDisOperandInfo &operand, bool resolveSymbols = false); /** * @brief Appends a formatted memory displacement value to the output string buffer. * @param info The instruction info. * @param operand The memory operand. */ - void outputAppendDisplacement(const VXInstructionInfo &info, const VXOperandInfo &operand); + void outputAppendDisplacement(const ZyDisInstructionInfo &info, const ZyDisOperandInfo &operand); protected: /** * @brief Returns the string representation of a given register. * @param reg The register. * @return The string representation of the given register. */ - const char* registerToString(VXRegister reg) const; + const char* registerToString(ZyDisRegister reg) const; /** * @brief Resolves a symbol. * @param info The instruction info. @@ -141,7 +141,7 @@ protected: * relative to the base address of the symbol. * @return The name of the symbol, if the symbol was found, @c NULL if not. */ - const char* resolveSymbol(const VXInstructionInfo &info, uint64_t address, + const char* resolveSymbol(const ZyDisInstructionInfo &info, uint64_t address, uint64_t &offset) const; protected: /** @@ -150,58 +150,58 @@ protected: * string buffer. * @param info The instruction info. */ - virtual void internalFormatInstruction(const VXInstructionInfo &info); + virtual void internalFormatInstruction(const ZyDisInstructionInfo &info); /** * @brief Default constructor. */ - VXBaseInstructionFormatter(); + ZyDisBaseInstructionFormatter(); /** * @brief Constructor. * @param symbolResolver Pointer to a symbol resolver instance or @c NULL, if no smybol * resolver should be used. */ - explicit VXBaseInstructionFormatter(VXBaseSymbolResolver *symbolResolver); + explicit ZyDisBaseInstructionFormatter(ZyDisBaseSymbolResolver *symbolResolver); public: /** * @brief Destructor. */ - virtual ~VXBaseInstructionFormatter(); + virtual ~ZyDisBaseInstructionFormatter(); public: /** * @brief Formats a decoded instruction. * @param info The instruction info. * @return Pointer to the formatted instruction string. */ - const char* formatInstruction(const VXInstructionInfo &info); + const char* formatInstruction(const ZyDisInstructionInfo &info); public: /** * @brief Returns a pointer to the current symbol resolver. * @return Pointer to the current symbol resolver or @c NULL, if no symbol resolver is used. */ - VXBaseSymbolResolver* getSymbolResolver() const; + ZyDisBaseSymbolResolver* getSymbolResolver() const; /** * @brief Sets a new symbol resolver. * @param symbolResolver Pointer to a symbol resolver instance or @c NULL, if no smybol * resolver should be used. */ - void setSymbolResolver(VXBaseSymbolResolver *symbolResolver); + void setSymbolResolver(ZyDisBaseSymbolResolver *symbolResolver); }; -inline void VXBaseInstructionFormatter::outputSetUppercase(bool uppercase) +inline void ZyDisBaseInstructionFormatter::outputSetUppercase(bool uppercase) { m_outputUppercase = uppercase; } -inline char const* VXBaseInstructionFormatter::registerToString(VXRegister reg) const +inline char const* ZyDisBaseInstructionFormatter::registerToString(ZyDisRegister reg) const { - if (reg == VXRegister::NONE) + if (reg == ZyDisRegister::NONE) { return "error"; } return m_registerStrings[static_cast(reg) - 1]; } -inline char const* VXBaseInstructionFormatter::resolveSymbol(const VXInstructionInfo &info, +inline char const* ZyDisBaseInstructionFormatter::resolveSymbol(const ZyDisInstructionInfo &info, uint64_t address, uint64_t &offset) const { if (m_symbolResolver) @@ -211,12 +211,12 @@ inline char const* VXBaseInstructionFormatter::resolveSymbol(const VXInstruction return nullptr; } -inline VXBaseSymbolResolver* VXBaseInstructionFormatter::getSymbolResolver() const +inline ZyDisBaseSymbolResolver* ZyDisBaseInstructionFormatter::getSymbolResolver() const { return m_symbolResolver; } -inline void VXBaseInstructionFormatter::setSymbolResolver(VXBaseSymbolResolver *symbolResolver) +inline void ZyDisBaseInstructionFormatter::setSymbolResolver(ZyDisBaseSymbolResolver *symbolResolver) { m_symbolResolver = symbolResolver; } @@ -226,7 +226,7 @@ inline void VXBaseInstructionFormatter::setSymbolResolver(VXBaseSymbolResolver * /** * @brief Intel syntax instruction formatter. */ -class VXIntelInstructionFormatter : public VXBaseInstructionFormatter +class ZyDisIntelInstructionFormatter : public ZyDisBaseInstructionFormatter { private: /** @@ -234,35 +234,35 @@ private: * @param info The instruction info. * @param operand The operand. */ - void outputAppendOperandCast(const VXInstructionInfo &info, const VXOperandInfo &operand); + void outputAppendOperandCast(const ZyDisInstructionInfo &info, const ZyDisOperandInfo &operand); /** * @brief Formats the specified operand and appends the resulting string to the output * buffer. * @param info The instruction info. * @param operand The operand. */ - void formatOperand(const VXInstructionInfo &info, const VXOperandInfo &operand); + void formatOperand(const ZyDisInstructionInfo &info, const ZyDisOperandInfo &operand); protected: /** * @brief Fills the internal string buffer with an intel style formatted instruction string. * @param info The instruction info. */ - void internalFormatInstruction(const VXInstructionInfo &info) override; + void internalFormatInstruction(const ZyDisInstructionInfo &info) override; public: /** * @brief Default constructor. */ - VXIntelInstructionFormatter(); + ZyDisIntelInstructionFormatter(); /** * @brief Constructor. * @param symbolResolver Pointer to a symbol resolver instance or @c NULL, if no smybol * resolver should be used. */ - explicit VXIntelInstructionFormatter(VXBaseSymbolResolver *symbolResolver); + explicit ZyDisIntelInstructionFormatter(ZyDisBaseSymbolResolver *symbolResolver); /** * @brief Destructor. */ - ~VXIntelInstructionFormatter() override; + ~ZyDisIntelInstructionFormatter() override; }; /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -270,7 +270,7 @@ public: /** * @brief Simple symbol resolver that only matches exact addresses. */ -class VXExactSymbolResolver : public VXBaseSymbolResolver +class ZyDisExactSymbolResolver : public ZyDisBaseSymbolResolver { private: std::unordered_map m_symbolMap; @@ -278,7 +278,7 @@ public: /** * @brief Destructor. */ - ~VXExactSymbolResolver() override; + ~ZyDisExactSymbolResolver() override; public: /** * @brief Resolves a symbol. @@ -288,7 +288,7 @@ public: * relative to the base address of the symbol. * @return The name of the symbol, if the symbol was found, @c NULL if not. */ - const char* resolveSymbol(const VXInstructionInfo &info, uint64_t address, + const char* resolveSymbol(const ZyDisInstructionInfo &info, uint64_t address, uint64_t &offset) override; public: /** diff --git a/Bindings/Cpp/ZyDisOpcodeTable.cpp b/Bindings/Cpp/ZyDisOpcodeTable.cpp new file mode 100644 index 0000000..38709b3 --- /dev/null +++ b/Bindings/Cpp/ZyDisOpcodeTable.cpp @@ -0,0 +1,9655 @@ +/************************************************************************************************** + + Verteron Disassembler Engine + Version 1.0 + + Remarks : Freeware, Copyright must be included + + Original Author : Florian Bernd + Modifications : + + Last change : 14. October 2014 + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + +**************************************************************************************************/ +#include "ZyDisOpcodeTable.hpp" + +namespace Verteron +{ + +namespace Internal +{ + +#define ZYDIS_INVALID 0 +#define NODE(type, n) (static_cast(type) << 12 | (n)) + +const ZyDisOpcodeTreeNode optreeTable[][256] = +{ + { + /* 00 */ 0x0015, + /* 01 */ 0x0014, + /* 02 */ 0x0016, + /* 03 */ 0x0018, + /* 04 */ 0x0017, + /* 05 */ 0x0010, + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0000), + /* 07 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0001), + /* 08 */ 0x0394, + /* 09 */ 0x0393, + /* 0A */ 0x0396, + /* 0B */ 0x0395, + /* 0C */ 0x0390, + /* 0D */ 0x038F, + /* 0E */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0002), + /* 0F */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0001), + /* 10 */ 0x000B, + /* 11 */ 0x000A, + /* 12 */ 0x000C, + /* 13 */ 0x000E, + /* 14 */ 0x000D, + /* 15 */ 0x0006, + /* 16 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0007), + /* 17 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0008), + /* 18 */ 0x04FE, + /* 19 */ 0x04F7, + /* 1A */ 0x04F8, + /* 1B */ 0x04FB, + /* 1C */ 0x04FA, + /* 1D */ 0x04F9, + /* 1E */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0009), + /* 1F */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x000A), + /* 20 */ 0x0026, + /* 21 */ 0x0027, + /* 22 */ 0x0025, + /* 23 */ 0x002C, + /* 24 */ 0x002D, + /* 25 */ 0x002E, + /* 26 */ ZYDIS_INVALID, + /* 27 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x000B), + /* 28 */ 0x0542, + /* 29 */ 0x0549, + /* 2A */ 0x0548, + /* 2B */ 0x054B, + /* 2C */ 0x054A, + /* 2D */ 0x0547, + /* 2E */ ZYDIS_INVALID, + /* 2F */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x000C), + /* 30 */ 0x06B8, + /* 31 */ 0x06B9, + /* 32 */ 0x06B6, + /* 33 */ 0x06B7, + /* 34 */ 0x06BA, + /* 35 */ 0x06BB, + /* 36 */ ZYDIS_INVALID, + /* 37 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x000D), + /* 38 */ 0x006C, + /* 39 */ 0x006D, + /* 3A */ 0x006B, + /* 3B */ 0x006A, + /* 3C */ 0x0070, + /* 3D */ 0x006F, + /* 3E */ ZYDIS_INVALID, + /* 3F */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x000E), + /* 40 */ 0x02AB, + /* 41 */ 0x02AC, + /* 42 */ 0x02B2, + /* 43 */ 0x02B1, + /* 44 */ 0x02B3, + /* 45 */ 0x02B4, + /* 46 */ 0x02AE, + /* 47 */ 0x02AD, + /* 48 */ 0x00A7, + /* 49 */ 0x00A6, + /* 4A */ 0x00A8, + /* 4B */ 0x00AA, + /* 4C */ 0x00A9, + /* 4D */ 0x00A2, + /* 4E */ 0x00A1, + /* 4F */ 0x00A3, + /* 50 */ 0x04B4, + /* 51 */ 0x04B9, + /* 52 */ 0x04B3, + /* 53 */ 0x04AE, + /* 54 */ 0x04AF, + /* 55 */ 0x04B0, + /* 56 */ 0x04B1, + /* 57 */ 0x04B2, + /* 58 */ 0x0449, + /* 59 */ 0x0447, + /* 5A */ 0x0448, + /* 5B */ 0x0442, + /* 5C */ 0x043E, + /* 5D */ 0x043D, + /* 5E */ 0x043F, + /* 5F */ 0x0441, + /* 60 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0007), + /* 61 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0008), + /* 62 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0013), + /* 63 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0014), + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ 0x04B7, + /* 69 */ 0x02A4, + /* 6A */ 0x04AB, + /* 6B */ 0x02A6, + /* 6C */ 0x02B5, + /* 6D */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0009), + /* 6E */ 0x039F, + /* 6F */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x000A), + /* 70 */ 0x02E8, + /* 71 */ 0x02E2, + /* 72 */ 0x02CA, + /* 73 */ 0x02DE, + /* 74 */ 0x02CE, + /* 75 */ 0x02E1, + /* 76 */ 0x02CB, + /* 77 */ 0x02C7, + /* 78 */ 0x02ED, + /* 79 */ 0x02E6, + /* 7A */ 0x02EB, + /* 7B */ 0x02E5, + /* 7C */ 0x02D5, + /* 7D */ 0x02D3, + /* 7E */ 0x02D8, + /* 7F */ 0x02D1, + /* 80 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0013), + /* 81 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0014), + /* 82 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0015), + /* 83 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0016), + /* 84 */ 0x055C, + /* 85 */ 0x055D, + /* 86 */ 0x06A8, + /* 87 */ 0x06A7, + /* 88 */ 0x0334, + /* 89 */ 0x0336, + /* 8A */ 0x0335, + /* 8B */ 0x0331, + /* 8C */ 0x031D, + /* 8D */ 0x02F4, + /* 8E */ 0x031C, + /* 8F */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0017), + /* 90 */ 0x06A9, + /* 91 */ 0x06AB, + /* 92 */ 0x06AA, + /* 93 */ 0x06A3, + /* 94 */ 0x06A2, + /* 95 */ 0x06A4, + /* 96 */ 0x06A6, + /* 97 */ 0x06A5, + /* 98 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x000B), + /* 99 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x000C), + /* 9A */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x001D), + /* 9B */ 0x069D, + /* 9C */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x000D), + /* 9D */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x000E), + /* 9E */ 0x04EF, + /* 9F */ 0x02EF, + /* A0 */ 0x031B, + /* A1 */ 0x0320, + /* A2 */ 0x031F, + /* A3 */ 0x031E, + /* A4 */ 0x0367, + /* A5 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x000F), + /* A6 */ 0x0076, + /* A7 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0010), + /* A8 */ 0x055E, + /* A9 */ 0x055B, + /* AA */ 0x053D, + /* AB */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0011), + /* AC */ 0x0300, + /* AD */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0012), + /* AE */ 0x0501, + /* AF */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0013), + /* B0 */ 0x0317, + /* B1 */ 0x031A, + /* B2 */ 0x0318, + /* B3 */ 0x0319, + /* B4 */ 0x0321, + /* B5 */ 0x032C, + /* B6 */ 0x032B, + /* B7 */ 0x032A, + /* B8 */ 0x032D, + /* B9 */ 0x0330, + /* BA */ 0x032F, + /* BB */ 0x032E, + /* BC */ 0x0329, + /* BD */ 0x0324, + /* BE */ 0x0323, + /* BF */ 0x0322, + /* C0 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0018), + /* C1 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0019), + /* C2 */ 0x04D9, + /* C3 */ 0x04D8, + /* C4 */ NODE(ZyDisOpcodeTreeNodeType::VEX, 0x0000), + /* C5 */ NODE(ZyDisOpcodeTreeNodeType::VEX, 0x0001), + /* C6 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x001E), + /* C7 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x001F), + /* C8 */ 0x00B4, + /* C9 */ 0x02F5, + /* CA */ 0x04DA, + /* CB */ 0x04DB, + /* CC */ 0x02BB, + /* CD */ 0x02B9, + /* CE */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0027), + /* CF */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0017), + /* D0 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0020), + /* D1 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0021), + /* D2 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0022), + /* D3 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0023), + /* D4 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0028), + /* D5 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0029), + /* D6 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x002A), + /* D7 */ 0x06B2, + /* D8 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0015), + /* D9 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0016), + /* DA */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0017), + /* DB */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0018), + /* DC */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0019), + /* DD */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x001A), + /* DE */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x001B), + /* DF */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x001C), + /* E0 */ 0x0306, + /* E1 */ 0x0305, + /* E2 */ 0x0304, + /* E3 */ NODE(ZyDisOpcodeTreeNodeType::ADDRESS_SIZE, 0x0000), + /* E4 */ 0x02A9, + /* E5 */ 0x02AA, + /* E6 */ 0x039D, + /* E7 */ 0x039E, + /* E8 */ 0x004E, + /* E9 */ 0x02DB, + /* EA */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x002B), + /* EB */ 0x02DD, + /* EC */ 0x02A7, + /* ED */ 0x02A8, + /* EE */ 0x039B, + /* EF */ 0x039C, + /* F0 */ 0x02FF, + /* F1 */ 0x02BA, + /* F2 */ 0x04D7, + /* F3 */ 0x04D6, + /* F4 */ 0x029D, + /* F5 */ 0x0059, + /* F6 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x002C), + /* F7 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x002D), + /* F8 */ 0x0053, + /* F9 */ 0x0538, + /* FA */ 0x0057, + /* FB */ 0x053B, + /* FC */ 0x0054, + /* FD */ 0x0539, + /* FE */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x002E), + /* FF */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x002F), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0000), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0000), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0003), + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0004), + /* 04 */ ZYDIS_INVALID, + /* 05 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0005), + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0006), + /* 07 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0007), + /* 08 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0008), + /* 09 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0009), + /* 0A */ ZYDIS_INVALID, + /* 0B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x000A), + /* 0C */ ZYDIS_INVALID, + /* 0D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x000B), + /* 0E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x000C), + /* 0F */ NODE(ZyDisOpcodeTreeNodeType::AMD3DNOW, 0x0000), + /* 10 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x000D), + /* 11 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x000E), + /* 12 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0001), + /* 13 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0011), + /* 14 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0012), + /* 15 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0013), + /* 16 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0002), + /* 17 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0016), + /* 18 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0017), + /* 19 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0018), + /* 1A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0019), + /* 1B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x001A), + /* 1C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x001B), + /* 1D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x001C), + /* 1E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x001D), + /* 1F */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x001E), + /* 20 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x001F), + /* 21 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0020), + /* 22 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0021), + /* 23 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0022), + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0023), + /* 29 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0024), + /* 2A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0025), + /* 2B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0026), + /* 2C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0027), + /* 2D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0028), + /* 2E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0029), + /* 2F */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x002A), + /* 30 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x002B), + /* 31 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x002C), + /* 32 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x002D), + /* 33 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x002E), + /* 34 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x002F), + /* 35 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0030), + /* 36 */ ZYDIS_INVALID, + /* 37 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0031), + /* 38 */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0002), + /* 39 */ ZYDIS_INVALID, + /* 3A */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0003), + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0081), + /* 41 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0082), + /* 42 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0083), + /* 43 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0084), + /* 44 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0085), + /* 45 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0086), + /* 46 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0087), + /* 47 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0088), + /* 48 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0089), + /* 49 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x008A), + /* 4A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x008B), + /* 4B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x008C), + /* 4C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x008D), + /* 4D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x008E), + /* 4E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x008F), + /* 4F */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0090), + /* 50 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0091), + /* 51 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0092), + /* 52 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0093), + /* 53 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0094), + /* 54 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0095), + /* 55 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0096), + /* 56 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0097), + /* 57 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0098), + /* 58 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0099), + /* 59 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x009A), + /* 5A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x009B), + /* 5B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x009C), + /* 5C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x009D), + /* 5D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x009E), + /* 5E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x009F), + /* 5F */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00A0), + /* 60 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00A1), + /* 61 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00A2), + /* 62 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00A3), + /* 63 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00A4), + /* 64 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00A5), + /* 65 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00A6), + /* 66 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00A7), + /* 67 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00A8), + /* 68 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00A9), + /* 69 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00AA), + /* 6A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00AB), + /* 6B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00AC), + /* 6C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00AD), + /* 6D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00AE), + /* 6E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00AF), + /* 6F */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00B0), + /* 70 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00B1), + /* 71 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00B2), + /* 72 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00B3), + /* 73 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00B4), + /* 74 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00B5), + /* 75 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00B6), + /* 76 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00B7), + /* 77 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00B8), + /* 78 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00B9), + /* 79 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00BA), + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00BB), + /* 7D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00BC), + /* 7E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00BD), + /* 7F */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00BE), + /* 80 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00BF), + /* 81 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00C0), + /* 82 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00C1), + /* 83 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00C2), + /* 84 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00C3), + /* 85 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00C4), + /* 86 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00C5), + /* 87 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00C6), + /* 88 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00C7), + /* 89 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00C8), + /* 8A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00C9), + /* 8B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00CA), + /* 8C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00CB), + /* 8D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00CC), + /* 8E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00CD), + /* 8F */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00CE), + /* 90 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00CF), + /* 91 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00D0), + /* 92 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00D1), + /* 93 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00D2), + /* 94 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00D3), + /* 95 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00D4), + /* 96 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00D5), + /* 97 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00D6), + /* 98 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00D7), + /* 99 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00D8), + /* 9A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00D9), + /* 9B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00DA), + /* 9C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00DB), + /* 9D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00DC), + /* 9E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00DD), + /* 9F */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00DE), + /* A0 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00DF), + /* A1 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00E0), + /* A2 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00E1), + /* A3 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00E2), + /* A4 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00E3), + /* A5 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00E4), + /* A6 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0003), + /* A7 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0004), + /* A8 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00E7), + /* A9 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00E8), + /* AA */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00E9), + /* AB */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00EA), + /* AC */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00EB), + /* AD */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00EC), + /* AE */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0005), + /* AF */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00EF), + /* B0 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00F0), + /* B1 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00F1), + /* B2 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00F2), + /* B3 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00F3), + /* B4 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00F4), + /* B5 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00F5), + /* B6 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00F6), + /* B7 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00F7), + /* B8 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00F8), + /* B9 */ ZYDIS_INVALID, + /* BA */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00F9), + /* BB */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00FA), + /* BC */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00FB), + /* BD */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00FC), + /* BE */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00FD), + /* BF */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00FE), + /* C0 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00FF), + /* C1 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0100), + /* C2 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0101), + /* C3 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0102), + /* C4 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0103), + /* C5 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0104), + /* C6 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0105), + /* C7 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0006), + /* C8 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0108), + /* C9 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0109), + /* CA */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x010A), + /* CB */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x010B), + /* CC */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x010C), + /* CD */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x010D), + /* CE */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x010E), + /* CF */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x010F), + /* D0 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0110), + /* D1 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0111), + /* D2 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0112), + /* D3 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0113), + /* D4 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0114), + /* D5 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0115), + /* D6 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0116), + /* D7 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0117), + /* D8 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0118), + /* D9 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0119), + /* DA */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x011A), + /* DB */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x011B), + /* DC */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x011C), + /* DD */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x011D), + /* DE */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x011E), + /* DF */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x011F), + /* E0 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0120), + /* E1 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0121), + /* E2 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0122), + /* E3 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0123), + /* E4 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0124), + /* E5 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0125), + /* E6 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0126), + /* E7 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0127), + /* E8 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0128), + /* E9 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0129), + /* EA */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x012A), + /* EB */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x012B), + /* EC */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x012C), + /* ED */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x012D), + /* EE */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x012E), + /* EF */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x012F), + /* F0 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0130), + /* F1 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0131), + /* F2 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0132), + /* F3 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0133), + /* F4 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0134), + /* F5 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0135), + /* F6 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0136), + /* F7 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0007), + /* F8 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0138), + /* F9 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0139), + /* FA */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x013A), + /* FB */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x013B), + /* FC */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x013C), + /* FD */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x013D), + /* FE */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x013E), + /* FF */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0032), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0033), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0034), + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0035), + /* 04 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0036), + /* 05 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0037), + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0038), + /* 07 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0039), + /* 08 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x003A), + /* 09 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x003B), + /* 0A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x003C), + /* 0B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x003D), + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + /* 10 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x003E), + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x003F), + /* 15 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0040), + /* 16 */ ZYDIS_INVALID, + /* 17 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0041), + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0042), + /* 1D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0043), + /* 1E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0044), + /* 1F */ ZYDIS_INVALID, + /* 20 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0045), + /* 21 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0046), + /* 22 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0047), + /* 23 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0048), + /* 24 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0049), + /* 25 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x004A), + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x004B), + /* 29 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x004C), + /* 2A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x004D), + /* 2B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x004E), + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x004F), + /* 31 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0050), + /* 32 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0051), + /* 33 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0052), + /* 34 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0053), + /* 35 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0054), + /* 36 */ ZYDIS_INVALID, + /* 37 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0055), + /* 38 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0056), + /* 39 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0057), + /* 3A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0058), + /* 3B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0059), + /* 3C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x005A), + /* 3D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x005B), + /* 3E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x005C), + /* 3F */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x005D), + /* 40 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x005E), + /* 41 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x005F), + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ ZYDIS_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ ZYDIS_INVALID, + /* 59 */ ZYDIS_INVALID, + /* 5A */ ZYDIS_INVALID, + /* 5B */ ZYDIS_INVALID, + /* 5C */ ZYDIS_INVALID, + /* 5D */ ZYDIS_INVALID, + /* 5E */ ZYDIS_INVALID, + /* 5F */ ZYDIS_INVALID, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0060), + /* 81 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0061), + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ ZYDIS_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0062), + /* DC */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0063), + /* DD */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0064), + /* DE */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0065), + /* DF */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0066), + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0067), + /* F1 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0068), + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0069), + /* 09 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x006A), + /* 0A */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x006B), + /* 0B */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x006C), + /* 0C */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x006D), + /* 0D */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x006E), + /* 0E */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x006F), + /* 0F */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0070), + /* 10 */ ZYDIS_INVALID, + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0071), + /* 15 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0072), + /* 16 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0073), + /* 17 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0074), + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0075), + /* 21 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0076), + /* 22 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0077), + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ ZYDIS_INVALID, + /* 2A */ ZYDIS_INVALID, + /* 2B */ ZYDIS_INVALID, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0078), + /* 41 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0079), + /* 42 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x007A), + /* 43 */ ZYDIS_INVALID, + /* 44 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x007B), + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ ZYDIS_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ ZYDIS_INVALID, + /* 59 */ ZYDIS_INVALID, + /* 5A */ ZYDIS_INVALID, + /* 5B */ ZYDIS_INVALID, + /* 5C */ ZYDIS_INVALID, + /* 5D */ ZYDIS_INVALID, + /* 5E */ ZYDIS_INVALID, + /* 5F */ ZYDIS_INVALID, + /* 60 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x007C), + /* 61 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x007D), + /* 62 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x007E), + /* 63 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x007F), + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ ZYDIS_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0080), + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_INVALID, + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + /* 10 */ 0x05E6, + /* 11 */ 0x05E5, + /* 12 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0008), + /* 13 */ 0x05CC, + /* 14 */ 0x0698, + /* 15 */ 0x0696, + /* 16 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0009), + /* 17 */ 0x05C7, + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ 0x05B8, + /* 29 */ 0x05B7, + /* 2A */ ZYDIS_INVALID, + /* 2B */ 0x05D2, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ 0x0694, + /* 2F */ 0x0581, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_INVALID, + /* 41 */ ZYDIS_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ 0x05CE, + /* 51 */ 0x0689, + /* 52 */ 0x0684, + /* 53 */ 0x067E, + /* 54 */ 0x0575, + /* 55 */ 0x0573, + /* 56 */ 0x05F6, + /* 57 */ 0x069A, + /* 58 */ 0x0567, + /* 59 */ 0x05EF, + /* 5A */ 0x0587, + /* 5B */ 0x0583, + /* 5C */ 0x068E, + /* 5D */ 0x05AF, + /* 5E */ 0x0593, + /* 5F */ 0x05A9, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x0000), + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x000A), + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ 0x057D, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ 0x0687, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ ZYDIS_INVALID, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_INVALID, + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + /* 10 */ 0x05E4, + /* 11 */ 0x05E3, + /* 12 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x000B), + /* 13 */ 0x05CA, + /* 14 */ 0x0697, + /* 15 */ 0x0695, + /* 16 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x000C), + /* 17 */ 0x05C5, + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ 0x05B5, + /* 29 */ 0x05B6, + /* 2A */ ZYDIS_INVALID, + /* 2B */ 0x05D1, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ 0x0693, + /* 2F */ 0x0580, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_INVALID, + /* 41 */ ZYDIS_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ 0x05CD, + /* 51 */ 0x0688, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ 0x0574, + /* 55 */ 0x0572, + /* 56 */ 0x05F5, + /* 57 */ 0x0699, + /* 58 */ 0x0566, + /* 59 */ 0x05EE, + /* 5A */ 0x0585, + /* 5B */ 0x0586, + /* 5C */ 0x068D, + /* 5D */ 0x05AE, + /* 5E */ 0x0592, + /* 5F */ 0x05A8, + /* 60 */ 0x0679, + /* 61 */ 0x067C, + /* 62 */ 0x067A, + /* 63 */ 0x05FB, + /* 64 */ 0x0614, + /* 65 */ 0x0617, + /* 66 */ 0x0615, + /* 67 */ 0x05FD, + /* 68 */ 0x0675, + /* 69 */ 0x0678, + /* 6A */ 0x0676, + /* 6B */ 0x05FA, + /* 6C */ 0x067B, + /* 6D */ 0x0677, + /* 6E */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0014), + /* 6F */ 0x05BF, + /* 70 */ 0x0654, + /* 71 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x001B), + /* 72 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x001C), + /* 73 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x001D), + /* 74 */ 0x060E, + /* 75 */ 0x0611, + /* 76 */ 0x060F, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ 0x059C, + /* 7D */ 0x059E, + /* 7E */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0015), + /* 7F */ 0x05C0, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ 0x057C, + /* C3 */ ZYDIS_INVALID, + /* C4 */ 0x0630, + /* C5 */ 0x0623, + /* C6 */ 0x0686, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ 0x056A, + /* D1 */ 0x066B, + /* D2 */ 0x0665, + /* D3 */ 0x0669, + /* D4 */ 0x0600, + /* D5 */ 0x0650, + /* D6 */ 0x05D4, + /* D7 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x0004), + /* D8 */ 0x0671, + /* D9 */ 0x0672, + /* DA */ 0x063C, + /* DB */ 0x0607, + /* DC */ 0x0603, + /* DD */ 0x0604, + /* DE */ 0x0636, + /* DF */ 0x0608, + /* E0 */ 0x0609, + /* E1 */ 0x0663, + /* E2 */ 0x0662, + /* E3 */ 0x060A, + /* E4 */ 0x064D, + /* E5 */ 0x064E, + /* E6 */ 0x058E, + /* E7 */ 0x05CF, + /* E8 */ 0x066F, + /* E9 */ 0x0670, + /* EA */ 0x063B, + /* EB */ 0x0651, + /* EC */ 0x0601, + /* ED */ 0x0602, + /* EE */ 0x0635, + /* EF */ 0x067D, + /* F0 */ ZYDIS_INVALID, + /* F1 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x0005), + /* F2 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x0006), + /* F3 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x0007), + /* F4 */ ZYDIS_INVALID, + /* F5 */ 0x0632, + /* F6 */ 0x0652, + /* F7 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x000D), + /* F8 */ 0x066C, + /* F9 */ 0x0673, + /* FA */ 0x066D, + /* FB */ 0x066E, + /* FC */ 0x05FE, + /* FD */ 0x0605, + /* FE */ 0x05FF, + /* FF */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0653, + /* 01 */ 0x0627, + /* 02 */ 0x0625, + /* 03 */ 0x0626, + /* 04 */ 0x0631, + /* 05 */ 0x062B, + /* 06 */ 0x0629, + /* 07 */ 0x062A, + /* 08 */ 0x0657, + /* 09 */ 0x0659, + /* 0A */ 0x0658, + /* 0B */ 0x064C, + /* 0C */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0000), + /* 0D */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0001), + /* 0E */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0002), + /* 0F */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0003), + /* 10 */ ZYDIS_INVALID, + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_INVALID, + /* 15 */ ZYDIS_INVALID, + /* 16 */ ZYDIS_INVALID, + /* 17 */ 0x0674, + /* 18 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0004), + /* 19 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0005), + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ 0x05F7, + /* 1D */ 0x05F9, + /* 1E */ 0x05F8, + /* 1F */ ZYDIS_INVALID, + /* 20 */ 0x0642, + /* 21 */ 0x0640, + /* 22 */ 0x0641, + /* 23 */ 0x0643, + /* 24 */ 0x0644, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ 0x064B, + /* 29 */ 0x0610, + /* 2A */ 0x05D0, + /* 2B */ 0x05FC, + /* 2C */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0006), + /* 2D */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0007), + /* 2E */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0008), + /* 2F */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0009), + /* 30 */ 0x0647, + /* 31 */ 0x0645, + /* 32 */ 0x0646, + /* 33 */ 0x0649, + /* 34 */ 0x064A, + /* 35 */ 0x0648, + /* 36 */ ZYDIS_INVALID, + /* 37 */ 0x0616, + /* 38 */ 0x0639, + /* 39 */ 0x063A, + /* 3A */ 0x063E, + /* 3B */ 0x063D, + /* 3C */ 0x0633, + /* 3D */ 0x0634, + /* 3E */ 0x0638, + /* 3F */ 0x0637, + /* 40 */ 0x064F, + /* 41 */ 0x0628, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ ZYDIS_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ ZYDIS_INVALID, + /* 59 */ ZYDIS_INVALID, + /* 5A */ ZYDIS_INVALID, + /* 5B */ ZYDIS_INVALID, + /* 5C */ ZYDIS_INVALID, + /* 5D */ ZYDIS_INVALID, + /* 5E */ ZYDIS_INVALID, + /* 5F */ ZYDIS_INVALID, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ ZYDIS_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ 0x0570, + /* DC */ 0x056E, + /* DD */ 0x056F, + /* DE */ 0x056C, + /* DF */ 0x056D, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x000A), + /* 05 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x000B), + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x000C), + /* 07 */ ZYDIS_INVALID, + /* 08 */ 0x0681, + /* 09 */ 0x0680, + /* 0A */ 0x0683, + /* 0B */ 0x0682, + /* 0C */ 0x0577, + /* 0D */ 0x0576, + /* 0E */ 0x060C, + /* 0F */ 0x0606, + /* 10 */ ZYDIS_INVALID, + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x000D), + /* 15 */ 0x0624, + /* 16 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0016), + /* 17 */ 0x059B, + /* 18 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0011), + /* 19 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0012), + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0013), + /* 21 */ 0x05A1, + /* 22 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0025), + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ ZYDIS_INVALID, + /* 2A */ ZYDIS_INVALID, + /* 2B */ ZYDIS_INVALID, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ 0x0597, + /* 41 */ 0x0596, + /* 42 */ 0x05E7, + /* 43 */ ZYDIS_INVALID, + /* 44 */ 0x060D, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0016), + /* 4B */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0017), + /* 4C */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0018), + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ ZYDIS_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ ZYDIS_INVALID, + /* 59 */ ZYDIS_INVALID, + /* 5A */ ZYDIS_INVALID, + /* 5B */ ZYDIS_INVALID, + /* 5C */ ZYDIS_INVALID, + /* 5D */ ZYDIS_INVALID, + /* 5E */ ZYDIS_INVALID, + /* 5F */ ZYDIS_INVALID, + /* 60 */ 0x0613, + /* 61 */ 0x0612, + /* 62 */ 0x0619, + /* 63 */ 0x0618, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ ZYDIS_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ 0x0571, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_INVALID, + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + /* 10 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x000E), + /* 11 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x000F), + /* 12 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0010), + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_INVALID, + /* 15 */ ZYDIS_INVALID, + /* 16 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0011), + /* 17 */ ZYDIS_INVALID, + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ ZYDIS_INVALID, + /* 2A */ 0x058B, + /* 2B */ ZYDIS_INVALID, + /* 2C */ 0x0591, + /* 2D */ 0x058D, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_INVALID, + /* 41 */ ZYDIS_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ 0x068B, + /* 52 */ 0x0685, + /* 53 */ 0x067F, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ 0x0569, + /* 59 */ 0x05F1, + /* 5A */ 0x058C, + /* 5B */ 0x058F, + /* 5C */ 0x0690, + /* 5D */ 0x05B1, + /* 5E */ 0x0595, + /* 5F */ 0x05AB, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ 0x05C2, + /* 70 */ 0x0655, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ 0x05D3, + /* 7F */ 0x05C1, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ 0x057F, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ ZYDIS_INVALID, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ 0x0582, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_INVALID, + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + /* 10 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0012), + /* 11 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0013), + /* 12 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_MOD, 0x0014), + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_INVALID, + /* 15 */ ZYDIS_INVALID, + /* 16 */ ZYDIS_INVALID, + /* 17 */ ZYDIS_INVALID, + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ ZYDIS_INVALID, + /* 2A */ 0x058A, + /* 2B */ ZYDIS_INVALID, + /* 2C */ 0x0590, + /* 2D */ 0x0588, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_INVALID, + /* 41 */ ZYDIS_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ 0x068A, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ 0x0568, + /* 59 */ 0x05F0, + /* 5A */ 0x0589, + /* 5B */ ZYDIS_INVALID, + /* 5C */ 0x068F, + /* 5D */ 0x05B0, + /* 5E */ 0x0594, + /* 5F */ 0x05AA, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ 0x0656, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ 0x059D, + /* 7D */ 0x059F, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ 0x057E, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ 0x056B, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ ZYDIS_INVALID, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ 0x0584, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ 0x05A2, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, + }, +}; + +const ZyDisOpcodeTreeNode optreeModrmMod[][2] = +{ + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0001), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0002), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x000F), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0010), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0014), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0015), + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00E5), + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00E6), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00ED), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x00EE), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0106), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0107), + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MANDATORY, 0x0137), + }, + { + /* 00 */ 0x05CB, + /* 01 */ 0x05C3, + }, + { + /* 00 */ 0x05C6, + /* 01 */ 0x05C8, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x001A), + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x05C9, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x05C4, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05A3, + }, + { + /* 00 */ 0x05E2, + /* 01 */ 0x05DF, + }, + { + /* 00 */ 0x05E0, + /* 01 */ 0x05E1, + }, + { + /* 00 */ 0x05DE, + /* 01 */ 0x05DD, + }, + { + /* 00 */ 0x05DB, + /* 01 */ 0x05DC, + }, + { + /* 00 */ 0x05DA, + /* 01 */ 0x05D9, + }, + { + /* 00 */ 0x05D8, + /* 01 */ 0x05D7, + }, + { + /* 00 */ 0x05BE, + /* 01 */ 0x05BD, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0024), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::X87, 0x0000), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0025), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::X87, 0x0001), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0026), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::X87, 0x0002), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0027), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::X87, 0x0003), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0028), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::X87, 0x0004), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0029), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::X87, 0x0005), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x002A), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::X87, 0x0006), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x002B), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::X87, 0x0007), + }, +}; + +const ZyDisOpcodeTreeNode optreeModrmReg[][8] = +{ + { + /* 00 */ 0x0531, + /* 01 */ 0x0541, + /* 02 */ 0x02FC, + /* 03 */ 0x0309, + /* 04 */ 0x0598, + /* 05 */ 0x0599, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0516, + /* 01 */ 0x052F, + /* 02 */ 0x02F9, + /* 03 */ 0x02FB, + /* 04 */ 0x0533, + /* 05 */ ZYDIS_INVALID, + /* 06 */ 0x02FE, + /* 07 */ 0x02C0, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x0000), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x0001), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x0002), + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x0003), + /* 04 */ 0x0532, + /* 05 */ ZYDIS_INVALID, + /* 06 */ 0x02FD, + /* 07 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x0004), + }, + { + /* 00 */ 0x0455, + /* 01 */ 0x0456, + /* 02 */ 0x0457, + /* 03 */ 0x0458, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x0486, + /* 03 */ ZYDIS_INVALID, + /* 04 */ 0x0479, + /* 05 */ ZYDIS_INVALID, + /* 06 */ 0x0470, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x0485, + /* 03 */ ZYDIS_INVALID, + /* 04 */ 0x0478, + /* 05 */ ZYDIS_INVALID, + /* 06 */ 0x0473, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x047E, + /* 03 */ ZYDIS_INVALID, + /* 04 */ 0x0475, + /* 05 */ ZYDIS_INVALID, + /* 06 */ 0x0468, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x047C, + /* 03 */ ZYDIS_INVALID, + /* 04 */ 0x0476, + /* 05 */ ZYDIS_INVALID, + /* 06 */ 0x046A, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x0482, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ 0x046D, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x0481, + /* 03 */ 0x0480, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ 0x046C, + /* 07 */ 0x046B, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x0005), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x0006), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x0007), + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x0008), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x0009), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x000A), + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x000B), + /* 04 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x000C), + /* 05 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_RM, 0x000D), + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0296, + /* 01 */ 0x0295, + /* 02 */ 0x02F2, + /* 03 */ 0x053C, + /* 04 */ 0x06C0, + /* 05 */ 0x06BF, + /* 06 */ ZYDIS_INVALID, + /* 07 */ 0x0055, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ 0x02F7, + /* 06 */ 0x0310, + /* 07 */ 0x0515, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ 0x0043, + /* 05 */ 0x0049, + /* 06 */ 0x0047, + /* 07 */ 0x0045, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0006), + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0015), + /* 07 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0016), + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0017), + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0018), + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ 0x04D3, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x000F, + /* 01 */ 0x0392, + /* 02 */ 0x0005, + /* 03 */ 0x04FF, + /* 04 */ 0x0028, + /* 05 */ 0x0544, + /* 06 */ 0x06BC, + /* 07 */ 0x006E, + }, + { + /* 00 */ 0x0013, + /* 01 */ 0x0391, + /* 02 */ 0x0009, + /* 03 */ 0x0500, + /* 04 */ 0x0029, + /* 05 */ 0x0543, + /* 06 */ 0x06B5, + /* 07 */ 0x0072, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0015), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0016), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0017), + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0018), + /* 04 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0019), + /* 05 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x001A), + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x001B), + /* 07 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x001C), + }, + { + /* 00 */ 0x0012, + /* 01 */ 0x0397, + /* 02 */ 0x0008, + /* 03 */ 0x04FD, + /* 04 */ 0x002B, + /* 05 */ 0x0545, + /* 06 */ 0x06B4, + /* 07 */ 0x0071, + }, + { + /* 00 */ 0x0440, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04DE, + /* 01 */ 0x04E6, + /* 02 */ 0x04C6, + /* 03 */ 0x04D0, + /* 04 */ 0x0517, + /* 05 */ 0x0526, + /* 06 */ 0x051D, + /* 07 */ 0x04F3, + }, + { + /* 00 */ 0x04DF, + /* 01 */ 0x04E7, + /* 02 */ 0x04C7, + /* 03 */ 0x04CE, + /* 04 */ 0x051C, + /* 05 */ 0x0528, + /* 06 */ 0x051E, + /* 07 */ 0x04F6, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x068C, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x066A, + /* 03 */ ZYDIS_INVALID, + /* 04 */ 0x0664, + /* 05 */ ZYDIS_INVALID, + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x0001), + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x0666, + /* 03 */ ZYDIS_INVALID, + /* 04 */ 0x0661, + /* 05 */ ZYDIS_INVALID, + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x0002), + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x0668, + /* 03 */ 0x0667, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x0003), + /* 07 */ 0x065C, + }, + { + /* 00 */ 0x0333, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0332, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04DD, + /* 01 */ 0x04E5, + /* 02 */ 0x04C8, + /* 03 */ 0x04CD, + /* 04 */ 0x0522, + /* 05 */ 0x0527, + /* 06 */ 0x051F, + /* 07 */ 0x04F1, + }, + { + /* 00 */ 0x04DC, + /* 01 */ 0x04E2, + /* 02 */ 0x04C5, + /* 03 */ 0x04CF, + /* 04 */ 0x0520, + /* 05 */ 0x052A, + /* 06 */ 0x0519, + /* 07 */ 0x04F4, + }, + { + /* 00 */ 0x04E1, + /* 01 */ 0x04E3, + /* 02 */ 0x04C3, + /* 03 */ 0x04CC, + /* 04 */ 0x0521, + /* 05 */ 0x0529, + /* 06 */ 0x051A, + /* 07 */ 0x04F2, + }, + { + /* 00 */ 0x04E0, + /* 01 */ 0x04E4, + /* 02 */ 0x04C4, + /* 03 */ 0x04CB, + /* 04 */ 0x0518, + /* 05 */ 0x0525, + /* 06 */ 0x051B, + /* 07 */ 0x04F5, + }, + { + /* 00 */ 0x00BB, + /* 01 */ 0x01CF, + /* 02 */ 0x0119, + /* 03 */ 0x013D, + /* 04 */ 0x022C, + /* 05 */ 0x0245, + /* 06 */ 0x0166, + /* 07 */ 0x0171, + }, + { + /* 00 */ 0x01BC, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x01FF, + /* 03 */ 0x020B, + /* 04 */ 0x01C3, + /* 05 */ 0x01C2, + /* 06 */ 0x01EB, + /* 07 */ 0x01EA, + }, + { + /* 00 */ 0x019A, + /* 01 */ 0x01A8, + /* 02 */ 0x019C, + /* 03 */ 0x019F, + /* 04 */ 0x01B3, + /* 05 */ 0x01B5, + /* 06 */ 0x01A1, + /* 07 */ 0x01A3, + }, + { + /* 00 */ 0x01A4, + /* 01 */ 0x01B1, + /* 02 */ 0x01AB, + /* 03 */ 0x01AD, + /* 04 */ ZYDIS_INVALID, + /* 05 */ 0x01BA, + /* 06 */ ZYDIS_INVALID, + /* 07 */ 0x020A, + }, + { + /* 00 */ 0x00BA, + /* 01 */ 0x01D2, + /* 02 */ 0x0118, + /* 03 */ 0x013E, + /* 04 */ 0x022B, + /* 05 */ 0x0243, + /* 06 */ 0x0158, + /* 07 */ 0x017A, + }, + { + /* 00 */ 0x01BB, + /* 01 */ 0x01AF, + /* 02 */ 0x01FE, + /* 03 */ 0x0209, + /* 04 */ 0x01F3, + /* 05 */ ZYDIS_INVALID, + /* 06 */ 0x01E8, + /* 07 */ 0x01ED, + }, + { + /* 00 */ 0x019B, + /* 01 */ 0x01A7, + /* 02 */ 0x019D, + /* 03 */ 0x019E, + /* 04 */ 0x01B2, + /* 05 */ 0x01B4, + /* 06 */ 0x01A0, + /* 07 */ 0x01A2, + }, + { + /* 00 */ 0x01A6, + /* 01 */ 0x01B0, + /* 02 */ 0x01AA, + /* 03 */ 0x01AE, + /* 04 */ 0x00D2, + /* 05 */ 0x01A5, + /* 06 */ 0x00D3, + /* 07 */ 0x01AC, + }, + { + /* 00 */ 0x0557, + /* 01 */ 0x0558, + /* 02 */ 0x038E, + /* 03 */ 0x0385, + /* 04 */ 0x037E, + /* 05 */ 0x02A5, + /* 06 */ 0x00AC, + /* 07 */ 0x02A0, + }, + { + /* 00 */ 0x0559, + /* 01 */ 0x055A, + /* 02 */ 0x038D, + /* 03 */ 0x0384, + /* 04 */ 0x037D, + /* 05 */ 0x02A3, + /* 06 */ 0x00AB, + /* 07 */ 0x02A1, + }, + { + /* 00 */ 0x02AF, + /* 01 */ 0x00A4, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02B0, + /* 01 */ 0x00A5, + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x002C), + /* 03 */ 0x004C, + /* 04 */ 0x02D9, + /* 05 */ 0x02DA, + /* 06 */ 0x04B8, + /* 07 */ ZYDIS_INVALID, + }, +}; + +const ZyDisOpcodeTreeNode optreeModrmRm[][8] = +{ + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0000), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0001), + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0002), + /* 04 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0003), + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0315, + /* 01 */ 0x0383, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06B1, + /* 01 */ 0x06C1, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0004), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0005), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0006), + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0007), + /* 04 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0008), + /* 05 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0009), + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x000A), + /* 07 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x000B), + }, + { + /* 00 */ 0x0550, + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x000C), + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0316, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06C2, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06C3, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06C4, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06AF, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06AC, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06AE, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06AD, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06B0, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + }, +}; + +const ZyDisOpcodeTreeNode optreeMandatory[][4] = +{ + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0000), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0001), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0002), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02F0, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0307, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0551, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0058, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0556, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02BD, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x069E, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0561, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0454, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0189, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0379, + /* 01 */ 0x0368, + /* 02 */ 0x0371, + /* 03 */ 0x0377, + }, + { + /* 00 */ 0x0378, + /* 01 */ 0x036A, + /* 02 */ 0x0370, + /* 03 */ 0x0376, + }, + { + /* 00 */ 0x0355, + /* 01 */ 0x0345, + /* 02 */ 0x036D, + /* 03 */ 0x0353, + }, + { + /* 00 */ 0x034C, + /* 01 */ 0x0346, + /* 02 */ 0x036E, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0354, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0352, + }, + { + /* 00 */ 0x0565, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0564, + }, + { + /* 00 */ 0x0563, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0562, + }, + { + /* 00 */ 0x0350, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x036B, + /* 03 */ 0x034E, + }, + { + /* 00 */ 0x0351, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x036C, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x034F, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x034D, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0003), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x038A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x038B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x038C, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0389, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0386, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0387, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0388, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0325, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0328, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0327, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0326, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x033A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0338, + }, + { + /* 00 */ 0x0339, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0337, + }, + { + /* 00 */ 0x008D, + /* 01 */ 0x0093, + /* 02 */ 0x0094, + /* 03 */ 0x008C, + }, + { + /* 00 */ 0x035C, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x035B, + }, + { + /* 00 */ 0x009A, + /* 01 */ 0x009B, + /* 02 */ 0x009C, + /* 03 */ 0x0098, + }, + { + /* 00 */ 0x0090, + /* 01 */ 0x0091, + /* 02 */ 0x0096, + /* 03 */ 0x008A, + }, + { + /* 00 */ 0x0560, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x055F, + }, + { + /* 00 */ 0x0082, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0081, + }, + { + /* 00 */ 0x069F, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04D4, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04D1, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04D2, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0003), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0004), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x029A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x045B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x045C, + }, + { + /* 00 */ 0x03FD, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03FE, + }, + { + /* 00 */ 0x03FA, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03F9, + }, + { + /* 00 */ 0x03FB, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03FC, + }, + { + /* 00 */ 0x040E, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x040F, + }, + { + /* 00 */ 0x0405, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0404, + }, + { + /* 00 */ 0x0400, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0401, + }, + { + /* 00 */ 0x0402, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0403, + }, + { + /* 00 */ 0x0461, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0462, + }, + { + /* 00 */ 0x0466, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0465, + }, + { + /* 00 */ 0x0464, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0463, + }, + { + /* 00 */ 0x0431, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0432, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03CA, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0037, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0036, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x049A, + }, + { + /* 00 */ 0x03A3, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03A2, + }, + { + /* 00 */ 0x03A6, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03A7, + }, + { + /* 00 */ 0x03A4, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03A5, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0426, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0424, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0425, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0428, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0429, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0427, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0430, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03D1, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0359, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03AC, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x042C, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x042A, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x042B, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x042E, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x042F, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x042D, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03DA, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x041A, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x041B, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0421, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0420, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0412, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0413, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0419, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0418, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0438, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03FF, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0005), + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0006), + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0023, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0021, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0022, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x001F, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0020, + }, + { + /* 00 */ 0x033B, + /* 01 */ 0x0086, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x033C, + /* 01 */ 0x0085, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x04E9, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x04E8, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x04EB, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x04EA, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0035, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0034, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03CB, + }, + { + /* 00 */ 0x03BF, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03C0, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03DF, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03E3, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0000), + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x00B5, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0408, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x02B7, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0001), + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x00B2, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x00B1, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x037C, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03CC, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03D5, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03D4, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03DE, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03DD, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0024, + }, + { + /* 00 */ 0x0067, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0064, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x005C, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x005B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x005E, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0063, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x005D, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x005A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0069, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0066, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0068, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0065, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0061, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0060, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0062, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x005F, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0357, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0356, + }, + { + /* 00 */ 0x0535, + /* 01 */ 0x0536, + /* 02 */ 0x0537, + /* 03 */ 0x0534, + }, + { + /* 00 */ 0x04ED, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x04EE, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04C9, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x04CA, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0032, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0031, + }, + { + /* 00 */ 0x0030, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x002F, + }, + { + /* 00 */ 0x039A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0399, + }, + { + /* 00 */ 0x06BE, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x06BD, + }, + { + /* 00 */ 0x001A, + /* 01 */ 0x001B, + /* 02 */ 0x001C, + /* 03 */ 0x0019, + }, + { + /* 00 */ 0x0380, + /* 01 */ 0x0381, + /* 02 */ 0x0382, + /* 03 */ 0x037F, + }, + { + /* 00 */ 0x008F, + /* 01 */ 0x0092, + /* 02 */ 0x0095, + /* 03 */ 0x008B, + }, + { + /* 00 */ 0x0088, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x0099, + /* 03 */ 0x008E, + }, + { + /* 00 */ 0x054D, + /* 01 */ 0x054E, + /* 02 */ 0x054F, + /* 03 */ 0x054C, + }, + { + /* 00 */ 0x0312, + /* 01 */ 0x0313, + /* 02 */ 0x0314, + /* 03 */ 0x0311, + }, + { + /* 00 */ 0x00AE, + /* 01 */ 0x00AF, + /* 02 */ 0x00B0, + /* 03 */ 0x00AD, + }, + { + /* 00 */ 0x030D, + /* 01 */ 0x030E, + /* 02 */ 0x030F, + /* 03 */ 0x030C, + }, + { + /* 00 */ 0x04A2, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x04A3, + }, + { + /* 00 */ 0x04A7, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x04A8, + }, + { + /* 00 */ 0x04A5, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x04A4, + }, + { + /* 00 */ 0x03AA, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03AB, + }, + { + /* 00 */ 0x03D7, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03D6, + }, + { + /* 00 */ 0x03DC, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03DB, + }, + { + /* 00 */ 0x03D8, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03D9, + }, + { + /* 00 */ 0x03AD, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03AE, + }, + { + /* 00 */ 0x049B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x049C, + }, + { + /* 00 */ 0x04A1, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x04A0, + }, + { + /* 00 */ 0x049E, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x049D, + }, + { + /* 00 */ 0x03A8, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03A9, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x04A6, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x049F, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0002), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0003), + }, + { + /* 00 */ 0x0363, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x034A, + /* 03 */ 0x0348, + }, + { + /* 00 */ 0x0460, + /* 01 */ 0x045F, + /* 02 */ 0x045E, + /* 03 */ 0x045D, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0004), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0005), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0006), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0007), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0008), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0009), + }, + { + /* 00 */ 0x03CD, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03CE, + }, + { + /* 00 */ 0x03D2, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03D3, + }, + { + /* 00 */ 0x03D0, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03CF, + }, + { + /* 00 */ 0x00B3, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0013), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0014), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x029C, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x029B, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x029F, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x029E, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0004), + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x035F, + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::OPERAND_SIZE, 0x0005), + }, + { + /* 00 */ 0x0362, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x034B, + /* 03 */ 0x0349, + }, + { + /* 00 */ 0x02E9, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02E3, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02C9, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02DF, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02CF, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02E0, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02CC, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02C8, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02EE, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02E7, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02EA, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02E4, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02D6, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02D4, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02D7, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02D2, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0512, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x050F, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0507, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0506, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0509, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x050E, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0508, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0505, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0514, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0511, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0513, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0510, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x050C, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x050B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x050D, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x050A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04B5, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x044A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0083, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0044, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0524, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0523, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x000A), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x000B), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04B6, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0444, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04EC, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x004A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x052C, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x052B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x000C), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x000D), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02A2, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x007C, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x007D, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0308, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0048, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02F8, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02FA, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x037B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x037A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ 0x044D, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x000E), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0046, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0039, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x003A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0373, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0374, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06A1, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06A0, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0075, + /* 01 */ 0x0077, + /* 02 */ 0x007A, + /* 03 */ 0x0074, + }, + { + /* 00 */ 0x035A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x040D, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x040C, + }, + { + /* 00 */ 0x03E4, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03E5, + }, + { + /* 00 */ 0x052E, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x052D, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x000F), + /* 01 */ ZYDIS_INVALID, + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0010), + /* 03 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0011), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODRM_REG, 0x0012), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x003F, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x003D, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0040, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x003C, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x003E, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x003B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0042, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0041, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x001E, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x001D, + }, + { + /* 00 */ 0x0487, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0488, + }, + { + /* 00 */ 0x047D, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x047F, + }, + { + /* 00 */ 0x0483, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0484, + }, + { + /* 00 */ 0x03B3, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03B4, + }, + { + /* 00 */ 0x0439, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x043A, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x0347, + /* 02 */ 0x0366, + /* 03 */ 0x0361, + }, + { + /* 00 */ 0x0422, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0423, + }, + { + /* 00 */ 0x0494, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0493, + }, + { + /* 00 */ 0x0496, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0495, + }, + { + /* 00 */ 0x041E, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x041F, + }, + { + /* 00 */ 0x03C1, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03C2, + }, + { + /* 00 */ 0x03BA, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03B9, + }, + { + /* 00 */ 0x03BB, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03BC, + }, + { + /* 00 */ 0x0417, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0416, + }, + { + /* 00 */ 0x03C3, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03C4, + }, + { + /* 00 */ 0x03C5, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03C6, + }, + { + /* 00 */ 0x047A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x047B, + }, + { + /* 00 */ 0x0477, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0474, + }, + { + /* 00 */ 0x03C8, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03C9, + }, + { + /* 00 */ 0x0434, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0435, + }, + { + /* 00 */ 0x0436, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0437, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x0089, + /* 02 */ 0x0087, + /* 03 */ 0x0097, + }, + { + /* 00 */ 0x035D, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0358, + }, + { + /* 00 */ 0x048F, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0490, + }, + { + /* 00 */ 0x0492, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0491, + }, + { + /* 00 */ 0x041C, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x041D, + }, + { + /* 00 */ 0x0453, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0452, + }, + { + /* 00 */ 0x03B6, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03B5, + }, + { + /* 00 */ 0x03B8, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03B7, + }, + { + /* 00 */ 0x0414, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0415, + }, + { + /* 00 */ 0x04C1, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x04C2, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x02F1, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0472, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0471, + }, + { + /* 00 */ 0x0469, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0467, + }, + { + /* 00 */ 0x046E, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x046F, + }, + { + /* 00 */ 0x043B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x043C, + }, + { + /* 00 */ 0x0411, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0410, + }, + { + /* 00 */ 0x045A, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0459, + }, + { + /* 00 */ 0x030B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x030A, + }, + { + /* 00 */ 0x0489, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x048A, + }, + { + /* 00 */ 0x0498, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x0497, + }, + { + /* 00 */ 0x048B, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x048C, + }, + { + /* 00 */ 0x048D, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x048E, + }, + { + /* 00 */ 0x03AF, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03B0, + }, + { + /* 00 */ 0x03BE, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03BD, + }, + { + /* 00 */ 0x03B1, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ 0x03B2, + }, +}; + +const ZyDisOpcodeTreeNode optreeX87[][64] = +{ + { + /* 00 */ 0x00BC, + /* 01 */ 0x00BF, + /* 02 */ 0x00C2, + /* 03 */ 0x00C1, + /* 04 */ 0x00C0, + /* 05 */ 0x00C5, + /* 06 */ 0x00C3, + /* 07 */ 0x00C4, + /* 08 */ 0x01CE, + /* 09 */ 0x01CD, + /* 0A */ 0x01D9, + /* 0B */ 0x01DA, + /* 0C */ 0x01DB, + /* 0D */ 0x01D6, + /* 0E */ 0x01D7, + /* 0F */ 0x01D8, + /* 10 */ 0x011A, + /* 11 */ 0x011C, + /* 12 */ 0x011B, + /* 13 */ 0x0117, + /* 14 */ 0x0116, + /* 15 */ 0x011D, + /* 16 */ 0x011F, + /* 17 */ 0x011E, + /* 18 */ 0x013A, + /* 19 */ 0x0141, + /* 1A */ 0x013C, + /* 1B */ 0x0138, + /* 1C */ 0x013B, + /* 1D */ 0x0140, + /* 1E */ 0x013F, + /* 1F */ 0x0139, + /* 20 */ 0x022E, + /* 21 */ 0x0226, + /* 22 */ 0x0229, + /* 23 */ 0x0232, + /* 24 */ 0x0231, + /* 25 */ 0x022D, + /* 26 */ 0x022A, + /* 27 */ 0x0227, + /* 28 */ 0x0246, + /* 29 */ 0x024B, + /* 2A */ 0x024C, + /* 2B */ 0x024A, + /* 2C */ 0x0248, + /* 2D */ 0x0249, + /* 2E */ 0x0250, + /* 2F */ 0x0251, + /* 30 */ 0x0161, + /* 31 */ 0x0162, + /* 32 */ 0x0155, + /* 33 */ 0x015A, + /* 34 */ 0x0159, + /* 35 */ 0x0156, + /* 36 */ 0x0157, + /* 37 */ 0x0163, + /* 38 */ 0x0172, + /* 39 */ 0x016F, + /* 3A */ 0x0170, + /* 3B */ 0x0173, + /* 3C */ 0x0176, + /* 3D */ 0x0177, + /* 3E */ 0x0174, + /* 3F */ 0x0175, + }, + { + /* 00 */ 0x01BD, + /* 01 */ 0x01C0, + /* 02 */ 0x01BF, + /* 03 */ 0x01BE, + /* 04 */ 0x01B7, + /* 05 */ 0x01B6, + /* 06 */ 0x01B9, + /* 07 */ 0x01B8, + /* 08 */ 0x0281, + /* 09 */ 0x0282, + /* 0A */ 0x0283, + /* 0B */ 0x0280, + /* 0C */ 0x027D, + /* 0D */ 0x027E, + /* 0E */ 0x027F, + /* 0F */ 0x0284, + /* 10 */ 0x01E7, + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_INVALID, + /* 15 */ ZYDIS_INVALID, + /* 16 */ ZYDIS_INVALID, + /* 17 */ ZYDIS_INVALID, + /* 18 */ 0x0213, + /* 19 */ 0x0212, + /* 1A */ 0x0215, + /* 1B */ 0x0214, + /* 1C */ 0x020F, + /* 1D */ 0x020E, + /* 1E */ 0x0211, + /* 1F */ 0x0210, + /* 20 */ 0x00D4, + /* 21 */ 0x00B7, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ 0x025A, + /* 25 */ 0x027C, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ 0x01C1, + /* 29 */ 0x01C5, + /* 2A */ 0x01C4, + /* 2B */ 0x01C8, + /* 2C */ 0x01C6, + /* 2D */ 0x01C7, + /* 2E */ 0x01C9, + /* 2F */ ZYDIS_INVALID, + /* 30 */ 0x00B6, + /* 31 */ 0x0298, + /* 32 */ 0x01F1, + /* 33 */ 0x01EE, + /* 34 */ 0x0297, + /* 35 */ 0x01F0, + /* 36 */ 0x0154, + /* 37 */ 0x01A9, + /* 38 */ 0x01EF, + /* 39 */ 0x0299, + /* 3A */ 0x01F8, + /* 3B */ 0x01F7, + /* 3C */ 0x01F2, + /* 3D */ 0x01F5, + /* 3E */ 0x01F6, + /* 3F */ 0x0153, + }, + { + /* 00 */ 0x00D9, + /* 01 */ 0x00DA, + /* 02 */ 0x00DB, + /* 03 */ 0x00D6, + /* 04 */ 0x00D7, + /* 05 */ 0x00D8, + /* 06 */ 0x00DD, + /* 07 */ 0x00DC, + /* 08 */ 0x00E6, + /* 09 */ 0x00E7, + /* 0A */ 0x00E8, + /* 0B */ 0x00EC, + /* 0C */ 0x00ED, + /* 0D */ 0x00EB, + /* 0E */ 0x00E9, + /* 0F */ 0x00EA, + /* 10 */ 0x00E4, + /* 11 */ 0x00E5, + /* 12 */ 0x00E2, + /* 13 */ 0x00E3, + /* 14 */ 0x00DF, + /* 15 */ 0x00DE, + /* 16 */ 0x00E0, + /* 17 */ 0x00E1, + /* 18 */ 0x0113, + /* 19 */ 0x0114, + /* 1A */ 0x0115, + /* 1B */ 0x010F, + /* 1C */ 0x010E, + /* 1D */ 0x0110, + /* 1E */ 0x0111, + /* 1F */ 0x0112, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ 0x027B, + /* 2A */ ZYDIS_INVALID, + /* 2B */ ZYDIS_INVALID, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x00F0, + /* 01 */ 0x00F1, + /* 02 */ 0x00EE, + /* 03 */ 0x00EF, + /* 04 */ 0x00F4, + /* 05 */ 0x00F5, + /* 06 */ 0x00F2, + /* 07 */ 0x00F3, + /* 08 */ 0x0103, + /* 09 */ 0x0102, + /* 0A */ 0x0105, + /* 0B */ 0x0104, + /* 0C */ 0x00FF, + /* 0D */ 0x00FE, + /* 0E */ 0x0101, + /* 0F */ 0x0100, + /* 10 */ 0x00F8, + /* 11 */ 0x00F9, + /* 12 */ 0x00F6, + /* 13 */ 0x00F7, + /* 14 */ 0x00FC, + /* 15 */ 0x00FD, + /* 16 */ 0x00FA, + /* 17 */ 0x00FB, + /* 18 */ 0x010B, + /* 19 */ 0x010A, + /* 1A */ 0x010D, + /* 1B */ 0x010C, + /* 1C */ 0x0107, + /* 1D */ 0x0106, + /* 1E */ 0x0109, + /* 1F */ 0x0108, + /* 20 */ 0x01E5, + /* 21 */ 0x01E4, + /* 22 */ 0x00D5, + /* 23 */ 0x01E6, + /* 24 */ 0x01E9, + /* 25 */ 0x01F4, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ 0x0269, + /* 29 */ 0x026A, + /* 2A */ 0x0265, + /* 2B */ 0x0264, + /* 2C */ 0x0263, + /* 2D */ 0x0268, + /* 2E */ 0x0267, + /* 2F */ 0x0266, + /* 30 */ 0x0129, + /* 31 */ 0x0128, + /* 32 */ 0x012B, + /* 33 */ 0x012A, + /* 34 */ 0x012F, + /* 35 */ 0x012E, + /* 36 */ 0x012D, + /* 37 */ 0x012C, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x00B9, + /* 01 */ 0x00B8, + /* 02 */ 0x00C6, + /* 03 */ 0x00C9, + /* 04 */ 0x00C8, + /* 05 */ 0x00C7, + /* 06 */ 0x00BE, + /* 07 */ 0x00BD, + /* 08 */ 0x01D1, + /* 09 */ 0x01D0, + /* 0A */ 0x01D5, + /* 0B */ 0x01D4, + /* 0C */ 0x01D3, + /* 0D */ 0x01CC, + /* 0E */ 0x01CB, + /* 0F */ 0x01CA, + /* 10 */ 0x0125, + /* 11 */ 0x0124, + /* 12 */ 0x0127, + /* 13 */ 0x0126, + /* 14 */ 0x0121, + /* 15 */ 0x0120, + /* 16 */ 0x0123, + /* 17 */ 0x0122, + /* 18 */ 0x0148, + /* 19 */ 0x0142, + /* 1A */ 0x0145, + /* 1B */ 0x0144, + /* 1C */ 0x0143, + /* 1D */ 0x0147, + /* 1E */ 0x0146, + /* 1F */ 0x0149, + /* 20 */ 0x024F, + /* 21 */ 0x0247, + /* 22 */ 0x0241, + /* 23 */ 0x0242, + /* 24 */ 0x0240, + /* 25 */ 0x024E, + /* 26 */ 0x024D, + /* 27 */ 0x0244, + /* 28 */ 0x0228, + /* 29 */ 0x0235, + /* 2A */ 0x0234, + /* 2B */ 0x0237, + /* 2C */ 0x0236, + /* 2D */ 0x0233, + /* 2E */ 0x0230, + /* 2F */ 0x022F, + /* 30 */ 0x017B, + /* 31 */ 0x0178, + /* 32 */ 0x0179, + /* 33 */ 0x017C, + /* 34 */ 0x017F, + /* 35 */ 0x0180, + /* 36 */ 0x017D, + /* 37 */ 0x017E, + /* 38 */ 0x015E, + /* 39 */ 0x015F, + /* 3A */ 0x0160, + /* 3B */ 0x015B, + /* 3C */ 0x015C, + /* 3D */ 0x015D, + /* 3E */ 0x0164, + /* 3F */ 0x0165, + }, + { + /* 00 */ 0x018F, + /* 01 */ 0x018E, + /* 02 */ 0x0191, + /* 03 */ 0x0190, + /* 04 */ 0x018B, + /* 05 */ 0x018A, + /* 06 */ 0x018D, + /* 07 */ 0x018C, + /* 08 */ 0x028A, + /* 09 */ 0x0289, + /* 0A */ 0x028C, + /* 0B */ 0x028B, + /* 0C */ 0x0286, + /* 0D */ 0x0285, + /* 0E */ 0x0288, + /* 0F */ 0x0287, + /* 10 */ 0x0200, + /* 11 */ 0x0202, + /* 12 */ 0x0201, + /* 13 */ 0x01FA, + /* 14 */ 0x01F9, + /* 15 */ 0x01FB, + /* 16 */ 0x01FD, + /* 17 */ 0x01FC, + /* 18 */ 0x020D, + /* 19 */ 0x020C, + /* 1A */ 0x0208, + /* 1B */ 0x0204, + /* 1C */ 0x0203, + /* 1D */ 0x0205, + /* 1E */ 0x0207, + /* 1F */ 0x0206, + /* 20 */ 0x025D, + /* 21 */ 0x025C, + /* 22 */ 0x025B, + /* 23 */ 0x025E, + /* 24 */ 0x0261, + /* 25 */ 0x0262, + /* 26 */ 0x025F, + /* 27 */ 0x0260, + /* 28 */ 0x0278, + /* 29 */ 0x0277, + /* 2A */ 0x027A, + /* 2B */ 0x0279, + /* 2C */ 0x0274, + /* 2D */ 0x0273, + /* 2E */ 0x0276, + /* 2F */ 0x0275, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x00CC, + /* 01 */ 0x00CD, + /* 02 */ 0x00CA, + /* 03 */ 0x00CB, + /* 04 */ 0x00D0, + /* 05 */ 0x00D1, + /* 06 */ 0x00CE, + /* 07 */ 0x00CF, + /* 08 */ 0x01E1, + /* 09 */ 0x01E0, + /* 0A */ 0x01E3, + /* 0B */ 0x01E2, + /* 0C */ 0x01DD, + /* 0D */ 0x01DC, + /* 0E */ 0x01DF, + /* 0F */ 0x01DE, + /* 10 */ 0x014F, + /* 11 */ 0x014E, + /* 12 */ 0x0151, + /* 13 */ 0x0150, + /* 14 */ 0x014B, + /* 15 */ 0x014A, + /* 16 */ 0x014D, + /* 17 */ 0x014C, + /* 18 */ ZYDIS_INVALID, + /* 19 */ 0x0152, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ 0x0258, + /* 21 */ 0x0259, + /* 22 */ 0x0256, + /* 23 */ 0x0257, + /* 24 */ 0x0253, + /* 25 */ 0x0252, + /* 26 */ 0x0255, + /* 27 */ 0x0254, + /* 28 */ 0x023B, + /* 29 */ 0x023D, + /* 2A */ 0x023C, + /* 2B */ 0x0239, + /* 2C */ 0x0238, + /* 2D */ 0x023A, + /* 2E */ 0x023E, + /* 2F */ 0x023F, + /* 30 */ 0x0186, + /* 31 */ 0x0185, + /* 32 */ 0x0188, + /* 33 */ 0x0187, + /* 34 */ 0x0182, + /* 35 */ 0x0181, + /* 36 */ 0x0184, + /* 37 */ 0x0183, + /* 38 */ 0x016C, + /* 39 */ 0x016B, + /* 3A */ 0x016E, + /* 3B */ 0x016D, + /* 3C */ 0x0168, + /* 3D */ 0x0167, + /* 3E */ 0x016A, + /* 3F */ 0x0169, + }, + { + /* 00 */ 0x0199, + /* 01 */ 0x0196, + /* 02 */ 0x0197, + /* 03 */ 0x0198, + /* 04 */ 0x0193, + /* 05 */ 0x0192, + /* 06 */ 0x0195, + /* 07 */ 0x0194, + /* 08 */ 0x028F, + /* 09 */ 0x0290, + /* 0A */ 0x028D, + /* 0B */ 0x028E, + /* 0C */ 0x0293, + /* 0D */ 0x0294, + /* 0E */ 0x0291, + /* 0F */ 0x0292, + /* 10 */ 0x021B, + /* 11 */ 0x021A, + /* 12 */ 0x021D, + /* 13 */ 0x021C, + /* 14 */ 0x0217, + /* 15 */ 0x0216, + /* 16 */ 0x0219, + /* 17 */ 0x0218, + /* 18 */ 0x0220, + /* 19 */ 0x0221, + /* 1A */ 0x021E, + /* 1B */ 0x021F, + /* 1C */ 0x0224, + /* 1D */ 0x0225, + /* 1E */ 0x0222, + /* 1F */ 0x0223, + /* 20 */ 0x01EC, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ 0x0271, + /* 29 */ 0x0272, + /* 2A */ 0x026D, + /* 2B */ 0x026C, + /* 2C */ 0x026B, + /* 2D */ 0x0270, + /* 2E */ 0x026F, + /* 2F */ 0x026E, + /* 30 */ 0x0136, + /* 31 */ 0x0137, + /* 32 */ 0x0133, + /* 33 */ 0x0134, + /* 34 */ 0x0135, + /* 35 */ 0x0130, + /* 36 */ 0x0131, + /* 37 */ 0x0132, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + }, +}; + +const ZyDisOpcodeTreeNode optreeAddressSize[][3] = +{ + { + /* 00 */ 0x02CD, + /* 01 */ 0x02D0, + /* 02 */ 0x02EC, + }, +}; + +const ZyDisOpcodeTreeNode optreeOperandSize[][3] = +{ + { + /* 00 */ 0x03E0, + /* 01 */ 0x03E1, + /* 02 */ 0x03E2, + }, + { + /* 00 */ 0x0409, + /* 01 */ 0x040A, + /* 02 */ 0x040B, + }, + { + /* 00 */ 0x033D, + /* 01 */ 0x0343, + /* 02 */ 0x035E, + }, + { + /* 00 */ 0x0341, + /* 01 */ 0x0342, + /* 02 */ 0x0364, + }, + { + /* 00 */ 0x0344, + /* 01 */ 0x033E, + /* 02 */ 0x0365, + }, + { + /* 00 */ 0x0340, + /* 01 */ 0x033F, + /* 02 */ 0x0360, + }, + { + /* 00 */ 0x007F, + /* 01 */ 0x0080, + /* 02 */ 0x007E, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x000F), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0010), + /* 02 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0011), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0012), + /* 02 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02B8, + /* 01 */ 0x02B6, + /* 02 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x03A1, + /* 01 */ 0x03A0, + /* 02 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0050, + /* 01 */ 0x009E, + /* 02 */ 0x0052, + }, + { + /* 00 */ 0x009D, + /* 01 */ 0x0051, + /* 02 */ 0x0084, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x001E), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x001F), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0020), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0021), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0022), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0023), + }, + { + /* 00 */ 0x0372, + /* 01 */ 0x0369, + /* 02 */ 0x036F, + }, + { + /* 00 */ 0x007B, + /* 01 */ 0x0078, + /* 02 */ 0x0079, + }, + { + /* 00 */ 0x0540, + /* 01 */ 0x053E, + /* 02 */ 0x053F, + }, + { + /* 00 */ 0x0303, + /* 01 */ 0x0301, + /* 02 */ 0x0302, + }, + { + /* 00 */ 0x0504, + /* 01 */ 0x0502, + /* 02 */ 0x0503, + }, + { + /* 00 */ 0x05BB, + /* 01 */ 0x05BA, + /* 02 */ 0x05D5, + }, + { + /* 00 */ 0x05B9, + /* 01 */ 0x05BC, + /* 02 */ 0x05D6, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x000E), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x000F), + /* 02 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0010), + }, + { + /* 00 */ 0x02C6, + /* 01 */ 0x02C4, + /* 02 */ 0x02C5, + }, +}; + +const ZyDisOpcodeTreeNode optreeMode[][2] = +{ + { + /* 00 */ 0x04AA, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0445, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04AD, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0553, + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x000D), + }, + { + /* 00 */ 0x0555, + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x000E), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x000F), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0010), + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0011), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::VENDOR, 0x0012), + }, + { + /* 00 */ 0x04AC, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0446, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04A9, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0443, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x009F, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x00A0, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0001, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0004, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04BA, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04BB, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x044B, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x044C, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0038, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0033, + /* 01 */ 0x0375, + }, + { + /* 00 */ 0x0011, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0398, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0007, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04FC, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x002A, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0546, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x06B3, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0073, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x004F, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04C0, + /* 01 */ 0x04BF, + }, + { + /* 00 */ 0x04BC, + /* 01 */ 0x04BE, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x04BD, + }, + { + /* 00 */ 0x0451, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x044E, + /* 01 */ 0x0450, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x044F, + }, + { + /* 00 */ 0x02F6, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0014), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::VEXW, 0x0015), + }, + { + /* 00 */ 0x02F3, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02BC, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0003, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0002, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04F0, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02DC, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x004D, + /* 01 */ 0x004B, + }, +}; + +const ZyDisOpcodeTreeNode optreeVendor[][2] = +{ + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05AC, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05B2, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05EB, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05F3, + }, + { + /* 00 */ 0x05EC, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x05B4, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x05B3, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x05ED, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x053A, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0056, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0530, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x02C1, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x04D5, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x0552, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x0554, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x02BE, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x02BF, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x02C3, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x02C2, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05EA, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05F2, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05E8, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05E9, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05F4, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05AD, + }, +}; + +const ZyDisOpcodeTreeNode optree3dnow[][256] = +{ + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_INVALID, + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ 0x0407, + /* 0D */ 0x0406, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + /* 10 */ ZYDIS_INVALID, + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_INVALID, + /* 15 */ ZYDIS_INVALID, + /* 16 */ ZYDIS_INVALID, + /* 17 */ ZYDIS_INVALID, + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ 0x03E7, + /* 1D */ 0x03E6, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ ZYDIS_INVALID, + /* 2A */ ZYDIS_INVALID, + /* 2B */ ZYDIS_INVALID, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_INVALID, + /* 41 */ ZYDIS_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ ZYDIS_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ ZYDIS_INVALID, + /* 59 */ ZYDIS_INVALID, + /* 5A */ ZYDIS_INVALID, + /* 5B */ ZYDIS_INVALID, + /* 5C */ ZYDIS_INVALID, + /* 5D */ ZYDIS_INVALID, + /* 5E */ ZYDIS_INVALID, + /* 5F */ ZYDIS_INVALID, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ 0x03F0, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ 0x03F1, + /* 8F */ ZYDIS_INVALID, + /* 90 */ 0x03EB, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ 0x03EE, + /* 95 */ ZYDIS_INVALID, + /* 96 */ 0x03F2, + /* 97 */ 0x03F6, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ 0x03F7, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ 0x03E9, + /* 9F */ ZYDIS_INVALID, + /* A0 */ 0x03EC, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ 0x03ED, + /* A5 */ ZYDIS_INVALID, + /* A6 */ 0x03F3, + /* A7 */ 0x03F5, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ 0x03F8, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ 0x03E8, + /* AF */ ZYDIS_INVALID, + /* B0 */ 0x03EA, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ 0x03EF, + /* B5 */ ZYDIS_INVALID, + /* B6 */ 0x03F4, + /* B7 */ 0x0433, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ 0x0499, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ 0x03C7, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ ZYDIS_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ ZYDIS_INVALID, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, + }, +}; + +const ZyDisOpcodeTreeNode optreeVex[][16] = +{ + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0024), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0004), + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0005), + /* 06 */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0006), + /* 07 */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0007), + /* 08 */ ZYDIS_INVALID, + /* 09 */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0008), + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0009), + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::MODE, 0x0026), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0004), + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0005), + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0008), + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ NODE(ZyDisOpcodeTreeNodeType::TABLE, 0x0009), + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + }, +}; + +const ZyDisOpcodeTreeNode optreeVexW[][2] = +{ + { + /* 00 */ 0x061D, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x061C, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0692, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0691, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x057B, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x0008), + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x05A6, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x05A5, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x05A7, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x05A4, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x061E, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x061B, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x0009), + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x061F, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0620, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0621, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x0622, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x000A), + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x000B), + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x000C), + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x000D), + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x000E), + /* 01 */ NODE(ZyDisOpcodeTreeNodeType::VEXL, 0x000F), + }, + { + /* 00 */ 0x0579, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x0578, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x060B, + /* 01 */ ZYDIS_INVALID, + }, +}; + +const ZyDisOpcodeTreeNode optreeVexL[][2] = +{ + { + /* 00 */ 0x069C, + /* 01 */ 0x069B, + }, + { + /* 00 */ 0x0660, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x065A, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x065E, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x063F, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x065F, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x065B, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x065D, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x057A, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x061A, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x05A0, + }, + { + /* 00 */ ZYDIS_INVALID, + /* 01 */ 0x059A, + }, + { + /* 00 */ 0x062C, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x062E, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x062D, + /* 01 */ ZYDIS_INVALID, + }, + { + /* 00 */ 0x062F, + /* 01 */ ZYDIS_INVALID, + }, +}; + +#undef ZYDIS_INVALID +#undef NODE + +#define OPI_NONE { ZyDisDefinedOperandType::NONE, ZyDisDefinedOperandSize::NA } +#define OPI_AL { ZyDisDefinedOperandType::AL, ZyDisDefinedOperandSize::B } +#define OPI_AX { ZyDisDefinedOperandType::AX, ZyDisDefinedOperandSize::W } +#define OPI_Av { ZyDisDefinedOperandType::A, ZyDisDefinedOperandSize::V } +#define OPI_C { ZyDisDefinedOperandType::C, ZyDisDefinedOperandSize::NA } +#define OPI_CL { ZyDisDefinedOperandType::CL, ZyDisDefinedOperandSize::B } +#define OPI_CS { ZyDisDefinedOperandType::CS, ZyDisDefinedOperandSize::NA } +#define OPI_CX { ZyDisDefinedOperandType::CX, ZyDisDefinedOperandSize::W } +#define OPI_D { ZyDisDefinedOperandType::D, ZyDisDefinedOperandSize::NA } +#define OPI_DL { ZyDisDefinedOperandType::DL, ZyDisDefinedOperandSize::B } +#define OPI_DS { ZyDisDefinedOperandType::DS, ZyDisDefinedOperandSize::NA } +#define OPI_DX { ZyDisDefinedOperandType::DX, ZyDisDefinedOperandSize::W } +#define OPI_E { ZyDisDefinedOperandType::E, ZyDisDefinedOperandSize::NA } +#define OPI_ES { ZyDisDefinedOperandType::ES, ZyDisDefinedOperandSize::NA } +#define OPI_Eb { ZyDisDefinedOperandType::E, ZyDisDefinedOperandSize::B } +#define OPI_Ed { ZyDisDefinedOperandType::E, ZyDisDefinedOperandSize::D } +#define OPI_Eq { ZyDisDefinedOperandType::E, ZyDisDefinedOperandSize::Q } +#define OPI_Ev { ZyDisDefinedOperandType::E, ZyDisDefinedOperandSize::V } +#define OPI_Ew { ZyDisDefinedOperandType::E, ZyDisDefinedOperandSize::W } +#define OPI_Ey { ZyDisDefinedOperandType::E, ZyDisDefinedOperandSize::Y } +#define OPI_Ez { ZyDisDefinedOperandType::E, ZyDisDefinedOperandSize::Z } +#define OPI_FS { ZyDisDefinedOperandType::FS, ZyDisDefinedOperandSize::NA } +#define OPI_Fv { ZyDisDefinedOperandType::F, ZyDisDefinedOperandSize::V } +#define OPI_G { ZyDisDefinedOperandType::G, ZyDisDefinedOperandSize::NA } +#define OPI_GS { ZyDisDefinedOperandType::GS, ZyDisDefinedOperandSize::NA } +#define OPI_Gb { ZyDisDefinedOperandType::G, ZyDisDefinedOperandSize::B } +#define OPI_Gd { ZyDisDefinedOperandType::G, ZyDisDefinedOperandSize::D } +#define OPI_Gq { ZyDisDefinedOperandType::G, ZyDisDefinedOperandSize::Q } +#define OPI_Gv { ZyDisDefinedOperandType::G, ZyDisDefinedOperandSize::V } +#define OPI_Gw { ZyDisDefinedOperandType::G, ZyDisDefinedOperandSize::W } +#define OPI_Gy { ZyDisDefinedOperandType::G, ZyDisDefinedOperandSize::Y } +#define OPI_Gz { ZyDisDefinedOperandType::G, ZyDisDefinedOperandSize::Z } +#define OPI_H { ZyDisDefinedOperandType::H, ZyDisDefinedOperandSize::X } +#define OPI_Hqq { ZyDisDefinedOperandType::H, ZyDisDefinedOperandSize::QQ } +#define OPI_Hx { ZyDisDefinedOperandType::H, ZyDisDefinedOperandSize::X } +#define OPI_I1 { ZyDisDefinedOperandType::I1, ZyDisDefinedOperandSize::NA } +#define OPI_Ib { ZyDisDefinedOperandType::I, ZyDisDefinedOperandSize::B } +#define OPI_Iv { ZyDisDefinedOperandType::I, ZyDisDefinedOperandSize::V } +#define OPI_Iw { ZyDisDefinedOperandType::I, ZyDisDefinedOperandSize::W } +#define OPI_Iz { ZyDisDefinedOperandType::I, ZyDisDefinedOperandSize::Z } +#define OPI_Jb { ZyDisDefinedOperandType::J, ZyDisDefinedOperandSize::B } +#define OPI_Jv { ZyDisDefinedOperandType::J, ZyDisDefinedOperandSize::V } +#define OPI_Jz { ZyDisDefinedOperandType::J, ZyDisDefinedOperandSize::Z } +#define OPI_L { ZyDisDefinedOperandType::L, ZyDisDefinedOperandSize::O } +#define OPI_Lx { ZyDisDefinedOperandType::L, ZyDisDefinedOperandSize::X } +#define OPI_M { ZyDisDefinedOperandType::M, ZyDisDefinedOperandSize::NA } +#define OPI_Mb { ZyDisDefinedOperandType::M, ZyDisDefinedOperandSize::B } +#define OPI_MbRd { ZyDisDefinedOperandType::MR, ZyDisDefinedOperandSize::BD } +#define OPI_MbRv { ZyDisDefinedOperandType::MR, ZyDisDefinedOperandSize::BV } +#define OPI_Md { ZyDisDefinedOperandType::M, ZyDisDefinedOperandSize::D } +#define OPI_MdRy { ZyDisDefinedOperandType::MR, ZyDisDefinedOperandSize::DY } +#define OPI_MdU { ZyDisDefinedOperandType::MU, ZyDisDefinedOperandSize::DO } +#define OPI_Mdq { ZyDisDefinedOperandType::M, ZyDisDefinedOperandSize::DQ } +#define OPI_Mo { ZyDisDefinedOperandType::M, ZyDisDefinedOperandSize::O } +#define OPI_Mq { ZyDisDefinedOperandType::M, ZyDisDefinedOperandSize::Q } +#define OPI_MqU { ZyDisDefinedOperandType::MU, ZyDisDefinedOperandSize::QO } +#define OPI_Ms { ZyDisDefinedOperandType::M, ZyDisDefinedOperandSize::W } +#define OPI_Mt { ZyDisDefinedOperandType::M, ZyDisDefinedOperandSize::T } +#define OPI_Mv { ZyDisDefinedOperandType::M, ZyDisDefinedOperandSize::V } +#define OPI_Mw { ZyDisDefinedOperandType::M, ZyDisDefinedOperandSize::W } +#define OPI_MwRd { ZyDisDefinedOperandType::MR, ZyDisDefinedOperandSize::WD } +#define OPI_MwRv { ZyDisDefinedOperandType::MR, ZyDisDefinedOperandSize::WV } +#define OPI_MwRy { ZyDisDefinedOperandType::MR, ZyDisDefinedOperandSize::WY } +#define OPI_MwU { ZyDisDefinedOperandType::MU, ZyDisDefinedOperandSize::WO } +#define OPI_N { ZyDisDefinedOperandType::N, ZyDisDefinedOperandSize::Q } +#define OPI_Ob { ZyDisDefinedOperandType::O, ZyDisDefinedOperandSize::B } +#define OPI_Ov { ZyDisDefinedOperandType::O, ZyDisDefinedOperandSize::V } +#define OPI_Ow { ZyDisDefinedOperandType::O, ZyDisDefinedOperandSize::W } +#define OPI_P { ZyDisDefinedOperandType::P, ZyDisDefinedOperandSize::Q } +#define OPI_Q { ZyDisDefinedOperandType::Q, ZyDisDefinedOperandSize::Q } +#define OPI_R { ZyDisDefinedOperandType::R, ZyDisDefinedOperandSize::RDQ } +#define OPI_R0b { ZyDisDefinedOperandType::R0, ZyDisDefinedOperandSize::B } +#define OPI_R0v { ZyDisDefinedOperandType::R0, ZyDisDefinedOperandSize::V } +#define OPI_R0w { ZyDisDefinedOperandType::R0, ZyDisDefinedOperandSize::W } +#define OPI_R0y { ZyDisDefinedOperandType::R0, ZyDisDefinedOperandSize::Y } +#define OPI_R0z { ZyDisDefinedOperandType::R0, ZyDisDefinedOperandSize::Z } +#define OPI_R1b { ZyDisDefinedOperandType::R1, ZyDisDefinedOperandSize::B } +#define OPI_R1v { ZyDisDefinedOperandType::R1, ZyDisDefinedOperandSize::V } +#define OPI_R1w { ZyDisDefinedOperandType::R1, ZyDisDefinedOperandSize::W } +#define OPI_R1y { ZyDisDefinedOperandType::R1, ZyDisDefinedOperandSize::Y } +#define OPI_R1z { ZyDisDefinedOperandType::R1, ZyDisDefinedOperandSize::Z } +#define OPI_R2b { ZyDisDefinedOperandType::R2, ZyDisDefinedOperandSize::B } +#define OPI_R2v { ZyDisDefinedOperandType::R2, ZyDisDefinedOperandSize::V } +#define OPI_R2w { ZyDisDefinedOperandType::R2, ZyDisDefinedOperandSize::W } +#define OPI_R2y { ZyDisDefinedOperandType::R2, ZyDisDefinedOperandSize::Y } +#define OPI_R2z { ZyDisDefinedOperandType::R2, ZyDisDefinedOperandSize::Z } +#define OPI_R3b { ZyDisDefinedOperandType::R3, ZyDisDefinedOperandSize::B } +#define OPI_R3v { ZyDisDefinedOperandType::R3, ZyDisDefinedOperandSize::V } +#define OPI_R3w { ZyDisDefinedOperandType::R3, ZyDisDefinedOperandSize::W } +#define OPI_R3y { ZyDisDefinedOperandType::R3, ZyDisDefinedOperandSize::Y } +#define OPI_R3z { ZyDisDefinedOperandType::R3, ZyDisDefinedOperandSize::Z } +#define OPI_R4b { ZyDisDefinedOperandType::R4, ZyDisDefinedOperandSize::B } +#define OPI_R4v { ZyDisDefinedOperandType::R4, ZyDisDefinedOperandSize::V } +#define OPI_R4w { ZyDisDefinedOperandType::R4, ZyDisDefinedOperandSize::W } +#define OPI_R4y { ZyDisDefinedOperandType::R4, ZyDisDefinedOperandSize::Y } +#define OPI_R4z { ZyDisDefinedOperandType::R4, ZyDisDefinedOperandSize::Z } +#define OPI_R5b { ZyDisDefinedOperandType::R5, ZyDisDefinedOperandSize::B } +#define OPI_R5v { ZyDisDefinedOperandType::R5, ZyDisDefinedOperandSize::V } +#define OPI_R5w { ZyDisDefinedOperandType::R5, ZyDisDefinedOperandSize::W } +#define OPI_R5y { ZyDisDefinedOperandType::R5, ZyDisDefinedOperandSize::Y } +#define OPI_R5z { ZyDisDefinedOperandType::R5, ZyDisDefinedOperandSize::Z } +#define OPI_R6b { ZyDisDefinedOperandType::R6, ZyDisDefinedOperandSize::B } +#define OPI_R6v { ZyDisDefinedOperandType::R6, ZyDisDefinedOperandSize::V } +#define OPI_R6w { ZyDisDefinedOperandType::R6, ZyDisDefinedOperandSize::W } +#define OPI_R6y { ZyDisDefinedOperandType::R6, ZyDisDefinedOperandSize::Y } +#define OPI_R6z { ZyDisDefinedOperandType::R6, ZyDisDefinedOperandSize::Z } +#define OPI_R7b { ZyDisDefinedOperandType::R7, ZyDisDefinedOperandSize::B } +#define OPI_R7v { ZyDisDefinedOperandType::R7, ZyDisDefinedOperandSize::V } +#define OPI_R7w { ZyDisDefinedOperandType::R7, ZyDisDefinedOperandSize::W } +#define OPI_R7y { ZyDisDefinedOperandType::R7, ZyDisDefinedOperandSize::Y } +#define OPI_R7z { ZyDisDefinedOperandType::R7, ZyDisDefinedOperandSize::Z } +#define OPI_S { ZyDisDefinedOperandType::S, ZyDisDefinedOperandSize::W } +#define OPI_SS { ZyDisDefinedOperandType::SS, ZyDisDefinedOperandSize::NA } +#define OPI_ST0 { ZyDisDefinedOperandType::ST0, ZyDisDefinedOperandSize::NA } +#define OPI_ST1 { ZyDisDefinedOperandType::ST1, ZyDisDefinedOperandSize::NA } +#define OPI_ST2 { ZyDisDefinedOperandType::ST2, ZyDisDefinedOperandSize::NA } +#define OPI_ST3 { ZyDisDefinedOperandType::ST3, ZyDisDefinedOperandSize::NA } +#define OPI_ST4 { ZyDisDefinedOperandType::ST4, ZyDisDefinedOperandSize::NA } +#define OPI_ST5 { ZyDisDefinedOperandType::ST5, ZyDisDefinedOperandSize::NA } +#define OPI_ST6 { ZyDisDefinedOperandType::ST6, ZyDisDefinedOperandSize::NA } +#define OPI_ST7 { ZyDisDefinedOperandType::ST7, ZyDisDefinedOperandSize::NA } +#define OPI_U { ZyDisDefinedOperandType::U, ZyDisDefinedOperandSize::O } +#define OPI_Ux { ZyDisDefinedOperandType::U, ZyDisDefinedOperandSize::X } +#define OPI_V { ZyDisDefinedOperandType::V, ZyDisDefinedOperandSize::DQ } +#define OPI_Vdq { ZyDisDefinedOperandType::V, ZyDisDefinedOperandSize::DQ } +#define OPI_Vqq { ZyDisDefinedOperandType::V, ZyDisDefinedOperandSize::QQ } +#define OPI_Vsd { ZyDisDefinedOperandType::V, ZyDisDefinedOperandSize::Q } +#define OPI_Vx { ZyDisDefinedOperandType::V, ZyDisDefinedOperandSize::X } +#define OPI_W { ZyDisDefinedOperandType::W, ZyDisDefinedOperandSize::DQ } +#define OPI_Wdq { ZyDisDefinedOperandType::W, ZyDisDefinedOperandSize::DQ } +#define OPI_Wqq { ZyDisDefinedOperandType::W, ZyDisDefinedOperandSize::QQ } +#define OPI_Wsd { ZyDisDefinedOperandType::W, ZyDisDefinedOperandSize::Q } +#define OPI_Wx { ZyDisDefinedOperandType::W, ZyDisDefinedOperandSize::X } +#define OPI_eAX { ZyDisDefinedOperandType::EAX, ZyDisDefinedOperandSize::Z } +#define OPI_eCX { ZyDisDefinedOperandType::ECX, ZyDisDefinedOperandSize::Z } +#define OPI_eDX { ZyDisDefinedOperandType::EDX, ZyDisDefinedOperandSize::Z } +#define OPI_rAX { ZyDisDefinedOperandType::RAX, ZyDisDefinedOperandSize::V } +#define OPI_rCX { ZyDisDefinedOperandType::RCX, ZyDisDefinedOperandSize::V } +#define OPI_rDX { ZyDisDefinedOperandType::RDX, ZyDisDefinedOperandSize::V } +#define OPI_sIb { ZyDisDefinedOperandType::sI, ZyDisDefinedOperandSize::B } +#define OPI_sIz { ZyDisDefinedOperandType::sI, ZyDisDefinedOperandSize::Z } + +const ZyDisInstructionDefinition instrDefinitions[] = +{ + /* 000 */ { ZyDisInstructionMnemonic::INVALID, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 001 */ { ZyDisInstructionMnemonic::AAA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 002 */ { ZyDisInstructionMnemonic::AAD, { OPI_Ib, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 003 */ { ZyDisInstructionMnemonic::AAM, { OPI_Ib, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 004 */ { ZyDisInstructionMnemonic::AAS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 005 */ { ZyDisInstructionMnemonic::ADC, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 006 */ { ZyDisInstructionMnemonic::ADC, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, + /* 007 */ { ZyDisInstructionMnemonic::ADC, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, + /* 008 */ { ZyDisInstructionMnemonic::ADC, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 009 */ { ZyDisInstructionMnemonic::ADC, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 00A */ { ZyDisInstructionMnemonic::ADC, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 00B */ { ZyDisInstructionMnemonic::ADC, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 00C */ { ZyDisInstructionMnemonic::ADC, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 00D */ { ZyDisInstructionMnemonic::ADC, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 00E */ { ZyDisInstructionMnemonic::ADC, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 00F */ { ZyDisInstructionMnemonic::ADD, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 010 */ { ZyDisInstructionMnemonic::ADD, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, + /* 011 */ { ZyDisInstructionMnemonic::ADD, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, + /* 012 */ { ZyDisInstructionMnemonic::ADD, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 013 */ { ZyDisInstructionMnemonic::ADD, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 014 */ { ZyDisInstructionMnemonic::ADD, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 015 */ { ZyDisInstructionMnemonic::ADD, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 016 */ { ZyDisInstructionMnemonic::ADD, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 017 */ { ZyDisInstructionMnemonic::ADD, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 018 */ { ZyDisInstructionMnemonic::ADD, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 019 */ { ZyDisInstructionMnemonic::ADDPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 01A */ { ZyDisInstructionMnemonic::ADDPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 01B */ { ZyDisInstructionMnemonic::ADDSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 01C */ { ZyDisInstructionMnemonic::ADDSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 01D */ { ZyDisInstructionMnemonic::ADDSUBPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 01E */ { ZyDisInstructionMnemonic::ADDSUBPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 01F */ { ZyDisInstructionMnemonic::AESDEC, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 020 */ { ZyDisInstructionMnemonic::AESDECLAST, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 021 */ { ZyDisInstructionMnemonic::AESENC, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 022 */ { ZyDisInstructionMnemonic::AESENCLAST, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 023 */ { ZyDisInstructionMnemonic::AESIMC, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 024 */ { ZyDisInstructionMnemonic::AESKEYGENASSIST, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 025 */ { ZyDisInstructionMnemonic::AND, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 026 */ { ZyDisInstructionMnemonic::AND, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 027 */ { ZyDisInstructionMnemonic::AND, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 028 */ { ZyDisInstructionMnemonic::AND, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 029 */ { ZyDisInstructionMnemonic::AND, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 02A */ { ZyDisInstructionMnemonic::AND, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, + /* 02B */ { ZyDisInstructionMnemonic::AND, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 02C */ { ZyDisInstructionMnemonic::AND, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 02D */ { ZyDisInstructionMnemonic::AND, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 02E */ { ZyDisInstructionMnemonic::AND, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, + /* 02F */ { ZyDisInstructionMnemonic::ANDNPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 030 */ { ZyDisInstructionMnemonic::ANDNPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 031 */ { ZyDisInstructionMnemonic::ANDPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 032 */ { ZyDisInstructionMnemonic::ANDPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 033 */ { ZyDisInstructionMnemonic::ARPL, { OPI_Ew, OPI_Gw, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_OPERAND1_WRITE }, + /* 034 */ { ZyDisInstructionMnemonic::BLENDPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 035 */ { ZyDisInstructionMnemonic::BLENDPS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 036 */ { ZyDisInstructionMnemonic::BLENDVPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 037 */ { ZyDisInstructionMnemonic::BLENDVPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 038 */ { ZyDisInstructionMnemonic::BOUND, { OPI_Gv, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, + /* 039 */ { ZyDisInstructionMnemonic::BSF, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 03A */ { ZyDisInstructionMnemonic::BSR, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 03B */ { ZyDisInstructionMnemonic::BSWAP, { OPI_R5y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 03C */ { ZyDisInstructionMnemonic::BSWAP, { OPI_R3y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 03D */ { ZyDisInstructionMnemonic::BSWAP, { OPI_R1y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 03E */ { ZyDisInstructionMnemonic::BSWAP, { OPI_R4y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 03F */ { ZyDisInstructionMnemonic::BSWAP, { OPI_R0y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 040 */ { ZyDisInstructionMnemonic::BSWAP, { OPI_R2y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 041 */ { ZyDisInstructionMnemonic::BSWAP, { OPI_R7y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 042 */ { ZyDisInstructionMnemonic::BSWAP, { OPI_R6y, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 043 */ { ZyDisInstructionMnemonic::BT, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 044 */ { ZyDisInstructionMnemonic::BT, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 045 */ { ZyDisInstructionMnemonic::BTC, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 046 */ { ZyDisInstructionMnemonic::BTC, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 047 */ { ZyDisInstructionMnemonic::BTR, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 048 */ { ZyDisInstructionMnemonic::BTR, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 049 */ { ZyDisInstructionMnemonic::BTS, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 04A */ { ZyDisInstructionMnemonic::BTS, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 04B */ { ZyDisInstructionMnemonic::CALL, { OPI_Eq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 04C */ { ZyDisInstructionMnemonic::CALL, { OPI_Fv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 04D */ { ZyDisInstructionMnemonic::CALL, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 04E */ { ZyDisInstructionMnemonic::CALL, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, + /* 04F */ { ZyDisInstructionMnemonic::CALL, { OPI_Av, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, + /* 050 */ { ZyDisInstructionMnemonic::CBW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 051 */ { ZyDisInstructionMnemonic::CDQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 052 */ { ZyDisInstructionMnemonic::CDQE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 053 */ { ZyDisInstructionMnemonic::CLC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 054 */ { ZyDisInstructionMnemonic::CLD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 055 */ { ZyDisInstructionMnemonic::CLFLUSH, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 056 */ { ZyDisInstructionMnemonic::CLGI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 057 */ { ZyDisInstructionMnemonic::CLI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 058 */ { ZyDisInstructionMnemonic::CLTS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 059 */ { ZyDisInstructionMnemonic::CMC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 05A */ { ZyDisInstructionMnemonic::CMOVA, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 05B */ { ZyDisInstructionMnemonic::CMOVAE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 05C */ { ZyDisInstructionMnemonic::CMOVB, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 05D */ { ZyDisInstructionMnemonic::CMOVBE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 05E */ { ZyDisInstructionMnemonic::CMOVE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 05F */ { ZyDisInstructionMnemonic::CMOVG, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 060 */ { ZyDisInstructionMnemonic::CMOVGE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 061 */ { ZyDisInstructionMnemonic::CMOVL, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 062 */ { ZyDisInstructionMnemonic::CMOVLE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 063 */ { ZyDisInstructionMnemonic::CMOVNE, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 064 */ { ZyDisInstructionMnemonic::CMOVNO, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 065 */ { ZyDisInstructionMnemonic::CMOVNP, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 066 */ { ZyDisInstructionMnemonic::CMOVNS, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 067 */ { ZyDisInstructionMnemonic::CMOVO, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 068 */ { ZyDisInstructionMnemonic::CMOVP, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 069 */ { ZyDisInstructionMnemonic::CMOVS, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 06A */ { ZyDisInstructionMnemonic::CMP, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 06B */ { ZyDisInstructionMnemonic::CMP, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 06C */ { ZyDisInstructionMnemonic::CMP, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 06D */ { ZyDisInstructionMnemonic::CMP, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 06E */ { ZyDisInstructionMnemonic::CMP, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 06F */ { ZyDisInstructionMnemonic::CMP, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 070 */ { ZyDisInstructionMnemonic::CMP, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, 0 }, + /* 071 */ { ZyDisInstructionMnemonic::CMP, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 072 */ { ZyDisInstructionMnemonic::CMP, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 073 */ { ZyDisInstructionMnemonic::CMP, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 }, + /* 074 */ { ZyDisInstructionMnemonic::CMPPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 075 */ { ZyDisInstructionMnemonic::CMPPS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 076 */ { ZyDisInstructionMnemonic::CMPSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 077 */ { ZyDisInstructionMnemonic::CMPSD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 078 */ { ZyDisInstructionMnemonic::CMPSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 079 */ { ZyDisInstructionMnemonic::CMPSQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 07A */ { ZyDisInstructionMnemonic::CMPSS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 07B */ { ZyDisInstructionMnemonic::CMPSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 07C */ { ZyDisInstructionMnemonic::CMPXCHG, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 07D */ { ZyDisInstructionMnemonic::CMPXCHG, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 07E */ { ZyDisInstructionMnemonic::CMPXCHG16B, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 07F */ { ZyDisInstructionMnemonic::CMPXCHG8B, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 080 */ { ZyDisInstructionMnemonic::CMPXCHG8B, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 081 */ { ZyDisInstructionMnemonic::COMISD, { OPI_Vsd, OPI_Wsd, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 082 */ { ZyDisInstructionMnemonic::COMISS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 083 */ { ZyDisInstructionMnemonic::CPUID, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 084 */ { ZyDisInstructionMnemonic::CQO, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 085 */ { ZyDisInstructionMnemonic::CRC32, { OPI_Gy, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 086 */ { ZyDisInstructionMnemonic::CRC32, { OPI_Gy, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 087 */ { ZyDisInstructionMnemonic::CVTDQ2PD, { OPI_V, OPI_Wdq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 088 */ { ZyDisInstructionMnemonic::CVTDQ2PS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 089 */ { ZyDisInstructionMnemonic::CVTPD2DQ, { OPI_Vdq, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 08A */ { ZyDisInstructionMnemonic::CVTPD2PI, { OPI_P, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 08B */ { ZyDisInstructionMnemonic::CVTPD2PS, { OPI_Vdq, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 08C */ { ZyDisInstructionMnemonic::CVTPI2PD, { OPI_V, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 08D */ { ZyDisInstructionMnemonic::CVTPI2PS, { OPI_V, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 08E */ { ZyDisInstructionMnemonic::CVTPS2DQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 08F */ { ZyDisInstructionMnemonic::CVTPS2PD, { OPI_V, OPI_Wdq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 090 */ { ZyDisInstructionMnemonic::CVTPS2PI, { OPI_P, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 091 */ { ZyDisInstructionMnemonic::CVTSD2SI, { OPI_Gy, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 092 */ { ZyDisInstructionMnemonic::CVTSD2SS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 093 */ { ZyDisInstructionMnemonic::CVTSI2SD, { OPI_V, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 094 */ { ZyDisInstructionMnemonic::CVTSI2SS, { OPI_V, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 095 */ { ZyDisInstructionMnemonic::CVTSS2SD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 096 */ { ZyDisInstructionMnemonic::CVTSS2SI, { OPI_Gy, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 097 */ { ZyDisInstructionMnemonic::CVTTPD2DQ, { OPI_Vdq, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 098 */ { ZyDisInstructionMnemonic::CVTTPD2PI, { OPI_P, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 099 */ { ZyDisInstructionMnemonic::CVTTPS2DQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 09A */ { ZyDisInstructionMnemonic::CVTTPS2PI, { OPI_P, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 09B */ { ZyDisInstructionMnemonic::CVTTSD2SI, { OPI_Gy, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 09C */ { ZyDisInstructionMnemonic::CVTTSS2SI, { OPI_Gy, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 09D */ { ZyDisInstructionMnemonic::CWD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 09E */ { ZyDisInstructionMnemonic::CWDE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 09F */ { ZyDisInstructionMnemonic::DAA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, + /* 0A0 */ { ZyDisInstructionMnemonic::DAS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, + /* 0A1 */ { ZyDisInstructionMnemonic::DEC, { OPI_R6z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 0A2 */ { ZyDisInstructionMnemonic::DEC, { OPI_R5z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 0A3 */ { ZyDisInstructionMnemonic::DEC, { OPI_R7z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 0A4 */ { ZyDisInstructionMnemonic::DEC, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 0A5 */ { ZyDisInstructionMnemonic::DEC, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 0A6 */ { ZyDisInstructionMnemonic::DEC, { OPI_R1z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 0A7 */ { ZyDisInstructionMnemonic::DEC, { OPI_R0z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 0A8 */ { ZyDisInstructionMnemonic::DEC, { OPI_R2z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 0A9 */ { ZyDisInstructionMnemonic::DEC, { OPI_R4z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 0AA */ { ZyDisInstructionMnemonic::DEC, { OPI_R3z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 0AB */ { ZyDisInstructionMnemonic::DIV, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 0AC */ { ZyDisInstructionMnemonic::DIV, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 0AD */ { ZyDisInstructionMnemonic::DIVPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 0AE */ { ZyDisInstructionMnemonic::DIVPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 0AF */ { ZyDisInstructionMnemonic::DIVSD, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 0B0 */ { ZyDisInstructionMnemonic::DIVSS, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 0B1 */ { ZyDisInstructionMnemonic::DPPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 0B2 */ { ZyDisInstructionMnemonic::DPPS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 0B3 */ { ZyDisInstructionMnemonic::EMMS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 0B4 */ { ZyDisInstructionMnemonic::ENTER, { OPI_Iw, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_DEFAULT_64 }, + /* 0B5 */ { ZyDisInstructionMnemonic::EXTRACTPS, { OPI_MdRy, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 0B6 */ { ZyDisInstructionMnemonic::F2XM1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 0B7 */ { ZyDisInstructionMnemonic::FABS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 0B8 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0B9 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0BA */ { ZyDisInstructionMnemonic::FADD, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 0BB */ { ZyDisInstructionMnemonic::FADD, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 0BC */ { ZyDisInstructionMnemonic::FADD, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0BD */ { ZyDisInstructionMnemonic::FADD, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0BE */ { ZyDisInstructionMnemonic::FADD, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0BF */ { ZyDisInstructionMnemonic::FADD, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 0C0 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 0C1 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 0C2 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 0C3 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 0C4 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 0C5 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 0C6 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0C7 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0C8 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0C9 */ { ZyDisInstructionMnemonic::FADD, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0CA */ { ZyDisInstructionMnemonic::FADDP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0CB */ { ZyDisInstructionMnemonic::FADDP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0CC */ { ZyDisInstructionMnemonic::FADDP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0CD */ { ZyDisInstructionMnemonic::FADDP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0CE */ { ZyDisInstructionMnemonic::FADDP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0CF */ { ZyDisInstructionMnemonic::FADDP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0D0 */ { ZyDisInstructionMnemonic::FADDP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0D1 */ { ZyDisInstructionMnemonic::FADDP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0D2 */ { ZyDisInstructionMnemonic::FBLD, { OPI_Mt, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 0D3 */ { ZyDisInstructionMnemonic::FBSTP, { OPI_Mt, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 0D4 */ { ZyDisInstructionMnemonic::FCHS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 0D5 */ { ZyDisInstructionMnemonic::FCLEX, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 0D6 */ { ZyDisInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 0D7 */ { ZyDisInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 0D8 */ { ZyDisInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 0D9 */ { ZyDisInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0DA */ { ZyDisInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 0DB */ { ZyDisInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 0DC */ { ZyDisInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 0DD */ { ZyDisInstructionMnemonic::FCMOVB, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 0DE */ { ZyDisInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 0DF */ { ZyDisInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 0E0 */ { ZyDisInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 0E1 */ { ZyDisInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 0E2 */ { ZyDisInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 0E3 */ { ZyDisInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 0E4 */ { ZyDisInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0E5 */ { ZyDisInstructionMnemonic::FCMOVBE, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 0E6 */ { ZyDisInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0E7 */ { ZyDisInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 0E8 */ { ZyDisInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 0E9 */ { ZyDisInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 0EA */ { ZyDisInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 0EB */ { ZyDisInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 0EC */ { ZyDisInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 0ED */ { ZyDisInstructionMnemonic::FCMOVE, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 0EE */ { ZyDisInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 0EF */ { ZyDisInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 0F0 */ { ZyDisInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0F1 */ { ZyDisInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 0F2 */ { ZyDisInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 0F3 */ { ZyDisInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 0F4 */ { ZyDisInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 0F5 */ { ZyDisInstructionMnemonic::FCMOVNB, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 0F6 */ { ZyDisInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 0F7 */ { ZyDisInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 0F8 */ { ZyDisInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 0F9 */ { ZyDisInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 0FA */ { ZyDisInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 0FB */ { ZyDisInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 0FC */ { ZyDisInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 0FD */ { ZyDisInstructionMnemonic::FCMOVNBE, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 0FE */ { ZyDisInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 0FF */ { ZyDisInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 100 */ { ZyDisInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 101 */ { ZyDisInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 102 */ { ZyDisInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 103 */ { ZyDisInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 104 */ { ZyDisInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 105 */ { ZyDisInstructionMnemonic::FCMOVNE, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 106 */ { ZyDisInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 107 */ { ZyDisInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 108 */ { ZyDisInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 109 */ { ZyDisInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 10A */ { ZyDisInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 10B */ { ZyDisInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 10C */ { ZyDisInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 10D */ { ZyDisInstructionMnemonic::FCMOVNU, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 10E */ { ZyDisInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 10F */ { ZyDisInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 110 */ { ZyDisInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 111 */ { ZyDisInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 112 */ { ZyDisInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 113 */ { ZyDisInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 114 */ { ZyDisInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 115 */ { ZyDisInstructionMnemonic::FCMOVU, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 116 */ { ZyDisInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 117 */ { ZyDisInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 118 */ { ZyDisInstructionMnemonic::FCOM, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 119 */ { ZyDisInstructionMnemonic::FCOM, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 11A */ { ZyDisInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 11B */ { ZyDisInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 11C */ { ZyDisInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 11D */ { ZyDisInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 11E */ { ZyDisInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 11F */ { ZyDisInstructionMnemonic::FCOM, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 120 */ { ZyDisInstructionMnemonic::FCOM2, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 121 */ { ZyDisInstructionMnemonic::FCOM2, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 122 */ { ZyDisInstructionMnemonic::FCOM2, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 123 */ { ZyDisInstructionMnemonic::FCOM2, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 124 */ { ZyDisInstructionMnemonic::FCOM2, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 125 */ { ZyDisInstructionMnemonic::FCOM2, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 126 */ { ZyDisInstructionMnemonic::FCOM2, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 127 */ { ZyDisInstructionMnemonic::FCOM2, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 128 */ { ZyDisInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 129 */ { ZyDisInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 12A */ { ZyDisInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 12B */ { ZyDisInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 12C */ { ZyDisInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 12D */ { ZyDisInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 12E */ { ZyDisInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 12F */ { ZyDisInstructionMnemonic::FCOMI, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 130 */ { ZyDisInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 131 */ { ZyDisInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 132 */ { ZyDisInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 133 */ { ZyDisInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 134 */ { ZyDisInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 135 */ { ZyDisInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 136 */ { ZyDisInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 137 */ { ZyDisInstructionMnemonic::FCOMIP, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 138 */ { ZyDisInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 139 */ { ZyDisInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 13A */ { ZyDisInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 13B */ { ZyDisInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 13C */ { ZyDisInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 13D */ { ZyDisInstructionMnemonic::FCOMP, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 13E */ { ZyDisInstructionMnemonic::FCOMP, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 13F */ { ZyDisInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 140 */ { ZyDisInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 141 */ { ZyDisInstructionMnemonic::FCOMP, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 142 */ { ZyDisInstructionMnemonic::FCOMP3, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 143 */ { ZyDisInstructionMnemonic::FCOMP3, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 144 */ { ZyDisInstructionMnemonic::FCOMP3, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 145 */ { ZyDisInstructionMnemonic::FCOMP3, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 146 */ { ZyDisInstructionMnemonic::FCOMP3, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 147 */ { ZyDisInstructionMnemonic::FCOMP3, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 148 */ { ZyDisInstructionMnemonic::FCOMP3, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 149 */ { ZyDisInstructionMnemonic::FCOMP3, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 14A */ { ZyDisInstructionMnemonic::FCOMP5, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 14B */ { ZyDisInstructionMnemonic::FCOMP5, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 14C */ { ZyDisInstructionMnemonic::FCOMP5, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 14D */ { ZyDisInstructionMnemonic::FCOMP5, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 14E */ { ZyDisInstructionMnemonic::FCOMP5, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 14F */ { ZyDisInstructionMnemonic::FCOMP5, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 150 */ { ZyDisInstructionMnemonic::FCOMP5, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 151 */ { ZyDisInstructionMnemonic::FCOMP5, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 152 */ { ZyDisInstructionMnemonic::FCOMPP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 153 */ { ZyDisInstructionMnemonic::FCOS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 154 */ { ZyDisInstructionMnemonic::FDECSTP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 155 */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 156 */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 157 */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 158 */ { ZyDisInstructionMnemonic::FDIV, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 159 */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 15A */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 15B */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 15C */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 15D */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 15E */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 15F */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 160 */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 161 */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 162 */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 163 */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 164 */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 165 */ { ZyDisInstructionMnemonic::FDIV, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 166 */ { ZyDisInstructionMnemonic::FDIV, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 167 */ { ZyDisInstructionMnemonic::FDIVP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 168 */ { ZyDisInstructionMnemonic::FDIVP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 169 */ { ZyDisInstructionMnemonic::FDIVP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 16A */ { ZyDisInstructionMnemonic::FDIVP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 16B */ { ZyDisInstructionMnemonic::FDIVP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 16C */ { ZyDisInstructionMnemonic::FDIVP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 16D */ { ZyDisInstructionMnemonic::FDIVP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 16E */ { ZyDisInstructionMnemonic::FDIVP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 16F */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 170 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 171 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 172 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 173 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 174 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 175 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 176 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 177 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 178 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 179 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 17A */ { ZyDisInstructionMnemonic::FDIVR, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 17B */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 17C */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 17D */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 17E */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 17F */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 180 */ { ZyDisInstructionMnemonic::FDIVR, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 181 */ { ZyDisInstructionMnemonic::FDIVRP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 182 */ { ZyDisInstructionMnemonic::FDIVRP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 183 */ { ZyDisInstructionMnemonic::FDIVRP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 184 */ { ZyDisInstructionMnemonic::FDIVRP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 185 */ { ZyDisInstructionMnemonic::FDIVRP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 186 */ { ZyDisInstructionMnemonic::FDIVRP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 187 */ { ZyDisInstructionMnemonic::FDIVRP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 188 */ { ZyDisInstructionMnemonic::FDIVRP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 189 */ { ZyDisInstructionMnemonic::FEMMS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 18A */ { ZyDisInstructionMnemonic::FFREE, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 18B */ { ZyDisInstructionMnemonic::FFREE, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 18C */ { ZyDisInstructionMnemonic::FFREE, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 18D */ { ZyDisInstructionMnemonic::FFREE, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 18E */ { ZyDisInstructionMnemonic::FFREE, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 18F */ { ZyDisInstructionMnemonic::FFREE, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 190 */ { ZyDisInstructionMnemonic::FFREE, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 191 */ { ZyDisInstructionMnemonic::FFREE, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 192 */ { ZyDisInstructionMnemonic::FFREEP, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 193 */ { ZyDisInstructionMnemonic::FFREEP, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 194 */ { ZyDisInstructionMnemonic::FFREEP, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 195 */ { ZyDisInstructionMnemonic::FFREEP, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 196 */ { ZyDisInstructionMnemonic::FFREEP, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 197 */ { ZyDisInstructionMnemonic::FFREEP, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 198 */ { ZyDisInstructionMnemonic::FFREEP, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 199 */ { ZyDisInstructionMnemonic::FFREEP, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 19A */ { ZyDisInstructionMnemonic::FIADD, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 19B */ { ZyDisInstructionMnemonic::FIADD, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 19C */ { ZyDisInstructionMnemonic::FICOM, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 19D */ { ZyDisInstructionMnemonic::FICOM, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 19E */ { ZyDisInstructionMnemonic::FICOMP, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 19F */ { ZyDisInstructionMnemonic::FICOMP, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1A0 */ { ZyDisInstructionMnemonic::FIDIV, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1A1 */ { ZyDisInstructionMnemonic::FIDIV, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1A2 */ { ZyDisInstructionMnemonic::FIDIVR, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1A3 */ { ZyDisInstructionMnemonic::FIDIVR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1A4 */ { ZyDisInstructionMnemonic::FILD, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1A5 */ { ZyDisInstructionMnemonic::FILD, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1A6 */ { ZyDisInstructionMnemonic::FILD, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1A7 */ { ZyDisInstructionMnemonic::FIMUL, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1A8 */ { ZyDisInstructionMnemonic::FIMUL, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1A9 */ { ZyDisInstructionMnemonic::FINCSTP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1AA */ { ZyDisInstructionMnemonic::FIST, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1AB */ { ZyDisInstructionMnemonic::FIST, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1AC */ { ZyDisInstructionMnemonic::FISTP, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1AD */ { ZyDisInstructionMnemonic::FISTP, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1AE */ { ZyDisInstructionMnemonic::FISTP, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1AF */ { ZyDisInstructionMnemonic::FISTTP, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1B0 */ { ZyDisInstructionMnemonic::FISTTP, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1B1 */ { ZyDisInstructionMnemonic::FISTTP, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1B2 */ { ZyDisInstructionMnemonic::FISUB, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1B3 */ { ZyDisInstructionMnemonic::FISUB, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1B4 */ { ZyDisInstructionMnemonic::FISUBR, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1B5 */ { ZyDisInstructionMnemonic::FISUBR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1B6 */ { ZyDisInstructionMnemonic::FLD, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1B7 */ { ZyDisInstructionMnemonic::FLD, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1B8 */ { ZyDisInstructionMnemonic::FLD, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1B9 */ { ZyDisInstructionMnemonic::FLD, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1BA */ { ZyDisInstructionMnemonic::FLD, { OPI_Mt, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1BB */ { ZyDisInstructionMnemonic::FLD, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1BC */ { ZyDisInstructionMnemonic::FLD, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1BD */ { ZyDisInstructionMnemonic::FLD, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1BE */ { ZyDisInstructionMnemonic::FLD, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1BF */ { ZyDisInstructionMnemonic::FLD, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1C0 */ { ZyDisInstructionMnemonic::FLD, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1C1 */ { ZyDisInstructionMnemonic::FLD1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1C2 */ { ZyDisInstructionMnemonic::FLDCW, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1C3 */ { ZyDisInstructionMnemonic::FLDENV, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1C4 */ { ZyDisInstructionMnemonic::FLDL2E, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1C5 */ { ZyDisInstructionMnemonic::FLDL2T, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1C6 */ { ZyDisInstructionMnemonic::FLDLG2, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1C7 */ { ZyDisInstructionMnemonic::FLDLN2, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1C8 */ { ZyDisInstructionMnemonic::FLDPI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1C9 */ { ZyDisInstructionMnemonic::FLDZ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1CA */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1CB */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1CC */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1CD */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 1CE */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1CF */ { ZyDisInstructionMnemonic::FMUL, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1D0 */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1D1 */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1D2 */ { ZyDisInstructionMnemonic::FMUL, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1D3 */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1D4 */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1D5 */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1D6 */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 1D7 */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 1D8 */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 1D9 */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 1DA */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 1DB */ { ZyDisInstructionMnemonic::FMUL, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 1DC */ { ZyDisInstructionMnemonic::FMULP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1DD */ { ZyDisInstructionMnemonic::FMULP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1DE */ { ZyDisInstructionMnemonic::FMULP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1DF */ { ZyDisInstructionMnemonic::FMULP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1E0 */ { ZyDisInstructionMnemonic::FMULP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1E1 */ { ZyDisInstructionMnemonic::FMULP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1E2 */ { ZyDisInstructionMnemonic::FMULP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1E3 */ { ZyDisInstructionMnemonic::FMULP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 1E4 */ { ZyDisInstructionMnemonic::FNDISI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1E5 */ { ZyDisInstructionMnemonic::FNENI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1E6 */ { ZyDisInstructionMnemonic::FNINIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1E7 */ { ZyDisInstructionMnemonic::FNOP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1E8 */ { ZyDisInstructionMnemonic::FNSAVE, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1E9 */ { ZyDisInstructionMnemonic::FNSETPM, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1EA */ { ZyDisInstructionMnemonic::FNSTCW, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1EB */ { ZyDisInstructionMnemonic::FNSTENV, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1EC */ { ZyDisInstructionMnemonic::FNSTSW, { OPI_AX, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1ED */ { ZyDisInstructionMnemonic::FNSTSW, { OPI_Mw, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1EE */ { ZyDisInstructionMnemonic::FPATAN, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1EF */ { ZyDisInstructionMnemonic::FPREM, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1F0 */ { ZyDisInstructionMnemonic::FPREM1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1F1 */ { ZyDisInstructionMnemonic::FPTAN, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1F2 */ { ZyDisInstructionMnemonic::FRNDINT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1F3 */ { ZyDisInstructionMnemonic::FRSTOR, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1F4 */ { ZyDisInstructionMnemonic::FRSTPM, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1F5 */ { ZyDisInstructionMnemonic::FSCALE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1F6 */ { ZyDisInstructionMnemonic::FSIN, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1F7 */ { ZyDisInstructionMnemonic::FSINCOS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1F8 */ { ZyDisInstructionMnemonic::FSQRT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1F9 */ { ZyDisInstructionMnemonic::FST, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1FA */ { ZyDisInstructionMnemonic::FST, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1FB */ { ZyDisInstructionMnemonic::FST, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1FC */ { ZyDisInstructionMnemonic::FST, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1FD */ { ZyDisInstructionMnemonic::FST, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 1FE */ { ZyDisInstructionMnemonic::FST, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 1FF */ { ZyDisInstructionMnemonic::FST, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 200 */ { ZyDisInstructionMnemonic::FST, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 201 */ { ZyDisInstructionMnemonic::FST, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 202 */ { ZyDisInstructionMnemonic::FST, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 203 */ { ZyDisInstructionMnemonic::FSTP, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 204 */ { ZyDisInstructionMnemonic::FSTP, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 205 */ { ZyDisInstructionMnemonic::FSTP, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 206 */ { ZyDisInstructionMnemonic::FSTP, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 207 */ { ZyDisInstructionMnemonic::FSTP, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 208 */ { ZyDisInstructionMnemonic::FSTP, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 209 */ { ZyDisInstructionMnemonic::FSTP, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 20A */ { ZyDisInstructionMnemonic::FSTP, { OPI_Mt, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 20B */ { ZyDisInstructionMnemonic::FSTP, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 20C */ { ZyDisInstructionMnemonic::FSTP, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 20D */ { ZyDisInstructionMnemonic::FSTP, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 20E */ { ZyDisInstructionMnemonic::FSTP1, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 20F */ { ZyDisInstructionMnemonic::FSTP1, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 210 */ { ZyDisInstructionMnemonic::FSTP1, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 211 */ { ZyDisInstructionMnemonic::FSTP1, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 212 */ { ZyDisInstructionMnemonic::FSTP1, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 213 */ { ZyDisInstructionMnemonic::FSTP1, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 214 */ { ZyDisInstructionMnemonic::FSTP1, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 215 */ { ZyDisInstructionMnemonic::FSTP1, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 216 */ { ZyDisInstructionMnemonic::FSTP8, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 217 */ { ZyDisInstructionMnemonic::FSTP8, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 218 */ { ZyDisInstructionMnemonic::FSTP8, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 219 */ { ZyDisInstructionMnemonic::FSTP8, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 21A */ { ZyDisInstructionMnemonic::FSTP8, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 21B */ { ZyDisInstructionMnemonic::FSTP8, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 21C */ { ZyDisInstructionMnemonic::FSTP8, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 21D */ { ZyDisInstructionMnemonic::FSTP8, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 21E */ { ZyDisInstructionMnemonic::FSTP9, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 21F */ { ZyDisInstructionMnemonic::FSTP9, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 220 */ { ZyDisInstructionMnemonic::FSTP9, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 221 */ { ZyDisInstructionMnemonic::FSTP9, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 222 */ { ZyDisInstructionMnemonic::FSTP9, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 223 */ { ZyDisInstructionMnemonic::FSTP9, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 224 */ { ZyDisInstructionMnemonic::FSTP9, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 225 */ { ZyDisInstructionMnemonic::FSTP9, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 226 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 227 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 228 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 229 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 22A */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 22B */ { ZyDisInstructionMnemonic::FSUB, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 22C */ { ZyDisInstructionMnemonic::FSUB, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 22D */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 22E */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 22F */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 230 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 231 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 232 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 233 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 234 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 235 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 236 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 237 */ { ZyDisInstructionMnemonic::FSUB, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 238 */ { ZyDisInstructionMnemonic::FSUBP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 239 */ { ZyDisInstructionMnemonic::FSUBP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 23A */ { ZyDisInstructionMnemonic::FSUBP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 23B */ { ZyDisInstructionMnemonic::FSUBP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 23C */ { ZyDisInstructionMnemonic::FSUBP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 23D */ { ZyDisInstructionMnemonic::FSUBP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 23E */ { ZyDisInstructionMnemonic::FSUBP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 23F */ { ZyDisInstructionMnemonic::FSUBP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 240 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 241 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 242 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 243 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 244 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 245 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 246 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 247 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 248 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 249 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 24A */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 24B */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 24C */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 24D */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 24E */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 24F */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 250 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 251 */ { ZyDisInstructionMnemonic::FSUBR, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 252 */ { ZyDisInstructionMnemonic::FSUBRP, { OPI_ST5, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 253 */ { ZyDisInstructionMnemonic::FSUBRP, { OPI_ST4, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 254 */ { ZyDisInstructionMnemonic::FSUBRP, { OPI_ST7, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 255 */ { ZyDisInstructionMnemonic::FSUBRP, { OPI_ST6, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 256 */ { ZyDisInstructionMnemonic::FSUBRP, { OPI_ST2, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 257 */ { ZyDisInstructionMnemonic::FSUBRP, { OPI_ST3, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 258 */ { ZyDisInstructionMnemonic::FSUBRP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 259 */ { ZyDisInstructionMnemonic::FSUBRP, { OPI_ST1, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 25A */ { ZyDisInstructionMnemonic::FTST, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 25B */ { ZyDisInstructionMnemonic::FUCOM, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 25C */ { ZyDisInstructionMnemonic::FUCOM, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 25D */ { ZyDisInstructionMnemonic::FUCOM, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 25E */ { ZyDisInstructionMnemonic::FUCOM, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 25F */ { ZyDisInstructionMnemonic::FUCOM, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 260 */ { ZyDisInstructionMnemonic::FUCOM, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 261 */ { ZyDisInstructionMnemonic::FUCOM, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 262 */ { ZyDisInstructionMnemonic::FUCOM, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 263 */ { ZyDisInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 264 */ { ZyDisInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 265 */ { ZyDisInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 266 */ { ZyDisInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 267 */ { ZyDisInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 268 */ { ZyDisInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 269 */ { ZyDisInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 26A */ { ZyDisInstructionMnemonic::FUCOMI, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 26B */ { ZyDisInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 26C */ { ZyDisInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 26D */ { ZyDisInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 26E */ { ZyDisInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 26F */ { ZyDisInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 270 */ { ZyDisInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 271 */ { ZyDisInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 272 */ { ZyDisInstructionMnemonic::FUCOMIP, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 273 */ { ZyDisInstructionMnemonic::FUCOMP, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 274 */ { ZyDisInstructionMnemonic::FUCOMP, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 275 */ { ZyDisInstructionMnemonic::FUCOMP, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 276 */ { ZyDisInstructionMnemonic::FUCOMP, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 277 */ { ZyDisInstructionMnemonic::FUCOMP, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 278 */ { ZyDisInstructionMnemonic::FUCOMP, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 279 */ { ZyDisInstructionMnemonic::FUCOMP, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 27A */ { ZyDisInstructionMnemonic::FUCOMP, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 27B */ { ZyDisInstructionMnemonic::FUCOMPP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 27C */ { ZyDisInstructionMnemonic::FXAM, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 27D */ { ZyDisInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST4, OPI_NONE, OPI_NONE }, 0 }, + /* 27E */ { ZyDisInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST5, OPI_NONE, OPI_NONE }, 0 }, + /* 27F */ { ZyDisInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST6, OPI_NONE, OPI_NONE }, 0 }, + /* 280 */ { ZyDisInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST3, OPI_NONE, OPI_NONE }, 0 }, + /* 281 */ { ZyDisInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST0, OPI_NONE, OPI_NONE }, 0 }, + /* 282 */ { ZyDisInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST1, OPI_NONE, OPI_NONE }, 0 }, + /* 283 */ { ZyDisInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST2, OPI_NONE, OPI_NONE }, 0 }, + /* 284 */ { ZyDisInstructionMnemonic::FXCH, { OPI_ST0, OPI_ST7, OPI_NONE, OPI_NONE }, 0 }, + /* 285 */ { ZyDisInstructionMnemonic::FXCH4, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 286 */ { ZyDisInstructionMnemonic::FXCH4, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 287 */ { ZyDisInstructionMnemonic::FXCH4, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 288 */ { ZyDisInstructionMnemonic::FXCH4, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 289 */ { ZyDisInstructionMnemonic::FXCH4, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 28A */ { ZyDisInstructionMnemonic::FXCH4, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 28B */ { ZyDisInstructionMnemonic::FXCH4, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 28C */ { ZyDisInstructionMnemonic::FXCH4, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 28D */ { ZyDisInstructionMnemonic::FXCH7, { OPI_ST2, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 28E */ { ZyDisInstructionMnemonic::FXCH7, { OPI_ST3, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 28F */ { ZyDisInstructionMnemonic::FXCH7, { OPI_ST0, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 290 */ { ZyDisInstructionMnemonic::FXCH7, { OPI_ST1, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 291 */ { ZyDisInstructionMnemonic::FXCH7, { OPI_ST6, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 292 */ { ZyDisInstructionMnemonic::FXCH7, { OPI_ST7, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 293 */ { ZyDisInstructionMnemonic::FXCH7, { OPI_ST4, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 294 */ { ZyDisInstructionMnemonic::FXCH7, { OPI_ST5, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 295 */ { ZyDisInstructionMnemonic::FXRSTOR, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 296 */ { ZyDisInstructionMnemonic::FXSAVE, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 297 */ { ZyDisInstructionMnemonic::FXTRACT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 298 */ { ZyDisInstructionMnemonic::FYL2X, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 299 */ { ZyDisInstructionMnemonic::FYL2XP1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 29A */ { ZyDisInstructionMnemonic::GETSEC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 29B */ { ZyDisInstructionMnemonic::HADDPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 29C */ { ZyDisInstructionMnemonic::HADDPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 29D */ { ZyDisInstructionMnemonic::HLT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 29E */ { ZyDisInstructionMnemonic::HSUBPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 29F */ { ZyDisInstructionMnemonic::HSUBPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 2A0 */ { ZyDisInstructionMnemonic::IDIV, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 2A1 */ { ZyDisInstructionMnemonic::IDIV, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 2A2 */ { ZyDisInstructionMnemonic::IMUL, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 2A3 */ { ZyDisInstructionMnemonic::IMUL, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 2A4 */ { ZyDisInstructionMnemonic::IMUL, { OPI_Gv, OPI_Ev, OPI_Iz, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 2A5 */ { ZyDisInstructionMnemonic::IMUL, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 2A6 */ { ZyDisInstructionMnemonic::IMUL, { OPI_Gv, OPI_Ev, OPI_sIb, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 2A7 */ { ZyDisInstructionMnemonic::IN, { OPI_AL, OPI_DX, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, + /* 2A8 */ { ZyDisInstructionMnemonic::IN, { OPI_eAX, OPI_DX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_WRITE }, + /* 2A9 */ { ZyDisInstructionMnemonic::IN, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, + /* 2AA */ { ZyDisInstructionMnemonic::IN, { OPI_eAX, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_WRITE }, + /* 2AB */ { ZyDisInstructionMnemonic::INC, { OPI_R0z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 2AC */ { ZyDisInstructionMnemonic::INC, { OPI_R1z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 2AD */ { ZyDisInstructionMnemonic::INC, { OPI_R7z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 2AE */ { ZyDisInstructionMnemonic::INC, { OPI_R6z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 2AF */ { ZyDisInstructionMnemonic::INC, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 2B0 */ { ZyDisInstructionMnemonic::INC, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 2B1 */ { ZyDisInstructionMnemonic::INC, { OPI_R3z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 2B2 */ { ZyDisInstructionMnemonic::INC, { OPI_R2z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 2B3 */ { ZyDisInstructionMnemonic::INC, { OPI_R4z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 2B4 */ { ZyDisInstructionMnemonic::INC, { OPI_R5z, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_READWRITE }, + /* 2B5 */ { ZyDisInstructionMnemonic::INSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 2B6 */ { ZyDisInstructionMnemonic::INSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 2B7 */ { ZyDisInstructionMnemonic::INSERTPS, { OPI_V, OPI_Md, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 2B8 */ { ZyDisInstructionMnemonic::INSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 2B9 */ { ZyDisInstructionMnemonic::INT, { OPI_Ib, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2BA */ { ZyDisInstructionMnemonic::INT1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2BB */ { ZyDisInstructionMnemonic::INT3, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2BC */ { ZyDisInstructionMnemonic::INTO, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, + /* 2BD */ { ZyDisInstructionMnemonic::INVD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2BE */ { ZyDisInstructionMnemonic::INVEPT, { OPI_Gd, OPI_Mo, OPI_NONE, OPI_NONE }, 0 }, + /* 2BF */ { ZyDisInstructionMnemonic::INVEPT, { OPI_Gq, OPI_Mo, OPI_NONE, OPI_NONE }, 0 }, + /* 2C0 */ { ZyDisInstructionMnemonic::INVLPG, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 2C1 */ { ZyDisInstructionMnemonic::INVLPGA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2C2 */ { ZyDisInstructionMnemonic::INVVPID, { OPI_Gq, OPI_Mo, OPI_NONE, OPI_NONE }, 0 }, + /* 2C3 */ { ZyDisInstructionMnemonic::INVVPID, { OPI_Gd, OPI_Mo, OPI_NONE, OPI_NONE }, 0 }, + /* 2C4 */ { ZyDisInstructionMnemonic::IRETD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 2C5 */ { ZyDisInstructionMnemonic::IRETQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 2C6 */ { ZyDisInstructionMnemonic::IRETW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 2C7 */ { ZyDisInstructionMnemonic::JA, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2C8 */ { ZyDisInstructionMnemonic::JA, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2C9 */ { ZyDisInstructionMnemonic::JB, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2CA */ { ZyDisInstructionMnemonic::JB, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2CB */ { ZyDisInstructionMnemonic::JBE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2CC */ { ZyDisInstructionMnemonic::JBE, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2CD */ { ZyDisInstructionMnemonic::JCXZ, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX }, + /* 2CE */ { ZyDisInstructionMnemonic::JE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2CF */ { ZyDisInstructionMnemonic::JE, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2D0 */ { ZyDisInstructionMnemonic::JECXZ, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX }, + /* 2D1 */ { ZyDisInstructionMnemonic::JG, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2D2 */ { ZyDisInstructionMnemonic::JG, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2D3 */ { ZyDisInstructionMnemonic::JGE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2D4 */ { ZyDisInstructionMnemonic::JGE, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2D5 */ { ZyDisInstructionMnemonic::JL, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2D6 */ { ZyDisInstructionMnemonic::JL, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2D7 */ { ZyDisInstructionMnemonic::JLE, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2D8 */ { ZyDisInstructionMnemonic::JLE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2D9 */ { ZyDisInstructionMnemonic::JMP, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 2DA */ { ZyDisInstructionMnemonic::JMP, { OPI_Fv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 2DB */ { ZyDisInstructionMnemonic::JMP, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, + /* 2DC */ { ZyDisInstructionMnemonic::JMP, { OPI_Av, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, + /* 2DD */ { ZyDisInstructionMnemonic::JMP, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_DEFAULT_64 }, + /* 2DE */ { ZyDisInstructionMnemonic::JNB, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2DF */ { ZyDisInstructionMnemonic::JNB, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2E0 */ { ZyDisInstructionMnemonic::JNE, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2E1 */ { ZyDisInstructionMnemonic::JNE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2E2 */ { ZyDisInstructionMnemonic::JNO, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2E3 */ { ZyDisInstructionMnemonic::JNO, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2E4 */ { ZyDisInstructionMnemonic::JNP, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2E5 */ { ZyDisInstructionMnemonic::JNP, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2E6 */ { ZyDisInstructionMnemonic::JNS, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2E7 */ { ZyDisInstructionMnemonic::JNS, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2E8 */ { ZyDisInstructionMnemonic::JO, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2E9 */ { ZyDisInstructionMnemonic::JO, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2EA */ { ZyDisInstructionMnemonic::JP, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2EB */ { ZyDisInstructionMnemonic::JP, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2EC */ { ZyDisInstructionMnemonic::JRCXZ, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX }, + /* 2ED */ { ZyDisInstructionMnemonic::JS, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2EE */ { ZyDisInstructionMnemonic::JS, { OPI_Jz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 2EF */ { ZyDisInstructionMnemonic::LAHF, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2F0 */ { ZyDisInstructionMnemonic::LAR, { OPI_Gv, OPI_Ew, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 2F1 */ { ZyDisInstructionMnemonic::LDDQU, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 2F2 */ { ZyDisInstructionMnemonic::LDMXCSR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 2F3 */ { ZyDisInstructionMnemonic::LDS, { OPI_Gv, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_WRITE }, + /* 2F4 */ { ZyDisInstructionMnemonic::LEA, { OPI_Gv, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 2F5 */ { ZyDisInstructionMnemonic::LEAVE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2F6 */ { ZyDisInstructionMnemonic::LES, { OPI_Gv, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_OPERAND1_WRITE }, + /* 2F7 */ { ZyDisInstructionMnemonic::LFENCE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 2F8 */ { ZyDisInstructionMnemonic::LFS, { OPI_Gz, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 2F9 */ { ZyDisInstructionMnemonic::LGDT, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 2FA */ { ZyDisInstructionMnemonic::LGS, { OPI_Gz, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 2FB */ { ZyDisInstructionMnemonic::LIDT, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 2FC */ { ZyDisInstructionMnemonic::LLDT, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 2FD */ { ZyDisInstructionMnemonic::LMSW, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 2FE */ { ZyDisInstructionMnemonic::LMSW, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 2FF */ { ZyDisInstructionMnemonic::LOCK, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 300 */ { ZyDisInstructionMnemonic::LODSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 301 */ { ZyDisInstructionMnemonic::LODSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 302 */ { ZyDisInstructionMnemonic::LODSQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 303 */ { ZyDisInstructionMnemonic::LODSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 304 */ { ZyDisInstructionMnemonic::LOOP, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 305 */ { ZyDisInstructionMnemonic::LOOPE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 306 */ { ZyDisInstructionMnemonic::LOOPNE, { OPI_Jb, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 307 */ { ZyDisInstructionMnemonic::LSL, { OPI_Gv, OPI_Ew, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 308 */ { ZyDisInstructionMnemonic::LSS, { OPI_Gv, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 309 */ { ZyDisInstructionMnemonic::LTR, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 30A */ { ZyDisInstructionMnemonic::MASKMOVDQU, { OPI_V, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 30B */ { ZyDisInstructionMnemonic::MASKMOVQ, { OPI_P, OPI_N, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 30C */ { ZyDisInstructionMnemonic::MAXPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 30D */ { ZyDisInstructionMnemonic::MAXPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 30E */ { ZyDisInstructionMnemonic::MAXSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 30F */ { ZyDisInstructionMnemonic::MAXSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 310 */ { ZyDisInstructionMnemonic::MFENCE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 311 */ { ZyDisInstructionMnemonic::MINPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 312 */ { ZyDisInstructionMnemonic::MINPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 313 */ { ZyDisInstructionMnemonic::MINSD, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 314 */ { ZyDisInstructionMnemonic::MINSS, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 315 */ { ZyDisInstructionMnemonic::MONITOR, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 316 */ { ZyDisInstructionMnemonic::MONTMUL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 317 */ { ZyDisInstructionMnemonic::MOV, { OPI_R0b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 318 */ { ZyDisInstructionMnemonic::MOV, { OPI_R2b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 319 */ { ZyDisInstructionMnemonic::MOV, { OPI_R3b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 31A */ { ZyDisInstructionMnemonic::MOV, { OPI_R1b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 31B */ { ZyDisInstructionMnemonic::MOV, { OPI_AL, OPI_Ob, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, + /* 31C */ { ZyDisInstructionMnemonic::MOV, { OPI_S, OPI_MwRv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 31D */ { ZyDisInstructionMnemonic::MOV, { OPI_MwRv, OPI_S, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 31E */ { ZyDisInstructionMnemonic::MOV, { OPI_Ov, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, + /* 31F */ { ZyDisInstructionMnemonic::MOV, { OPI_Ob, OPI_AL, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, + /* 320 */ { ZyDisInstructionMnemonic::MOV, { OPI_rAX, OPI_Ov, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, + /* 321 */ { ZyDisInstructionMnemonic::MOV, { OPI_R4b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 322 */ { ZyDisInstructionMnemonic::MOV, { OPI_R7v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 323 */ { ZyDisInstructionMnemonic::MOV, { OPI_R6v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 324 */ { ZyDisInstructionMnemonic::MOV, { OPI_R5v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 325 */ { ZyDisInstructionMnemonic::MOV, { OPI_R, OPI_C, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 326 */ { ZyDisInstructionMnemonic::MOV, { OPI_D, OPI_R, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 327 */ { ZyDisInstructionMnemonic::MOV, { OPI_C, OPI_R, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 328 */ { ZyDisInstructionMnemonic::MOV, { OPI_R, OPI_D, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 329 */ { ZyDisInstructionMnemonic::MOV, { OPI_R4v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 32A */ { ZyDisInstructionMnemonic::MOV, { OPI_R7b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 32B */ { ZyDisInstructionMnemonic::MOV, { OPI_R6b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 32C */ { ZyDisInstructionMnemonic::MOV, { OPI_R5b, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 32D */ { ZyDisInstructionMnemonic::MOV, { OPI_R0v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 32E */ { ZyDisInstructionMnemonic::MOV, { OPI_R3v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 32F */ { ZyDisInstructionMnemonic::MOV, { OPI_R2v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 330 */ { ZyDisInstructionMnemonic::MOV, { OPI_R1v, OPI_Iv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 331 */ { ZyDisInstructionMnemonic::MOV, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 332 */ { ZyDisInstructionMnemonic::MOV, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 333 */ { ZyDisInstructionMnemonic::MOV, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 334 */ { ZyDisInstructionMnemonic::MOV, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 335 */ { ZyDisInstructionMnemonic::MOV, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 336 */ { ZyDisInstructionMnemonic::MOV, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 337 */ { ZyDisInstructionMnemonic::MOVAPD, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 338 */ { ZyDisInstructionMnemonic::MOVAPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 339 */ { ZyDisInstructionMnemonic::MOVAPS, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 33A */ { ZyDisInstructionMnemonic::MOVAPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 33B */ { ZyDisInstructionMnemonic::MOVBE, { OPI_Gv, OPI_Mv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 33C */ { ZyDisInstructionMnemonic::MOVBE, { OPI_Mv, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 33D */ { ZyDisInstructionMnemonic::MOVD, { OPI_P, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 33E */ { ZyDisInstructionMnemonic::MOVD, { OPI_Ey, OPI_P, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 33F */ { ZyDisInstructionMnemonic::MOVD, { OPI_Ey, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 340 */ { ZyDisInstructionMnemonic::MOVD, { OPI_Ey, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 341 */ { ZyDisInstructionMnemonic::MOVD, { OPI_V, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 342 */ { ZyDisInstructionMnemonic::MOVD, { OPI_V, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 343 */ { ZyDisInstructionMnemonic::MOVD, { OPI_P, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 344 */ { ZyDisInstructionMnemonic::MOVD, { OPI_Ey, OPI_P, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 345 */ { ZyDisInstructionMnemonic::MOVDDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 346 */ { ZyDisInstructionMnemonic::MOVDDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 347 */ { ZyDisInstructionMnemonic::MOVDQ2Q, { OPI_P, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 348 */ { ZyDisInstructionMnemonic::MOVDQA, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 349 */ { ZyDisInstructionMnemonic::MOVDQA, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 34A */ { ZyDisInstructionMnemonic::MOVDQU, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 34B */ { ZyDisInstructionMnemonic::MOVDQU, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 34C */ { ZyDisInstructionMnemonic::MOVHLPS, { OPI_V, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 34D */ { ZyDisInstructionMnemonic::MOVHPD, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 34E */ { ZyDisInstructionMnemonic::MOVHPD, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 34F */ { ZyDisInstructionMnemonic::MOVHPS, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 350 */ { ZyDisInstructionMnemonic::MOVHPS, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 351 */ { ZyDisInstructionMnemonic::MOVLHPS, { OPI_V, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 352 */ { ZyDisInstructionMnemonic::MOVLPD, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 353 */ { ZyDisInstructionMnemonic::MOVLPD, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 354 */ { ZyDisInstructionMnemonic::MOVLPS, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 355 */ { ZyDisInstructionMnemonic::MOVLPS, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 356 */ { ZyDisInstructionMnemonic::MOVMSKPD, { OPI_Gd, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 357 */ { ZyDisInstructionMnemonic::MOVMSKPS, { OPI_Gd, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 358 */ { ZyDisInstructionMnemonic::MOVNTDQ, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 359 */ { ZyDisInstructionMnemonic::MOVNTDQA, { OPI_V, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 35A */ { ZyDisInstructionMnemonic::MOVNTI, { OPI_M, OPI_Gy, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 35B */ { ZyDisInstructionMnemonic::MOVNTPD, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 35C */ { ZyDisInstructionMnemonic::MOVNTPS, { OPI_M, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 35D */ { ZyDisInstructionMnemonic::MOVNTQ, { OPI_M, OPI_P, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 35E */ { ZyDisInstructionMnemonic::MOVQ, { OPI_P, OPI_Eq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 35F */ { ZyDisInstructionMnemonic::MOVQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 360 */ { ZyDisInstructionMnemonic::MOVQ, { OPI_Eq, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 361 */ { ZyDisInstructionMnemonic::MOVQ, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 362 */ { ZyDisInstructionMnemonic::MOVQ, { OPI_Q, OPI_P, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 363 */ { ZyDisInstructionMnemonic::MOVQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 364 */ { ZyDisInstructionMnemonic::MOVQ, { OPI_V, OPI_Eq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 365 */ { ZyDisInstructionMnemonic::MOVQ, { OPI_Eq, OPI_P, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 366 */ { ZyDisInstructionMnemonic::MOVQ2DQ, { OPI_V, OPI_N, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_OPERAND1_WRITE }, + /* 367 */ { ZyDisInstructionMnemonic::MOVSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_OPERAND1_WRITE }, + /* 368 */ { ZyDisInstructionMnemonic::MOVSD, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 369 */ { ZyDisInstructionMnemonic::MOVSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, + /* 36A */ { ZyDisInstructionMnemonic::MOVSD, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 36B */ { ZyDisInstructionMnemonic::MOVSHDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 36C */ { ZyDisInstructionMnemonic::MOVSHDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 36D */ { ZyDisInstructionMnemonic::MOVSLDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 36E */ { ZyDisInstructionMnemonic::MOVSLDUP, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 36F */ { ZyDisInstructionMnemonic::MOVSQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, + /* 370 */ { ZyDisInstructionMnemonic::MOVSS, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 371 */ { ZyDisInstructionMnemonic::MOVSS, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 372 */ { ZyDisInstructionMnemonic::MOVSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, + /* 373 */ { ZyDisInstructionMnemonic::MOVSX, { OPI_Gv, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 374 */ { ZyDisInstructionMnemonic::MOVSX, { OPI_Gy, OPI_Ew, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 375 */ { ZyDisInstructionMnemonic::MOVSXD, { OPI_Gq, OPI_Ed, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 376 */ { ZyDisInstructionMnemonic::MOVUPD, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 377 */ { ZyDisInstructionMnemonic::MOVUPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 378 */ { ZyDisInstructionMnemonic::MOVUPS, { OPI_W, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 379 */ { ZyDisInstructionMnemonic::MOVUPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 37A */ { ZyDisInstructionMnemonic::MOVZX, { OPI_Gy, OPI_Ew, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 37B */ { ZyDisInstructionMnemonic::MOVZX, { OPI_Gv, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 37C */ { ZyDisInstructionMnemonic::MPSADBW, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 37D */ { ZyDisInstructionMnemonic::MUL, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 37E */ { ZyDisInstructionMnemonic::MUL, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 37F */ { ZyDisInstructionMnemonic::MULPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 380 */ { ZyDisInstructionMnemonic::MULPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 381 */ { ZyDisInstructionMnemonic::MULSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 382 */ { ZyDisInstructionMnemonic::MULSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 383 */ { ZyDisInstructionMnemonic::MWAIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 384 */ { ZyDisInstructionMnemonic::NEG, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 385 */ { ZyDisInstructionMnemonic::NEG, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 386 */ { ZyDisInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 387 */ { ZyDisInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 388 */ { ZyDisInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 389 */ { ZyDisInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 38A */ { ZyDisInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 38B */ { ZyDisInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 38C */ { ZyDisInstructionMnemonic::NOP, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 38D */ { ZyDisInstructionMnemonic::NOT, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 38E */ { ZyDisInstructionMnemonic::NOT, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 38F */ { ZyDisInstructionMnemonic::OR, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, + /* 390 */ { ZyDisInstructionMnemonic::OR, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 391 */ { ZyDisInstructionMnemonic::OR, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 392 */ { ZyDisInstructionMnemonic::OR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 393 */ { ZyDisInstructionMnemonic::OR, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 394 */ { ZyDisInstructionMnemonic::OR, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 395 */ { ZyDisInstructionMnemonic::OR, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 396 */ { ZyDisInstructionMnemonic::OR, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 397 */ { ZyDisInstructionMnemonic::OR, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 398 */ { ZyDisInstructionMnemonic::OR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 399 */ { ZyDisInstructionMnemonic::ORPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 39A */ { ZyDisInstructionMnemonic::ORPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 39B */ { ZyDisInstructionMnemonic::OUT, { OPI_DX, OPI_AL, OPI_NONE, OPI_NONE }, 0 }, + /* 39C */ { ZyDisInstructionMnemonic::OUT, { OPI_DX, OPI_eAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, + /* 39D */ { ZyDisInstructionMnemonic::OUT, { OPI_Ib, OPI_AL, OPI_NONE, OPI_NONE }, 0 }, + /* 39E */ { ZyDisInstructionMnemonic::OUT, { OPI_Ib, OPI_eAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, + /* 39F */ { ZyDisInstructionMnemonic::OUTSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 3A0 */ { ZyDisInstructionMnemonic::OUTSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 3A1 */ { ZyDisInstructionMnemonic::OUTSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 3A2 */ { ZyDisInstructionMnemonic::PABSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3A3 */ { ZyDisInstructionMnemonic::PABSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3A4 */ { ZyDisInstructionMnemonic::PABSD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3A5 */ { ZyDisInstructionMnemonic::PABSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3A6 */ { ZyDisInstructionMnemonic::PABSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3A7 */ { ZyDisInstructionMnemonic::PABSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3A8 */ { ZyDisInstructionMnemonic::PACKSSDW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3A9 */ { ZyDisInstructionMnemonic::PACKSSDW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3AA */ { ZyDisInstructionMnemonic::PACKSSWB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3AB */ { ZyDisInstructionMnemonic::PACKSSWB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3AC */ { ZyDisInstructionMnemonic::PACKUSDW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3AD */ { ZyDisInstructionMnemonic::PACKUSWB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3AE */ { ZyDisInstructionMnemonic::PACKUSWB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3AF */ { ZyDisInstructionMnemonic::PADDB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3B0 */ { ZyDisInstructionMnemonic::PADDB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3B1 */ { ZyDisInstructionMnemonic::PADDD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3B2 */ { ZyDisInstructionMnemonic::PADDD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3B3 */ { ZyDisInstructionMnemonic::PADDQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3B4 */ { ZyDisInstructionMnemonic::PADDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3B5 */ { ZyDisInstructionMnemonic::PADDSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3B6 */ { ZyDisInstructionMnemonic::PADDSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3B7 */ { ZyDisInstructionMnemonic::PADDSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3B8 */ { ZyDisInstructionMnemonic::PADDSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3B9 */ { ZyDisInstructionMnemonic::PADDUSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3BA */ { ZyDisInstructionMnemonic::PADDUSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3BB */ { ZyDisInstructionMnemonic::PADDUSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3BC */ { ZyDisInstructionMnemonic::PADDUSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3BD */ { ZyDisInstructionMnemonic::PADDW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3BE */ { ZyDisInstructionMnemonic::PADDW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3BF */ { ZyDisInstructionMnemonic::PALIGNR, { OPI_P, OPI_Q, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3C0 */ { ZyDisInstructionMnemonic::PALIGNR, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3C1 */ { ZyDisInstructionMnemonic::PAND, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3C2 */ { ZyDisInstructionMnemonic::PAND, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3C3 */ { ZyDisInstructionMnemonic::PANDN, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3C4 */ { ZyDisInstructionMnemonic::PANDN, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3C5 */ { ZyDisInstructionMnemonic::PAVGB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3C6 */ { ZyDisInstructionMnemonic::PAVGB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3C7 */ { ZyDisInstructionMnemonic::PAVGUSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3C8 */ { ZyDisInstructionMnemonic::PAVGW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3C9 */ { ZyDisInstructionMnemonic::PAVGW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3CA */ { ZyDisInstructionMnemonic::PBLENDVB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3CB */ { ZyDisInstructionMnemonic::PBLENDW, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3CC */ { ZyDisInstructionMnemonic::PCLMULQDQ, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3CD */ { ZyDisInstructionMnemonic::PCMPEQB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3CE */ { ZyDisInstructionMnemonic::PCMPEQB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3CF */ { ZyDisInstructionMnemonic::PCMPEQD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3D0 */ { ZyDisInstructionMnemonic::PCMPEQD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3D1 */ { ZyDisInstructionMnemonic::PCMPEQQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 3D2 */ { ZyDisInstructionMnemonic::PCMPEQW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3D3 */ { ZyDisInstructionMnemonic::PCMPEQW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3D4 */ { ZyDisInstructionMnemonic::PCMPESTRI, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 3D5 */ { ZyDisInstructionMnemonic::PCMPESTRM, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 3D6 */ { ZyDisInstructionMnemonic::PCMPGTB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3D7 */ { ZyDisInstructionMnemonic::PCMPGTB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3D8 */ { ZyDisInstructionMnemonic::PCMPGTD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3D9 */ { ZyDisInstructionMnemonic::PCMPGTD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3DA */ { ZyDisInstructionMnemonic::PCMPGTQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 3DB */ { ZyDisInstructionMnemonic::PCMPGTW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3DC */ { ZyDisInstructionMnemonic::PCMPGTW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3DD */ { ZyDisInstructionMnemonic::PCMPISTRI, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 3DE */ { ZyDisInstructionMnemonic::PCMPISTRM, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 3DF */ { ZyDisInstructionMnemonic::PEXTRB, { OPI_MbRv, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 3E0 */ { ZyDisInstructionMnemonic::PEXTRD, { OPI_Ed, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3E1 */ { ZyDisInstructionMnemonic::PEXTRD, { OPI_Ed, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3E2 */ { ZyDisInstructionMnemonic::PEXTRQ, { OPI_Eq, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 3E3 */ { ZyDisInstructionMnemonic::PEXTRW, { OPI_MwRd, OPI_V, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3E4 */ { ZyDisInstructionMnemonic::PEXTRW, { OPI_Gd, OPI_N, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3E5 */ { ZyDisInstructionMnemonic::PEXTRW, { OPI_Gd, OPI_U, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3E6 */ { ZyDisInstructionMnemonic::PF2ID, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3E7 */ { ZyDisInstructionMnemonic::PF2IW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3E8 */ { ZyDisInstructionMnemonic::PFACC, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3E9 */ { ZyDisInstructionMnemonic::PFADD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3EA */ { ZyDisInstructionMnemonic::PFCMPEQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3EB */ { ZyDisInstructionMnemonic::PFCMPGE, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3EC */ { ZyDisInstructionMnemonic::PFCMPGT, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3ED */ { ZyDisInstructionMnemonic::PFMAX, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3EE */ { ZyDisInstructionMnemonic::PFMIN, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3EF */ { ZyDisInstructionMnemonic::PFMUL, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3F0 */ { ZyDisInstructionMnemonic::PFNACC, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3F1 */ { ZyDisInstructionMnemonic::PFPNACC, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3F2 */ { ZyDisInstructionMnemonic::PFRCP, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3F3 */ { ZyDisInstructionMnemonic::PFRCPIT1, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3F4 */ { ZyDisInstructionMnemonic::PFRCPIT2, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3F5 */ { ZyDisInstructionMnemonic::PFRSQIT1, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3F6 */ { ZyDisInstructionMnemonic::PFRSQRT, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 3F7 */ { ZyDisInstructionMnemonic::PFSUB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3F8 */ { ZyDisInstructionMnemonic::PFSUBR, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3F9 */ { ZyDisInstructionMnemonic::PHADDD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3FA */ { ZyDisInstructionMnemonic::PHADDD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3FB */ { ZyDisInstructionMnemonic::PHADDSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3FC */ { ZyDisInstructionMnemonic::PHADDSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3FD */ { ZyDisInstructionMnemonic::PHADDW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3FE */ { ZyDisInstructionMnemonic::PHADDW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 3FF */ { ZyDisInstructionMnemonic::PHMINPOSUW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 400 */ { ZyDisInstructionMnemonic::PHSUBD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 401 */ { ZyDisInstructionMnemonic::PHSUBD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 402 */ { ZyDisInstructionMnemonic::PHSUBSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 403 */ { ZyDisInstructionMnemonic::PHSUBSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 404 */ { ZyDisInstructionMnemonic::PHSUBW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 405 */ { ZyDisInstructionMnemonic::PHSUBW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 406 */ { ZyDisInstructionMnemonic::PI2FD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 407 */ { ZyDisInstructionMnemonic::PI2FW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 408 */ { ZyDisInstructionMnemonic::PINSRB, { OPI_V, OPI_MbRd, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 409 */ { ZyDisInstructionMnemonic::PINSRD, { OPI_V, OPI_Ed, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 40A */ { ZyDisInstructionMnemonic::PINSRD, { OPI_V, OPI_Ed, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 40B */ { ZyDisInstructionMnemonic::PINSRQ, { OPI_V, OPI_Eq, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 40C */ { ZyDisInstructionMnemonic::PINSRW, { OPI_V, OPI_MwRy, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 40D */ { ZyDisInstructionMnemonic::PINSRW, { OPI_P, OPI_MwRy, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 40E */ { ZyDisInstructionMnemonic::PMADDUBSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 40F */ { ZyDisInstructionMnemonic::PMADDUBSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 410 */ { ZyDisInstructionMnemonic::PMADDWD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 411 */ { ZyDisInstructionMnemonic::PMADDWD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 412 */ { ZyDisInstructionMnemonic::PMAXSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 413 */ { ZyDisInstructionMnemonic::PMAXSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 414 */ { ZyDisInstructionMnemonic::PMAXSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 415 */ { ZyDisInstructionMnemonic::PMAXSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 416 */ { ZyDisInstructionMnemonic::PMAXUB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 417 */ { ZyDisInstructionMnemonic::PMAXUB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 418 */ { ZyDisInstructionMnemonic::PMAXUD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 419 */ { ZyDisInstructionMnemonic::PMAXUW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 41A */ { ZyDisInstructionMnemonic::PMINSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 41B */ { ZyDisInstructionMnemonic::PMINSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 41C */ { ZyDisInstructionMnemonic::PMINSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 41D */ { ZyDisInstructionMnemonic::PMINSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 41E */ { ZyDisInstructionMnemonic::PMINUB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 41F */ { ZyDisInstructionMnemonic::PMINUB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 420 */ { ZyDisInstructionMnemonic::PMINUD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 421 */ { ZyDisInstructionMnemonic::PMINUW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 422 */ { ZyDisInstructionMnemonic::PMOVMSKB, { OPI_Gd, OPI_N, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 423 */ { ZyDisInstructionMnemonic::PMOVMSKB, { OPI_Gd, OPI_U, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 424 */ { ZyDisInstructionMnemonic::PMOVSXBD, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 425 */ { ZyDisInstructionMnemonic::PMOVSXBQ, { OPI_V, OPI_MwU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 426 */ { ZyDisInstructionMnemonic::PMOVSXBW, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 427 */ { ZyDisInstructionMnemonic::PMOVSXDQ, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 428 */ { ZyDisInstructionMnemonic::PMOVSXWD, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 429 */ { ZyDisInstructionMnemonic::PMOVSXWQ, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 42A */ { ZyDisInstructionMnemonic::PMOVZXBD, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 42B */ { ZyDisInstructionMnemonic::PMOVZXBQ, { OPI_V, OPI_MwU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 42C */ { ZyDisInstructionMnemonic::PMOVZXBW, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 42D */ { ZyDisInstructionMnemonic::PMOVZXDQ, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 42E */ { ZyDisInstructionMnemonic::PMOVZXWD, { OPI_V, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 42F */ { ZyDisInstructionMnemonic::PMOVZXWQ, { OPI_V, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 430 */ { ZyDisInstructionMnemonic::PMULDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 431 */ { ZyDisInstructionMnemonic::PMULHRSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 432 */ { ZyDisInstructionMnemonic::PMULHRSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 433 */ { ZyDisInstructionMnemonic::PMULHRW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 434 */ { ZyDisInstructionMnemonic::PMULHUW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 435 */ { ZyDisInstructionMnemonic::PMULHUW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 436 */ { ZyDisInstructionMnemonic::PMULHW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 437 */ { ZyDisInstructionMnemonic::PMULHW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 438 */ { ZyDisInstructionMnemonic::PMULLD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 439 */ { ZyDisInstructionMnemonic::PMULLW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 43A */ { ZyDisInstructionMnemonic::PMULLW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 43B */ { ZyDisInstructionMnemonic::PMULUDQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 43C */ { ZyDisInstructionMnemonic::PMULUDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 43D */ { ZyDisInstructionMnemonic::POP, { OPI_R5v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 43E */ { ZyDisInstructionMnemonic::POP, { OPI_R4v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 43F */ { ZyDisInstructionMnemonic::POP, { OPI_R6v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 440 */ { ZyDisInstructionMnemonic::POP, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 441 */ { ZyDisInstructionMnemonic::POP, { OPI_R7v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 442 */ { ZyDisInstructionMnemonic::POP, { OPI_R3v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 443 */ { ZyDisInstructionMnemonic::POP, { OPI_DS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 | IDF_OPERAND1_WRITE }, + /* 444 */ { ZyDisInstructionMnemonic::POP, { OPI_GS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, + /* 445 */ { ZyDisInstructionMnemonic::POP, { OPI_ES, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 | IDF_OPERAND1_WRITE }, + /* 446 */ { ZyDisInstructionMnemonic::POP, { OPI_SS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 | IDF_OPERAND1_WRITE }, + /* 447 */ { ZyDisInstructionMnemonic::POP, { OPI_R1v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 448 */ { ZyDisInstructionMnemonic::POP, { OPI_R2v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 449 */ { ZyDisInstructionMnemonic::POP, { OPI_R0v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 44A */ { ZyDisInstructionMnemonic::POP, { OPI_FS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, + /* 44B */ { ZyDisInstructionMnemonic::POPA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_INVALID_64 }, + /* 44C */ { ZyDisInstructionMnemonic::POPAD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_INVALID_64 }, + /* 44D */ { ZyDisInstructionMnemonic::POPCNT, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 44E */ { ZyDisInstructionMnemonic::POPFD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, + /* 44F */ { ZyDisInstructionMnemonic::POPFQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 450 */ { ZyDisInstructionMnemonic::POPFQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 451 */ { ZyDisInstructionMnemonic::POPFW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, + /* 452 */ { ZyDisInstructionMnemonic::POR, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 453 */ { ZyDisInstructionMnemonic::POR, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 454 */ { ZyDisInstructionMnemonic::PREFETCH, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 455 */ { ZyDisInstructionMnemonic::PREFETCHNTA, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 456 */ { ZyDisInstructionMnemonic::PREFETCHT0, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 457 */ { ZyDisInstructionMnemonic::PREFETCHT1, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 458 */ { ZyDisInstructionMnemonic::PREFETCHT2, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 459 */ { ZyDisInstructionMnemonic::PSADBW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 45A */ { ZyDisInstructionMnemonic::PSADBW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 45B */ { ZyDisInstructionMnemonic::PSHUFB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 45C */ { ZyDisInstructionMnemonic::PSHUFB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 45D */ { ZyDisInstructionMnemonic::PSHUFD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 45E */ { ZyDisInstructionMnemonic::PSHUFHW, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 45F */ { ZyDisInstructionMnemonic::PSHUFLW, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 460 */ { ZyDisInstructionMnemonic::PSHUFW, { OPI_P, OPI_Q, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 461 */ { ZyDisInstructionMnemonic::PSIGNB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 462 */ { ZyDisInstructionMnemonic::PSIGNB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 463 */ { ZyDisInstructionMnemonic::PSIGND, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 464 */ { ZyDisInstructionMnemonic::PSIGND, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 465 */ { ZyDisInstructionMnemonic::PSIGNW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 466 */ { ZyDisInstructionMnemonic::PSIGNW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 467 */ { ZyDisInstructionMnemonic::PSLLD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 468 */ { ZyDisInstructionMnemonic::PSLLD, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 469 */ { ZyDisInstructionMnemonic::PSLLD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 46A */ { ZyDisInstructionMnemonic::PSLLD, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 46B */ { ZyDisInstructionMnemonic::PSLLDQ, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 46C */ { ZyDisInstructionMnemonic::PSLLQ, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 46D */ { ZyDisInstructionMnemonic::PSLLQ, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 46E */ { ZyDisInstructionMnemonic::PSLLQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 46F */ { ZyDisInstructionMnemonic::PSLLQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 470 */ { ZyDisInstructionMnemonic::PSLLW, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 471 */ { ZyDisInstructionMnemonic::PSLLW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 472 */ { ZyDisInstructionMnemonic::PSLLW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 473 */ { ZyDisInstructionMnemonic::PSLLW, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 474 */ { ZyDisInstructionMnemonic::PSRAD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 475 */ { ZyDisInstructionMnemonic::PSRAD, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 476 */ { ZyDisInstructionMnemonic::PSRAD, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 477 */ { ZyDisInstructionMnemonic::PSRAD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 478 */ { ZyDisInstructionMnemonic::PSRAW, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 479 */ { ZyDisInstructionMnemonic::PSRAW, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 47A */ { ZyDisInstructionMnemonic::PSRAW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 47B */ { ZyDisInstructionMnemonic::PSRAW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 47C */ { ZyDisInstructionMnemonic::PSRLD, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 47D */ { ZyDisInstructionMnemonic::PSRLD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 47E */ { ZyDisInstructionMnemonic::PSRLD, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 47F */ { ZyDisInstructionMnemonic::PSRLD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 480 */ { ZyDisInstructionMnemonic::PSRLDQ, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 481 */ { ZyDisInstructionMnemonic::PSRLQ, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 482 */ { ZyDisInstructionMnemonic::PSRLQ, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 483 */ { ZyDisInstructionMnemonic::PSRLQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 484 */ { ZyDisInstructionMnemonic::PSRLQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 485 */ { ZyDisInstructionMnemonic::PSRLW, { OPI_U, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 486 */ { ZyDisInstructionMnemonic::PSRLW, { OPI_N, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 487 */ { ZyDisInstructionMnemonic::PSRLW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 488 */ { ZyDisInstructionMnemonic::PSRLW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 489 */ { ZyDisInstructionMnemonic::PSUBB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 48A */ { ZyDisInstructionMnemonic::PSUBB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 48B */ { ZyDisInstructionMnemonic::PSUBD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 48C */ { ZyDisInstructionMnemonic::PSUBD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 48D */ { ZyDisInstructionMnemonic::PSUBQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 48E */ { ZyDisInstructionMnemonic::PSUBQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 48F */ { ZyDisInstructionMnemonic::PSUBSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 490 */ { ZyDisInstructionMnemonic::PSUBSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 491 */ { ZyDisInstructionMnemonic::PSUBSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 492 */ { ZyDisInstructionMnemonic::PSUBSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 493 */ { ZyDisInstructionMnemonic::PSUBUSB, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 494 */ { ZyDisInstructionMnemonic::PSUBUSB, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 495 */ { ZyDisInstructionMnemonic::PSUBUSW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 496 */ { ZyDisInstructionMnemonic::PSUBUSW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 497 */ { ZyDisInstructionMnemonic::PSUBW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 498 */ { ZyDisInstructionMnemonic::PSUBW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 499 */ { ZyDisInstructionMnemonic::PSWAPD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 49A */ { ZyDisInstructionMnemonic::PTEST, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 49B */ { ZyDisInstructionMnemonic::PUNPCKHBW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 49C */ { ZyDisInstructionMnemonic::PUNPCKHBW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 49D */ { ZyDisInstructionMnemonic::PUNPCKHDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 49E */ { ZyDisInstructionMnemonic::PUNPCKHDQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 49F */ { ZyDisInstructionMnemonic::PUNPCKHQDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4A0 */ { ZyDisInstructionMnemonic::PUNPCKHWD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4A1 */ { ZyDisInstructionMnemonic::PUNPCKHWD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4A2 */ { ZyDisInstructionMnemonic::PUNPCKLBW, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4A3 */ { ZyDisInstructionMnemonic::PUNPCKLBW, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4A4 */ { ZyDisInstructionMnemonic::PUNPCKLDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4A5 */ { ZyDisInstructionMnemonic::PUNPCKLDQ, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4A6 */ { ZyDisInstructionMnemonic::PUNPCKLQDQ, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4A7 */ { ZyDisInstructionMnemonic::PUNPCKLWD, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4A8 */ { ZyDisInstructionMnemonic::PUNPCKLWD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4A9 */ { ZyDisInstructionMnemonic::PUSH, { OPI_DS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, + /* 4AA */ { ZyDisInstructionMnemonic::PUSH, { OPI_ES, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, + /* 4AB */ { ZyDisInstructionMnemonic::PUSH, { OPI_sIb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_DEFAULT_64 }, + /* 4AC */ { ZyDisInstructionMnemonic::PUSH, { OPI_SS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, + /* 4AD */ { ZyDisInstructionMnemonic::PUSH, { OPI_CS, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 }, + /* 4AE */ { ZyDisInstructionMnemonic::PUSH, { OPI_R3v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 4AF */ { ZyDisInstructionMnemonic::PUSH, { OPI_R4v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 4B0 */ { ZyDisInstructionMnemonic::PUSH, { OPI_R5v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 4B1 */ { ZyDisInstructionMnemonic::PUSH, { OPI_R6v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 4B2 */ { ZyDisInstructionMnemonic::PUSH, { OPI_R7v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 4B3 */ { ZyDisInstructionMnemonic::PUSH, { OPI_R2v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 4B4 */ { ZyDisInstructionMnemonic::PUSH, { OPI_R0v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 4B5 */ { ZyDisInstructionMnemonic::PUSH, { OPI_FS, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4B6 */ { ZyDisInstructionMnemonic::PUSH, { OPI_GS, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4B7 */ { ZyDisInstructionMnemonic::PUSH, { OPI_sIz, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, + /* 4B8 */ { ZyDisInstructionMnemonic::PUSH, { OPI_Ev, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 4B9 */ { ZyDisInstructionMnemonic::PUSH, { OPI_R1v, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 4BA */ { ZyDisInstructionMnemonic::PUSHA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_INVALID_64 }, + /* 4BB */ { ZyDisInstructionMnemonic::PUSHAD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_INVALID_64 }, + /* 4BC */ { ZyDisInstructionMnemonic::PUSHFD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, + /* 4BD */ { ZyDisInstructionMnemonic::PUSHFQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, + /* 4BE */ { ZyDisInstructionMnemonic::PUSHFQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, + /* 4BF */ { ZyDisInstructionMnemonic::PUSHFW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_DEFAULT_64 }, + /* 4C0 */ { ZyDisInstructionMnemonic::PUSHFW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX }, + /* 4C1 */ { ZyDisInstructionMnemonic::PXOR, { OPI_P, OPI_Q, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4C2 */ { ZyDisInstructionMnemonic::PXOR, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4C3 */ { ZyDisInstructionMnemonic::RCL, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4C4 */ { ZyDisInstructionMnemonic::RCL, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4C5 */ { ZyDisInstructionMnemonic::RCL, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4C6 */ { ZyDisInstructionMnemonic::RCL, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4C7 */ { ZyDisInstructionMnemonic::RCL, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4C8 */ { ZyDisInstructionMnemonic::RCL, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4C9 */ { ZyDisInstructionMnemonic::RCPPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4CA */ { ZyDisInstructionMnemonic::RCPSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4CB */ { ZyDisInstructionMnemonic::RCR, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4CC */ { ZyDisInstructionMnemonic::RCR, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4CD */ { ZyDisInstructionMnemonic::RCR, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4CE */ { ZyDisInstructionMnemonic::RCR, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4CF */ { ZyDisInstructionMnemonic::RCR, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4D0 */ { ZyDisInstructionMnemonic::RCR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4D1 */ { ZyDisInstructionMnemonic::RDMSR, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4D2 */ { ZyDisInstructionMnemonic::RDPMC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4D3 */ { ZyDisInstructionMnemonic::RDRAND, { OPI_R, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4D4 */ { ZyDisInstructionMnemonic::RDTSC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4D5 */ { ZyDisInstructionMnemonic::RDTSCP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4D6 */ { ZyDisInstructionMnemonic::REP, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4D7 */ { ZyDisInstructionMnemonic::REPNE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4D8 */ { ZyDisInstructionMnemonic::RET, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4D9 */ { ZyDisInstructionMnemonic::RET, { OPI_Iw, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4DA */ { ZyDisInstructionMnemonic::RETF, { OPI_Iw, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4DB */ { ZyDisInstructionMnemonic::RETF, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4DC */ { ZyDisInstructionMnemonic::ROL, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4DD */ { ZyDisInstructionMnemonic::ROL, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4DE */ { ZyDisInstructionMnemonic::ROL, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4DF */ { ZyDisInstructionMnemonic::ROL, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4E0 */ { ZyDisInstructionMnemonic::ROL, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4E1 */ { ZyDisInstructionMnemonic::ROL, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4E2 */ { ZyDisInstructionMnemonic::ROR, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4E3 */ { ZyDisInstructionMnemonic::ROR, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4E4 */ { ZyDisInstructionMnemonic::ROR, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4E5 */ { ZyDisInstructionMnemonic::ROR, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4E6 */ { ZyDisInstructionMnemonic::ROR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4E7 */ { ZyDisInstructionMnemonic::ROR, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4E8 */ { ZyDisInstructionMnemonic::ROUNDPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4E9 */ { ZyDisInstructionMnemonic::ROUNDPS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4EA */ { ZyDisInstructionMnemonic::ROUNDSD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4EB */ { ZyDisInstructionMnemonic::ROUNDSS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4EC */ { ZyDisInstructionMnemonic::RSM, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4ED */ { ZyDisInstructionMnemonic::RSQRTPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4EE */ { ZyDisInstructionMnemonic::RSQRTSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4EF */ { ZyDisInstructionMnemonic::SAHF, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 4F0 */ { ZyDisInstructionMnemonic::SALC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, + /* 4F1 */ { ZyDisInstructionMnemonic::SAR, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4F2 */ { ZyDisInstructionMnemonic::SAR, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4F3 */ { ZyDisInstructionMnemonic::SAR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4F4 */ { ZyDisInstructionMnemonic::SAR, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4F5 */ { ZyDisInstructionMnemonic::SAR, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4F6 */ { ZyDisInstructionMnemonic::SAR, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 4F7 */ { ZyDisInstructionMnemonic::SBB, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4F8 */ { ZyDisInstructionMnemonic::SBB, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4F9 */ { ZyDisInstructionMnemonic::SBB, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_WRITE }, + /* 4FA */ { ZyDisInstructionMnemonic::SBB, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_WRITE }, + /* 4FB */ { ZyDisInstructionMnemonic::SBB, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4FC */ { ZyDisInstructionMnemonic::SBB, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_WRITE }, + /* 4FD */ { ZyDisInstructionMnemonic::SBB, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4FE */ { ZyDisInstructionMnemonic::SBB, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 4FF */ { ZyDisInstructionMnemonic::SBB, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 500 */ { ZyDisInstructionMnemonic::SBB, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 501 */ { ZyDisInstructionMnemonic::SCASB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 502 */ { ZyDisInstructionMnemonic::SCASD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 503 */ { ZyDisInstructionMnemonic::SCASQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 504 */ { ZyDisInstructionMnemonic::SCASW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 505 */ { ZyDisInstructionMnemonic::SETA, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 506 */ { ZyDisInstructionMnemonic::SETAE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 507 */ { ZyDisInstructionMnemonic::SETB, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 508 */ { ZyDisInstructionMnemonic::SETBE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 509 */ { ZyDisInstructionMnemonic::SETE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 50A */ { ZyDisInstructionMnemonic::SETG, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 50B */ { ZyDisInstructionMnemonic::SETGE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 50C */ { ZyDisInstructionMnemonic::SETL, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 50D */ { ZyDisInstructionMnemonic::SETLE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 50E */ { ZyDisInstructionMnemonic::SETNE, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 50F */ { ZyDisInstructionMnemonic::SETNO, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 510 */ { ZyDisInstructionMnemonic::SETNP, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 511 */ { ZyDisInstructionMnemonic::SETNS, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 512 */ { ZyDisInstructionMnemonic::SETO, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 513 */ { ZyDisInstructionMnemonic::SETP, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 514 */ { ZyDisInstructionMnemonic::SETS, { OPI_Eb, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 515 */ { ZyDisInstructionMnemonic::SFENCE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 516 */ { ZyDisInstructionMnemonic::SGDT, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 517 */ { ZyDisInstructionMnemonic::SHL, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 518 */ { ZyDisInstructionMnemonic::SHL, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 519 */ { ZyDisInstructionMnemonic::SHL, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 51A */ { ZyDisInstructionMnemonic::SHL, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 51B */ { ZyDisInstructionMnemonic::SHL, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 51C */ { ZyDisInstructionMnemonic::SHL, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 51D */ { ZyDisInstructionMnemonic::SHL, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 51E */ { ZyDisInstructionMnemonic::SHL, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 51F */ { ZyDisInstructionMnemonic::SHL, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 520 */ { ZyDisInstructionMnemonic::SHL, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 521 */ { ZyDisInstructionMnemonic::SHL, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 522 */ { ZyDisInstructionMnemonic::SHL, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 523 */ { ZyDisInstructionMnemonic::SHLD, { OPI_Ev, OPI_Gv, OPI_CL, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 524 */ { ZyDisInstructionMnemonic::SHLD, { OPI_Ev, OPI_Gv, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 525 */ { ZyDisInstructionMnemonic::SHR, { OPI_Ev, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 526 */ { ZyDisInstructionMnemonic::SHR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 527 */ { ZyDisInstructionMnemonic::SHR, { OPI_Eb, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 528 */ { ZyDisInstructionMnemonic::SHR, { OPI_Ev, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 529 */ { ZyDisInstructionMnemonic::SHR, { OPI_Eb, OPI_CL, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 52A */ { ZyDisInstructionMnemonic::SHR, { OPI_Ev, OPI_I1, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 52B */ { ZyDisInstructionMnemonic::SHRD, { OPI_Ev, OPI_Gv, OPI_CL, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 52C */ { ZyDisInstructionMnemonic::SHRD, { OPI_Ev, OPI_Gv, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 52D */ { ZyDisInstructionMnemonic::SHUFPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 52E */ { ZyDisInstructionMnemonic::SHUFPS, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 52F */ { ZyDisInstructionMnemonic::SIDT, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 530 */ { ZyDisInstructionMnemonic::SKINIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 531 */ { ZyDisInstructionMnemonic::SLDT, { OPI_MwRv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 532 */ { ZyDisInstructionMnemonic::SMSW, { OPI_MwRv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 533 */ { ZyDisInstructionMnemonic::SMSW, { OPI_MwRv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 534 */ { ZyDisInstructionMnemonic::SQRTPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 535 */ { ZyDisInstructionMnemonic::SQRTPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 536 */ { ZyDisInstructionMnemonic::SQRTSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 537 */ { ZyDisInstructionMnemonic::SQRTSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 538 */ { ZyDisInstructionMnemonic::STC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 539 */ { ZyDisInstructionMnemonic::STD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 53A */ { ZyDisInstructionMnemonic::STGI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 53B */ { ZyDisInstructionMnemonic::STI, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 53C */ { ZyDisInstructionMnemonic::STMXCSR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 53D */ { ZyDisInstructionMnemonic::STOSB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 53E */ { ZyDisInstructionMnemonic::STOSD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 53F */ { ZyDisInstructionMnemonic::STOSQ, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 540 */ { ZyDisInstructionMnemonic::STOSW, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REP_PREFIX |IDF_ACCEPTS_SEGMENT_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 541 */ { ZyDisInstructionMnemonic::STR, { OPI_MwRv, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 542 */ { ZyDisInstructionMnemonic::SUB, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 543 */ { ZyDisInstructionMnemonic::SUB, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 544 */ { ZyDisInstructionMnemonic::SUB, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 545 */ { ZyDisInstructionMnemonic::SUB, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 546 */ { ZyDisInstructionMnemonic::SUB, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, + /* 547 */ { ZyDisInstructionMnemonic::SUB, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, + /* 548 */ { ZyDisInstructionMnemonic::SUB, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 549 */ { ZyDisInstructionMnemonic::SUB, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 54A */ { ZyDisInstructionMnemonic::SUB, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 54B */ { ZyDisInstructionMnemonic::SUB, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 54C */ { ZyDisInstructionMnemonic::SUBPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 54D */ { ZyDisInstructionMnemonic::SUBPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 54E */ { ZyDisInstructionMnemonic::SUBSD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 54F */ { ZyDisInstructionMnemonic::SUBSS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 550 */ { ZyDisInstructionMnemonic::SWAPGS, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 551 */ { ZyDisInstructionMnemonic::SYSCALL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 552 */ { ZyDisInstructionMnemonic::SYSENTER, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 553 */ { ZyDisInstructionMnemonic::SYSENTER, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 554 */ { ZyDisInstructionMnemonic::SYSEXIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 555 */ { ZyDisInstructionMnemonic::SYSEXIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 556 */ { ZyDisInstructionMnemonic::SYSRET, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 557 */ { ZyDisInstructionMnemonic::TEST, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 558 */ { ZyDisInstructionMnemonic::TEST, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 559 */ { ZyDisInstructionMnemonic::TEST, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 55A */ { ZyDisInstructionMnemonic::TEST, { OPI_Ev, OPI_Iz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 55B */ { ZyDisInstructionMnemonic::TEST, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW }, + /* 55C */ { ZyDisInstructionMnemonic::TEST, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 55D */ { ZyDisInstructionMnemonic::TEST, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 55E */ { ZyDisInstructionMnemonic::TEST, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, 0 }, + /* 55F */ { ZyDisInstructionMnemonic::UCOMISD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 560 */ { ZyDisInstructionMnemonic::UCOMISS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 561 */ { ZyDisInstructionMnemonic::UD2, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 562 */ { ZyDisInstructionMnemonic::UNPCKHPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 563 */ { ZyDisInstructionMnemonic::UNPCKHPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 564 */ { ZyDisInstructionMnemonic::UNPCKLPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 565 */ { ZyDisInstructionMnemonic::UNPCKLPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 566 */ { ZyDisInstructionMnemonic::VADDPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 567 */ { ZyDisInstructionMnemonic::VADDPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 568 */ { ZyDisInstructionMnemonic::VADDSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 569 */ { ZyDisInstructionMnemonic::VADDSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 56A */ { ZyDisInstructionMnemonic::VADDSUBPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 56B */ { ZyDisInstructionMnemonic::VADDSUBPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 56C */ { ZyDisInstructionMnemonic::VAESDEC, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 56D */ { ZyDisInstructionMnemonic::VAESDECLAST, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 56E */ { ZyDisInstructionMnemonic::VAESENC, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 56F */ { ZyDisInstructionMnemonic::VAESENCLAST, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 570 */ { ZyDisInstructionMnemonic::VAESIMC, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 571 */ { ZyDisInstructionMnemonic::VAESKEYGENASSIST, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 572 */ { ZyDisInstructionMnemonic::VANDNPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 573 */ { ZyDisInstructionMnemonic::VANDNPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 574 */ { ZyDisInstructionMnemonic::VANDPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 575 */ { ZyDisInstructionMnemonic::VANDPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 576 */ { ZyDisInstructionMnemonic::VBLENDPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 577 */ { ZyDisInstructionMnemonic::VBLENDPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 578 */ { ZyDisInstructionMnemonic::VBLENDVPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Lx }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 579 */ { ZyDisInstructionMnemonic::VBLENDVPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Lx }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 57A */ { ZyDisInstructionMnemonic::VBROADCASTSD, { OPI_Vqq, OPI_Mq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 57B */ { ZyDisInstructionMnemonic::VBROADCASTSS, { OPI_V, OPI_Md, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 57C */ { ZyDisInstructionMnemonic::VCMPPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 57D */ { ZyDisInstructionMnemonic::VCMPPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 57E */ { ZyDisInstructionMnemonic::VCMPSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 57F */ { ZyDisInstructionMnemonic::VCMPSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 580 */ { ZyDisInstructionMnemonic::VCOMISD, { OPI_Vsd, OPI_Wsd, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 581 */ { ZyDisInstructionMnemonic::VCOMISS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 582 */ { ZyDisInstructionMnemonic::VCVTDQ2PD, { OPI_Vx, OPI_Wdq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 583 */ { ZyDisInstructionMnemonic::VCVTDQ2PS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 584 */ { ZyDisInstructionMnemonic::VCVTPD2DQ, { OPI_Vdq, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 585 */ { ZyDisInstructionMnemonic::VCVTPD2PS, { OPI_Vdq, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 586 */ { ZyDisInstructionMnemonic::VCVTPS2DQ, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 587 */ { ZyDisInstructionMnemonic::VCVTPS2PD, { OPI_Vx, OPI_Wdq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 588 */ { ZyDisInstructionMnemonic::VCVTSD2SI, { OPI_Gy, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 589 */ { ZyDisInstructionMnemonic::VCVTSD2SS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 58A */ { ZyDisInstructionMnemonic::VCVTSI2SD, { OPI_Vx, OPI_Hx, OPI_Ey, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 58B */ { ZyDisInstructionMnemonic::VCVTSI2SS, { OPI_Vx, OPI_Hx, OPI_Ey, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 58C */ { ZyDisInstructionMnemonic::VCVTSS2SD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 58D */ { ZyDisInstructionMnemonic::VCVTSS2SI, { OPI_Gy, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 58E */ { ZyDisInstructionMnemonic::VCVTTPD2DQ, { OPI_Vdq, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 58F */ { ZyDisInstructionMnemonic::VCVTTPS2DQ, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 590 */ { ZyDisInstructionMnemonic::VCVTTSD2SI, { OPI_Gy, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 591 */ { ZyDisInstructionMnemonic::VCVTTSS2SI, { OPI_Gy, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 592 */ { ZyDisInstructionMnemonic::VDIVPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 593 */ { ZyDisInstructionMnemonic::VDIVPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 594 */ { ZyDisInstructionMnemonic::VDIVSD, { OPI_Vx, OPI_Hx, OPI_MqU, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 595 */ { ZyDisInstructionMnemonic::VDIVSS, { OPI_Vx, OPI_Hx, OPI_MdU, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 596 */ { ZyDisInstructionMnemonic::VDPPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 597 */ { ZyDisInstructionMnemonic::VDPPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 598 */ { ZyDisInstructionMnemonic::VERR, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 599 */ { ZyDisInstructionMnemonic::VERW, { OPI_Ew, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 59A */ { ZyDisInstructionMnemonic::VEXTRACTF128, { OPI_Wdq, OPI_Vqq, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 59B */ { ZyDisInstructionMnemonic::VEXTRACTPS, { OPI_MdRy, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 59C */ { ZyDisInstructionMnemonic::VHADDPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 59D */ { ZyDisInstructionMnemonic::VHADDPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 59E */ { ZyDisInstructionMnemonic::VHSUBPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 59F */ { ZyDisInstructionMnemonic::VHSUBPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5A0 */ { ZyDisInstructionMnemonic::VINSERTF128, { OPI_Vqq, OPI_Hqq, OPI_Wdq, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5A1 */ { ZyDisInstructionMnemonic::VINSERTPS, { OPI_Vx, OPI_Hx, OPI_Md, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5A2 */ { ZyDisInstructionMnemonic::VLDDQU, { OPI_Vx, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5A3 */ { ZyDisInstructionMnemonic::VMASKMOVDQU, { OPI_Vx, OPI_Ux, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 5A4 */ { ZyDisInstructionMnemonic::VMASKMOVPD, { OPI_M, OPI_H, OPI_V, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5A5 */ { ZyDisInstructionMnemonic::VMASKMOVPD, { OPI_V, OPI_H, OPI_M, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5A6 */ { ZyDisInstructionMnemonic::VMASKMOVPS, { OPI_V, OPI_H, OPI_M, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5A7 */ { ZyDisInstructionMnemonic::VMASKMOVPS, { OPI_M, OPI_H, OPI_V, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5A8 */ { ZyDisInstructionMnemonic::VMAXPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5A9 */ { ZyDisInstructionMnemonic::VMAXPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5AA */ { ZyDisInstructionMnemonic::VMAXSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 5AB */ { ZyDisInstructionMnemonic::VMAXSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 5AC */ { ZyDisInstructionMnemonic::VMCALL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 5AD */ { ZyDisInstructionMnemonic::VMCLEAR, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 5AE */ { ZyDisInstructionMnemonic::VMINPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5AF */ { ZyDisInstructionMnemonic::VMINPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 5B0 */ { ZyDisInstructionMnemonic::VMINSD, { OPI_Vx, OPI_Hx, OPI_MqU, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 5B1 */ { ZyDisInstructionMnemonic::VMINSS, { OPI_Vx, OPI_Hx, OPI_MdU, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 5B2 */ { ZyDisInstructionMnemonic::VMLAUNCH, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 5B3 */ { ZyDisInstructionMnemonic::VMLOAD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 5B4 */ { ZyDisInstructionMnemonic::VMMCALL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 5B5 */ { ZyDisInstructionMnemonic::VMOVAPD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5B6 */ { ZyDisInstructionMnemonic::VMOVAPD, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5B7 */ { ZyDisInstructionMnemonic::VMOVAPS, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5B8 */ { ZyDisInstructionMnemonic::VMOVAPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5B9 */ { ZyDisInstructionMnemonic::VMOVD, { OPI_Ey, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5BA */ { ZyDisInstructionMnemonic::VMOVD, { OPI_Vx, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5BB */ { ZyDisInstructionMnemonic::VMOVD, { OPI_Vx, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5BC */ { ZyDisInstructionMnemonic::VMOVD, { OPI_Ey, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5BD */ { ZyDisInstructionMnemonic::VMOVDDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5BE */ { ZyDisInstructionMnemonic::VMOVDDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5BF */ { ZyDisInstructionMnemonic::VMOVDQA, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5C0 */ { ZyDisInstructionMnemonic::VMOVDQA, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5C1 */ { ZyDisInstructionMnemonic::VMOVDQU, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5C2 */ { ZyDisInstructionMnemonic::VMOVDQU, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5C3 */ { ZyDisInstructionMnemonic::VMOVHLPS, { OPI_Vx, OPI_Ux, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5C4 */ { ZyDisInstructionMnemonic::VMOVHPD, { OPI_Vx, OPI_Hx, OPI_M, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5C5 */ { ZyDisInstructionMnemonic::VMOVHPD, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5C6 */ { ZyDisInstructionMnemonic::VMOVHPS, { OPI_Vx, OPI_Hx, OPI_M, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5C7 */ { ZyDisInstructionMnemonic::VMOVHPS, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5C8 */ { ZyDisInstructionMnemonic::VMOVLHPS, { OPI_Vx, OPI_Hx, OPI_Ux, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5C9 */ { ZyDisInstructionMnemonic::VMOVLPD, { OPI_Vx, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5CA */ { ZyDisInstructionMnemonic::VMOVLPD, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5CB */ { ZyDisInstructionMnemonic::VMOVLPS, { OPI_Vx, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5CC */ { ZyDisInstructionMnemonic::VMOVLPS, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5CD */ { ZyDisInstructionMnemonic::VMOVMSKPD, { OPI_Gd, OPI_Ux, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5CE */ { ZyDisInstructionMnemonic::VMOVMSKPS, { OPI_Gd, OPI_Ux, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5CF */ { ZyDisInstructionMnemonic::VMOVNTDQ, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5D0 */ { ZyDisInstructionMnemonic::VMOVNTDQA, { OPI_Vx, OPI_M, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5D1 */ { ZyDisInstructionMnemonic::VMOVNTPD, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5D2 */ { ZyDisInstructionMnemonic::VMOVNTPS, { OPI_M, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5D3 */ { ZyDisInstructionMnemonic::VMOVQ, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5D4 */ { ZyDisInstructionMnemonic::VMOVQ, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5D5 */ { ZyDisInstructionMnemonic::VMOVQ, { OPI_Vx, OPI_Eq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5D6 */ { ZyDisInstructionMnemonic::VMOVQ, { OPI_Eq, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5D7 */ { ZyDisInstructionMnemonic::VMOVSD, { OPI_U, OPI_H, OPI_V, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5D8 */ { ZyDisInstructionMnemonic::VMOVSD, { OPI_Mq, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5D9 */ { ZyDisInstructionMnemonic::VMOVSD, { OPI_V, OPI_H, OPI_U, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5DA */ { ZyDisInstructionMnemonic::VMOVSD, { OPI_V, OPI_Mq, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5DB */ { ZyDisInstructionMnemonic::VMOVSHDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5DC */ { ZyDisInstructionMnemonic::VMOVSHDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5DD */ { ZyDisInstructionMnemonic::VMOVSLDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5DE */ { ZyDisInstructionMnemonic::VMOVSLDUP, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5DF */ { ZyDisInstructionMnemonic::VMOVSS, { OPI_V, OPI_H, OPI_U, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5E0 */ { ZyDisInstructionMnemonic::VMOVSS, { OPI_Md, OPI_V, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5E1 */ { ZyDisInstructionMnemonic::VMOVSS, { OPI_U, OPI_H, OPI_V, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5E2 */ { ZyDisInstructionMnemonic::VMOVSS, { OPI_V, OPI_Md, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 5E3 */ { ZyDisInstructionMnemonic::VMOVUPD, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5E4 */ { ZyDisInstructionMnemonic::VMOVUPD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5E5 */ { ZyDisInstructionMnemonic::VMOVUPS, { OPI_Wx, OPI_Vx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5E6 */ { ZyDisInstructionMnemonic::VMOVUPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5E7 */ { ZyDisInstructionMnemonic::VMPSADBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5E8 */ { ZyDisInstructionMnemonic::VMPTRLD, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 5E9 */ { ZyDisInstructionMnemonic::VMPTRST, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 5EA */ { ZyDisInstructionMnemonic::VMREAD, { OPI_Ey, OPI_Gy, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 5EB */ { ZyDisInstructionMnemonic::VMRESUME, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 5EC */ { ZyDisInstructionMnemonic::VMRUN, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 5ED */ { ZyDisInstructionMnemonic::VMSAVE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 5EE */ { ZyDisInstructionMnemonic::VMULPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5EF */ { ZyDisInstructionMnemonic::VMULPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5F0 */ { ZyDisInstructionMnemonic::VMULSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 5F1 */ { ZyDisInstructionMnemonic::VMULSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 5F2 */ { ZyDisInstructionMnemonic::VMWRITE, { OPI_Gy, OPI_Ey, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 }, + /* 5F3 */ { ZyDisInstructionMnemonic::VMXOFF, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 5F4 */ { ZyDisInstructionMnemonic::VMXON, { OPI_Mq, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 5F5 */ { ZyDisInstructionMnemonic::VORPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5F6 */ { ZyDisInstructionMnemonic::VORPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL }, + /* 5F7 */ { ZyDisInstructionMnemonic::VPABSB, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5F8 */ { ZyDisInstructionMnemonic::VPABSD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5F9 */ { ZyDisInstructionMnemonic::VPABSW, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 5FA */ { ZyDisInstructionMnemonic::VPACKSSDW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5FB */ { ZyDisInstructionMnemonic::VPACKSSWB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5FC */ { ZyDisInstructionMnemonic::VPACKUSDW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5FD */ { ZyDisInstructionMnemonic::VPACKUSWB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5FE */ { ZyDisInstructionMnemonic::VPADDB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 5FF */ { ZyDisInstructionMnemonic::VPADDD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 600 */ { ZyDisInstructionMnemonic::VPADDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 601 */ { ZyDisInstructionMnemonic::VPADDSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 602 */ { ZyDisInstructionMnemonic::VPADDSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 603 */ { ZyDisInstructionMnemonic::VPADDUSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 604 */ { ZyDisInstructionMnemonic::VPADDUSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 605 */ { ZyDisInstructionMnemonic::VPADDW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 606 */ { ZyDisInstructionMnemonic::VPALIGNR, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 607 */ { ZyDisInstructionMnemonic::VPAND, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 608 */ { ZyDisInstructionMnemonic::VPANDN, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 609 */ { ZyDisInstructionMnemonic::VPAVGB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 60A */ { ZyDisInstructionMnemonic::VPAVGW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 60B */ { ZyDisInstructionMnemonic::VPBLENDVB, { OPI_V, OPI_H, OPI_W, OPI_L }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 60C */ { ZyDisInstructionMnemonic::VPBLENDW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 60D */ { ZyDisInstructionMnemonic::VPCLMULQDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 60E */ { ZyDisInstructionMnemonic::VPCMPEQB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 60F */ { ZyDisInstructionMnemonic::VPCMPEQD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 610 */ { ZyDisInstructionMnemonic::VPCMPEQQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 611 */ { ZyDisInstructionMnemonic::VPCMPEQW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 612 */ { ZyDisInstructionMnemonic::VPCMPESTRI, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 613 */ { ZyDisInstructionMnemonic::VPCMPESTRM, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 614 */ { ZyDisInstructionMnemonic::VPCMPGTB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 615 */ { ZyDisInstructionMnemonic::VPCMPGTD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 616 */ { ZyDisInstructionMnemonic::VPCMPGTQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 617 */ { ZyDisInstructionMnemonic::VPCMPGTW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 618 */ { ZyDisInstructionMnemonic::VPCMPISTRI, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 619 */ { ZyDisInstructionMnemonic::VPCMPISTRM, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 61A */ { ZyDisInstructionMnemonic::VPERM2F128, { OPI_Vqq, OPI_Hqq, OPI_Wqq, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 61B */ { ZyDisInstructionMnemonic::VPERMILPD, { OPI_V, OPI_W, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 61C */ { ZyDisInstructionMnemonic::VPERMILPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 61D */ { ZyDisInstructionMnemonic::VPERMILPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 61E */ { ZyDisInstructionMnemonic::VPERMILPS, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 61F */ { ZyDisInstructionMnemonic::VPEXTRB, { OPI_MbRv, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 620 */ { ZyDisInstructionMnemonic::VPEXTRD, { OPI_Ed, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 621 */ { ZyDisInstructionMnemonic::VPEXTRD, { OPI_Ed, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 622 */ { ZyDisInstructionMnemonic::VPEXTRQ, { OPI_Eq, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 623 */ { ZyDisInstructionMnemonic::VPEXTRW, { OPI_Gd, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 624 */ { ZyDisInstructionMnemonic::VPEXTRW, { OPI_MwRd, OPI_Vx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 625 */ { ZyDisInstructionMnemonic::VPHADDD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 626 */ { ZyDisInstructionMnemonic::VPHADDSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 627 */ { ZyDisInstructionMnemonic::VPHADDW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 628 */ { ZyDisInstructionMnemonic::VPHMINPOSUW, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 629 */ { ZyDisInstructionMnemonic::VPHSUBD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 62A */ { ZyDisInstructionMnemonic::VPHSUBSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 62B */ { ZyDisInstructionMnemonic::VPHSUBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 62C */ { ZyDisInstructionMnemonic::VPINSRB, { OPI_V, OPI_H, OPI_MbRd, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 62D */ { ZyDisInstructionMnemonic::VPINSRD, { OPI_V, OPI_H, OPI_Ed, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 62E */ { ZyDisInstructionMnemonic::VPINSRD, { OPI_V, OPI_H, OPI_Ed, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 62F */ { ZyDisInstructionMnemonic::VPINSRQ, { OPI_V, OPI_H, OPI_Eq, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 630 */ { ZyDisInstructionMnemonic::VPINSRW, { OPI_Vx, OPI_MwRy, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_DEFAULT_64 | IDF_OPERAND1_WRITE }, + /* 631 */ { ZyDisInstructionMnemonic::VPMADDUBSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 632 */ { ZyDisInstructionMnemonic::VPMADDWD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 633 */ { ZyDisInstructionMnemonic::VPMAXSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 634 */ { ZyDisInstructionMnemonic::VPMAXSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 635 */ { ZyDisInstructionMnemonic::VPMAXSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 636 */ { ZyDisInstructionMnemonic::VPMAXUB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 637 */ { ZyDisInstructionMnemonic::VPMAXUD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 638 */ { ZyDisInstructionMnemonic::VPMAXUW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 639 */ { ZyDisInstructionMnemonic::VPMINSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 63A */ { ZyDisInstructionMnemonic::VPMINSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 63B */ { ZyDisInstructionMnemonic::VPMINSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 63C */ { ZyDisInstructionMnemonic::VPMINUB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 63D */ { ZyDisInstructionMnemonic::VPMINUD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 63E */ { ZyDisInstructionMnemonic::VPMINUW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 63F */ { ZyDisInstructionMnemonic::VPMOVMSKB, { OPI_Gd, OPI_Ux, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 640 */ { ZyDisInstructionMnemonic::VPMOVSXBD, { OPI_Vx, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 641 */ { ZyDisInstructionMnemonic::VPMOVSXBQ, { OPI_Vx, OPI_MwU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 642 */ { ZyDisInstructionMnemonic::VPMOVSXBW, { OPI_Vx, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 643 */ { ZyDisInstructionMnemonic::VPMOVSXWD, { OPI_Vx, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 644 */ { ZyDisInstructionMnemonic::VPMOVSXWQ, { OPI_Vx, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 645 */ { ZyDisInstructionMnemonic::VPMOVZXBD, { OPI_Vx, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 646 */ { ZyDisInstructionMnemonic::VPMOVZXBQ, { OPI_Vx, OPI_MwU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 647 */ { ZyDisInstructionMnemonic::VPMOVZXBW, { OPI_Vx, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 648 */ { ZyDisInstructionMnemonic::VPMOVZXDQ, { OPI_Vx, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 649 */ { ZyDisInstructionMnemonic::VPMOVZXWD, { OPI_Vx, OPI_MqU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 64A */ { ZyDisInstructionMnemonic::VPMOVZXWQ, { OPI_Vx, OPI_MdU, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 64B */ { ZyDisInstructionMnemonic::VPMULDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 64C */ { ZyDisInstructionMnemonic::VPMULHRSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 64D */ { ZyDisInstructionMnemonic::VPMULHUW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 64E */ { ZyDisInstructionMnemonic::VPMULHW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 64F */ { ZyDisInstructionMnemonic::VPMULLD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 650 */ { ZyDisInstructionMnemonic::VPMULLW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 651 */ { ZyDisInstructionMnemonic::VPOR, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 652 */ { ZyDisInstructionMnemonic::VPSADBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 653 */ { ZyDisInstructionMnemonic::VPSHUFB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 654 */ { ZyDisInstructionMnemonic::VPSHUFD, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 655 */ { ZyDisInstructionMnemonic::VPSHUFHW, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 656 */ { ZyDisInstructionMnemonic::VPSHUFLW, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 657 */ { ZyDisInstructionMnemonic::VPSIGNB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 658 */ { ZyDisInstructionMnemonic::VPSIGND, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 659 */ { ZyDisInstructionMnemonic::VPSIGNW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 65A */ { ZyDisInstructionMnemonic::VPSLLD, { OPI_H, OPI_V, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 65B */ { ZyDisInstructionMnemonic::VPSLLD, { OPI_V, OPI_H, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 65C */ { ZyDisInstructionMnemonic::VPSLLDQ, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 65D */ { ZyDisInstructionMnemonic::VPSLLQ, { OPI_V, OPI_H, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 65E */ { ZyDisInstructionMnemonic::VPSLLQ, { OPI_H, OPI_V, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 65F */ { ZyDisInstructionMnemonic::VPSLLW, { OPI_V, OPI_H, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 660 */ { ZyDisInstructionMnemonic::VPSLLW, { OPI_H, OPI_V, OPI_W, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 661 */ { ZyDisInstructionMnemonic::VPSRAD, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 662 */ { ZyDisInstructionMnemonic::VPSRAD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 663 */ { ZyDisInstructionMnemonic::VPSRAW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 664 */ { ZyDisInstructionMnemonic::VPSRAW, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 665 */ { ZyDisInstructionMnemonic::VPSRLD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 666 */ { ZyDisInstructionMnemonic::VPSRLD, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 667 */ { ZyDisInstructionMnemonic::VPSRLDQ, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 668 */ { ZyDisInstructionMnemonic::VPSRLQ, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 669 */ { ZyDisInstructionMnemonic::VPSRLQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 66A */ { ZyDisInstructionMnemonic::VPSRLW, { OPI_Hx, OPI_Ux, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 66B */ { ZyDisInstructionMnemonic::VPSRLW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 66C */ { ZyDisInstructionMnemonic::VPSUBB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 66D */ { ZyDisInstructionMnemonic::VPSUBD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 66E */ { ZyDisInstructionMnemonic::VPSUBQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 66F */ { ZyDisInstructionMnemonic::VPSUBSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 670 */ { ZyDisInstructionMnemonic::VPSUBSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 671 */ { ZyDisInstructionMnemonic::VPSUBUSB, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 672 */ { ZyDisInstructionMnemonic::VPSUBUSW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 673 */ { ZyDisInstructionMnemonic::VPSUBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 674 */ { ZyDisInstructionMnemonic::VPTEST, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL }, + /* 675 */ { ZyDisInstructionMnemonic::VPUNPCKHBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 676 */ { ZyDisInstructionMnemonic::VPUNPCKHDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 677 */ { ZyDisInstructionMnemonic::VPUNPCKHQDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 678 */ { ZyDisInstructionMnemonic::VPUNPCKHWD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 679 */ { ZyDisInstructionMnemonic::VPUNPCKLBW, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 67A */ { ZyDisInstructionMnemonic::VPUNPCKLDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 67B */ { ZyDisInstructionMnemonic::VPUNPCKLQDQ, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 67C */ { ZyDisInstructionMnemonic::VPUNPCKLWD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 67D */ { ZyDisInstructionMnemonic::VPXOR, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 67E */ { ZyDisInstructionMnemonic::VRCPPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 67F */ { ZyDisInstructionMnemonic::VRCPSS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 680 */ { ZyDisInstructionMnemonic::VROUNDPD, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 681 */ { ZyDisInstructionMnemonic::VROUNDPS, { OPI_Vx, OPI_Wx, OPI_Ib, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 682 */ { ZyDisInstructionMnemonic::VROUNDSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 683 */ { ZyDisInstructionMnemonic::VROUNDSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 684 */ { ZyDisInstructionMnemonic::VRSQRTPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 685 */ { ZyDisInstructionMnemonic::VRSQRTSS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 686 */ { ZyDisInstructionMnemonic::VSHUFPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 687 */ { ZyDisInstructionMnemonic::VSHUFPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_Ib }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 688 */ { ZyDisInstructionMnemonic::VSQRTPD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 689 */ { ZyDisInstructionMnemonic::VSQRTPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_WRITE }, + /* 68A */ { ZyDisInstructionMnemonic::VSQRTSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 68B */ { ZyDisInstructionMnemonic::VSQRTSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 68C */ { ZyDisInstructionMnemonic::VSTMXCSR, { OPI_Md, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_WRITE }, + /* 68D */ { ZyDisInstructionMnemonic::VSUBPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 68E */ { ZyDisInstructionMnemonic::VSUBPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 68F */ { ZyDisInstructionMnemonic::VSUBSD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 690 */ { ZyDisInstructionMnemonic::VSUBSS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 691 */ { ZyDisInstructionMnemonic::VTESTPD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL }, + /* 692 */ { ZyDisInstructionMnemonic::VTESTPS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL }, + /* 693 */ { ZyDisInstructionMnemonic::VUCOMISD, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 694 */ { ZyDisInstructionMnemonic::VUCOMISS, { OPI_Vx, OPI_Wx, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 695 */ { ZyDisInstructionMnemonic::VUNPCKHPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 696 */ { ZyDisInstructionMnemonic::VUNPCKHPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 697 */ { ZyDisInstructionMnemonic::VUNPCKLPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 698 */ { ZyDisInstructionMnemonic::VUNPCKLPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 699 */ { ZyDisInstructionMnemonic::ZyDisORPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 69A */ { ZyDisInstructionMnemonic::ZyDisORPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 69B */ { ZyDisInstructionMnemonic::VZEROALL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 69C */ { ZyDisInstructionMnemonic::VZEROUPPER, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 69D */ { ZyDisInstructionMnemonic::WAIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 69E */ { ZyDisInstructionMnemonic::WBINVD, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 69F */ { ZyDisInstructionMnemonic::WRMSR, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 6A0 */ { ZyDisInstructionMnemonic::XADD, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_WRITE }, + /* 6A1 */ { ZyDisInstructionMnemonic::XADD, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_WRITE }, + /* 6A2 */ { ZyDisInstructionMnemonic::XCHG, { OPI_R4v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, + /* 6A3 */ { ZyDisInstructionMnemonic::XCHG, { OPI_R3v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, + /* 6A4 */ { ZyDisInstructionMnemonic::XCHG, { OPI_R5v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, + /* 6A5 */ { ZyDisInstructionMnemonic::XCHG, { OPI_R7v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, + /* 6A6 */ { ZyDisInstructionMnemonic::XCHG, { OPI_R6v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, + /* 6A7 */ { ZyDisInstructionMnemonic::XCHG, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, + /* 6A8 */ { ZyDisInstructionMnemonic::XCHG, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, + /* 6A9 */ { ZyDisInstructionMnemonic::XCHG, { OPI_R0v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, + /* 6AA */ { ZyDisInstructionMnemonic::XCHG, { OPI_R2v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, + /* 6AB */ { ZyDisInstructionMnemonic::XCHG, { OPI_R1v, OPI_rAX, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE | IDF_OPERAND2_READWRITE }, + /* 6AC */ { ZyDisInstructionMnemonic::XCRYPTCBC, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 6AD */ { ZyDisInstructionMnemonic::XCRYPTCFB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 6AE */ { ZyDisInstructionMnemonic::XCRYPTCTR, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 6AF */ { ZyDisInstructionMnemonic::XCRYPTECB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 6B0 */ { ZyDisInstructionMnemonic::XCRYPTOFB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 6B1 */ { ZyDisInstructionMnemonic::XGETBV, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 6B2 */ { ZyDisInstructionMnemonic::XLATB, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_REXW | IDF_ACCEPTS_SEGMENT_PREFIX }, + /* 6B3 */ { ZyDisInstructionMnemonic::XOR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_INVALID_64 | IDF_OPERAND1_READWRITE }, + /* 6B4 */ { ZyDisInstructionMnemonic::XOR, { OPI_Ev, OPI_sIb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 6B5 */ { ZyDisInstructionMnemonic::XOR, { OPI_Ev, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 6B6 */ { ZyDisInstructionMnemonic::XOR, { OPI_Gb, OPI_Eb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 6B7 */ { ZyDisInstructionMnemonic::XOR, { OPI_Gv, OPI_Ev, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 6B8 */ { ZyDisInstructionMnemonic::XOR, { OPI_Eb, OPI_Gb, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 6B9 */ { ZyDisInstructionMnemonic::XOR, { OPI_Ev, OPI_Gv, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 6BA */ { ZyDisInstructionMnemonic::XOR, { OPI_AL, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_OPERAND1_READWRITE }, + /* 6BB */ { ZyDisInstructionMnemonic::XOR, { OPI_rAX, OPI_sIz, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_OPERAND_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_OPERAND1_READWRITE }, + /* 6BC */ { ZyDisInstructionMnemonic::XOR, { OPI_Eb, OPI_Ib, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 6BD */ { ZyDisInstructionMnemonic::XORPD, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 6BE */ { ZyDisInstructionMnemonic::XORPS, { OPI_V, OPI_W, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 6BF */ { ZyDisInstructionMnemonic::XRSTOR, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 6C0 */ { ZyDisInstructionMnemonic::XSAVE, { OPI_M, OPI_NONE, OPI_NONE, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXW | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB }, + /* 6C1 */ { ZyDisInstructionMnemonic::XSETBV, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 6C2 */ { ZyDisInstructionMnemonic::XSHA1, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 6C3 */ { ZyDisInstructionMnemonic::XSHA256, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, + /* 6C4 */ { ZyDisInstructionMnemonic::XSTORE, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, +}; + +#undef OPI_NONE +#undef OPI_AL +#undef OPI_AX +#undef OPI_Av +#undef OPI_C +#undef OPI_CL +#undef OPI_CS +#undef OPI_CX +#undef OPI_D +#undef OPI_DL +#undef OPI_DS +#undef OPI_DX +#undef OPI_E +#undef OPI_ES +#undef OPI_Eb +#undef OPI_Ed +#undef OPI_Eq +#undef OPI_Ev +#undef OPI_Ew +#undef OPI_Ey +#undef OPI_Ez +#undef OPI_FS +#undef OPI_Fv +#undef OPI_G +#undef OPI_GS +#undef OPI_Gb +#undef OPI_Gd +#undef OPI_Gq +#undef OPI_Gv +#undef OPI_Gw +#undef OPI_Gy +#undef OPI_Gz +#undef OPI_H +#undef OPI_Hqq +#undef OPI_Hx +#undef OPI_I1 +#undef OPI_Ib +#undef OPI_Iv +#undef OPI_Iw +#undef OPI_Iz +#undef OPI_Jb +#undef OPI_Jv +#undef OPI_Jz +#undef OPI_L +#undef OPI_Lx +#undef OPI_M +#undef OPI_Mb +#undef OPI_MbRd +#undef OPI_MbRv +#undef OPI_Md +#undef OPI_MdRy +#undef OPI_MdU +#undef OPI_Mdq +#undef OPI_Mo +#undef OPI_Mq +#undef OPI_MqU +#undef OPI_Ms +#undef OPI_Mt +#undef OPI_Mv +#undef OPI_Mw +#undef OPI_MwRd +#undef OPI_MwRv +#undef OPI_MwRy +#undef OPI_MwU +#undef OPI_N +#undef OPI_Ob +#undef OPI_Ov +#undef OPI_Ow +#undef OPI_P +#undef OPI_Q +#undef OPI_R +#undef OPI_R0b +#undef OPI_R0v +#undef OPI_R0w +#undef OPI_R0y +#undef OPI_R0z +#undef OPI_R1b +#undef OPI_R1v +#undef OPI_R1w +#undef OPI_R1y +#undef OPI_R1z +#undef OPI_R2b +#undef OPI_R2v +#undef OPI_R2w +#undef OPI_R2y +#undef OPI_R2z +#undef OPI_R3b +#undef OPI_R3v +#undef OPI_R3w +#undef OPI_R3y +#undef OPI_R3z +#undef OPI_R4b +#undef OPI_R4v +#undef OPI_R4w +#undef OPI_R4y +#undef OPI_R4z +#undef OPI_R5b +#undef OPI_R5v +#undef OPI_R5w +#undef OPI_R5y +#undef OPI_R5z +#undef OPI_R6b +#undef OPI_R6v +#undef OPI_R6w +#undef OPI_R6y +#undef OPI_R6z +#undef OPI_R7b +#undef OPI_R7v +#undef OPI_R7w +#undef OPI_R7y +#undef OPI_R7z +#undef OPI_S +#undef OPI_SS +#undef OPI_ST0 +#undef OPI_ST1 +#undef OPI_ST2 +#undef OPI_ST3 +#undef OPI_ST4 +#undef OPI_ST5 +#undef OPI_ST6 +#undef OPI_ST7 +#undef OPI_U +#undef OPI_Ux +#undef OPI_V +#undef OPI_Vdq +#undef OPI_Vqq +#undef OPI_Vsd +#undef OPI_Vx +#undef OPI_W +#undef OPI_Wdq +#undef OPI_Wqq +#undef OPI_Wsd +#undef OPI_Wx +#undef OPI_eAX +#undef OPI_eCX +#undef OPI_eDX +#undef OPI_rAX +#undef OPI_rCX +#undef OPI_rDX +#undef OPI_sIb +#undef OPI_sIz + +const char* instrMnemonicStrings[] = +{ + /* 000 */ "invalid", + /* 001 */ "aaa", + /* 002 */ "aad", + /* 003 */ "aam", + /* 004 */ "aas", + /* 005 */ "adc", + /* 006 */ "add", + /* 007 */ "addpd", + /* 008 */ "addps", + /* 009 */ "addsd", + /* 00A */ "addss", + /* 00B */ "addsubpd", + /* 00C */ "addsubps", + /* 00D */ "aesdec", + /* 00E */ "aesdeclast", + /* 00F */ "aesenc", + /* 010 */ "aesenclast", + /* 011 */ "aesimc", + /* 012 */ "aeskeygenassist", + /* 013 */ "and", + /* 014 */ "andnpd", + /* 015 */ "andnps", + /* 016 */ "andpd", + /* 017 */ "andps", + /* 018 */ "arpl", + /* 019 */ "blendpd", + /* 01A */ "blendps", + /* 01B */ "blendvpd", + /* 01C */ "blendvps", + /* 01D */ "bound", + /* 01E */ "bsf", + /* 01F */ "bsr", + /* 020 */ "bswap", + /* 021 */ "bt", + /* 022 */ "btc", + /* 023 */ "btr", + /* 024 */ "bts", + /* 025 */ "call", + /* 026 */ "cbw", + /* 027 */ "cdq", + /* 028 */ "cdqe", + /* 029 */ "clc", + /* 02A */ "cld", + /* 02B */ "clflush", + /* 02C */ "clgi", + /* 02D */ "cli", + /* 02E */ "clts", + /* 02F */ "cmc", + /* 030 */ "cmova", + /* 031 */ "cmovae", + /* 032 */ "cmovb", + /* 033 */ "cmovbe", + /* 034 */ "cmove", + /* 035 */ "cmovg", + /* 036 */ "cmovge", + /* 037 */ "cmovl", + /* 038 */ "cmovle", + /* 039 */ "cmovne", + /* 03A */ "cmovno", + /* 03B */ "cmovnp", + /* 03C */ "cmovns", + /* 03D */ "cmovo", + /* 03E */ "cmovp", + /* 03F */ "cmovs", + /* 040 */ "cmp", + /* 041 */ "cmppd", + /* 042 */ "cmpps", + /* 043 */ "cmpsb", + /* 044 */ "cmpsd", + /* 045 */ "cmpsq", + /* 046 */ "cmpss", + /* 047 */ "cmpsw", + /* 048 */ "cmpxchg", + /* 049 */ "cmpxchg16b", + /* 04A */ "cmpxchg8b", + /* 04B */ "comisd", + /* 04C */ "comiss", + /* 04D */ "cpuid", + /* 04E */ "cqo", + /* 04F */ "crc32", + /* 050 */ "cvtdq2pd", + /* 051 */ "cvtdq2ps", + /* 052 */ "cvtpd2dq", + /* 053 */ "cvtpd2pi", + /* 054 */ "cvtpd2ps", + /* 055 */ "cvtpi2pd", + /* 056 */ "cvtpi2ps", + /* 057 */ "cvtps2dq", + /* 058 */ "cvtps2pd", + /* 059 */ "cvtps2pi", + /* 05A */ "cvtsd2si", + /* 05B */ "cvtsd2ss", + /* 05C */ "cvtsi2sd", + /* 05D */ "cvtsi2ss", + /* 05E */ "cvtss2sd", + /* 05F */ "cvtss2si", + /* 060 */ "cvttpd2dq", + /* 061 */ "cvttpd2pi", + /* 062 */ "cvttps2dq", + /* 063 */ "cvttps2pi", + /* 064 */ "cvttsd2si", + /* 065 */ "cvttss2si", + /* 066 */ "cwd", + /* 067 */ "cwde", + /* 068 */ "daa", + /* 069 */ "das", + /* 06A */ "dec", + /* 06B */ "div", + /* 06C */ "divpd", + /* 06D */ "divps", + /* 06E */ "divsd", + /* 06F */ "divss", + /* 070 */ "dppd", + /* 071 */ "dpps", + /* 072 */ "emms", + /* 073 */ "enter", + /* 074 */ "extractps", + /* 075 */ "f2xm1", + /* 076 */ "fabs", + /* 077 */ "fadd", + /* 078 */ "faddp", + /* 079 */ "fbld", + /* 07A */ "fbstp", + /* 07B */ "fchs", + /* 07C */ "fclex", + /* 07D */ "fcmovb", + /* 07E */ "fcmovbe", + /* 07F */ "fcmove", + /* 080 */ "fcmovnb", + /* 081 */ "fcmovnbe", + /* 082 */ "fcmovne", + /* 083 */ "fcmovnu", + /* 084 */ "fcmovu", + /* 085 */ "fcom", + /* 086 */ "fcom2", + /* 087 */ "fcomi", + /* 088 */ "fcomip", + /* 089 */ "fcomp", + /* 08A */ "fcomp3", + /* 08B */ "fcomp5", + /* 08C */ "fcompp", + /* 08D */ "fcos", + /* 08E */ "fdecstp", + /* 08F */ "fdiv", + /* 090 */ "fdivp", + /* 091 */ "fdivr", + /* 092 */ "fdivrp", + /* 093 */ "femms", + /* 094 */ "ffree", + /* 095 */ "ffreep", + /* 096 */ "fiadd", + /* 097 */ "ficom", + /* 098 */ "ficomp", + /* 099 */ "fidiv", + /* 09A */ "fidivr", + /* 09B */ "fild", + /* 09C */ "fimul", + /* 09D */ "fincstp", + /* 09E */ "fist", + /* 09F */ "fistp", + /* 0A0 */ "fisttp", + /* 0A1 */ "fisub", + /* 0A2 */ "fisubr", + /* 0A3 */ "fld", + /* 0A4 */ "fld1", + /* 0A5 */ "fldcw", + /* 0A6 */ "fldenv", + /* 0A7 */ "fldl2e", + /* 0A8 */ "fldl2t", + /* 0A9 */ "fldlg2", + /* 0AA */ "fldln2", + /* 0AB */ "fldpi", + /* 0AC */ "fldz", + /* 0AD */ "fmul", + /* 0AE */ "fmulp", + /* 0AF */ "fndisi", + /* 0B0 */ "fneni", + /* 0B1 */ "fninit", + /* 0B2 */ "fnop", + /* 0B3 */ "fnsave", + /* 0B4 */ "fnsetpm", + /* 0B5 */ "fnstcw", + /* 0B6 */ "fnstenv", + /* 0B7 */ "fnstsw", + /* 0B8 */ "fpatan", + /* 0B9 */ "fprem", + /* 0BA */ "fprem1", + /* 0BB */ "fptan", + /* 0BC */ "frndint", + /* 0BD */ "frstor", + /* 0BE */ "frstpm", + /* 0BF */ "fscale", + /* 0C0 */ "fsin", + /* 0C1 */ "fsincos", + /* 0C2 */ "fsqrt", + /* 0C3 */ "fst", + /* 0C4 */ "fstp", + /* 0C5 */ "fstp1", + /* 0C6 */ "fstp8", + /* 0C7 */ "fstp9", + /* 0C8 */ "fsub", + /* 0C9 */ "fsubp", + /* 0CA */ "fsubr", + /* 0CB */ "fsubrp", + /* 0CC */ "ftst", + /* 0CD */ "fucom", + /* 0CE */ "fucomi", + /* 0CF */ "fucomip", + /* 0D0 */ "fucomp", + /* 0D1 */ "fucompp", + /* 0D2 */ "fxam", + /* 0D3 */ "fxch", + /* 0D4 */ "fxch4", + /* 0D5 */ "fxch7", + /* 0D6 */ "fxrstor", + /* 0D7 */ "fxsave", + /* 0D8 */ "fxtract", + /* 0D9 */ "fyl2x", + /* 0DA */ "fyl2xp1", + /* 0DB */ "getsec", + /* 0DC */ "haddpd", + /* 0DD */ "haddps", + /* 0DE */ "hlt", + /* 0DF */ "hsubpd", + /* 0E0 */ "hsubps", + /* 0E1 */ "idiv", + /* 0E2 */ "imul", + /* 0E3 */ "in", + /* 0E4 */ "inc", + /* 0E5 */ "insb", + /* 0E6 */ "insd", + /* 0E7 */ "insertps", + /* 0E8 */ "insw", + /* 0E9 */ "int", + /* 0EA */ "int1", + /* 0EB */ "int3", + /* 0EC */ "into", + /* 0ED */ "invd", + /* 0EE */ "invept", + /* 0EF */ "invlpg", + /* 0F0 */ "invlpga", + /* 0F1 */ "invvpid", + /* 0F2 */ "iretd", + /* 0F3 */ "iretq", + /* 0F4 */ "iretw", + /* 0F5 */ "ja", + /* 0F6 */ "jb", + /* 0F7 */ "jbe", + /* 0F8 */ "jcxz", + /* 0F9 */ "je", + /* 0FA */ "jecxz", + /* 0FB */ "jg", + /* 0FC */ "jge", + /* 0FD */ "jl", + /* 0FE */ "jle", + /* 0FF */ "jmp", + /* 100 */ "jnb", + /* 101 */ "jne", + /* 102 */ "jno", + /* 103 */ "jnp", + /* 104 */ "jns", + /* 105 */ "jo", + /* 106 */ "jp", + /* 107 */ "jrcxz", + /* 108 */ "js", + /* 109 */ "lahf", + /* 10A */ "lar", + /* 10B */ "lddqu", + /* 10C */ "ldmxcsr", + /* 10D */ "lds", + /* 10E */ "lea", + /* 10F */ "leave", + /* 110 */ "les", + /* 111 */ "lfence", + /* 112 */ "lfs", + /* 113 */ "lgdt", + /* 114 */ "lgs", + /* 115 */ "lidt", + /* 116 */ "lldt", + /* 117 */ "lmsw", + /* 118 */ "lock", + /* 119 */ "lodsb", + /* 11A */ "lodsd", + /* 11B */ "lodsq", + /* 11C */ "lodsw", + /* 11D */ "loop", + /* 11E */ "loope", + /* 11F */ "loopne", + /* 120 */ "lsl", + /* 121 */ "lss", + /* 122 */ "ltr", + /* 123 */ "maskmovdqu", + /* 124 */ "maskmovq", + /* 125 */ "maxpd", + /* 126 */ "maxps", + /* 127 */ "maxsd", + /* 128 */ "maxss", + /* 129 */ "mfence", + /* 12A */ "minpd", + /* 12B */ "minps", + /* 12C */ "minsd", + /* 12D */ "minss", + /* 12E */ "monitor", + /* 12F */ "montmul", + /* 130 */ "mov", + /* 131 */ "movapd", + /* 132 */ "movaps", + /* 133 */ "movbe", + /* 134 */ "movd", + /* 135 */ "movddup", + /* 136 */ "movdq2q", + /* 137 */ "movdqa", + /* 138 */ "movdqu", + /* 139 */ "movhlps", + /* 13A */ "movhpd", + /* 13B */ "movhps", + /* 13C */ "movlhps", + /* 13D */ "movlpd", + /* 13E */ "movlps", + /* 13F */ "movmskpd", + /* 140 */ "movmskps", + /* 141 */ "movntdq", + /* 142 */ "movntdqa", + /* 143 */ "movnti", + /* 144 */ "movntpd", + /* 145 */ "movntps", + /* 146 */ "movntq", + /* 147 */ "movq", + /* 148 */ "movq2dq", + /* 149 */ "movsb", + /* 14A */ "movsd", + /* 14B */ "movshdup", + /* 14C */ "movsldup", + /* 14D */ "movsq", + /* 14E */ "movss", + /* 14F */ "movsw", + /* 150 */ "movsx", + /* 151 */ "movsxd", + /* 152 */ "movupd", + /* 153 */ "movups", + /* 154 */ "movzx", + /* 155 */ "mpsadbw", + /* 156 */ "mul", + /* 157 */ "mulpd", + /* 158 */ "mulps", + /* 159 */ "mulsd", + /* 15A */ "mulss", + /* 15B */ "mwait", + /* 15C */ "neg", + /* 15D */ "nop", + /* 15E */ "not", + /* 15F */ "or", + /* 160 */ "orpd", + /* 161 */ "orps", + /* 162 */ "out", + /* 163 */ "outsb", + /* 164 */ "outsd", + /* 165 */ "outsw", + /* 166 */ "pabsb", + /* 167 */ "pabsd", + /* 168 */ "pabsw", + /* 169 */ "packssdw", + /* 16A */ "packsswb", + /* 16B */ "packusdw", + /* 16C */ "packuswb", + /* 16D */ "paddb", + /* 16E */ "paddd", + /* 16F */ "paddq", + /* 170 */ "paddsb", + /* 171 */ "paddsw", + /* 172 */ "paddusb", + /* 173 */ "paddusw", + /* 174 */ "paddw", + /* 175 */ "palignr", + /* 176 */ "pand", + /* 177 */ "pandn", + /* 178 */ "pause", + /* 179 */ "pavgb", + /* 17A */ "pavgusb", + /* 17B */ "pavgw", + /* 17C */ "pblendvb", + /* 17D */ "pblendw", + /* 17E */ "pclmulqdq", + /* 17F */ "pcmpeqb", + /* 180 */ "pcmpeqd", + /* 181 */ "pcmpeqq", + /* 182 */ "pcmpeqw", + /* 183 */ "pcmpestri", + /* 184 */ "pcmpestrm", + /* 185 */ "pcmpgtb", + /* 186 */ "pcmpgtd", + /* 187 */ "pcmpgtq", + /* 188 */ "pcmpgtw", + /* 189 */ "pcmpistri", + /* 18A */ "pcmpistrm", + /* 18B */ "pextrb", + /* 18C */ "pextrd", + /* 18D */ "pextrq", + /* 18E */ "pextrw", + /* 18F */ "pf2id", + /* 190 */ "pf2iw", + /* 191 */ "pfacc", + /* 192 */ "pfadd", + /* 193 */ "pfcmpeq", + /* 194 */ "pfcmpge", + /* 195 */ "pfcmpgt", + /* 196 */ "pfmax", + /* 197 */ "pfmin", + /* 198 */ "pfmul", + /* 199 */ "pfnacc", + /* 19A */ "pfpnacc", + /* 19B */ "pfrcp", + /* 19C */ "pfrcpit1", + /* 19D */ "pfrcpit2", + /* 19E */ "pfrsqit1", + /* 19F */ "pfrsqrt", + /* 1A0 */ "pfsub", + /* 1A1 */ "pfsubr", + /* 1A2 */ "phaddd", + /* 1A3 */ "phaddsw", + /* 1A4 */ "phaddw", + /* 1A5 */ "phminposuw", + /* 1A6 */ "phsubd", + /* 1A7 */ "phsubsw", + /* 1A8 */ "phsubw", + /* 1A9 */ "pi2fd", + /* 1AA */ "pi2fw", + /* 1AB */ "pinsrb", + /* 1AC */ "pinsrd", + /* 1AD */ "pinsrq", + /* 1AE */ "pinsrw", + /* 1AF */ "pmaddubsw", + /* 1B0 */ "pmaddwd", + /* 1B1 */ "pmaxsb", + /* 1B2 */ "pmaxsd", + /* 1B3 */ "pmaxsw", + /* 1B4 */ "pmaxub", + /* 1B5 */ "pmaxud", + /* 1B6 */ "pmaxuw", + /* 1B7 */ "pminsb", + /* 1B8 */ "pminsd", + /* 1B9 */ "pminsw", + /* 1BA */ "pminub", + /* 1BB */ "pminud", + /* 1BC */ "pminuw", + /* 1BD */ "pmovmskb", + /* 1BE */ "pmovsxbd", + /* 1BF */ "pmovsxbq", + /* 1C0 */ "pmovsxbw", + /* 1C1 */ "pmovsxdq", + /* 1C2 */ "pmovsxwd", + /* 1C3 */ "pmovsxwq", + /* 1C4 */ "pmovzxbd", + /* 1C5 */ "pmovzxbq", + /* 1C6 */ "pmovzxbw", + /* 1C7 */ "pmovzxdq", + /* 1C8 */ "pmovzxwd", + /* 1C9 */ "pmovzxwq", + /* 1CA */ "pmuldq", + /* 1CB */ "pmulhrsw", + /* 1CC */ "pmulhrw", + /* 1CD */ "pmulhuw", + /* 1CE */ "pmulhw", + /* 1CF */ "pmulld", + /* 1D0 */ "pmullw", + /* 1D1 */ "pmuludq", + /* 1D2 */ "pop", + /* 1D3 */ "popa", + /* 1D4 */ "popad", + /* 1D5 */ "popcnt", + /* 1D6 */ "popfd", + /* 1D7 */ "popfq", + /* 1D8 */ "popfw", + /* 1D9 */ "por", + /* 1DA */ "prefetch", + /* 1DB */ "prefetchnta", + /* 1DC */ "prefetcht0", + /* 1DD */ "prefetcht1", + /* 1DE */ "prefetcht2", + /* 1DF */ "psadbw", + /* 1E0 */ "pshufb", + /* 1E1 */ "pshufd", + /* 1E2 */ "pshufhw", + /* 1E3 */ "pshuflw", + /* 1E4 */ "pshufw", + /* 1E5 */ "psignb", + /* 1E6 */ "psignd", + /* 1E7 */ "psignw", + /* 1E8 */ "pslld", + /* 1E9 */ "pslldq", + /* 1EA */ "psllq", + /* 1EB */ "psllw", + /* 1EC */ "psrad", + /* 1ED */ "psraw", + /* 1EE */ "psrld", + /* 1EF */ "psrldq", + /* 1F0 */ "psrlq", + /* 1F1 */ "psrlw", + /* 1F2 */ "psubb", + /* 1F3 */ "psubd", + /* 1F4 */ "psubq", + /* 1F5 */ "psubsb", + /* 1F6 */ "psubsw", + /* 1F7 */ "psubusb", + /* 1F8 */ "psubusw", + /* 1F9 */ "psubw", + /* 1FA */ "pswapd", + /* 1FB */ "ptest", + /* 1FC */ "punpckhbw", + /* 1FD */ "punpckhdq", + /* 1FE */ "punpckhqdq", + /* 1FF */ "punpckhwd", + /* 200 */ "punpcklbw", + /* 201 */ "punpckldq", + /* 202 */ "punpcklqdq", + /* 203 */ "punpcklwd", + /* 204 */ "push", + /* 205 */ "pusha", + /* 206 */ "pushad", + /* 207 */ "pushfd", + /* 208 */ "pushfq", + /* 209 */ "pushfw", + /* 20A */ "pxor", + /* 20B */ "rcl", + /* 20C */ "rcpps", + /* 20D */ "rcpss", + /* 20E */ "rcr", + /* 20F */ "rdmsr", + /* 210 */ "rdpmc", + /* 211 */ "rdrand", + /* 212 */ "rdtsc", + /* 213 */ "rdtscp", + /* 214 */ "rep", + /* 215 */ "repne", + /* 216 */ "ret", + /* 217 */ "retf", + /* 218 */ "rol", + /* 219 */ "ror", + /* 21A */ "roundpd", + /* 21B */ "roundps", + /* 21C */ "roundsd", + /* 21D */ "roundss", + /* 21E */ "rsm", + /* 21F */ "rsqrtps", + /* 220 */ "rsqrtss", + /* 221 */ "sahf", + /* 222 */ "salc", + /* 223 */ "sar", + /* 224 */ "sbb", + /* 225 */ "scasb", + /* 226 */ "scasd", + /* 227 */ "scasq", + /* 228 */ "scasw", + /* 229 */ "seta", + /* 22A */ "setae", + /* 22B */ "setb", + /* 22C */ "setbe", + /* 22D */ "sete", + /* 22E */ "setg", + /* 22F */ "setge", + /* 230 */ "setl", + /* 231 */ "setle", + /* 232 */ "setne", + /* 233 */ "setno", + /* 234 */ "setnp", + /* 235 */ "setns", + /* 236 */ "seto", + /* 237 */ "setp", + /* 238 */ "sets", + /* 239 */ "sfence", + /* 23A */ "sgdt", + /* 23B */ "shl", + /* 23C */ "shld", + /* 23D */ "shr", + /* 23E */ "shrd", + /* 23F */ "shufpd", + /* 240 */ "shufps", + /* 241 */ "sidt", + /* 242 */ "skinit", + /* 243 */ "sldt", + /* 244 */ "smsw", + /* 245 */ "sqrtpd", + /* 246 */ "sqrtps", + /* 247 */ "sqrtsd", + /* 248 */ "sqrtss", + /* 249 */ "stc", + /* 24A */ "std", + /* 24B */ "stgi", + /* 24C */ "sti", + /* 24D */ "stmxcsr", + /* 24E */ "stosb", + /* 24F */ "stosd", + /* 250 */ "stosq", + /* 251 */ "stosw", + /* 252 */ "str", + /* 253 */ "sub", + /* 254 */ "subpd", + /* 255 */ "subps", + /* 256 */ "subsd", + /* 257 */ "subss", + /* 258 */ "swapgs", + /* 259 */ "syscall", + /* 25A */ "sysenter", + /* 25B */ "sysexit", + /* 25C */ "sysret", + /* 25D */ "test", + /* 25E */ "ucomisd", + /* 25F */ "ucomiss", + /* 260 */ "ud2", + /* 261 */ "unpckhpd", + /* 262 */ "unpckhps", + /* 263 */ "unpcklpd", + /* 264 */ "unpcklps", + /* 265 */ "vaddpd", + /* 266 */ "vaddps", + /* 267 */ "vaddsd", + /* 268 */ "vaddss", + /* 269 */ "vaddsubpd", + /* 26A */ "vaddsubps", + /* 26B */ "vaesdec", + /* 26C */ "vaesdeclast", + /* 26D */ "vaesenc", + /* 26E */ "vaesenclast", + /* 26F */ "vaesimc", + /* 270 */ "vaeskeygenassist", + /* 271 */ "vandnpd", + /* 272 */ "vandnps", + /* 273 */ "vandpd", + /* 274 */ "vandps", + /* 275 */ "vblendpd", + /* 276 */ "vblendps", + /* 277 */ "vblendvpd", + /* 278 */ "vblendvps", + /* 279 */ "vbroadcastsd", + /* 27A */ "vbroadcastss", + /* 27B */ "vcmppd", + /* 27C */ "vcmpps", + /* 27D */ "vcmpsd", + /* 27E */ "vcmpss", + /* 27F */ "vcomisd", + /* 280 */ "vcomiss", + /* 281 */ "vcvtdq2pd", + /* 282 */ "vcvtdq2ps", + /* 283 */ "vcvtpd2dq", + /* 284 */ "vcvtpd2ps", + /* 285 */ "vcvtps2dq", + /* 286 */ "vcvtps2pd", + /* 287 */ "vcvtsd2si", + /* 288 */ "vcvtsd2ss", + /* 289 */ "vcvtsi2sd", + /* 28A */ "vcvtsi2ss", + /* 28B */ "vcvtss2sd", + /* 28C */ "vcvtss2si", + /* 28D */ "vcvttpd2dq", + /* 28E */ "vcvttps2dq", + /* 28F */ "vcvttsd2si", + /* 290 */ "vcvttss2si", + /* 291 */ "vdivpd", + /* 292 */ "vdivps", + /* 293 */ "vdivsd", + /* 294 */ "vdivss", + /* 295 */ "vdppd", + /* 296 */ "vdpps", + /* 297 */ "verr", + /* 298 */ "verw", + /* 299 */ "vextractf128", + /* 29A */ "vextractps", + /* 29B */ "vhaddpd", + /* 29C */ "vhaddps", + /* 29D */ "vhsubpd", + /* 29E */ "vhsubps", + /* 29F */ "vinsertf128", + /* 2A0 */ "vinsertps", + /* 2A1 */ "vlddqu", + /* 2A2 */ "vmaskmovdqu", + /* 2A3 */ "vmaskmovpd", + /* 2A4 */ "vmaskmovps", + /* 2A5 */ "vmaxpd", + /* 2A6 */ "vmaxps", + /* 2A7 */ "vmaxsd", + /* 2A8 */ "vmaxss", + /* 2A9 */ "vmcall", + /* 2AA */ "vmclear", + /* 2AB */ "vminpd", + /* 2AC */ "vminps", + /* 2AD */ "vminsd", + /* 2AE */ "vminss", + /* 2AF */ "vmlaunch", + /* 2B0 */ "vmload", + /* 2B1 */ "vmmcall", + /* 2B2 */ "vmovapd", + /* 2B3 */ "vmovaps", + /* 2B4 */ "vmovd", + /* 2B5 */ "vmovddup", + /* 2B6 */ "vmovdqa", + /* 2B7 */ "vmovdqu", + /* 2B8 */ "vmovhlps", + /* 2B9 */ "vmovhpd", + /* 2BA */ "vmovhps", + /* 2BB */ "vmovlhps", + /* 2BC */ "vmovlpd", + /* 2BD */ "vmovlps", + /* 2BE */ "vmovmskpd", + /* 2BF */ "vmovmskps", + /* 2C0 */ "vmovntdq", + /* 2C1 */ "vmovntdqa", + /* 2C2 */ "vmovntpd", + /* 2C3 */ "vmovntps", + /* 2C4 */ "vmovq", + /* 2C5 */ "vmovsd", + /* 2C6 */ "vmovshdup", + /* 2C7 */ "vmovsldup", + /* 2C8 */ "vmovss", + /* 2C9 */ "vmovupd", + /* 2CA */ "vmovups", + /* 2CB */ "vmpsadbw", + /* 2CC */ "vmptrld", + /* 2CD */ "vmptrst", + /* 2CE */ "vmread", + /* 2CF */ "vmresume", + /* 2D0 */ "vmrun", + /* 2D1 */ "vmsave", + /* 2D2 */ "vmulpd", + /* 2D3 */ "vmulps", + /* 2D4 */ "vmulsd", + /* 2D5 */ "vmulss", + /* 2D6 */ "vmwrite", + /* 2D7 */ "vmxoff", + /* 2D8 */ "vmxon", + /* 2D9 */ "vorpd", + /* 2DA */ "vorps", + /* 2DB */ "vpabsb", + /* 2DC */ "vpabsd", + /* 2DD */ "vpabsw", + /* 2DE */ "vpackssdw", + /* 2DF */ "vpacksswb", + /* 2E0 */ "vpackusdw", + /* 2E1 */ "vpackuswb", + /* 2E2 */ "vpaddb", + /* 2E3 */ "vpaddd", + /* 2E4 */ "vpaddq", + /* 2E5 */ "vpaddsb", + /* 2E6 */ "vpaddsw", + /* 2E7 */ "vpaddusb", + /* 2E8 */ "vpaddusw", + /* 2E9 */ "vpaddw", + /* 2EA */ "vpalignr", + /* 2EB */ "vpand", + /* 2EC */ "vpandn", + /* 2ED */ "vpavgb", + /* 2EE */ "vpavgw", + /* 2EF */ "vpblendvb", + /* 2F0 */ "vpblendw", + /* 2F1 */ "vpclmulqdq", + /* 2F2 */ "vpcmpeqb", + /* 2F3 */ "vpcmpeqd", + /* 2F4 */ "vpcmpeqq", + /* 2F5 */ "vpcmpeqw", + /* 2F6 */ "vpcmpestri", + /* 2F7 */ "vpcmpestrm", + /* 2F8 */ "vpcmpgtb", + /* 2F9 */ "vpcmpgtd", + /* 2FA */ "vpcmpgtq", + /* 2FB */ "vpcmpgtw", + /* 2FC */ "vpcmpistri", + /* 2FD */ "vpcmpistrm", + /* 2FE */ "vperm2f128", + /* 2FF */ "vpermilpd", + /* 300 */ "vpermilps", + /* 301 */ "vpextrb", + /* 302 */ "vpextrd", + /* 303 */ "vpextrq", + /* 304 */ "vpextrw", + /* 305 */ "vphaddd", + /* 306 */ "vphaddsw", + /* 307 */ "vphaddw", + /* 308 */ "vphminposuw", + /* 309 */ "vphsubd", + /* 30A */ "vphsubsw", + /* 30B */ "vphsubw", + /* 30C */ "vpinsrb", + /* 30D */ "vpinsrd", + /* 30E */ "vpinsrq", + /* 30F */ "vpinsrw", + /* 310 */ "vpmaddubsw", + /* 311 */ "vpmaddwd", + /* 312 */ "vpmaxsb", + /* 313 */ "vpmaxsd", + /* 314 */ "vpmaxsw", + /* 315 */ "vpmaxub", + /* 316 */ "vpmaxud", + /* 317 */ "vpmaxuw", + /* 318 */ "vpminsb", + /* 319 */ "vpminsd", + /* 31A */ "vpminsw", + /* 31B */ "vpminub", + /* 31C */ "vpminud", + /* 31D */ "vpminuw", + /* 31E */ "vpmovmskb", + /* 31F */ "vpmovsxbd", + /* 320 */ "vpmovsxbq", + /* 321 */ "vpmovsxbw", + /* 322 */ "vpmovsxwd", + /* 323 */ "vpmovsxwq", + /* 324 */ "vpmovzxbd", + /* 325 */ "vpmovzxbq", + /* 326 */ "vpmovzxbw", + /* 327 */ "vpmovzxdq", + /* 328 */ "vpmovzxwd", + /* 329 */ "vpmovzxwq", + /* 32A */ "vpmuldq", + /* 32B */ "vpmulhrsw", + /* 32C */ "vpmulhuw", + /* 32D */ "vpmulhw", + /* 32E */ "vpmulld", + /* 32F */ "vpmullw", + /* 330 */ "vpor", + /* 331 */ "vpsadbw", + /* 332 */ "vpshufb", + /* 333 */ "vpshufd", + /* 334 */ "vpshufhw", + /* 335 */ "vpshuflw", + /* 336 */ "vpsignb", + /* 337 */ "vpsignd", + /* 338 */ "vpsignw", + /* 339 */ "vpslld", + /* 33A */ "vpslldq", + /* 33B */ "vpsllq", + /* 33C */ "vpsllw", + /* 33D */ "vpsrad", + /* 33E */ "vpsraw", + /* 33F */ "vpsrld", + /* 340 */ "vpsrldq", + /* 341 */ "vpsrlq", + /* 342 */ "vpsrlw", + /* 343 */ "vpsubb", + /* 344 */ "vpsubd", + /* 345 */ "vpsubq", + /* 346 */ "vpsubsb", + /* 347 */ "vpsubsw", + /* 348 */ "vpsubusb", + /* 349 */ "vpsubusw", + /* 34A */ "vpsubw", + /* 34B */ "vptest", + /* 34C */ "vpunpckhbw", + /* 34D */ "vpunpckhdq", + /* 34E */ "vpunpckhqdq", + /* 34F */ "vpunpckhwd", + /* 350 */ "vpunpcklbw", + /* 351 */ "vpunpckldq", + /* 352 */ "vpunpcklqdq", + /* 353 */ "vpunpcklwd", + /* 354 */ "vpxor", + /* 355 */ "vrcpps", + /* 356 */ "vrcpss", + /* 357 */ "vroundpd", + /* 358 */ "vroundps", + /* 359 */ "vroundsd", + /* 35A */ "vroundss", + /* 35B */ "vrsqrtps", + /* 35C */ "vrsqrtss", + /* 35D */ "vshufpd", + /* 35E */ "vshufps", + /* 35F */ "vsqrtpd", + /* 360 */ "vsqrtps", + /* 361 */ "vsqrtsd", + /* 362 */ "vsqrtss", + /* 363 */ "vstmxcsr", + /* 364 */ "vsubpd", + /* 365 */ "vsubps", + /* 366 */ "vsubsd", + /* 367 */ "vsubss", + /* 368 */ "vtestpd", + /* 369 */ "vtestps", + /* 36A */ "vucomisd", + /* 36B */ "vucomiss", + /* 36C */ "vunpckhpd", + /* 36D */ "vunpckhps", + /* 36E */ "vunpcklpd", + /* 36F */ "vunpcklps", + /* 370 */ "vxorpd", + /* 371 */ "vxorps", + /* 372 */ "vzeroall", + /* 373 */ "vzeroupper", + /* 374 */ "wait", + /* 375 */ "wbinvd", + /* 376 */ "wrmsr", + /* 377 */ "xadd", + /* 378 */ "xchg", + /* 379 */ "xcryptcbc", + /* 37A */ "xcryptcfb", + /* 37B */ "xcryptctr", + /* 37C */ "xcryptecb", + /* 37D */ "xcryptofb", + /* 37E */ "xgetbv", + /* 37F */ "xlatb", + /* 380 */ "xor", + /* 381 */ "xorpd", + /* 382 */ "xorps", + /* 383 */ "xrstor", + /* 384 */ "xsave", + /* 385 */ "xsetbv", + /* 386 */ "xsha1", + /* 387 */ "xsha256", + /* 388 */ "xstore", +}; + +} + +} diff --git a/Bindings/Cpp/VXOpcodeTable.hpp b/Bindings/Cpp/ZyDisOpcodeTable.hpp similarity index 92% rename from Bindings/Cpp/VXOpcodeTable.hpp rename to Bindings/Cpp/ZyDisOpcodeTable.hpp index bf13060..c5f388f 100644 --- a/Bindings/Cpp/VXOpcodeTable.hpp +++ b/Bindings/Cpp/ZyDisOpcodeTable.hpp @@ -40,7 +40,7 @@ namespace Verteron /** * @brief Values that represent an instruction mnemonic. */ -enum class VXInstructionMnemonic : uint16_t +enum class ZyDisInstructionMnemonic : uint16_t { /* 000 */ INVALID, /* 001 */ AAA, @@ -922,8 +922,8 @@ enum class VXInstructionMnemonic : uint16_t /* 36D */ VUNPCKHPS, /* 36E */ VUNPCKLPD, /* 36F */ VUNPCKLPS, - /* 370 */ VXORPD, - /* 371 */ VXORPS, + /* 370 */ ZyDisORPD, + /* 371 */ ZyDisORPS, /* 372 */ VZEROALL, /* 373 */ VZEROUPPER, /* 374 */ WAIT, @@ -953,12 +953,12 @@ enum class VXInstructionMnemonic : uint16_t * @brief Defines an alias representing an opcode tree node. An opcode tree node is a 16 bit * unsigned integer value with its first 4 bits reserved for the node type. */ -typedef uint16_t VXOpcodeTreeNode; +typedef uint16_t ZyDisOpcodeTreeNode; /** * @brief Values that represent the type of an opcode tree node. */ -enum class VXOpcodeTreeNodeType : uint8_t +enum class ZyDisOpcodeTreeNodeType : uint8_t { /** * @brief Reference to a concrete instruction definition. @@ -1025,7 +1025,7 @@ enum class VXOpcodeTreeNodeType : uint8_t /** * @brief Values that represent the type of an operand in the instruction definition. */ -enum class VXDefinedOperandType : uint8_t +enum class ZyDisDefinedOperandType : uint8_t { /* * @brief No operand. @@ -1286,7 +1286,7 @@ enum class VXDefinedOperandType : uint8_t * @brief Values that represent the size of an operand in the instruction definition. * Do not change the order or the values of this enum! */ -enum class VXDefinedOperandSize : uint8_t +enum class ZyDisDefinedOperandSize : uint8_t { /** * @brief No operand. @@ -1386,7 +1386,7 @@ enum class VXDefinedOperandSize : uint8_t * @brief Values that represent optional flags in the instruction definition. * Do not change the order or the values of this enum! */ -enum VXInstructionDefinitionFlags : uint16_t +enum ZyDisInstructionDefinitionFlags : uint16_t { /** * @brief The instruction accepts the rex.b prefix value. @@ -1454,30 +1454,30 @@ enum VXInstructionDefinitionFlags : uint16_t /** * @brief An operand definition. */ -struct VXOperandDefinition +struct ZyDisOperandDefinition { /** * @brief The defined operand type. */ - VXDefinedOperandType type; + ZyDisDefinedOperandType type; /** * @brief The defined operand size. */ - VXDefinedOperandSize size; + ZyDisDefinedOperandSize size; }; /** * @brief An instruction definition. */ -struct VXInstructionDefinition +struct ZyDisInstructionDefinition { /** * @brief The instruction mnemonic. */ - VXInstructionMnemonic mnemonic; + ZyDisInstructionMnemonic mnemonic; /** * @brief The operand definitions for all four possible operands. */ - VXOperandDefinition operand[4]; + ZyDisOperandDefinition operand[4]; /** * @brief Additional flags for the instruction definition. */ @@ -1492,24 +1492,24 @@ namespace Internal * @brief Contains all opcode tables. * Indexed by the numeric value of the opcode. */ -extern const VXOpcodeTreeNode optreeTable[][256]; +extern const ZyDisOpcodeTreeNode optreeTable[][256]; /** * @brief Contains all modrm_mod switch tables. * Index values: * 0 = [modrm_mod == !11] * 1 = [modrm_mod == 11] */ -extern const VXOpcodeTreeNode optreeModrmMod[][2]; +extern const ZyDisOpcodeTreeNode optreeModrmMod[][2]; /** * @brief Contains all modrm_reg switch tables. * Indexed by the numeric value of the modrm_reg field. */ -extern const VXOpcodeTreeNode optreeModrmReg[][8]; +extern const ZyDisOpcodeTreeNode optreeModrmReg[][8]; /** * @brief Contains all modrm_rm switch tables. * Indexed by the numeric value of the modrm_rm field. */ -extern const VXOpcodeTreeNode optreeModrmRm[][8]; +extern const ZyDisOpcodeTreeNode optreeModrmRm[][8]; /** * @brief Contains all mandatory-prefix switch tables. * Index values: @@ -1518,13 +1518,13 @@ extern const VXOpcodeTreeNode optreeModrmRm[][8]; * 2 = F3 * 3 = 66 */ -extern const VXOpcodeTreeNode optreeMandatory[][4]; +extern const ZyDisOpcodeTreeNode optreeMandatory[][4]; /** * @brief Contains all x87 opcode tables. * Indexed by the numeric value of the 6 lowest bits of the modrm byte (modrm_mod should * always be 11). */ -extern const VXOpcodeTreeNode optreeX87[][64]; +extern const ZyDisOpcodeTreeNode optreeX87[][64]; /** * @brief Contains all address-size switch tables. * Index values: @@ -1532,7 +1532,7 @@ extern const VXOpcodeTreeNode optreeX87[][64]; * 1 = 32 * 2 = 64 */ -extern const VXOpcodeTreeNode optreeAddressSize[][3]; +extern const ZyDisOpcodeTreeNode optreeAddressSize[][3]; /** * @brief Contains all operand-size switch tables. * Index values: @@ -1540,26 +1540,26 @@ extern const VXOpcodeTreeNode optreeAddressSize[][3]; * 1 = 32 * 2 = 64 */ -extern const VXOpcodeTreeNode optreeOperandSize[][3]; +extern const ZyDisOpcodeTreeNode optreeOperandSize[][3]; /** * @brief Contains all cpu-mode switch tables. * Index values: * 0 = [!= 64] * 1 = 64 */ -extern const VXOpcodeTreeNode optreeMode[][2]; +extern const ZyDisOpcodeTreeNode optreeMode[][2]; /** * @brief Contains all vendor switch tables. * Index values: * 0 = AMD * 1 = Intel */ -extern const VXOpcodeTreeNode optreeVendor[][2]; +extern const ZyDisOpcodeTreeNode optreeVendor[][2]; /** * @brief Contains all 3dnow! switch tables. * Indexed by the numeric value of the 3dnow! opcode. */ -extern const VXOpcodeTreeNode optree3dnow[][256]; +extern const ZyDisOpcodeTreeNode optree3dnow[][256]; /** * @brief Contains all vex switch tables. * Index values: @@ -1580,21 +1580,21 @@ extern const VXOpcodeTreeNode optree3dnow[][256]; * E = F2_0F38 * F = F2_0F3A */ -extern const VXOpcodeTreeNode optreeVex[][16]; +extern const ZyDisOpcodeTreeNode optreeVex[][16]; /** * @brief Contains all vex_w switch tables. * Indexed by the numeric value of the vex_w field. */ -extern const VXOpcodeTreeNode optreeVexW[][2]; +extern const ZyDisOpcodeTreeNode optreeVexW[][2]; /** * @brief Contains all vex_l switch tables. * Indexed by the numeric value of the vex_l field. */ -extern const VXOpcodeTreeNode optreeVexL[][2]; +extern const ZyDisOpcodeTreeNode optreeVexL[][2]; /** * @brief Contains all instruction definitions. */ -extern const VXInstructionDefinition instrDefinitions[]; +extern const ZyDisInstructionDefinition instrDefinitions[]; /** * @brief Contains all instruction mnemonic strings. */ @@ -1605,9 +1605,9 @@ extern const char* instrMnemonicStrings[]; * @param node The node. * @return The type of the specified opcode tree node. */ -inline VXOpcodeTreeNodeType VDEGetOpcodeNodeType(VXOpcodeTreeNode node) +inline ZyDisOpcodeTreeNodeType VDEGetOpcodeNodeType(ZyDisOpcodeTreeNode node) { - return static_cast((node >> 12) & 0x0F); + return static_cast((node >> 12) & 0x0F); } /** @@ -1615,7 +1615,7 @@ inline VXOpcodeTreeNodeType VDEGetOpcodeNodeType(VXOpcodeTreeNode node) * @param node The node. * @return The value of the specified opcode tree node. */ -inline uint16_t VDEGetOpcodeNodeValue(VXOpcodeTreeNode node) +inline uint16_t VDEGetOpcodeNodeValue(ZyDisOpcodeTreeNode node) { return (node & 0x0FFF); } @@ -1624,7 +1624,7 @@ inline uint16_t VDEGetOpcodeNodeValue(VXOpcodeTreeNode node) * @brief Returns the root node of the opcode tree. * @return The root node of the opcode tree. */ -inline VXOpcodeTreeNode VDEGetOpcodeTreeRoot() +inline ZyDisOpcodeTreeNode VDEGetOpcodeTreeRoot() { return 0x1000; } @@ -1635,53 +1635,53 @@ inline VXOpcodeTreeNode VDEGetOpcodeTreeRoot() * @param index The index of the child node to retrieve. * @return The specified child node. */ -inline VXOpcodeTreeNode VDEGetOpcodeTreeChild(VXOpcodeTreeNode parent, uint16_t index) +inline ZyDisOpcodeTreeNode VDEGetOpcodeTreeChild(ZyDisOpcodeTreeNode parent, uint16_t index) { using namespace Internal; - VXOpcodeTreeNodeType nodeType = VDEGetOpcodeNodeType(parent); + ZyDisOpcodeTreeNodeType nodeType = VDEGetOpcodeNodeType(parent); uint16_t tableIndex = VDEGetOpcodeNodeValue(parent); switch (nodeType) { - case VXOpcodeTreeNodeType::TABLE: + case ZyDisOpcodeTreeNodeType::TABLE: assert(index < 256); return optreeTable[tableIndex][index]; - case VXOpcodeTreeNodeType::MODRM_MOD: + case ZyDisOpcodeTreeNodeType::MODRM_MOD: assert(index < 2); return optreeModrmMod[tableIndex][index]; - case VXOpcodeTreeNodeType::MODRM_REG: + case ZyDisOpcodeTreeNodeType::MODRM_REG: assert(index < 8); return optreeModrmReg[tableIndex][index]; - case VXOpcodeTreeNodeType::MODRM_RM: + case ZyDisOpcodeTreeNodeType::MODRM_RM: assert(index < 8); return optreeModrmRm[tableIndex][index]; - case VXOpcodeTreeNodeType::MANDATORY: + case ZyDisOpcodeTreeNodeType::MANDATORY: assert(index < 4); return optreeMandatory[tableIndex][index]; - case VXOpcodeTreeNodeType::X87: + case ZyDisOpcodeTreeNodeType::X87: assert(index < 64); return optreeX87[tableIndex][index]; - case VXOpcodeTreeNodeType::ADDRESS_SIZE: + case ZyDisOpcodeTreeNodeType::ADDRESS_SIZE: assert(index < 3); return optreeAddressSize[tableIndex][index]; - case VXOpcodeTreeNodeType::OPERAND_SIZE: + case ZyDisOpcodeTreeNodeType::OPERAND_SIZE: assert(index < 3); return optreeOperandSize[tableIndex][index]; - case VXOpcodeTreeNodeType::MODE: + case ZyDisOpcodeTreeNodeType::MODE: assert(index < 2); return optreeMode[tableIndex][index]; - case VXOpcodeTreeNodeType::VENDOR: + case ZyDisOpcodeTreeNodeType::VENDOR: assert(index < 3); return optreeVendor[tableIndex][index]; - case VXOpcodeTreeNodeType::AMD3DNOW: + case ZyDisOpcodeTreeNodeType::AMD3DNOW: assert(index < 256); return optree3dnow[tableIndex][index]; - case VXOpcodeTreeNodeType::VEX: + case ZyDisOpcodeTreeNodeType::VEX: assert(index < 16); return optreeVex[tableIndex][index]; - case VXOpcodeTreeNodeType::VEXW: + case ZyDisOpcodeTreeNodeType::VEXW: assert(index < 2); return optreeVexW[tableIndex][index]; - case VXOpcodeTreeNodeType::VEXL: + case ZyDisOpcodeTreeNodeType::VEXL: assert(index < 2); return optreeVexL[tableIndex][index]; default: @@ -1695,9 +1695,9 @@ inline VXOpcodeTreeNode VDEGetOpcodeTreeChild(VXOpcodeTreeNode parent, uint16_t * @param node The instruction definition node. * @return Pointer to the instruction definition. */ -inline const VXInstructionDefinition* VDEGetInstructionDefinition(VXOpcodeTreeNode node) +inline const ZyDisInstructionDefinition* VDEGetInstructionDefinition(ZyDisOpcodeTreeNode node) { - assert(VDEGetOpcodeNodeType(node) == VXOpcodeTreeNodeType::INSTRUCTION_DEFINITION); + assert(VDEGetOpcodeNodeType(node) == ZyDisOpcodeTreeNodeType::INSTRUCTION_DEFINITION); return &instrDefinitions[node & 0x0FFF]; } @@ -1706,7 +1706,7 @@ inline const VXInstructionDefinition* VDEGetInstructionDefinition(VXOpcodeTreeNo * @param mnemonic The mnemonic. * @return The instruction mnemonic string. */ -inline const char* VDEGetInstructionMnemonicString(VXInstructionMnemonic mnemonic) +inline const char* VDEGetInstructionMnemonicString(ZyDisInstructionMnemonic mnemonic) { return instrMnemonicStrings[static_cast(mnemonic)]; } @@ -1716,14 +1716,14 @@ inline const char* VDEGetInstructionMnemonicString(VXInstructionMnemonic mnemoni * @param operandSize The defined operand size. * @return The the numeric value for the simple operand size definition. */ -inline uint16_t VDEGetSimpleOperandSize(VXDefinedOperandSize operandSize) +inline uint16_t VDEGetSimpleOperandSize(ZyDisDefinedOperandSize operandSize) { static uint16_t operandSizes[8] = { 8, 16, 32, 64, 80, 12, 128, 256 }; uint16_t index = - static_cast(operandSize) - static_cast(VXDefinedOperandSize::B); + static_cast(operandSize) - static_cast(ZyDisDefinedOperandSize::B); assert(index < 8); return operandSizes[index]; } @@ -1733,9 +1733,9 @@ inline uint16_t VDEGetSimpleOperandSize(VXDefinedOperandSize operandSize) * @param operandSize The defined operand size. * @return The memory-size part of the operand size definition. */ -inline VXDefinedOperandSize VDEGetComplexOperandMemSize(VXDefinedOperandSize operandSize) +inline ZyDisDefinedOperandSize VDEGetComplexOperandMemSize(ZyDisDefinedOperandSize operandSize) { - return static_cast(static_cast(operandSize) & 0x0F); + return static_cast(static_cast(operandSize) & 0x0F); } /** @@ -1743,9 +1743,9 @@ inline VXDefinedOperandSize VDEGetComplexOperandMemSize(VXDefinedOperandSize ope * @param operandSize The defined operand size. * @return The register-size part of the operand size definition. */ -inline VXDefinedOperandSize VDEGetComplexOperandRegSize(VXDefinedOperandSize operandSize) +inline ZyDisDefinedOperandSize VDEGetComplexOperandRegSize(ZyDisDefinedOperandSize operandSize) { - return static_cast((static_cast(operandSize) >> 4) & 0x0F); + return static_cast((static_cast(operandSize) >> 4) & 0x0F); } } diff --git a/CMakeLists.txt b/CMakeLists.txt index 3cec443..096388b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,42 +44,42 @@ endif () # Library set(vde_headers - "VerteronDisassemblerEngine/VXDisassembler.h" - "VerteronDisassemblerEngine/VXDisassemblerTypes.h" - "VerteronDisassemblerEngine/VXDisassemblerUtils.h" - "VerteronDisassemblerEngine/VXInstructionDecoder.h" - "VerteronDisassemblerEngine/VXInstructionFormatter.h" - "VerteronDisassemblerEngine/VXOpcodeTable.h" - "VerteronDisassemblerEngine/VXOpcodeTableInternal.h" - "VerteronDisassemblerEngine/VXInternalHelpers.h" - "VerteronDisassemblerEngine/VXInternalConfig.h") + "VerteronDisassemblerEngine/ZyDisDisassembler.h" + "VerteronDisassemblerEngine/ZyDisDisassemblerTypes.h" + "VerteronDisassemblerEngine/ZyDisDisassemblerUtils.h" + "VerteronDisassemblerEngine/ZyDisInstructionDecoder.h" + "VerteronDisassemblerEngine/ZyDisInstructionFormatter.h" + "VerteronDisassemblerEngine/ZyDisOpcodeTable.h" + "VerteronDisassemblerEngine/ZyDisOpcodeTableInternal.h" + "VerteronDisassemblerEngine/ZyDisInternalHelpers.h" + "VerteronDisassemblerEngine/ZyDisInternalConfig.h") set(vde_sources - "VerteronDisassemblerEngine/VXDisassemblerUtils.c" - "VerteronDisassemblerEngine/VXInstructionFormatter.c" - "VerteronDisassemblerEngine/VXOpcodeTable.c" - "VerteronDisassemblerEngine/VXInstructionDecoder.c") + "VerteronDisassemblerEngine/ZyDisDisassemblerUtils.c" + "VerteronDisassemblerEngine/ZyDisInstructionFormatter.c" + "VerteronDisassemblerEngine/ZyDisOpcodeTable.c" + "VerteronDisassemblerEngine/ZyDisInstructionDecoder.c") add_library("VerteronDisassemblerEngine" ${vde_headers} ${vde_sources}) generate_export_header( "VerteronDisassemblerEngine" - BASE_NAME "VX" - EXPORT_FILE_NAME "VXExportConfig.h") + BASE_NAME "ZyDis" + EXPORT_FILE_NAME "ZyDisExportConfig.h") include_directories(${PROJECT_BINARY_DIR}) # C++ bindings if (BUILD_CPP_BINDINGS) set(vdecpp_headers - "Bindings/Cpp/VXDisassembler.hpp" - "Bindings/Cpp/VXDisassemblerTypes.hpp" - "Bindings/Cpp/VXDisassemblerUtils.hpp" - "Bindings/Cpp/VXInstructionDecoder.hpp" - "Bindings/Cpp/VXInstructionFormatter.hpp" - "Bindings/Cpp/VXOpcodeTable.hpp") + "Bindings/Cpp/ZyDisDisassembler.hpp" + "Bindings/Cpp/ZyDisDisassemblerTypes.hpp" + "Bindings/Cpp/ZyDisDisassemblerUtils.hpp" + "Bindings/Cpp/ZyDisInstructionDecoder.hpp" + "Bindings/Cpp/ZyDisInstructionFormatter.hpp" + "Bindings/Cpp/ZyDisOpcodeTable.hpp") set(vdecpp_sources - "Bindings/Cpp/VXDisassemblerUtils.cpp" - "Bindings/Cpp/VXInstructionFormatter.cpp" - "Bindings/Cpp/VXOpcodeTable.cpp" - "Bindings/Cpp/VXInstructionDecoder.cpp") + "Bindings/Cpp/ZyDisDisassemblerUtils.cpp" + "Bindings/Cpp/ZyDisInstructionFormatter.cpp" + "Bindings/Cpp/ZyDisOpcodeTable.cpp" + "Bindings/Cpp/ZyDisInstructionDecoder.cpp") add_library("VerteronDisassemblerEngineCpp" ${vdecpp_headers} ${vdecpp_sources}) target_link_libraries("VerteronDisassemblerEngineCpp" "VerteronDisassemblerEngine") endif () diff --git a/Examples/CppBindings/Main.cpp b/Examples/CppBindings/Main.cpp index 7cadb0c..aab004c 100644 --- a/Examples/CppBindings/Main.cpp +++ b/Examples/CppBindings/Main.cpp @@ -33,7 +33,7 @@ #include #include -#include +#include using namespace Verteron; diff --git a/Examples/CustomDataSource/Main.c b/Examples/CustomDataSource/Main.c index 4db36ce..5fb82f9 100644 --- a/Examples/CustomDataSource/Main.c +++ b/Examples/CustomDataSource/Main.c @@ -30,11 +30,11 @@ **************************************************************************************************/ -#include +#include int main(int argc, char* argv[]) { - VX_UNUSED(argc); VX_UNUSED(argv); + ZYDIS_UNUSED(argc); ZYDIS_UNUSED(argv); // TODO: return 0; diff --git a/Examples/PerformanceTest/Main.c b/Examples/PerformanceTest/Main.c index 4db36ce..5fb82f9 100644 --- a/Examples/PerformanceTest/Main.c +++ b/Examples/PerformanceTest/Main.c @@ -30,11 +30,11 @@ **************************************************************************************************/ -#include +#include int main(int argc, char* argv[]) { - VX_UNUSED(argc); VX_UNUSED(argv); + ZYDIS_UNUSED(argc); ZYDIS_UNUSED(argv); // TODO: return 0; diff --git a/Examples/SimpleDemo/Main.c b/Examples/SimpleDemo/Main.c index a159526..6196634 100644 --- a/Examples/SimpleDemo/Main.c +++ b/Examples/SimpleDemo/Main.c @@ -30,7 +30,7 @@ **************************************************************************************************/ -#include +#include #include #include @@ -64,24 +64,24 @@ int main() 0x5F, 0x41, 0x5E, 0x41, 0x5D, 0x41, 0x5C, 0x5F, 0xC3 }; - VXInstructionInfo info; - VXInstructionDecoderContext* decoder = NULL; - VXBaseInstructionFormatterContext* formatter = NULL; - VXBaseDataSourceContext* input32 = NULL; - VXBaseDataSourceContext* input64 = NULL; + ZyDisInstructionInfo info; + ZyDisInstructionDecoderContext* decoder = NULL; + ZyDisBaseInstructionFormatterContext* formatter = NULL; + ZyDisBaseDataSourceContext* input32 = NULL; + ZyDisBaseDataSourceContext* input64 = NULL; - decoder = VXInstructionDecoder_Create(); - formatter = VXIntelInstructionFormatter_Create(); + decoder = ZyDisInstructionDecoder_Create(); + formatter = ZyDisIntelInstructionFormatter_Create(); - input32 = VXMemoryDataSource_Create(&data32[0], sizeof(data32)); - input64 = VXMemoryDataSource_Create(&data64[0], sizeof(data64)); + input32 = ZyDisMemoryDataSource_Create(&data32[0], sizeof(data32)); + input64 = ZyDisMemoryDataSource_Create(&data64[0], sizeof(data64)); - VXInstructionDecoder_SetDisassemblerMode(decoder, DM_M32BIT); - VXInstructionDecoder_SetDataSource(decoder, input32); - VXInstructionDecoder_SetInstructionPointer(decoder, 0x77091852); + ZyDisInstructionDecoder_SetDisassemblerMode(decoder, DM_M32BIT); + ZyDisInstructionDecoder_SetDataSource(decoder, input32); + ZyDisInstructionDecoder_SetInstructionPointer(decoder, 0x77091852); puts("32 bit test ...\n\n"); - while (VXInstructionDecoder_DecodeInstruction(decoder, &info)) + while (ZyDisInstructionDecoder_DecodeInstruction(decoder, &info)) { printf("%08X ", (uint32_t)(info.instrAddress & 0xFFFFFFFF)); if (info.flags & IF_ERROR_MASK) @@ -90,17 +90,17 @@ int main() } else { - printf("%s\n", VXBaseInstructionFormatter_FormatInstruction(formatter, &info)); + printf("%s\n", ZyDisBaseInstructionFormatter_FormatInstruction(formatter, &info)); } } puts("\n"); - VXInstructionDecoder_SetDisassemblerMode(decoder, DM_M64BIT); - VXInstructionDecoder_SetDataSource(decoder, input64); - VXInstructionDecoder_SetInstructionPointer(decoder, 0x00007FFA39A81930ull); + ZyDisInstructionDecoder_SetDisassemblerMode(decoder, DM_M64BIT); + ZyDisInstructionDecoder_SetDataSource(decoder, input64); + ZyDisInstructionDecoder_SetInstructionPointer(decoder, 0x00007FFA39A81930ull); puts("64 bit test ...\n\n"); - while (VXInstructionDecoder_DecodeInstruction(decoder, &info)) + while (ZyDisInstructionDecoder_DecodeInstruction(decoder, &info)) { printf("%016llX ", info.instrAddress); if (info.flags & IF_ERROR_MASK) @@ -109,14 +109,14 @@ int main() } else { - printf("%s\n", VXBaseInstructionFormatter_FormatInstruction(formatter, &info)); + printf("%s\n", ZyDisBaseInstructionFormatter_FormatInstruction(formatter, &info)); } } - VXBaseDataSource_Release(input32); - VXBaseDataSource_Release(input64); - VXBaseInstructionFormatter_Release(formatter); - VXInstructionDecoder_Release(decoder); + ZyDisBaseDataSource_Release(input32); + ZyDisBaseDataSource_Release(input64); + ZyDisBaseInstructionFormatter_Release(formatter); + ZyDisInstructionDecoder_Release(decoder); getchar(); return 0; diff --git a/Examples/SymbolResolver/Main.c b/Examples/SymbolResolver/Main.c index ec98236..763e5ad 100644 --- a/Examples/SymbolResolver/Main.c +++ b/Examples/SymbolResolver/Main.c @@ -30,12 +30,12 @@ **************************************************************************************************/ -#include +#include #include int main(int argc, char* argv[]) { - VX_UNUSED(argc); VX_UNUSED(argv); + ZYDIS_UNUSED(argc); ZYDIS_UNUSED(argv); // TODO: port to C /* @@ -57,14 +57,14 @@ int main(int argc, char* argv[]) return 1; } // Initialize disassembler - VXInstructionInfo info; - VXInstructionDecoder decoder; - VXExactSymbolResolver resolver; - VXIntelInstructionFormatter formatter; + ZyDisInstructionInfo info; + ZyDisInstructionDecoder decoder; + ZyDisExactSymbolResolver resolver; + ZyDisIntelInstructionFormatter formatter; #ifdef _M_X64 - decoder.setDisassemblerMode(VXDisassemblerMode::M64BIT); + decoder.setDisassemblerMode(ZyDisDisassemblerMode::M64BIT); #else - decoder.setDisassemblerMode(VXDisassemblerMode::M32BIT); + decoder.setDisassemblerMode(ZyDisDisassemblerMode::M32BIT); #endif formatter.setSymbolResolver(&resolver); // Initialize output stream @@ -81,7 +81,7 @@ int main(int argc, char* argv[]) { if (sectionHeader->Characteristics & IMAGE_SCN_CNT_CODE) { - VXMemoryDataSource input(reinterpret_cast( + ZyDisMemoryDataSource input(reinterpret_cast( baseAddress + sectionHeader->VirtualAddress), sectionHeader->SizeOfRawData); decoder.setDataSource(&input); decoder.setInstructionPointer(baseAddress + sectionHeader->VirtualAddress); @@ -94,31 +94,31 @@ int main(int argc, char* argv[]) } switch (info.mnemonic) { - case VXInstructionMnemonic::CALL: + case ZyDisInstructionMnemonic::CALL: resolver.setSymbol(VDECalcAbsoluteTarget(info, info.operand[0]), std::string("sub_" + std::to_string(subCount)).c_str()); subCount++; break; - case VXInstructionMnemonic::JMP: - case VXInstructionMnemonic::JO: - case VXInstructionMnemonic::JNO: - case VXInstructionMnemonic::JB: - case VXInstructionMnemonic::JNB: - case VXInstructionMnemonic::JE: - case VXInstructionMnemonic::JNE: - case VXInstructionMnemonic::JBE: - case VXInstructionMnemonic::JA: - case VXInstructionMnemonic::JS: - case VXInstructionMnemonic::JNS: - case VXInstructionMnemonic::JP: - case VXInstructionMnemonic::JNP: - case VXInstructionMnemonic::JL: - case VXInstructionMnemonic::JGE: - case VXInstructionMnemonic::JLE: - case VXInstructionMnemonic::JG: - case VXInstructionMnemonic::JCXZ: - case VXInstructionMnemonic::JECXZ: - case VXInstructionMnemonic::JRCXZ: + case ZyDisInstructionMnemonic::JMP: + case ZyDisInstructionMnemonic::JO: + case ZyDisInstructionMnemonic::JNO: + case ZyDisInstructionMnemonic::JB: + case ZyDisInstructionMnemonic::JNB: + case ZyDisInstructionMnemonic::JE: + case ZyDisInstructionMnemonic::JNE: + case ZyDisInstructionMnemonic::JBE: + case ZyDisInstructionMnemonic::JA: + case ZyDisInstructionMnemonic::JS: + case ZyDisInstructionMnemonic::JNS: + case ZyDisInstructionMnemonic::JP: + case ZyDisInstructionMnemonic::JNP: + case ZyDisInstructionMnemonic::JL: + case ZyDisInstructionMnemonic::JGE: + case ZyDisInstructionMnemonic::JLE: + case ZyDisInstructionMnemonic::JG: + case ZyDisInstructionMnemonic::JCXZ: + case ZyDisInstructionMnemonic::JECXZ: + case ZyDisInstructionMnemonic::JRCXZ: resolver.setSymbol(VDECalcAbsoluteTarget(info, info.operand[0]), std::string("loc_" + std::to_string(locCount)).c_str()); locCount++; @@ -162,7 +162,7 @@ int main(int argc, char* argv[]) { if (sectionHeader->Characteristics & IMAGE_SCN_CNT_CODE) { - VXMemoryDataSource input(reinterpret_cast( + ZyDisMemoryDataSource input(reinterpret_cast( baseAddress + sectionHeader->VirtualAddress), sectionHeader->SizeOfRawData); decoder.setDataSource(&input); decoder.setInstructionPointer(baseAddress + sectionHeader->VirtualAddress); diff --git a/VerteronDisassemblerEngine/VXInternalHelpers.h b/VerteronDisassemblerEngine/VXInternalHelpers.h deleted file mode 100644 index 1389f85..0000000 --- a/VerteronDisassemblerEngine/VXInternalHelpers.h +++ /dev/null @@ -1,197 +0,0 @@ -/************************************************************************************************** - - Verteron Disassembler Engine - Version 1.0 - - Remarks : Freeware, Copyright must be included - - Original Author : athre0z - Modifications : - - Last change : 19. March 2015 - - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - -**************************************************************************************************/ - -#ifndef _VDE_VXINTERNALHELPERS_H_ -#define _VDE_VXINTERNALHELPERS_H_ - -#include "VXInstructionDecoder.h" -#include "VXInstructionFormatter.h" -#include "VXInternalConfig.h" - -#include - -/* Types IDs =================================================================================== */ - -typedef enum _VXTypeId -{ - TYPE_BASEDATASOURCE, - TYPE_MEMORYDATASOURCE, - TYPE_CUSTOMDATASOURCE, - TYPE_INSTRUCTIONDECODER, - TYPE_BASESYMBOLRESOLVER, - TYPE_CUSTOMSYMBOLRESOLVER, - TYPE_BASEINSTRUCTIONFORMATTER, - TYPE_INTELINSTRUCTIONFORMATTER, - TYPE_CUSTOMINSTRUCTIONFORMATTER, -} VXTypeId; - -/* Context conversion helpers ================================================================== */ - -VX_INLINE struct _VXBaseDataSource* VXBaseDataSource_thiz( - VXBaseDataSourceContext *ctx) -{ - assert(ctx->d.type == TYPE_BASEDATASOURCE - || ctx->d.type == TYPE_MEMORYDATASOURCE - || ctx->d.type == TYPE_CUSTOMDATASOURCE); - return (struct _VXBaseDataSource*)ctx->d.ptr; -} - -VX_INLINE const struct _VXBaseDataSource* VXBaseDataSource_cthiz( - const VXBaseDataSourceContext *ctx) -{ - assert(ctx->d.type == TYPE_BASEDATASOURCE - || ctx->d.type == TYPE_MEMORYDATASOURCE - || ctx->d.type == TYPE_CUSTOMDATASOURCE); - return (const struct _VXBaseDataSource*)ctx->d.ptr; -} - -VX_INLINE struct _VXMemoryDataSource* VXMemoryDataSource_thiz( - VXBaseDataSourceContext *ctx) -{ - assert(ctx->d.type == TYPE_MEMORYDATASOURCE); - return (struct _VXMemoryDataSource*)ctx->d.ptr; -} - -VX_INLINE const struct _VXMemoryDataSource* VXMemoryDataSource_cthiz( - const VXBaseDataSourceContext *ctx) -{ - assert(ctx->d.type == TYPE_MEMORYDATASOURCE); - return (const struct _VXMemoryDataSource*)ctx->d.ptr; -} - -VX_INLINE struct _VXCustomDataSource* VXCustomDataSource_thiz( - VXBaseDataSourceContext *ctx) -{ - assert(ctx->d.type == TYPE_CUSTOMDATASOURCE); - return (struct _VXCustomDataSource*)ctx->d.ptr; -} - -VX_INLINE const struct _VXCustomDataSource* VXCustomDataSource_cthiz( - const VXBaseDataSourceContext *ctx) -{ - assert(ctx->d.type == TYPE_CUSTOMDATASOURCE); - return (const struct _VXCustomDataSource*)ctx->d.ptr; -} - -VX_INLINE struct _VXInstructionDecoder* VXInstructionDecoder_thiz( - VXInstructionDecoderContext *ctx) -{ - assert(ctx->d.type == TYPE_INSTRUCTIONDECODER); - return (struct _VXInstructionDecoder*)ctx->d.ptr; -} - -VX_INLINE const struct _VXInstructionDecoder* VXInstructionDecoder_cthiz( - const VXInstructionDecoderContext *ctx) -{ - assert(ctx->d.type == TYPE_INSTRUCTIONDECODER); - return (const struct _VXInstructionDecoder*)ctx->d.ptr; -} - -VX_INLINE struct _VXBaseSymbolResolver* VXBaseSymbolResolver_thiz( - VXBaseSymbolResolverContext *ctx) -{ - assert(ctx->d.type == TYPE_BASESYMBOLRESOLVER - || ctx->d.type == TYPE_CUSTOMSYMBOLRESOLVER); - return (struct _VXBaseSymbolResolver*)ctx->d.ptr; -} - -VX_INLINE const struct _VXBaseSymbolResolver* VXBaseSymbolResolver_cthiz( - const VXBaseSymbolResolverContext *ctx) -{ - assert(ctx->d.type == TYPE_BASESYMBOLRESOLVER - || ctx->d.type == TYPE_CUSTOMSYMBOLRESOLVER); - return (const struct _VXBaseSymbolResolver*)ctx->d.ptr; -} - -VX_INLINE struct _VXCustomSymbolResolver* VXCustomSymbolResolver_thiz( - VXBaseSymbolResolverContext *ctx) -{ - assert(ctx->d.type == TYPE_CUSTOMSYMBOLRESOLVER); - return (struct _VXCustomSymbolResolver*)ctx->d.ptr; -} - -VX_INLINE const struct _VXCustomSymbolResolver* VXCustomSymbolResolver_cthiz( - const VXBaseSymbolResolverContext *ctx) -{ - assert(ctx->d.type == TYPE_CUSTOMSYMBOLRESOLVER); - return (const struct _VXCustomSymbolResolver*)ctx->d.ptr; -} - -VX_INLINE struct _VXBaseInstructionFormatter* VXBaseInstructionFormatter_thiz( - VXBaseInstructionFormatterContext *ctx) -{ - assert(ctx->d.type == TYPE_BASEINSTRUCTIONFORMATTER - || ctx->d.type == TYPE_INTELINSTRUCTIONFORMATTER - || ctx->d.type == TYPE_CUSTOMINSTRUCTIONFORMATTER); - return (struct _VXBaseInstructionFormatter*)ctx->d.ptr; -} - -VX_INLINE const struct _VXBaseInstructionFormatter* VXBaseInstructionFormatter_cthiz( - const VXBaseInstructionFormatterContext *ctx) -{ - assert(ctx->d.type == TYPE_BASEINSTRUCTIONFORMATTER - || ctx->d.type == TYPE_INTELINSTRUCTIONFORMATTER - || ctx->d.type == TYPE_CUSTOMINSTRUCTIONFORMATTER); - return (const struct _VXBaseInstructionFormatter*)ctx->d.ptr; -} - -VX_INLINE struct _VXIntelInstructionFormatter* VXIntelInstructionFormatter_thiz( - VXBaseInstructionFormatterContext *ctx) -{ - assert(ctx->d.type == TYPE_INTELINSTRUCTIONFORMATTER); - return (struct _VXIntelInstructionFormatter*)ctx->d.ptr; -} - -VX_INLINE const struct _VXIntelInstructionFormatter* VXIntelInstructionFormatter_cthiz( - const VXBaseInstructionFormatterContext *ctx) -{ - assert(ctx->d.type == TYPE_INTELINSTRUCTIONFORMATTER); - return (const struct _VXIntelInstructionFormatter*)ctx->d.ptr; -} - -VX_INLINE struct _VXCustomInstructionFormatter* VXCustomInstructionFormatter_thiz( - VXBaseInstructionFormatterContext *ctx) -{ - assert(ctx->d.type == TYPE_CUSTOMINSTRUCTIONFORMATTER); - return (struct _VXCustomInstructionFormatter*)ctx->d.ptr; -} - -VX_INLINE const struct _VXCustomInstructionFormatter* VXCustomInstructionFormatter_cthiz( - const VXBaseInstructionFormatterContext *ctx) -{ - assert(ctx->d.type == TYPE_CUSTOMINSTRUCTIONFORMATTER); - return (struct _VXCustomInstructionFormatter*)ctx->d.ptr; -} - -/* ============================================================================================= */ - -#endif /* _VDE_VXINTERNALHELPERS_H_ */ \ No newline at end of file diff --git a/VerteronDisassemblerEngine/VXDisassembler.h b/VerteronDisassemblerEngine/ZyDisDisassembler.h similarity index 85% rename from VerteronDisassemblerEngine/VXDisassembler.h rename to VerteronDisassemblerEngine/ZyDisDisassembler.h index 1baf7c3..3e4bb81 100644 --- a/VerteronDisassemblerEngine/VXDisassembler.h +++ b/VerteronDisassemblerEngine/ZyDisDisassembler.h @@ -30,12 +30,12 @@ **************************************************************************************************/ -#ifndef _VDE_VXDISASSEMBLERC_H_ -#define _VDE_VXDISASSEMBLERC_H_ +#ifndef _VDE_ZyDisDISASSEMBLERC_H_ +#define _VDE_ZyDisDISASSEMBLERC_H_ -#include "VXDisassemblerTypes.h" -#include "VXInstructionDecoder.h" -#include "VXInstructionFormatter.h" -#include "VXDisassemblerUtils.h" +#include "ZyDisDisassemblerTypes.h" +#include "ZyDisInstructionDecoder.h" +#include "ZyDisInstructionFormatter.h" +#include "ZyDisDisassemblerUtils.h" -#endif /* _VDE_VXDISASSEMBLERC_H_ */ \ No newline at end of file +#endif /* _VDE_ZyDisDISASSEMBLERC_H_ */ \ No newline at end of file diff --git a/VerteronDisassemblerEngine/VXDisassemblerTypes.h b/VerteronDisassemblerEngine/ZyDisDisassemblerTypes.h similarity index 95% rename from VerteronDisassemblerEngine/VXDisassemblerTypes.h rename to VerteronDisassemblerEngine/ZyDisDisassemblerTypes.h index ab16c5b..b80bd9a 100644 --- a/VerteronDisassemblerEngine/VXDisassemblerTypes.h +++ b/VerteronDisassemblerEngine/ZyDisDisassemblerTypes.h @@ -30,12 +30,12 @@ **************************************************************************************************/ -#ifndef _VDE_VXDISASSEMBLERTYPESC_H_ -#define _VDE_VXDISASSEMBLERTYPESC_H_ +#ifndef _VDE_ZyDisDISASSEMBLERTYPESC_H_ +#define _VDE_ZyDisDISASSEMBLERTYPESC_H_ #include #include -#include "VXOpcodeTable.h" +#include "ZyDisOpcodeTable.h" #ifdef __cplusplus extern "C" @@ -45,7 +45,7 @@ extern "C" /** * @brief Values that represent additional flags of a decoded instruction. */ -typedef enum _VXInstructionFlags /* : uint32_t */ +typedef enum _ZyDisInstructionFlags /* : uint32_t */ { IF_NONE = 0x00000000, /** @@ -130,12 +130,12 @@ typedef enum _VXInstructionFlags /* : uint32_t */ IF_ERROR_OPERAND = 0x01000000, IF_FORCE_DWORD = 0x7FFFFFFF -} VXInstructionFlags; +} ZyDisInstructionFlags; /** * @brief Values that represent a cpu register. */ -typedef enum _VXRegister /* : uint16_t */ +typedef enum _ZyDisRegister /* : uint16_t */ { REG_NONE, /* 8 bit general purpose registers */ @@ -192,12 +192,12 @@ typedef enum _VXRegister /* : uint16_t */ REG_RIP, REG_FORCE_WORD = 0x7FFF -} VXRegister; +} ZyDisRegister; /** * @brief Values that represent the type of a decoded operand. */ -typedef enum _VXOperandType /*: uint8_t*/ +typedef enum _ZyDisOperandType /*: uint8_t*/ { /** * @brief The operand is not used. @@ -227,12 +227,12 @@ typedef enum _VXOperandType /*: uint8_t*/ * @brief The operand is a constant value. */ OPTYPE_CONSTANT -} VXOperandType; +} ZyDisOperandType; /** * @brief Values that represent the operand access mode. */ -typedef enum _VXOperandAccessMode /* : uint8_t */ +typedef enum _ZyDisOperandAccessMode /* : uint8_t */ { OPACCESSMODE_NA, /** @@ -247,16 +247,16 @@ typedef enum _VXOperandAccessMode /* : uint8_t */ * @brief The operand is accessed in read-write mode. */ OPACCESSMODE_READWRITE -} VXOperandAccessMode; +} ZyDisOperandAccessMode; /** * @brief This struct holds information about a decoded operand. */ -typedef struct _VXOperandInfo +typedef struct _ZyDisOperandInfo { /** * @brief The type of the operand. - * @see VXOperandType + * @see ZyDisOperandType */ uint8_t type; /** @@ -265,17 +265,17 @@ typedef struct _VXOperandInfo uint16_t size; /** * @brief The operand access mode. - * @see VXOperandAccessMode + * @see ZyDisOperandAccessMode */ uint8_t access_mode; /** * @brief The base register. - * @see VXRegister + * @see ZyDisRegister */ uint16_t base; /** * @brief The index register. - * @see VXRegister + * @see ZyDisRegister */ uint16_t index; /** @@ -308,12 +308,12 @@ typedef struct _VXOperandInfo uint32_t off; } ptr; } lval; -} VXOperandInfo; +} ZyDisOperandInfo; /** * @brief This struct holds information about a decoded instruction. */ -typedef struct _VXInstructionInfo +typedef struct _ZyDisInstructionInfo { /** * @brief The instruction flags. @@ -321,7 +321,7 @@ typedef struct _VXInstructionInfo uint32_t flags; /** * @brief The instruction mnemonic. - * @see VXInstructionMnemonic + * @see ZyDisInstructionMnemonic */ uint16_t mnemonic; /** @@ -351,11 +351,11 @@ typedef struct _VXInstructionInfo /** * @brief The decoded operands. */ - VXOperandInfo operand[4]; + ZyDisOperandInfo operand[4]; /** * @brief The segment register. This value will default to @c NONE, if no segment register * prefix is present. - * @see VXRegister + * @see ZyDisRegister */ uint16_t segment; /** @@ -527,7 +527,7 @@ typedef struct _VXInstructionInfo /** * @brief The instruction definition. */ - const VXInstructionDefinition *instrDefinition; + const ZyDisInstructionDefinition *instrDefinition; /** * @brief The instruction address points to the current instruction (relative to the * initial instruction pointer). @@ -539,10 +539,10 @@ typedef struct _VXInstructionInfo * This field is used to properly format relative instructions. */ uint64_t instrPointer; -} VXInstructionInfo; +} ZyDisInstructionInfo; #ifdef __cplusplus } #endif -#endif /* _VDE_VXDISASSEMBLERTYPESC_H_ */ \ No newline at end of file +#endif /* _VDE_ZyDisDISASSEMBLERTYPESC_H_ */ \ No newline at end of file diff --git a/VerteronDisassemblerEngine/VXDisassemblerUtils.c b/VerteronDisassemblerEngine/ZyDisDisassemblerUtils.c similarity index 94% rename from VerteronDisassemblerEngine/VXDisassemblerUtils.c rename to VerteronDisassemblerEngine/ZyDisDisassemblerUtils.c index 5c392a7..5b9534f 100644 --- a/VerteronDisassemblerEngine/VXDisassemblerUtils.c +++ b/VerteronDisassemblerEngine/ZyDisDisassemblerUtils.c @@ -30,11 +30,11 @@ **************************************************************************************************/ -#include "VXDisassemblerUtils.h" +#include "ZyDisDisassemblerUtils.h" #include -uint64_t VXCalcAbsoluteTarget(const VXInstructionInfo *info, const VXOperandInfo *operand) +uint64_t ZyDisCalcAbsoluteTarget(const ZyDisInstructionInfo *info, const ZyDisOperandInfo *operand) { assert((operand->type == OPTYPE_REL_IMMEDIATE) || ((operand->type == OPTYPE_MEMORY) && (operand->base == REG_RIP))); diff --git a/VerteronDisassemblerEngine/VXDisassemblerUtils.h b/VerteronDisassemblerEngine/ZyDisDisassemblerUtils.h similarity index 82% rename from VerteronDisassemblerEngine/VXDisassemblerUtils.h rename to VerteronDisassemblerEngine/ZyDisDisassemblerUtils.h index d259d36..1bbc807 100644 --- a/VerteronDisassemblerEngine/VXDisassemblerUtils.h +++ b/VerteronDisassemblerEngine/ZyDisDisassemblerUtils.h @@ -30,11 +30,11 @@ **************************************************************************************************/ -#ifndef _VDE_VXDISASSEMBLERUTILSC_H_ -#define _VDE_VXDISASSEMBLERUTILSC_H_ +#ifndef _VDE_ZyDisDISASSEMBLERUTILSC_H_ +#define _VDE_ZyDisDISASSEMBLERUTILSC_H_ -#include "VXDisassemblerTypes.h" -#include "VXInternalConfig.h" +#include "ZyDisDisassemblerTypes.h" +#include "ZyDisInternalConfig.h" #include @@ -44,11 +44,11 @@ extern "C" { #endif -typedef struct _VXContextDescriptor +typedef struct _ZyDisContextDescriptor { uint8_t type; void *ptr; -} VXContextDescriptor; +} ZyDisContextDescriptor; /** * @brief Calculates the absolute target address of a relative instruction operand. @@ -56,12 +56,12 @@ typedef struct _VXContextDescriptor * @param operand The operand. * @return The absolute target address. */ -VX_EXPORT uint64_t VXCalcAbsoluteTarget( - const VXInstructionInfo *info, - const VXOperandInfo *operand); +ZYDIS_EXPORT uint64_t ZyDisCalcAbsoluteTarget( + const ZyDisInstructionInfo *info, + const ZyDisOperandInfo *operand); #ifdef __cplusplus } #endif -#endif /* _VDE_VXDISASSEMBLERUTILSC_H_ */ \ No newline at end of file +#endif /* _VDE_ZyDisDISASSEMBLERUTILSC_H_ */ \ No newline at end of file diff --git a/VerteronDisassemblerEngine/VXInstructionDecoder.c b/VerteronDisassemblerEngine/ZyDisInstructionDecoder.c similarity index 62% rename from VerteronDisassemblerEngine/VXInstructionDecoder.c rename to VerteronDisassemblerEngine/ZyDisInstructionDecoder.c index 1296aee..0e24db0 100644 --- a/VerteronDisassemblerEngine/VXInstructionDecoder.c +++ b/VerteronDisassemblerEngine/ZyDisInstructionDecoder.c @@ -30,9 +30,9 @@ **************************************************************************************************/ -#include "VXInstructionDecoder.h" -#include "VXInternalHelpers.h" -#include "VXOpcodeTableInternal.h" +#include "ZyDisInstructionDecoder.h" +#include "ZyDisInternalHelpers.h" +#include "ZyDisOpcodeTableInternal.h" #include #include @@ -40,40 +40,40 @@ /* Internal interface ========================================================================== */ -/* VXBaseDataSource ---------------------------------------------------------------------------- */ +/* ZyDisBaseDataSource ---------------------------------------------------------------------------- */ -typedef struct _VXBaseDataSource +typedef struct _ZyDisBaseDataSource { uint8_t currentInput; - VXBaseDataSource_DestructionCallback destruct; // may be NULL - VXBaseDataSource_InputCallback internalInputPeek; - VXBaseDataSource_InputCallback internalInputNext; - VXBaseDataSource_IsEndOfInputCallback isEndOfInput; - VXBaseDataSource_GetPositionCallback getPosition; - VXBaseDataSource_SetPositionCallback setPosition; -} VXBaseDataSource; + ZyDisBaseDataSource_DestructionCallback destruct; // may be NULL + ZyDisBaseDataSource_InputCallback internalInputPeek; + ZyDisBaseDataSource_InputCallback internalInputNext; + ZyDisBaseDataSource_IsEndOfInputCallback isEndOfInput; + ZyDisBaseDataSource_GetPositionCallback getPosition; + ZyDisBaseDataSource_SetPositionCallback setPosition; +} ZyDisBaseDataSource; /** * @brief Constructor. * @param ctx The context. */ -static void VXBaseDataSource_Construct(VXBaseDataSourceContext *ctx); +static void ZyDisBaseDataSource_Construct(ZyDisBaseDataSourceContext *ctx); /** * @brief Destructor. * @param ctx The context. */ -static void VXBaseDataSource_Destruct(VXBaseDataSourceContext *ctx); +static void ZyDisBaseDataSource_Destruct(ZyDisBaseDataSourceContext *ctx); -/* VXMemoryDataSource -------------------------------------------------------------------------- */ +/* ZyDisMemoryDataSource -------------------------------------------------------------------------- */ -typedef struct _VXMemoryDataSource +typedef struct _ZyDisMemoryDataSource { - VXBaseDataSource super; + ZyDisBaseDataSource super; const void *inputBuffer; uint64_t inputBufferLen; uint64_t inputBufferPos; -} VXMemoryDataSource; +} ZyDisMemoryDataSource; /** * @brief Constructor. @@ -81,14 +81,14 @@ typedef struct _VXMemoryDataSource * @param buffer The buffer. * @param bufferLen Length of the buffer. */ -static void VXMemoryDataSource_Construct(VXBaseDataSourceContext *ctx, const void* buffer, +static void ZyDisMemoryDataSource_Construct(ZyDisBaseDataSourceContext *ctx, const void* buffer, size_t bufferLen); /** * @brief Destructor. * @param ctx The context. */ -static void VXMemoryDataSource_Destruct(VXBaseDataSourceContext *ctx); +static void ZyDisMemoryDataSource_Destruct(ZyDisBaseDataSourceContext *ctx); /** * @brief Reads the next byte from the data source. @@ -96,7 +96,7 @@ static void VXMemoryDataSource_Destruct(VXBaseDataSourceContext *ctx); * @return The current input byte. * This method increases the current input position by one. */ -static uint8_t VXMemoryDataSource_InternalInputPeek(VXBaseDataSourceContext *ctx); +static uint8_t ZyDisMemoryDataSource_InternalInputPeek(ZyDisBaseDataSourceContext *ctx); /** * @brief Reads the next byte from the data source. @@ -104,30 +104,30 @@ static uint8_t VXMemoryDataSource_InternalInputPeek(VXBaseDataSourceContext *ctx * @return The current input byte. * This method does NOT increase the current input position. */ -static uint8_t VXMemoryDataSource_InternalInputNext(VXBaseDataSourceContext *ctx); +static uint8_t ZyDisMemoryDataSource_InternalInputNext(ZyDisBaseDataSourceContext *ctx); /** - * @copydoc VXBaseDataSource_IsEndOfInput + * @copydoc ZyDisBaseDataSource_IsEndOfInput */ -static bool VXMemoryDataSource_IsEndOfInput(const VXBaseDataSourceContext *ctx); +static bool ZyDisMemoryDataSource_IsEndOfInput(const ZyDisBaseDataSourceContext *ctx); /** - * @copydoc VXBaseDataSource_GetPosition + * @copydoc ZyDisBaseDataSource_GetPosition */ -static uint64_t VXMemoryDataSource_GetPosition(const VXBaseDataSourceContext *ctx); +static uint64_t ZyDisMemoryDataSource_GetPosition(const ZyDisBaseDataSourceContext *ctx); /** - * @copydoc VXBaseDataSource_SetPosition + * @copydoc ZyDisBaseDataSource_SetPosition */ -static bool VXMemoryDataSource_SetPosition(VXBaseDataSourceContext *ctx, uint64_t position); +static bool ZyDisMemoryDataSource_SetPosition(ZyDisBaseDataSourceContext *ctx, uint64_t position); -/* VXCustomDataSource -------------------------------------------------------------------------- */ +/* ZyDisCustomDataSource -------------------------------------------------------------------------- */ -typedef struct _VXCustomDataSource +typedef struct _ZyDisCustomDataSource { - VXBaseDataSource super; - VXBaseDataSource_DestructionCallback userDestruct; // may be NULL -} VXCustomDataSource; + ZyDisBaseDataSource super; + ZyDisBaseDataSource_DestructionCallback userDestruct; // may be NULL +} ZyDisCustomDataSource; /** * @brief Constructor. @@ -139,31 +139,31 @@ typedef struct _VXCustomDataSource * @param setPositionCb The callback setting the current input position. * @param destructionCb The destruction callback. May be @c NULL. */ -static void VXCustomDataSource_Construct(VXBaseDataSourceContext *ctx, - VXBaseDataSource_InputCallback inputPeekCb, - VXBaseDataSource_InputCallback inputNextCb, - VXBaseDataSource_IsEndOfInputCallback isEndOfInputCb, - VXBaseDataSource_GetPositionCallback getPositionCb, - VXBaseDataSource_SetPositionCallback setPositionCb, - VXBaseDataSource_DestructionCallback destructionCb); +static void ZyDisCustomDataSource_Construct(ZyDisBaseDataSourceContext *ctx, + ZyDisBaseDataSource_InputCallback inputPeekCb, + ZyDisBaseDataSource_InputCallback inputNextCb, + ZyDisBaseDataSource_IsEndOfInputCallback isEndOfInputCb, + ZyDisBaseDataSource_GetPositionCallback getPositionCb, + ZyDisBaseDataSource_SetPositionCallback setPositionCb, + ZyDisBaseDataSource_DestructionCallback destructionCb); /** * @brief Destructor. * @param The context. */ -static void VXCustomDataSource_Destruct(VXBaseDataSourceContext *ctx); +static void ZyDisCustomDataSource_Destruct(ZyDisBaseDataSourceContext *ctx); -/* VXInstructionDecoder ------------------------------------------------------------------------ */ +/* ZyDisInstructionDecoder ------------------------------------------------------------------------ */ -typedef struct _VXInstructionDecoder +typedef struct _ZyDisInstructionDecoder { - VXBaseDataSourceContext *dataSource; - VXDisassemblerMode disassemblerMode; - VXInstructionSetVendor preferredVendor; + ZyDisBaseDataSourceContext *dataSource; + ZyDisDisassemblerMode disassemblerMode; + ZyDisInstructionSetVendor preferredVendor; uint64_t instructionPointer; -} VXInstructionDecoder; +} ZyDisInstructionDecoder; -typedef enum _VXRegisterClass /* : uint8_t */ +typedef enum _ZyDisRegisterClass /* : uint8_t */ { RC_GENERAL_PURPOSE, RC_MMX, @@ -171,7 +171,7 @@ typedef enum _VXRegisterClass /* : uint8_t */ RC_DEBUG, RC_SEGMENT, RC_XMM -} VXRegisterClass; +} ZyDisRegisterClass; /** * @brief Reads the next byte from the data source. @@ -183,8 +183,8 @@ typedef enum _VXRegisterClass /* : uint8_t */ * This method does NOT increase the current input position or the @c length field of the * @c info parameter. */ -static uint8_t VXInstructionDecoder_InputPeek(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static uint8_t ZyDisInstructionDecoder_InputPeek(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** * @brief Reads the next byte(s) from the data source. @@ -197,115 +197,115 @@ static uint8_t VXInstructionDecoder_InputPeek(VXInstructionDecoderContext *ctx, * parameter. This method also appends the new byte(s) to to @c data field of the @c info * parameter. */ -static uint8_t VXInstructionDecoder_InputNext8(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static uint8_t ZyDisInstructionDecoder_InputNext8(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** - * @copydoc VXInstructionDecoder_InputNext8 + * @copydoc ZyDisInstructionDecoder_InputNext8 */ -static uint16_t VXInstructionDecoder_InputNext16(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static uint16_t ZyDisInstructionDecoder_InputNext16(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** - * @copydoc VXInstructionDecoder_InputNext8 + * @copydoc ZyDisInstructionDecoder_InputNext8 */ -static uint32_t VXInstructionDecoder_InputNext32(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static uint32_t ZyDisInstructionDecoder_InputNext32(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** - * @copydoc VXInstructionDecoder_InputNext8 + * @copydoc ZyDisInstructionDecoder_InputNext8 */ -static uint64_t VXInstructionDecoder_InputNext64(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static uint64_t ZyDisInstructionDecoder_InputNext64(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** * @brief Returns the current input byte. * @param ctx The context. * @return The current input byte. - * The current input byte is set everytime the @c VXInstructionDecoder_InputPeek or - * @c VXInstructionDecoder_InputNextXX function is called. + * The current input byte is set everytime the @c ZyDisInstructionDecoder_InputPeek or + * @c ZyDisInstructionDecoder_InputNextXX function is called. */ -static uint8_t VXInstructionDecoder_InputCurrent(const VXInstructionDecoderContext *ctx); +static uint8_t ZyDisInstructionDecoder_InputCurrent(const ZyDisInstructionDecoderContext *ctx); /** * @brief Decodes a register operand. * @param ctx The context. * @param info The instruction info. - * @param operand The @c VXOperandInfo struct that receives the decoded data. + * @param operand The @c ZyDisOperandInfo struct that receives the decoded data. * @param registerClass The register class to use. * @param registerId The register id. * @param operandSize The defined size of the operand. * @return @c true if it succeeds, @c false if it fails. */ -static bool VXInstructionDecoder_DecodeRegisterOperand(const VXInstructionDecoderContext *ctx, - VXInstructionInfo *info, VXOperandInfo *operand, VXRegisterClass registerClass, - uint8_t registerId, VXDefinedOperandSize operandSize); +static bool ZyDisInstructionDecoder_DecodeRegisterOperand(const ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info, ZyDisOperandInfo *operand, ZyDisRegisterClass registerClass, + uint8_t registerId, ZyDisDefinedOperandSize operandSize); /** * @brief Decodes a register/memory operand. * @param ctx The context. * @param info The instruction info. - * @param operand The @c VXOperandInfo struct that receives the decoded data. + * @param operand The @c ZyDisOperandInfo struct that receives the decoded data. * @param registerClass The register class to use. * @param operandSize The defined size of the operand. * @return @c true if it succeeds, @c false if it fails. */ -static bool VXInstructionDecoder_DecodeRegisterMemoryOperand(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info, VXOperandInfo *operand, VXRegisterClass registerClass, - VXDefinedOperandSize operandSize); +static bool ZyDisInstructionDecoder_DecodeRegisterMemoryOperand(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info, ZyDisOperandInfo *operand, ZyDisRegisterClass registerClass, + ZyDisDefinedOperandSize operandSize); /** * @brief Decodes an immediate operand. * @param ctx The context. * @param info The instruction info. - * @param operand The @c VXOperandInfo struct that receives the decoded data. + * @param operand The @c ZyDisOperandInfo struct that receives the decoded data. * @param operandSize The defined size of the operand. * @return @c true if it succeeds, @c false if it fails. */ -static bool VXInstructionDecoder_DecodeImmediate(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info, VXOperandInfo *operand, VXDefinedOperandSize operandSize); +static bool ZyDisInstructionDecoder_DecodeImmediate(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info, ZyDisOperandInfo *operand, ZyDisDefinedOperandSize operandSize); /** * @brief Decodes a displacement operand. * @param ctx The context. * @param info The instruction info. - * @param operand The @c VXOperandInfo struct that receives the decoded data. + * @param operand The @c ZyDisOperandInfo struct that receives the decoded data. * @param size The size of the displacement data. * @return @c true if it succeeds, @c false if it fails. */ -static bool VXInstructionDecoder_DecodeDisplacement(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info, VXOperandInfo *operand, uint8_t size); +static bool ZyDisInstructionDecoder_DecodeDisplacement(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info, ZyDisOperandInfo *operand, uint8_t size); /** * @brief Decodes the ModRM field of the instruction. * @param ctx The context. - * @param The @c VXInstructionInfo struct that receives the decoded data. + * @param The @c ZyDisInstructionInfo struct that receives the decoded data. * @return @c true if it succeeds, @c false if it fails. * This method reads an additional input byte. */ -static bool VXInstructionDecoder_DecodeModrm(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static bool ZyDisInstructionDecoder_DecodeModrm(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** * @brief Decodes the SIB field of the instruction. * @param ctx The context. - * @param info The @c VXInstructionInfo struct that receives the decoded data. + * @param info The @c ZyDisInstructionInfo struct that receives the decoded data. * @return @c true if it succeeds, @c false if it fails.1 * This method reads an additional input byte. */ -static bool VXInstructionDecoder_DecodeSIB(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static bool ZyDisInstructionDecoder_DecodeSIB(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** * @brief Decodes VEX prefix of the instruction. * @param ctx The context. - * @param info The @c VXInstructionInfo struct that receives the decoded data. + * @param info The @c ZyDisInstructionInfo struct that receives the decoded data. * @return @c true if it succeeds, @c false if it fails. * This method takes the current input byte to determine the vex prefix type and reads one or * two additional input bytes on demand. */ -static bool VXInstructionDecoder_DecodeVex(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static bool ZyDisInstructionDecoder_DecodeVex(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** * @brief Returns the effective operand size. @@ -314,90 +314,90 @@ static bool VXInstructionDecoder_DecodeVex(VXInstructionDecoderContext *ctx, * @param operandSize The defined operand size. * @return The effective operand size. */ -static uint16_t VXInstructionDecoder_GetEffectiveOperandSize( - const VXInstructionDecoderContext *ctx, const VXInstructionInfo *info, - VXDefinedOperandSize operandSize); +static uint16_t ZyDisInstructionDecoder_GetEffectiveOperandSize( + const ZyDisInstructionDecoderContext *ctx, const ZyDisInstructionInfo *info, + ZyDisDefinedOperandSize operandSize); /** * @brief Decodes all instruction operands. * @param ctx The context. - * @param info The @c VXInstructionInfo struct that receives the decoded data. + * @param info The @c ZyDisInstructionInfo struct that receives the decoded data. * @return @c true if it succeeds, @c false if it fails. */ -static bool VXInstructionDecoder_DecodeOperands(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static bool ZyDisInstructionDecoder_DecodeOperands(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** * @brief Decodes the specified instruction operand. * @param ctx The context. * @param info The instruction info. - * @param operand The @c VXOperandInfo struct that receives the decoded data. + * @param operand The @c ZyDisOperandInfo struct that receives the decoded data. * @param operandType The defined type of the operand. * @param operandSize The defined size of the operand. * @return @c true if it succeeds, @c false if it fails. */ -static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info, VXOperandInfo *operand, VXDefinedOperandType operandType, - VXDefinedOperandSize operandSize); +static bool ZyDisInstructionDecoder_DecodeOperand(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info, ZyDisOperandInfo *operand, ZyDisDefinedOperandType operandType, + ZyDisDefinedOperandSize operandSize); /** * @brief Resolves the effective operand and address mode of the instruction. * @param ctx The context. - * @param info The @c VXInstructionInfo struct that receives the effective operand and + * @param info The @c ZyDisInstructionInfo struct that receives the effective operand and * address mode. * @remarks This function requires a non-null value in the @c instrDefinition field of the * @c info struct. */ -static void VXInstructionDecoder_ResolveOperandAndAddressMode( - const VXInstructionDecoderContext *ctx, VXInstructionInfo *info); +static void ZyDisInstructionDecoder_ResolveOperandAndAddressMode( + const ZyDisInstructionDecoderContext *ctx, ZyDisInstructionInfo *info); /** * @brief Calculates the effective REX/VEX.w, r, x, b, l values. * @param ctx The context. - * @param info The @c VXInstructionInfo struct that receives the effective operand and + * @param info The @c ZyDisInstructionInfo struct that receives the effective operand and * address mode. * @remarks This method requires a non-null value in the @c instrDefinition field of the * @c info struct. */ -static void VXInstructionDecoder_CalculateEffectiveRexVexValues( - const VXInstructionDecoderContext *ctx, VXInstructionInfo *info); +static void ZyDisInstructionDecoder_CalculateEffectiveRexVexValues( + const ZyDisInstructionDecoderContext *ctx, ZyDisInstructionInfo *info); /** * @brief Collects and decodes optional instruction prefixes. * @param ctx The context. - * @param info The @c VXInstructionInfo struct that receives the decoded data. + * @param info The @c ZyDisInstructionInfo struct that receives the decoded data. * @return @c true if it succeeds, @c false if it fails. */ -static bool VXInstructionDecoder_DecodePrefixes(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static bool ZyDisInstructionDecoder_DecodePrefixes(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** * @brief Collects and decodes the instruction opcodes using the opcode tree. * @param ctx The context. - * @param info The @c VXInstructionInfo struct that receives the decoded data. + * @param info The @c ZyDisInstructionInfo struct that receives the decoded data. * @return @c true if it succeeds, @c false if it fails. */ -static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +static bool ZyDisInstructionDecoder_DecodeOpcode(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /* Implementation ============================================================================== */ -/* VXBaseDataSource ---------------------------------------------------------------------------- */ +/* ZyDisBaseDataSource ---------------------------------------------------------------------------- */ -static void VXBaseDataSource_Construct(VXBaseDataSourceContext *ctx) +static void ZyDisBaseDataSource_Construct(ZyDisBaseDataSourceContext *ctx) { - VXBaseDataSource *thiz = VXBaseDataSource_thiz(ctx); + ZyDisBaseDataSource *thiz = ZyDisBaseDataSource_thiz(ctx); memset(thiz, 0, sizeof(*thiz)); } -static void VXBaseDataSource_Destruct(VXBaseDataSourceContext *ctx) +static void ZyDisBaseDataSource_Destruct(ZyDisBaseDataSourceContext *ctx) { - VX_UNUSED(ctx); + ZYDIS_UNUSED(ctx); } -void VXBaseDataSource_Release(VXBaseDataSourceContext *ctx) +void ZyDisBaseDataSource_Release(ZyDisBaseDataSourceContext *ctx) { - VXBaseDataSource *thiz = VXBaseDataSource_thiz(ctx); + ZyDisBaseDataSource *thiz = ZyDisBaseDataSource_thiz(ctx); if (thiz->destruct) { @@ -408,16 +408,16 @@ void VXBaseDataSource_Release(VXBaseDataSourceContext *ctx) free(ctx); } -uint8_t VXBaseDataSource_InputPeek(VXBaseDataSourceContext *ctx, VXInstructionInfo *info) +uint8_t ZyDisBaseDataSource_InputPeek(ZyDisBaseDataSourceContext *ctx, ZyDisInstructionInfo *info) { - VXBaseDataSource *thiz = VXBaseDataSource_thiz(ctx); + ZyDisBaseDataSource *thiz = ZyDisBaseDataSource_thiz(ctx); if (info->length == 15) { info->flags |= IF_ERROR_LENGTH; return 0; } - if (VXBaseDataSource_IsEndOfInput(ctx)) + if (ZyDisBaseDataSource_IsEndOfInput(ctx)) { info->flags |= IF_ERROR_END_OF_INPUT; return 0; @@ -427,16 +427,16 @@ uint8_t VXBaseDataSource_InputPeek(VXBaseDataSourceContext *ctx, VXInstructionIn return thiz->currentInput; } -uint8_t VXBaseDataSource_InputNext8(VXBaseDataSourceContext *ctx, VXInstructionInfo *info) +uint8_t ZyDisBaseDataSource_InputNext8(ZyDisBaseDataSourceContext *ctx, ZyDisInstructionInfo *info) { - VXBaseDataSource *thiz = VXBaseDataSource_thiz(ctx); + ZyDisBaseDataSource *thiz = ZyDisBaseDataSource_thiz(ctx); if (info->length == 15) { info->flags |= IF_ERROR_LENGTH; return 0; } - if (VXBaseDataSource_IsEndOfInput(ctx)) + if (ZyDisBaseDataSource_IsEndOfInput(ctx)) { info->flags |= IF_ERROR_END_OF_INPUT; return 0; @@ -447,14 +447,14 @@ uint8_t VXBaseDataSource_InputNext8(VXBaseDataSourceContext *ctx, VXInstructionI return thiz->currentInput; } -#define VXBASEDATASOURCE_INPUTNEXT_N(n) \ - uint##n##_t VXBaseDataSource_InputNext##n( \ - VXBaseDataSourceContext *ctx, VXInstructionInfo *info) \ +#define ZyDisBASEDATASOURCE_INPUTNEXT_N(n) \ + uint##n##_t ZyDisBaseDataSource_InputNext##n( \ + ZyDisBaseDataSourceContext *ctx, ZyDisInstructionInfo *info) \ { \ uint##n##_t result = 0; \ for (unsigned i = 0; i < (sizeof(uint##n##_t) / sizeof(uint8_t)); ++i) \ { \ - uint##n##_t b = VXBaseDataSource_InputNext8(ctx, info); \ + uint##n##_t b = ZyDisBaseDataSource_InputNext8(ctx, info); \ if (!b && (info->flags & IF_ERROR_MASK)) \ { \ return 0; \ @@ -464,65 +464,65 @@ uint8_t VXBaseDataSource_InputNext8(VXBaseDataSourceContext *ctx, VXInstructionI return result; \ } -VXBASEDATASOURCE_INPUTNEXT_N(16) -VXBASEDATASOURCE_INPUTNEXT_N(32) -VXBASEDATASOURCE_INPUTNEXT_N(64) -#undef VXBASEDATASOURCE_INPUTNEXT_N +ZyDisBASEDATASOURCE_INPUTNEXT_N(16) +ZyDisBASEDATASOURCE_INPUTNEXT_N(32) +ZyDisBASEDATASOURCE_INPUTNEXT_N(64) +#undef ZyDisBASEDATASOURCE_INPUTNEXT_N -uint8_t VXBaseDataSource_InputCurrent(const VXBaseDataSourceContext *ctx) +uint8_t ZyDisBaseDataSource_InputCurrent(const ZyDisBaseDataSourceContext *ctx) { - return VXBaseDataSource_cthiz(ctx)->currentInput; + return ZyDisBaseDataSource_cthiz(ctx)->currentInput; } -bool VXBaseDataSource_IsEndOfInput(const VXBaseDataSourceContext *ctx) +bool ZyDisBaseDataSource_IsEndOfInput(const ZyDisBaseDataSourceContext *ctx) { - assert(VXBaseDataSource_cthiz(ctx)->isEndOfInput); - return VXBaseDataSource_cthiz(ctx)->isEndOfInput(ctx); + assert(ZyDisBaseDataSource_cthiz(ctx)->isEndOfInput); + return ZyDisBaseDataSource_cthiz(ctx)->isEndOfInput(ctx); } -uint64_t VXBaseDataSource_GetPosition(const VXBaseDataSourceContext *ctx) +uint64_t ZyDisBaseDataSource_GetPosition(const ZyDisBaseDataSourceContext *ctx) { - assert(VXBaseDataSource_cthiz(ctx)->getPosition); - return VXBaseDataSource_cthiz(ctx)->getPosition(ctx); + assert(ZyDisBaseDataSource_cthiz(ctx)->getPosition); + return ZyDisBaseDataSource_cthiz(ctx)->getPosition(ctx); } -bool VXBaseDataSource_SetPosition(VXBaseDataSourceContext *ctx, uint64_t position) +bool ZyDisBaseDataSource_SetPosition(ZyDisBaseDataSourceContext *ctx, uint64_t position) { - assert(VXBaseDataSource_thiz(ctx)->setPosition); - return VXBaseDataSource_thiz(ctx)->setPosition(ctx, position); + assert(ZyDisBaseDataSource_thiz(ctx)->setPosition); + return ZyDisBaseDataSource_thiz(ctx)->setPosition(ctx, position); } -/* VXMemoryDataSource -------------------------------------------------------------------------- */ +/* ZyDisMemoryDataSource -------------------------------------------------------------------------- */ -void VXMemoryDataSource_Construct( - VXBaseDataSourceContext *ctx, const void* buffer, size_t bufferLen) +void ZyDisMemoryDataSource_Construct( + ZyDisBaseDataSourceContext *ctx, const void* buffer, size_t bufferLen) { - VXBaseDataSource_Construct(ctx); - VXMemoryDataSource *thiz = VXMemoryDataSource_thiz(ctx); + ZyDisBaseDataSource_Construct(ctx); + ZyDisMemoryDataSource *thiz = ZyDisMemoryDataSource_thiz(ctx); - thiz->super.destruct = &VXMemoryDataSource_Destruct; - thiz->super.internalInputPeek = &VXMemoryDataSource_InternalInputPeek; - thiz->super.internalInputNext = &VXMemoryDataSource_InternalInputNext; - thiz->super.isEndOfInput = &VXMemoryDataSource_IsEndOfInput; - thiz->super.getPosition = &VXMemoryDataSource_GetPosition; - thiz->super.setPosition = &VXMemoryDataSource_SetPosition; + thiz->super.destruct = &ZyDisMemoryDataSource_Destruct; + thiz->super.internalInputPeek = &ZyDisMemoryDataSource_InternalInputPeek; + thiz->super.internalInputNext = &ZyDisMemoryDataSource_InternalInputNext; + thiz->super.isEndOfInput = &ZyDisMemoryDataSource_IsEndOfInput; + thiz->super.getPosition = &ZyDisMemoryDataSource_GetPosition; + thiz->super.setPosition = &ZyDisMemoryDataSource_SetPosition; thiz->inputBuffer = buffer; thiz->inputBufferLen = bufferLen; thiz->inputBufferPos = 0; } -void VXMemoryDataSource_Destruct(VXBaseDataSourceContext *ctx) +void ZyDisMemoryDataSource_Destruct(ZyDisBaseDataSourceContext *ctx) { // Nothing to destruct ourselfes, just call parent destructor - VXBaseDataSource_Destruct(ctx); + ZyDisBaseDataSource_Destruct(ctx); } -VXBaseDataSourceContext* VXMemoryDataSource_Create( +ZyDisBaseDataSourceContext* ZyDisMemoryDataSource_Create( const void* buffer, size_t bufferLen) { - VXMemoryDataSource *thiz = malloc(sizeof(VXMemoryDataSource)); - VXBaseDataSourceContext *ctx = malloc(sizeof(VXBaseDataSourceContext)); + ZyDisMemoryDataSource *thiz = malloc(sizeof(ZyDisMemoryDataSource)); + ZyDisBaseDataSourceContext *ctx = malloc(sizeof(ZyDisBaseDataSourceContext)); if (!thiz || !ctx) { @@ -541,56 +541,56 @@ VXBaseDataSourceContext* VXMemoryDataSource_Create( ctx->d.type = TYPE_MEMORYDATASOURCE; ctx->d.ptr = thiz; - VXMemoryDataSource_Construct(ctx, buffer, bufferLen); + ZyDisMemoryDataSource_Construct(ctx, buffer, bufferLen); return ctx; } -static uint8_t VXMemoryDataSource_InternalInputPeek(VXBaseDataSourceContext *ctx) +static uint8_t ZyDisMemoryDataSource_InternalInputPeek(ZyDisBaseDataSourceContext *ctx) { - VXMemoryDataSource *thiz = VXMemoryDataSource_thiz(ctx); + ZyDisMemoryDataSource *thiz = ZyDisMemoryDataSource_thiz(ctx); return *((const uint8_t*)thiz->inputBuffer + thiz->inputBufferPos); } -static uint8_t VXMemoryDataSource_InternalInputNext(VXBaseDataSourceContext *ctx) +static uint8_t ZyDisMemoryDataSource_InternalInputNext(ZyDisBaseDataSourceContext *ctx) { - VXMemoryDataSource *thiz = VXMemoryDataSource_thiz(ctx); + ZyDisMemoryDataSource *thiz = ZyDisMemoryDataSource_thiz(ctx); ++thiz->inputBufferPos; return *((const uint8_t*)thiz->inputBuffer + thiz->inputBufferPos - 1); } -static bool VXMemoryDataSource_IsEndOfInput(const VXBaseDataSourceContext *ctx) +static bool ZyDisMemoryDataSource_IsEndOfInput(const ZyDisBaseDataSourceContext *ctx) { - const VXMemoryDataSource *thiz = VXMemoryDataSource_cthiz(ctx); + const ZyDisMemoryDataSource *thiz = ZyDisMemoryDataSource_cthiz(ctx); return (thiz->inputBufferPos >= thiz->inputBufferLen); } -static uint64_t VXMemoryDataSource_GetPosition(const VXBaseDataSourceContext *ctx) +static uint64_t ZyDisMemoryDataSource_GetPosition(const ZyDisBaseDataSourceContext *ctx) { - return VXMemoryDataSource_cthiz(ctx)->inputBufferPos; + return ZyDisMemoryDataSource_cthiz(ctx)->inputBufferPos; } -static bool VXMemoryDataSource_SetPosition(VXBaseDataSourceContext *ctx, uint64_t position) +static bool ZyDisMemoryDataSource_SetPosition(ZyDisBaseDataSourceContext *ctx, uint64_t position) { - VXMemoryDataSource *thiz = VXMemoryDataSource_thiz(ctx); + ZyDisMemoryDataSource *thiz = ZyDisMemoryDataSource_thiz(ctx); thiz->inputBufferPos = position; return thiz->super.isEndOfInput(ctx); } -/* VXCustomDataSource -------------------------------------------------------------------------- */ +/* ZyDisCustomDataSource -------------------------------------------------------------------------- */ -static void VXCustomDataSource_Construct(VXBaseDataSourceContext *ctx, - VXBaseDataSource_InputCallback inputPeekCb, - VXBaseDataSource_InputCallback inputNextCb, - VXBaseDataSource_IsEndOfInputCallback isEndOfInputCb, - VXBaseDataSource_GetPositionCallback getPositionCb, - VXBaseDataSource_SetPositionCallback setPositionCb, - VXBaseDataSource_DestructionCallback destructionCb) +static void ZyDisCustomDataSource_Construct(ZyDisBaseDataSourceContext *ctx, + ZyDisBaseDataSource_InputCallback inputPeekCb, + ZyDisBaseDataSource_InputCallback inputNextCb, + ZyDisBaseDataSource_IsEndOfInputCallback isEndOfInputCb, + ZyDisBaseDataSource_GetPositionCallback getPositionCb, + ZyDisBaseDataSource_SetPositionCallback setPositionCb, + ZyDisBaseDataSource_DestructionCallback destructionCb) { - VXBaseDataSource_Construct(ctx); + ZyDisBaseDataSource_Construct(ctx); - VXCustomDataSource *thiz = VXCustomDataSource_thiz(ctx); - thiz->super.destruct = &VXCustomDataSource_Destruct; + ZyDisCustomDataSource *thiz = ZyDisCustomDataSource_thiz(ctx); + thiz->super.destruct = &ZyDisCustomDataSource_Destruct; thiz->super.internalInputPeek = inputPeekCb; thiz->super.internalInputNext = inputNextCb; thiz->super.isEndOfInput = isEndOfInputCb; @@ -600,28 +600,28 @@ static void VXCustomDataSource_Construct(VXBaseDataSourceContext *ctx, thiz->userDestruct = destructionCb; } -static void VXCustomDataSource_Destruct(VXBaseDataSourceContext *ctx) +static void ZyDisCustomDataSource_Destruct(ZyDisBaseDataSourceContext *ctx) { - VXCustomDataSource *thiz = VXCustomDataSource_thiz(ctx); + ZyDisCustomDataSource *thiz = ZyDisCustomDataSource_thiz(ctx); if (thiz->userDestruct) { thiz->userDestruct(ctx); } - VXBaseDataSource_Destruct(ctx); + ZyDisBaseDataSource_Destruct(ctx); } -VXBaseDataSourceContext* VXCustomDataSource_Create( - VXBaseDataSource_InputCallback inputPeekCb, - VXBaseDataSource_InputCallback inputNextCb, - VXBaseDataSource_IsEndOfInputCallback isEndOfInputCb, - VXBaseDataSource_GetPositionCallback getPositionCb, - VXBaseDataSource_SetPositionCallback setPositionCb, - VXBaseDataSource_DestructionCallback destructionCb) +ZyDisBaseDataSourceContext* ZyDisCustomDataSource_Create( + ZyDisBaseDataSource_InputCallback inputPeekCb, + ZyDisBaseDataSource_InputCallback inputNextCb, + ZyDisBaseDataSource_IsEndOfInputCallback isEndOfInputCb, + ZyDisBaseDataSource_GetPositionCallback getPositionCb, + ZyDisBaseDataSource_SetPositionCallback setPositionCb, + ZyDisBaseDataSource_DestructionCallback destructionCb) { - VXCustomDataSource *thiz = malloc(sizeof(VXCustomDataSource)); - VXBaseDataSourceContext *ctx = malloc(sizeof(VXBaseDataSourceContext)); + ZyDisCustomDataSource *thiz = malloc(sizeof(ZyDisCustomDataSource)); + ZyDisBaseDataSourceContext *ctx = malloc(sizeof(ZyDisBaseDataSourceContext)); if (!thiz || !ctx) { @@ -640,19 +640,19 @@ VXBaseDataSourceContext* VXCustomDataSource_Create( ctx->d.type = TYPE_CUSTOMDATASOURCE; ctx->d.ptr = thiz; - VXCustomDataSource_Construct(ctx, inputPeekCb, inputNextCb, isEndOfInputCb, getPositionCb, + ZyDisCustomDataSource_Construct(ctx, inputPeekCb, inputNextCb, isEndOfInputCb, getPositionCb, setPositionCb, destructionCb); return ctx; } -/* VXInstructionDecoder ------------------------------------------------------------------------ */ +/* ZyDisInstructionDecoder ------------------------------------------------------------------------ */ -void VXInstructionDecoder_Construct(VXInstructionDecoderContext *ctx, - VXBaseDataSourceContext *input, VXDisassemblerMode disassemblerMode, - VXInstructionSetVendor preferredVendor, uint64_t instructionPointer) +void ZyDisInstructionDecoder_Construct(ZyDisInstructionDecoderContext *ctx, + ZyDisBaseDataSourceContext *input, ZyDisDisassemblerMode disassemblerMode, + ZyDisInstructionSetVendor preferredVendor, uint64_t instructionPointer) { - VXInstructionDecoder *thiz = VXInstructionDecoder_thiz(ctx); + ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_thiz(ctx); thiz->dataSource = input; thiz->disassemblerMode = disassemblerMode; @@ -660,22 +660,22 @@ void VXInstructionDecoder_Construct(VXInstructionDecoderContext *ctx, thiz->instructionPointer = instructionPointer; } -void VXInstructionDecoder_Destruct(VXInstructionDecoderContext *ctx) +void ZyDisInstructionDecoder_Destruct(ZyDisInstructionDecoderContext *ctx) { - VX_UNUSED(ctx); + ZYDIS_UNUSED(ctx); } -VXInstructionDecoderContext* VXInstructionDecoder_Create(void) +ZyDisInstructionDecoderContext* ZyDisInstructionDecoder_Create(void) { - return VXInstructionDecoder_CreateEx(NULL, DM_M32BIT, ISV_ANY, 0); + return ZyDisInstructionDecoder_CreateEx(NULL, DM_M32BIT, ISV_ANY, 0); } -VXInstructionDecoderContext* VXInstructionDecoder_CreateEx(VXBaseDataSourceContext *input, - VXDisassemblerMode disassemblerMode, VXInstructionSetVendor preferredVendor, +ZyDisInstructionDecoderContext* ZyDisInstructionDecoder_CreateEx(ZyDisBaseDataSourceContext *input, + ZyDisDisassemblerMode disassemblerMode, ZyDisInstructionSetVendor preferredVendor, uint64_t instructionPointer) { - VXInstructionDecoder *thiz = malloc(sizeof(VXInstructionDecoder)); - VXInstructionDecoderContext *ctx = malloc(sizeof(VXInstructionDecoderContext)); + ZyDisInstructionDecoder *thiz = malloc(sizeof(ZyDisInstructionDecoder)); + ZyDisInstructionDecoderContext *ctx = malloc(sizeof(ZyDisInstructionDecoderContext)); if (!thiz || !ctx) { @@ -694,24 +694,24 @@ VXInstructionDecoderContext* VXInstructionDecoder_CreateEx(VXBaseDataSourceConte ctx->d.ptr = thiz; ctx->d.type = TYPE_INSTRUCTIONDECODER; - VXInstructionDecoder_Construct(ctx, input, disassemblerMode, + ZyDisInstructionDecoder_Construct(ctx, input, disassemblerMode, preferredVendor, instructionPointer); return ctx; } -void VXInstructionDecoder_Release(VXInstructionDecoderContext *ctx) +void ZyDisInstructionDecoder_Release(ZyDisInstructionDecoderContext *ctx) { - VXInstructionDecoder_Destruct(ctx); + ZyDisInstructionDecoder_Destruct(ctx); free(ctx->d.ptr); free(ctx); } -static uint8_t VXInstructionDecoder_InputPeek( - VXInstructionDecoderContext *ctx, VXInstructionInfo *info) +static uint8_t ZyDisInstructionDecoder_InputPeek( + ZyDisInstructionDecoderContext *ctx, ZyDisInstructionInfo *info) { - VXInstructionDecoder *thiz = VXInstructionDecoder_thiz(ctx); + ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_thiz(ctx); if (!thiz->dataSource) { @@ -719,14 +719,14 @@ static uint8_t VXInstructionDecoder_InputPeek( return 0; } - return VXBaseDataSource_InputPeek(thiz->dataSource, info); + return ZyDisBaseDataSource_InputPeek(thiz->dataSource, info); } -#define VXINSTRUCTIONDECODER_INPUTNEXT_N(n) \ - static uint##n##_t VXInstructionDecoder_InputNext##n( \ - VXInstructionDecoderContext *ctx, VXInstructionInfo *info) \ +#define ZyDisINSTRUCTIONDECODER_INPUTNEXT_N(n) \ + static uint##n##_t ZyDisInstructionDecoder_InputNext##n( \ + ZyDisInstructionDecoderContext *ctx, ZyDisInstructionInfo *info) \ { \ - VXInstructionDecoder *thiz = VXInstructionDecoder_thiz(ctx); \ + ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_thiz(ctx); \ \ if (!thiz->dataSource) \ { \ @@ -734,82 +734,82 @@ static uint8_t VXInstructionDecoder_InputPeek( return 0; \ } \ \ - return VXBaseDataSource_InputNext##n(thiz->dataSource, info); \ + return ZyDisBaseDataSource_InputNext##n(thiz->dataSource, info); \ } -VXINSTRUCTIONDECODER_INPUTNEXT_N(8) -VXINSTRUCTIONDECODER_INPUTNEXT_N(16) -VXINSTRUCTIONDECODER_INPUTNEXT_N(32) -VXINSTRUCTIONDECODER_INPUTNEXT_N(64) -#undef VXINSTRUCTIONDECODER_INPUTNEXT_N +ZyDisINSTRUCTIONDECODER_INPUTNEXT_N(8) +ZyDisINSTRUCTIONDECODER_INPUTNEXT_N(16) +ZyDisINSTRUCTIONDECODER_INPUTNEXT_N(32) +ZyDisINSTRUCTIONDECODER_INPUTNEXT_N(64) +#undef ZyDisINSTRUCTIONDECODER_INPUTNEXT_N -static uint8_t VXInstructionDecoder_InputCurrent(const VXInstructionDecoderContext *ctx) +static uint8_t ZyDisInstructionDecoder_InputCurrent(const ZyDisInstructionDecoderContext *ctx) { - const VXInstructionDecoder *thiz = VXInstructionDecoder_cthiz(ctx); + const ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_cthiz(ctx); if (!thiz->dataSource) { return 0; } - return VXBaseDataSource_InputCurrent(thiz->dataSource); + return ZyDisBaseDataSource_InputCurrent(thiz->dataSource); } -VXBaseDataSourceContext* VXInstructionDecoder_GetDataSource( - const VXInstructionDecoderContext *ctx) +ZyDisBaseDataSourceContext* ZyDisInstructionDecoder_GetDataSource( + const ZyDisInstructionDecoderContext *ctx) { - return VXInstructionDecoder_cthiz(ctx)->dataSource; + return ZyDisInstructionDecoder_cthiz(ctx)->dataSource; } -void VXInstructionDecoder_SetDataSource( - VXInstructionDecoderContext *ctx, VXBaseDataSourceContext *input) +void ZyDisInstructionDecoder_SetDataSource( + ZyDisInstructionDecoderContext *ctx, ZyDisBaseDataSourceContext *input) { - VXInstructionDecoder_thiz(ctx)->dataSource = input; + ZyDisInstructionDecoder_thiz(ctx)->dataSource = input; } -VXDisassemblerMode VXInstructionDecoder_GetDisassemblerMode( - const VXInstructionDecoderContext *ctx) +ZyDisDisassemblerMode ZyDisInstructionDecoder_GetDisassemblerMode( + const ZyDisInstructionDecoderContext *ctx) { - return VXInstructionDecoder_cthiz(ctx)->disassemblerMode; + return ZyDisInstructionDecoder_cthiz(ctx)->disassemblerMode; } -void VXInstructionDecoder_SetDisassemblerMode(VXInstructionDecoderContext *ctx, - VXDisassemblerMode disassemblerMode) +void ZyDisInstructionDecoder_SetDisassemblerMode(ZyDisInstructionDecoderContext *ctx, + ZyDisDisassemblerMode disassemblerMode) { - VXInstructionDecoder_thiz(ctx)->disassemblerMode = disassemblerMode; + ZyDisInstructionDecoder_thiz(ctx)->disassemblerMode = disassemblerMode; } -VXInstructionSetVendor VXInstructionDecoder_GetPreferredVendor( - const VXInstructionDecoderContext *ctx) +ZyDisInstructionSetVendor ZyDisInstructionDecoder_GetPreferredVendor( + const ZyDisInstructionDecoderContext *ctx) { - return VXInstructionDecoder_cthiz(ctx)->preferredVendor; + return ZyDisInstructionDecoder_cthiz(ctx)->preferredVendor; } -void VXInstructionDecoder_SetPreferredVendor(VXInstructionDecoderContext *ctx, - VXInstructionSetVendor preferredVendor) +void ZyDisInstructionDecoder_SetPreferredVendor(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionSetVendor preferredVendor) { - VXInstructionDecoder_thiz(ctx)->preferredVendor = preferredVendor; + ZyDisInstructionDecoder_thiz(ctx)->preferredVendor = preferredVendor; } -uint64_t VXInstructionDecoder_GetInstructionPointer( - const VXInstructionDecoderContext *ctx) +uint64_t ZyDisInstructionDecoder_GetInstructionPointer( + const ZyDisInstructionDecoderContext *ctx) { - return VXInstructionDecoder_cthiz(ctx)->instructionPointer; + return ZyDisInstructionDecoder_cthiz(ctx)->instructionPointer; } -void VXInstructionDecoder_SetInstructionPointer(VXInstructionDecoderContext *ctx, +void ZyDisInstructionDecoder_SetInstructionPointer(ZyDisInstructionDecoderContext *ctx, uint64_t instructionPointer) { - VXInstructionDecoder_thiz(ctx)->instructionPointer = instructionPointer; + ZyDisInstructionDecoder_thiz(ctx)->instructionPointer = instructionPointer; } -static bool VXInstructionDecoder_DecodeRegisterOperand( - const VXInstructionDecoderContext *ctx, VXInstructionInfo *info, VXOperandInfo *operand, - VXRegisterClass registerClass, uint8_t registerId, VXDefinedOperandSize operandSize) +static bool ZyDisInstructionDecoder_DecodeRegisterOperand( + const ZyDisInstructionDecoderContext *ctx, ZyDisInstructionInfo *info, ZyDisOperandInfo *operand, + ZyDisRegisterClass registerClass, uint8_t registerId, ZyDisDefinedOperandSize operandSize) { - VXRegister reg = REG_NONE; - uint16_t size = VXInstructionDecoder_GetEffectiveOperandSize(ctx, info, operandSize); - const VXInstructionDecoder *thiz = VXInstructionDecoder_cthiz(ctx); + ZyDisRegister reg = REG_NONE; + uint16_t size = ZyDisInstructionDecoder_GetEffectiveOperandSize(ctx, info, operandSize); + const ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_cthiz(ctx); switch (registerClass) { @@ -882,11 +882,11 @@ static bool VXInstructionDecoder_DecodeRegisterOperand( return true; } -static bool VXInstructionDecoder_DecodeRegisterMemoryOperand(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info, VXOperandInfo *operand, VXRegisterClass registerClass, - VXDefinedOperandSize operandSize) +static bool ZyDisInstructionDecoder_DecodeRegisterMemoryOperand(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info, ZyDisOperandInfo *operand, ZyDisRegisterClass registerClass, + ZyDisDefinedOperandSize operandSize) { - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } @@ -894,21 +894,21 @@ static bool VXInstructionDecoder_DecodeRegisterMemoryOperand(VXInstructionDecode // Decode register operand if (info->modrm_mod == 3) { - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, registerClass, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, registerClass, info->modrm_rm_ext, operandSize); } // Decode memory operand uint8_t offset = 0; operand->type = OPTYPE_MEMORY; - operand->size = VXInstructionDecoder_GetEffectiveOperandSize(ctx, info, operandSize); + operand->size = ZyDisInstructionDecoder_GetEffectiveOperandSize(ctx, info, operandSize); switch (info->address_mode) { case 16: { - static const VXRegister bases[] = { + static const ZyDisRegister bases[] = { REG_BX, REG_BX, REG_BP, REG_BP, REG_SI, REG_DI, REG_BP, REG_BX }; - static const VXRegister indices[] = { + static const ZyDisRegister indices[] = { REG_SI, REG_DI, REG_SI, REG_DI, REG_NONE, REG_NONE, REG_NONE, REG_NONE }; operand->base = bases[info->modrm_rm_ext & 0x07]; @@ -946,7 +946,7 @@ static bool VXInstructionDecoder_DecodeRegisterMemoryOperand(VXInstructionDecode } if ((info->modrm_rm_ext & 0x07) == 4) { - if (!VXInstructionDecoder_DecodeSIB(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeSIB(ctx, info)) { return false; } @@ -1004,7 +1004,7 @@ static bool VXInstructionDecoder_DecodeRegisterMemoryOperand(VXInstructionDecode } if ((info->modrm_rm_ext & 0x07) == 4) { - if (!VXInstructionDecoder_DecodeSIB(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeSIB(ctx, info)) { return false; } @@ -1046,7 +1046,7 @@ static bool VXInstructionDecoder_DecodeRegisterMemoryOperand(VXInstructionDecode } if (offset) { - if (!VXInstructionDecoder_DecodeDisplacement(ctx, info, operand, offset)) + if (!ZyDisInstructionDecoder_DecodeDisplacement(ctx, info, operand, offset)) { return false; } @@ -1057,24 +1057,24 @@ static bool VXInstructionDecoder_DecodeRegisterMemoryOperand(VXInstructionDecode return true; } -static bool VXInstructionDecoder_DecodeImmediate(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info, VXOperandInfo *operand, VXDefinedOperandSize operandSize) +static bool ZyDisInstructionDecoder_DecodeImmediate(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info, ZyDisOperandInfo *operand, ZyDisDefinedOperandSize operandSize) { operand->type = OPTYPE_IMMEDIATE; - operand->size = VXInstructionDecoder_GetEffectiveOperandSize(ctx, info, operandSize); + operand->size = ZyDisInstructionDecoder_GetEffectiveOperandSize(ctx, info, operandSize); switch (operand->size) { case 8: - operand->lval.ubyte = VXInstructionDecoder_InputNext8(ctx, info); + operand->lval.ubyte = ZyDisInstructionDecoder_InputNext8(ctx, info); break; case 16: - operand->lval.uword = VXInstructionDecoder_InputNext16(ctx, info); + operand->lval.uword = ZyDisInstructionDecoder_InputNext16(ctx, info); break; case 32: - operand->lval.udword = VXInstructionDecoder_InputNext32(ctx, info); + operand->lval.udword = ZyDisInstructionDecoder_InputNext32(ctx, info); break; case 64: - operand->lval.uqword = VXInstructionDecoder_InputNext64(ctx, info); + operand->lval.uqword = ZyDisInstructionDecoder_InputNext64(ctx, info); break; default: // TODO: Maybe return false instead of assert @@ -1087,26 +1087,26 @@ static bool VXInstructionDecoder_DecodeImmediate(VXInstructionDecoderContext *ct return true; } -static bool VXInstructionDecoder_DecodeDisplacement(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info, VXOperandInfo *operand, uint8_t size) +static bool ZyDisInstructionDecoder_DecodeDisplacement(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info, ZyDisOperandInfo *operand, uint8_t size) { switch (size) { case 8: operand->offset = 8; - operand->lval.ubyte = VXInstructionDecoder_InputNext8(ctx, info); + operand->lval.ubyte = ZyDisInstructionDecoder_InputNext8(ctx, info); break; case 16: operand->offset = 16; - operand->lval.uword = VXInstructionDecoder_InputNext16(ctx, info); + operand->lval.uword = ZyDisInstructionDecoder_InputNext16(ctx, info); break; case 32: operand->offset = 32; - operand->lval.udword = VXInstructionDecoder_InputNext32(ctx, info); + operand->lval.udword = ZyDisInstructionDecoder_InputNext32(ctx, info); break; case 64: operand->offset = 64; - operand->lval.uqword = VXInstructionDecoder_InputNext64(ctx, info); + operand->lval.uqword = ZyDisInstructionDecoder_InputNext64(ctx, info); break; default: // TODO: Maybe return false instead of assert @@ -1119,12 +1119,12 @@ static bool VXInstructionDecoder_DecodeDisplacement(VXInstructionDecoderContext return true; } -static bool VXInstructionDecoder_DecodeModrm(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info) +static bool ZyDisInstructionDecoder_DecodeModrm(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info) { if (!(info->flags & IF_MODRM)) { - info->modrm = VXInstructionDecoder_InputNext8(ctx, info); + info->modrm = ZyDisInstructionDecoder_InputNext8(ctx, info); if (!info->modrm && (info->flags & IF_ERROR_MASK)) { return false; @@ -1144,15 +1144,15 @@ static bool VXInstructionDecoder_DecodeModrm(VXInstructionDecoderContext *ctx, return true; } -static bool VXInstructionDecoder_DecodeSIB(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info) +static bool ZyDisInstructionDecoder_DecodeSIB(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info) { assert(info->flags & IF_MODRM); assert((info->modrm_rm & 0x7) == 4); if (!(info->flags & IF_SIB)) { - info->sib = VXInstructionDecoder_InputNext8(ctx, info); + info->sib = ZyDisInstructionDecoder_InputNext8(ctx, info); if (!info->sib && (info->flags & IF_ERROR_MASK)) { return false; @@ -1170,22 +1170,22 @@ static bool VXInstructionDecoder_DecodeSIB(VXInstructionDecoderContext *ctx, return true; } -static bool VXInstructionDecoder_DecodeVex(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info) +static bool ZyDisInstructionDecoder_DecodeVex(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info) { if (!(info->flags & IF_PREFIX_VEX)) { - info->vex_op = VXInstructionDecoder_InputCurrent(ctx); + info->vex_op = ZyDisInstructionDecoder_InputCurrent(ctx); switch (info->vex_op) { case 0xC4: - info->vex_b1 = VXInstructionDecoder_InputNext8(ctx, info); + info->vex_b1 = ZyDisInstructionDecoder_InputNext8(ctx, info); if (!info->vex_b1 || (info->flags & IF_ERROR_MASK)) { return false; } - info->vex_b2 = VXInstructionDecoder_InputNext8(ctx, info); + info->vex_b2 = ZyDisInstructionDecoder_InputNext8(ctx, info); if (!info->vex_b2 || (info->flags & IF_ERROR_MASK)) { return false; @@ -1201,7 +1201,7 @@ static bool VXInstructionDecoder_DecodeVex(VXInstructionDecoderContext *ctx, info->vex_pp = (info->vex_b2 >> 0) & 0x03; break; case 0xC5: - info->vex_b1 = VXInstructionDecoder_InputNext8(ctx, info); + info->vex_b1 = ZyDisInstructionDecoder_InputNext8(ctx, info); if (!info->vex_b1 || (info->flags & IF_ERROR_MASK)) { return false; @@ -1231,11 +1231,11 @@ static bool VXInstructionDecoder_DecodeVex(VXInstructionDecoderContext *ctx, return true; } -static uint16_t VXInstructionDecoder_GetEffectiveOperandSize( - const VXInstructionDecoderContext *ctx, const VXInstructionInfo *info, - VXDefinedOperandSize operandSize) +static uint16_t ZyDisInstructionDecoder_GetEffectiveOperandSize( + const ZyDisInstructionDecoderContext *ctx, const ZyDisInstructionInfo *info, + ZyDisDefinedOperandSize operandSize) { - const VXInstructionDecoder *thiz = VXInstructionDecoder_cthiz(ctx); + const ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_cthiz(ctx); switch (operandSize) { @@ -1250,21 +1250,21 @@ static uint16_t VXInstructionDecoder_GetEffectiveOperandSize( case DOS_X: assert(info->vex_op != 0); return (info->eff_vex_l) ? - VXInstructionDecoder_GetEffectiveOperandSize(ctx, info, DOS_QQ) : - VXInstructionDecoder_GetEffectiveOperandSize(ctx, info, DOS_DQ); + ZyDisInstructionDecoder_GetEffectiveOperandSize(ctx, info, DOS_QQ) : + ZyDisInstructionDecoder_GetEffectiveOperandSize(ctx, info, DOS_DQ); case DOS_RDQ: return (thiz->disassemblerMode == DM_M64BIT) ? 64 : 32; default: - return VXGetSimpleOperandSize(operandSize); + return ZyDisGetSimpleOperandSize(operandSize); } } -static bool VXInstructionDecoder_DecodeOperands(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info) +static bool ZyDisInstructionDecoder_DecodeOperands(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info) { assert(info->instrDefinition); // Always try to decode the first operand - if (!VXInstructionDecoder_DecodeOperand(ctx, info, &info->operand[0], + if (!ZyDisInstructionDecoder_DecodeOperand(ctx, info, &info->operand[0], info->instrDefinition->operand[0].type, info->instrDefinition->operand[0].size)) { return false; @@ -1275,7 +1275,7 @@ static bool VXInstructionDecoder_DecodeOperands(VXInstructionDecoderContext *ctx { if (info->operand[i - 1].type != OPTYPE_NONE) { - if (!VXInstructionDecoder_DecodeOperand(ctx, info, &info->operand[i], + if (!ZyDisInstructionDecoder_DecodeOperand(ctx, info, &info->operand[i], info->instrDefinition->operand[i].type, info->instrDefinition->operand[i].size)) { return false; @@ -1317,11 +1317,11 @@ static bool VXInstructionDecoder_DecodeOperands(VXInstructionDecoderContext *ctx return true; } -static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info, VXOperandInfo *operand, VXDefinedOperandType operandType, - VXDefinedOperandSize operandSize) +static bool ZyDisInstructionDecoder_DecodeOperand(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info, ZyDisOperandInfo *operand, ZyDisDefinedOperandType operandType, + ZyDisDefinedOperandSize operandSize) { - const VXInstructionDecoder *thiz = VXInstructionDecoder_thiz(ctx); + const ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_thiz(ctx); operand->type = OPTYPE_NONE; switch (operandType) @@ -1333,14 +1333,14 @@ static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, if (info->operand_mode == 16) { operand->size = 32; - operand->lval.ptr.off = VXInstructionDecoder_InputNext16(ctx, info); - operand->lval.ptr.seg = VXInstructionDecoder_InputNext16(ctx, info); + operand->lval.ptr.off = ZyDisInstructionDecoder_InputNext16(ctx, info); + operand->lval.ptr.seg = ZyDisInstructionDecoder_InputNext16(ctx, info); } else { operand->size = 48; - operand->lval.ptr.off = VXInstructionDecoder_InputNext32(ctx, info); - operand->lval.ptr.seg = VXInstructionDecoder_InputNext16(ctx, info); + operand->lval.ptr.off = ZyDisInstructionDecoder_InputNext32(ctx, info); + operand->lval.ptr.seg = ZyDisInstructionDecoder_InputNext16(ctx, info); } if ((!operand->lval.ptr.off || !operand->lval.ptr.seg) && (info->flags & IF_ERROR_MASK)) @@ -1350,18 +1350,18 @@ static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, break; case DOT_C: - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_CONTROL, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_CONTROL, info->modrm_reg_ext, operandSize); case DOT_D: - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_DEBUG, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_DEBUG, info->modrm_reg_ext, operandSize); case DOT_F: // TODO: FAR flag @@ -1373,29 +1373,29 @@ static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, return false; } case DOT_E: - return VXInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, + return ZyDisInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, RC_GENERAL_PURPOSE, operandSize); case DOT_G: - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_GENERAL_PURPOSE, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_GENERAL_PURPOSE, info->modrm_reg_ext, operandSize); case DOT_H: assert(info->vex_op != 0); - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_XMM, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_XMM, (0xF & ~info->vex_vvvv), operandSize); case DOT_sI: operand->signed_lval = true; case DOT_I: - return VXInstructionDecoder_DecodeImmediate(ctx, info, operand, operandSize); + return ZyDisInstructionDecoder_DecodeImmediate(ctx, info, operand, operandSize); case DOT_I1: operand->type = OPTYPE_CONSTANT; operand->lval.udword = 1; break; case DOT_J: - if (!VXInstructionDecoder_DecodeImmediate(ctx, info, operand, operandSize)) + if (!ZyDisInstructionDecoder_DecodeImmediate(ctx, info, operand, operandSize)) { return false; } @@ -1406,23 +1406,23 @@ static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, case DOT_L: { assert(info->vex_op != 0); - uint8_t imm = VXInstructionDecoder_InputNext8(ctx, info); + uint8_t imm = ZyDisInstructionDecoder_InputNext8(ctx, info); if (!imm && (info->flags & IF_ERROR_MASK)) { return false; } uint8_t mask = (thiz->disassemblerMode == DM_M64BIT) ? 0xF : 0x7; - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_XMM, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_XMM, mask & (imm >> 4), operandSize); } case DOT_MR: - return VXInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, + return ZyDisInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, RC_GENERAL_PURPOSE, info->modrm_mod == 3 ? - VXGetComplexOperandRegSize(operandSize) : VXGetComplexOperandMemSize(operandSize)); + ZyDisGetComplexOperandRegSize(operandSize) : ZyDisGetComplexOperandMemSize(operandSize)); case DOT_MU: - return VXInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, RC_XMM, + return ZyDisInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, RC_XMM, info->modrm_mod == 3 ? - VXGetComplexOperandRegSize(operandSize) : VXGetComplexOperandMemSize(operandSize)); + ZyDisGetComplexOperandRegSize(operandSize) : ZyDisGetComplexOperandMemSize(operandSize)); case DOT_N: // ModR/M byte may refer only to memory if (info->modrm_mod != 3) @@ -1431,21 +1431,21 @@ static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, return false; } case DOT_Q: - return VXInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, RC_MMX, + return ZyDisInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, RC_MMX, operandSize); case DOT_O: operand->type = OPTYPE_MEMORY; operand->base = REG_NONE; operand->index = REG_NONE; operand->scale = 0; - operand->size = VXInstructionDecoder_GetEffectiveOperandSize(ctx, info, operandSize); - return VXInstructionDecoder_DecodeDisplacement(ctx, info, operand, info->address_mode); + operand->size = ZyDisInstructionDecoder_GetEffectiveOperandSize(ctx, info, operandSize); + return ZyDisInstructionDecoder_DecodeDisplacement(ctx, info, operand, info->address_mode); case DOT_P: - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_MMX, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_MMX, info->modrm_reg_ext, operandSize); case DOT_R: // ModR/M byte may refer only to memory @@ -1454,14 +1454,14 @@ static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, info->flags |= IF_ERROR_OPERAND; return false; } - return VXInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, + return ZyDisInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, RC_GENERAL_PURPOSE, operandSize); case DOT_S: - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_SEGMENT, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_SEGMENT, info->modrm_reg_ext, operandSize); case DOT_U: // ModR/M byte may refer only to memory @@ -1471,14 +1471,14 @@ static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, return false; } case DOT_W: - return VXInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, RC_XMM, + return ZyDisInstructionDecoder_DecodeRegisterMemoryOperand(ctx, info, operand, RC_XMM, operandSize); case DOT_V: - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_XMM, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_XMM, info->modrm_reg_ext, operandSize); case DOT_R0: case DOT_R1: @@ -1488,25 +1488,25 @@ static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, case DOT_R5: case DOT_R6: case DOT_R7: - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_GENERAL_PURPOSE, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_GENERAL_PURPOSE, (uint8_t)((info->eff_rexvex_b << 3) | operandType - DOT_R0), operandSize); case DOT_AL: case DOT_AX: case DOT_EAX: case DOT_RAX: - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_GENERAL_PURPOSE, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_GENERAL_PURPOSE, 0, operandSize); case DOT_CL: case DOT_CX: case DOT_ECX: case DOT_RCX: - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_GENERAL_PURPOSE, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_GENERAL_PURPOSE, 1, operandSize); case DOT_DL: case DOT_DX: case DOT_EDX: case DOT_RDX: - return VXInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_GENERAL_PURPOSE, + return ZyDisInstructionDecoder_DecodeRegisterOperand(ctx, info, operand, RC_GENERAL_PURPOSE, 2, operandSize); case DOT_ES: case DOT_CS: @@ -1544,10 +1544,10 @@ static bool VXInstructionDecoder_DecodeOperand(VXInstructionDecoderContext *ctx, return true; } -static void VXInstructionDecoder_ResolveOperandAndAddressMode( - const VXInstructionDecoderContext *ctx, VXInstructionInfo *info) +static void ZyDisInstructionDecoder_ResolveOperandAndAddressMode( + const ZyDisInstructionDecoderContext *ctx, ZyDisInstructionInfo *info) { - const VXInstructionDecoder *thiz = VXInstructionDecoder_cthiz(ctx); + const ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_cthiz(ctx); assert(info->instrDefinition); switch (thiz->disassemblerMode) @@ -1581,10 +1581,10 @@ static void VXInstructionDecoder_ResolveOperandAndAddressMode( } } -static void VXInstructionDecoder_CalculateEffectiveRexVexValues( - const VXInstructionDecoderContext *ctx, VXInstructionInfo *info) +static void ZyDisInstructionDecoder_CalculateEffectiveRexVexValues( + const ZyDisInstructionDecoderContext *ctx, ZyDisInstructionInfo *info) { - VX_UNUSED(ctx); + ZYDIS_UNUSED(ctx); assert(info->instrDefinition); uint8_t rex = info->rex; @@ -1610,15 +1610,15 @@ static void VXInstructionDecoder_CalculateEffectiveRexVexValues( info->eff_vex_l = info->vex_l && (info->instrDefinition->flags & IDF_ACCEPTS_VEXL); } -static bool VXInstructionDecoder_DecodePrefixes(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info) +static bool ZyDisInstructionDecoder_DecodePrefixes(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info) { - VXInstructionDecoder *thiz = VXInstructionDecoder_thiz(ctx); + ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_thiz(ctx); bool done = false; do { - switch (VXInstructionDecoder_InputPeek(ctx, info)) + switch (ZyDisInstructionDecoder_InputPeek(ctx, info)) { case 0xF0: info->flags |= IF_PREFIX_LOCK; @@ -1665,10 +1665,10 @@ static bool VXInstructionDecoder_DecodePrefixes(VXInstructionDecoderContext *ctx break; default: if ((thiz->disassemblerMode == DM_M64BIT) && - (VXInstructionDecoder_InputCurrent(ctx) & 0xF0) == 0x40) + (ZyDisInstructionDecoder_InputCurrent(ctx) & 0xF0) == 0x40) { info->flags |= IF_PREFIX_REX; - info->rex = VXInstructionDecoder_InputCurrent(ctx); + info->rex = ZyDisInstructionDecoder_InputCurrent(ctx); } else { @@ -1679,7 +1679,7 @@ static bool VXInstructionDecoder_DecodePrefixes(VXInstructionDecoderContext *ctx // Increase the input offset, if a prefix was found if (!done) { - if (!VXInstructionDecoder_InputNext8(ctx, info) && (info->flags & IF_ERROR_MASK)) + if (!ZyDisInstructionDecoder_InputNext8(ctx, info) && (info->flags & IF_ERROR_MASK)) { return false; } @@ -1697,42 +1697,42 @@ static bool VXInstructionDecoder_DecodePrefixes(VXInstructionDecoderContext *ctx return true; } -static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info) +static bool ZyDisInstructionDecoder_DecodeOpcode(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info) { - VXInstructionDecoder *thiz = VXInstructionDecoder_thiz(ctx); + ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_thiz(ctx); // Read first opcode byte - if (!VXInstructionDecoder_InputNext8(ctx, info) && (info->flags & IF_ERROR_MASK)) + if (!ZyDisInstructionDecoder_InputNext8(ctx, info) && (info->flags & IF_ERROR_MASK)) { return false; } // Update instruction info - info->opcode[0] = VXInstructionDecoder_InputCurrent(ctx); + info->opcode[0] = ZyDisInstructionDecoder_InputCurrent(ctx); info->opcode_length = 1; // Iterate through opcode tree - VXOpcodeTreeNode node = VXGetOpcodeTreeChild(VXGetOpcodeTreeRoot(), - VXInstructionDecoder_InputCurrent(ctx)); - VXOpcodeTreeNodeType nodeType; + ZyDisOpcodeTreeNode node = ZyDisGetOpcodeTreeChild(ZyDisGetOpcodeTreeRoot(), + ZyDisInstructionDecoder_InputCurrent(ctx)); + ZyDisOpcodeTreeNodeType nodeType; do { uint16_t index = 0; - nodeType = VXGetOpcodeNodeType(node); + nodeType = ZyDisGetOpcodeNodeType(node); switch (nodeType) { case OTNT_INSTRUCTION_DEFINITION: { // Check for invalid instruction - if (VXGetOpcodeNodeValue(node) == 0) + if (ZyDisGetOpcodeNodeValue(node) == 0) { info->flags |= IF_ERROR_INVALID; return false; } // Get instruction definition - const VXInstructionDefinition *instrDefinition = VXGetInstructionDefinition(node); + const ZyDisInstructionDefinition *instrDefinition = ZyDisGetInstructionDefinition(node); // Check for invalid 64 bit instruction if ((thiz->disassemblerMode == DM_M64BIT) && (instrDefinition->flags & IDF_INVALID_64)) @@ -1744,11 +1744,11 @@ static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, info->instrDefinition = instrDefinition; info->mnemonic = instrDefinition->mnemonic; // Update effective REX/VEX values - VXInstructionDecoder_CalculateEffectiveRexVexValues(ctx, info); + ZyDisInstructionDecoder_CalculateEffectiveRexVexValues(ctx, info); // Resolve operand and address mode - VXInstructionDecoder_ResolveOperandAndAddressMode(ctx, info); + ZyDisInstructionDecoder_ResolveOperandAndAddressMode(ctx, info); // Decode operands - if (!VXInstructionDecoder_DecodeOperands(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeOperands(ctx, info)) { return false; } @@ -1756,20 +1756,20 @@ static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, return true; case OTNT_TABLE: // Read next opcode byte - if (!VXInstructionDecoder_InputNext8(ctx, info) && (info->flags & IF_ERROR_MASK)) + if (!ZyDisInstructionDecoder_InputNext8(ctx, info) && (info->flags & IF_ERROR_MASK)) { return false; } // Update instruction info assert((info->opcode_length > 0) && (info->opcode_length < 3)); - info->opcode[info->opcode_length] = VXInstructionDecoder_InputCurrent(ctx); + info->opcode[info->opcode_length] = ZyDisInstructionDecoder_InputCurrent(ctx); info->opcode_length++; // Set child node index for next iteration - index = VXInstructionDecoder_InputCurrent(ctx); + index = ZyDisInstructionDecoder_InputCurrent(ctx); break; case OTNT_MODRM_MOD: // Decode modrm byte - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } @@ -1777,7 +1777,7 @@ static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, break; case OTNT_MODRM_REG: // Decode modrm byte - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } @@ -1785,7 +1785,7 @@ static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, break; case OTNT_MODRM_RM: // Decode modrm byte - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } @@ -1806,12 +1806,12 @@ static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, index = 3; // 66 } - if (VXGetOpcodeTreeChild(node, index) == 0) + if (ZyDisGetOpcodeTreeChild(node, index) == 0) { index = 0; } - if (index && (VXGetOpcodeTreeChild(node, index) != 0)) + if (index && (ZyDisGetOpcodeTreeChild(node, index) != 0)) { // Remove REP and REPNE prefix info->flags &= ~IF_PREFIX_REP; @@ -1826,7 +1826,7 @@ static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, break; case OTNT_X87: // Decode modrm byte - if (!VXInstructionDecoder_DecodeModrm(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeModrm(ctx, info)) { return false; } @@ -1871,7 +1871,7 @@ static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, switch (thiz->preferredVendor) { case ISV_ANY: - index = (VXGetOpcodeTreeChild(node, 0) != 0) ? 0 : 1; + index = (ZyDisGetOpcodeTreeChild(node, 0) != 0) ? 0 : 1; break; case ISV_INTEL: index = 1; @@ -1887,30 +1887,30 @@ static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, { // As all 3dnow instructions got the same operands and flag definitions, we just // decode a random instruction and determine the specific opcode later-> - assert(VXGetOpcodeTreeChild(node, 0x0C) != 0); - const VXInstructionDefinition *instrDefinition = - VXGetInstructionDefinition(VXGetOpcodeTreeChild(node, 0x0C)); + assert(ZyDisGetOpcodeTreeChild(node, 0x0C) != 0); + const ZyDisInstructionDefinition *instrDefinition = + ZyDisGetInstructionDefinition(ZyDisGetOpcodeTreeChild(node, 0x0C)); // Update instruction info info->instrDefinition = instrDefinition; info->mnemonic = instrDefinition->mnemonic; // Update effective REX/VEX values - VXInstructionDecoder_CalculateEffectiveRexVexValues(ctx, info); + ZyDisInstructionDecoder_CalculateEffectiveRexVexValues(ctx, info); // Resolve operand and address mode - VXInstructionDecoder_ResolveOperandAndAddressMode(ctx, info); + ZyDisInstructionDecoder_ResolveOperandAndAddressMode(ctx, info); // Decode operands - if (!VXInstructionDecoder_DecodeOperands(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeOperands(ctx, info)) { return false; } // Read the actual 3dnow opcode - info->opcode[2] = VXInstructionDecoder_InputNext8(ctx, info); + info->opcode[2] = ZyDisInstructionDecoder_InputNext8(ctx, info); if (!info->opcode[2] && (info->flags & IF_ERROR_MASK)) { return false; } // Update instruction info instrDefinition = - VXGetInstructionDefinition(VXGetOpcodeTreeChild(node, info->opcode[2])); + ZyDisGetInstructionDefinition(ZyDisGetOpcodeTreeChild(node, info->opcode[2])); if (!instrDefinition || (instrDefinition->mnemonic == MNEM_INVALID)) { @@ -1954,10 +1954,10 @@ static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, } case OTNT_VEX: if ((thiz->disassemblerMode == DM_M64BIT) - || (((VXInstructionDecoder_InputCurrent(ctx) >> 6) & 0x03) == 0x03)) + || (((ZyDisInstructionDecoder_InputCurrent(ctx) >> 6) & 0x03) == 0x03)) { // Decode vex prefix - if (!VXInstructionDecoder_DecodeVex(ctx, info)) + if (!ZyDisInstructionDecoder_DecodeVex(ctx, info)) { return false; } @@ -2000,16 +2000,16 @@ static bool VXInstructionDecoder_DecodeOpcode(VXInstructionDecoderContext *ctx, default: assert(0); } - node = VXGetOpcodeTreeChild(node, index); + node = ZyDisGetOpcodeTreeChild(node, index); } while (nodeType != OTNT_INSTRUCTION_DEFINITION); return false; } -bool VXInstructionDecoder_DecodeInstruction(VXInstructionDecoderContext *ctx, - VXInstructionInfo *info) +bool ZyDisInstructionDecoder_DecodeInstruction(ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info) { - VXInstructionDecoder *thiz = VXInstructionDecoder_thiz(ctx); + ZyDisInstructionDecoder *thiz = ZyDisInstructionDecoder_thiz(ctx); // Clear instruction info memset(info, 0, sizeof(*info)); @@ -2034,8 +2034,8 @@ bool VXInstructionDecoder_DecodeInstruction(VXInstructionDecoderContext *ctx, info->instrAddress = thiz->instructionPointer; // Decode - if (!VXInstructionDecoder_DecodePrefixes(ctx, info) - || !VXInstructionDecoder_DecodeOpcode(ctx, info)) + if (!ZyDisInstructionDecoder_DecodePrefixes(ctx, info) + || !ZyDisInstructionDecoder_DecodeOpcode(ctx, info)) { goto DecodeError; } @@ -2097,14 +2097,14 @@ DecodeError: info->length = length; info->data[0] = firstByte; info->instrAddress = instrAddress; - info->instrDefinition = VXGetInstructionDefinition(0); + info->instrDefinition = ZyDisGetInstructionDefinition(0); // Decrement the input position, if more than one byte was read from the input data // source while decoding the invalid instruction if (info->length != 1) { - VXBaseDataSource_SetPosition(thiz->dataSource, - VXBaseDataSource_GetPosition(thiz->dataSource) - info->length + 1); + ZyDisBaseDataSource_SetPosition(thiz->dataSource, + ZyDisBaseDataSource_GetPosition(thiz->dataSource) - info->length + 1); info->length = 1; } diff --git a/VerteronDisassemblerEngine/VXInstructionDecoder.h b/VerteronDisassemblerEngine/ZyDisInstructionDecoder.h similarity index 59% rename from VerteronDisassemblerEngine/VXInstructionDecoder.h rename to VerteronDisassemblerEngine/ZyDisInstructionDecoder.h index 34a04d0..d75748c 100644 --- a/VerteronDisassemblerEngine/VXInstructionDecoder.h +++ b/VerteronDisassemblerEngine/ZyDisInstructionDecoder.h @@ -30,11 +30,11 @@ **************************************************************************************************/ -#ifndef _VDE_VXINSTRUCTIONDECODERC_H_ -#define _VDE_VXINSTRUCTIONDECODERC_H_ +#ifndef _VDE_ZyDisINSTRUCTIONDECODERC_H_ +#define _VDE_ZyDisINSTRUCTIONDECODERC_H_ -#include "VXDisassemblerTypes.h" -#include "VXDisassemblerUtils.h" +#include "ZyDisDisassemblerTypes.h" +#include "ZyDisDisassemblerUtils.h" #include #include @@ -44,24 +44,24 @@ extern "C" { #endif -/* VXBaseDataSource ============================================================================ */ +/* ZyDisBaseDataSource ============================================================================ */ -typedef struct _VXBaseDataSourceContext { VXContextDescriptor d; } VXBaseDataSourceContext; +typedef struct _ZyDisBaseDataSourceContext { ZyDisContextDescriptor d; } ZyDisBaseDataSourceContext; -typedef void(*VXBaseDataSource_DestructionCallback)(VXBaseDataSourceContext *ctx); -typedef uint8_t(*VXBaseDataSource_InputCallback)(VXBaseDataSourceContext *ctx); -typedef bool(*VXBaseDataSource_IsEndOfInputCallback)(const VXBaseDataSourceContext *ctx); -typedef uint64_t(*VXBaseDataSource_GetPositionCallback)(const VXBaseDataSourceContext *ctx); -typedef bool(*VXBaseDataSource_SetPositionCallback)( - VXBaseDataSourceContext *ctx, uint64_t position); +typedef void(*ZyDisBaseDataSource_DestructionCallback)(ZyDisBaseDataSourceContext *ctx); +typedef uint8_t(*ZyDisBaseDataSource_InputCallback)(ZyDisBaseDataSourceContext *ctx); +typedef bool(*ZyDisBaseDataSource_IsEndOfInputCallback)(const ZyDisBaseDataSourceContext *ctx); +typedef uint64_t(*ZyDisBaseDataSource_GetPositionCallback)(const ZyDisBaseDataSourceContext *ctx); +typedef bool(*ZyDisBaseDataSource_SetPositionCallback)( + ZyDisBaseDataSourceContext *ctx, uint64_t position); /** * @brief Releases a data source. * @param ctx The context to release. * The context may no longer be used after it was released. */ -VX_EXPORT void VXBaseDataSource_Release( - VXBaseDataSourceContext *ctx); +ZYDIS_EXPORT void ZyDisBaseDataSource_Release( + ZyDisBaseDataSourceContext *ctx); /** * @brief Reads the next byte from the data source without altering the current input position @@ -72,9 +72,9 @@ VX_EXPORT void VXBaseDataSource_Release( * field of the @c info parameter for error flags. Possible error values are * @c IF_ERROR_END_OF_INPUT or @c IF_ERROR_LENGTH. */ -VX_EXPORT uint8_t VXBaseDataSource_InputPeek( - VXBaseDataSourceContext *ctx, - VXInstructionInfo *info); +ZYDIS_EXPORT uint8_t ZyDisBaseDataSource_InputPeek( + ZyDisBaseDataSourceContext *ctx, + ZyDisInstructionInfo *info); /** * @brief Reads the next byte from the data source. @@ -87,30 +87,30 @@ VX_EXPORT uint8_t VXBaseDataSource_InputPeek( * parameter. This function also appends the new byte to to @c data field of the @c info * parameter. */ -VX_EXPORT uint8_t VXBaseDataSource_InputNext8( - VXBaseDataSourceContext *ctx, - VXInstructionInfo *info); +ZYDIS_EXPORT uint8_t ZyDisBaseDataSource_InputNext8( + ZyDisBaseDataSourceContext *ctx, + ZyDisInstructionInfo *info); /** - * @copydoc VXBaseDataSource_InputNext8 + * @copydoc ZyDisBaseDataSource_InputNext8 */ -VX_EXPORT uint16_t VXBaseDataSource_InputNext16( - VXBaseDataSourceContext *ctx, - VXInstructionInfo *info); +ZYDIS_EXPORT uint16_t ZyDisBaseDataSource_InputNext16( + ZyDisBaseDataSourceContext *ctx, + ZyDisInstructionInfo *info); /** - * @copydoc VXBaseDataSource_InputNext8 + * @copydoc ZyDisBaseDataSource_InputNext8 */ -VX_EXPORT uint32_t VXBaseDataSource_InputNext32( - VXBaseDataSourceContext *ctx, - VXInstructionInfo *info); +ZYDIS_EXPORT uint32_t ZyDisBaseDataSource_InputNext32( + ZyDisBaseDataSourceContext *ctx, + ZyDisInstructionInfo *info); /** - * @copydoc VXBaseDataSource_InputNext8 + * @copydoc ZyDisBaseDataSource_InputNext8 */ -VX_EXPORT uint64_t VXBaseDataSource_InputNext64( - VXBaseDataSourceContext *ctx, - VXInstructionInfo *info); +ZYDIS_EXPORT uint64_t ZyDisBaseDataSource_InputNext64( + ZyDisBaseDataSourceContext *ctx, + ZyDisInstructionInfo *info); /** * @brief Returns the current input byte. @@ -119,24 +119,24 @@ VX_EXPORT uint64_t VXBaseDataSource_InputNext64( * The current input byte is set everytime the @c inputPeek or @c inputNext method is called. */ // TODO: check long descr -VX_EXPORT uint8_t VXBaseDataSource_InputCurrent( - const VXBaseDataSourceContext *ctx); +ZYDIS_EXPORT uint8_t ZyDisBaseDataSource_InputCurrent( + const ZyDisBaseDataSourceContext *ctx); /** * @brief Queries if the end of the data source is reached. * @param ctx The data soruce context. * @return @c true if end of input, @c false if not. */ -VX_EXPORT bool VXBaseDataSource_IsEndOfInput( - const VXBaseDataSourceContext *ctx); +ZYDIS_EXPORT bool ZyDisBaseDataSource_IsEndOfInput( + const ZyDisBaseDataSourceContext *ctx); /** * @brief Returns the current input position. * @param ctx The data soruce context. * @return The current input position. */ -VX_EXPORT uint64_t VXBaseDataSource_GetPosition( - const VXBaseDataSourceContext *ctx); +ZYDIS_EXPORT uint64_t ZyDisBaseDataSource_GetPosition( + const ZyDisBaseDataSourceContext *ctx); /** * @brief Sets a new input position. @@ -144,24 +144,24 @@ VX_EXPORT uint64_t VXBaseDataSource_GetPosition( * @param position The new input position. * @return @c false if the new position exceeds the maximum input length. */ -VX_EXPORT bool VXBaseDataSource_SetPosition( - VXBaseDataSourceContext *ctx, +ZYDIS_EXPORT bool ZyDisBaseDataSource_SetPosition( + ZyDisBaseDataSourceContext *ctx, uint64_t position); -/* VXMemoryDataSource ========================================================================== */ +/* ZyDisMemoryDataSource ========================================================================== */ /** * @brief Creates a memory data source. * @param buffer The input buffer. * @param bufferLen THe length of the input buffer. * @return @c NULL if it fails, else a data source context. - * @see VXBaseDataSource_Release + * @see ZyDisBaseDataSource_Release */ -VX_EXPORT VXBaseDataSourceContext* VXMemoryDataSource_Create( +ZYDIS_EXPORT ZyDisBaseDataSourceContext* ZyDisMemoryDataSource_Create( const void* buffer, size_t bufferLen); -/* VXCustomDataSource ========================================================================== */ +/* ZyDisCustomDataSource ========================================================================== */ /** * @brief Creates a custom daat source. @@ -173,52 +173,52 @@ VX_EXPORT VXBaseDataSourceContext* VXMemoryDataSource_Create( * @param setPositionCb The callback setting the current input position. * @param destructionCb The destruction callback. May be @c NULL. * @return @c NULL if it fails, else a data source context. - * @see VXBaseDataSource_Release + * @see ZyDisBaseDataSource_Release */ -VX_EXPORT VXBaseDataSourceContext* VXCustomDataSource_Create( - VXBaseDataSource_InputCallback inputPeekCb, - VXBaseDataSource_InputCallback inputNextCb, - VXBaseDataSource_IsEndOfInputCallback isEndOfInputCb, - VXBaseDataSource_GetPositionCallback getPositionCb, - VXBaseDataSource_SetPositionCallback setPositionCb, - VXBaseDataSource_DestructionCallback destructionCb); +ZYDIS_EXPORT ZyDisBaseDataSourceContext* ZyDisCustomDataSource_Create( + ZyDisBaseDataSource_InputCallback inputPeekCb, + ZyDisBaseDataSource_InputCallback inputNextCb, + ZyDisBaseDataSource_IsEndOfInputCallback isEndOfInputCb, + ZyDisBaseDataSource_GetPositionCallback getPositionCb, + ZyDisBaseDataSource_SetPositionCallback setPositionCb, + ZyDisBaseDataSource_DestructionCallback destructionCb); /* Enums ======================================================================================= */ /** * @brief Values that represent a disassembler mode. */ -typedef enum _VXDisassemblerMode /* : uint8_t */ +typedef enum _ZyDisDisassemblerMode /* : uint8_t */ { DM_M16BIT, DM_M32BIT, DM_M64BIT -} VXDisassemblerMode; +} ZyDisDisassemblerMode; /** * @brief Values that represent an instruction-set vendor. */ -typedef enum _VXInstructionSetVendor /* : uint8_t */ +typedef enum _ZyDisInstructionSetVendor /* : uint8_t */ { ISV_ANY, ISV_INTEL, ISV_AMD -} VXInstructionSetVendor; +} ZyDisInstructionSetVendor; -/* VXInstructionDecoder ======================================================================== */ +/* ZyDisInstructionDecoder ======================================================================== */ -typedef struct _VXInstructionDecoderContext +typedef struct _ZyDisInstructionDecoderContext { - VXContextDescriptor d; -} VXInstructionDecoderContext; + ZyDisContextDescriptor d; +} ZyDisInstructionDecoderContext; /** * @brief Creates an instruction decoder. * @return @c NULL if it fails, else an instruction decoder context. - * @see VXInstructionDecoder_Release + * @see ZyDisInstructionDecoder_Release */ // TODO: verify return value -VX_EXPORT VXInstructionDecoderContext* VXInstructionDecoder_Create(void); +ZYDIS_EXPORT ZyDisInstructionDecoderContext* ZyDisInstructionDecoder_Create(void); /** * @brief Creates an instruction decoder. @@ -227,100 +227,100 @@ VX_EXPORT VXInstructionDecoderContext* VXInstructionDecoder_Create(void); * @param preferredVendor The preferred instruction-set vendor. * @param instructionPointer The initial instruction pointer. * @return @c NULL if it fails, else an instruction decoder context. - * @see VXInstructionDecoder_Release + * @see ZyDisInstructionDecoder_Release */ -VX_EXPORT VXInstructionDecoderContext* VXInstructionDecoder_CreateEx( - VXBaseDataSourceContext *input, - VXDisassemblerMode disassemblerMode, - VXInstructionSetVendor preferredVendor, +ZYDIS_EXPORT ZyDisInstructionDecoderContext* ZyDisInstructionDecoder_CreateEx( + ZyDisBaseDataSourceContext *input, + ZyDisDisassemblerMode disassemblerMode, + ZyDisInstructionSetVendor preferredVendor, uint64_t instructionPointer); /** * @brief Releases an instruction decoder. * @param ctx The context of the instruction decoder to release. */ -VX_EXPORT void VXInstructionDecoder_Release( - VXInstructionDecoderContext *ctx); +ZYDIS_EXPORT void ZyDisInstructionDecoder_Release( + ZyDisInstructionDecoderContext *ctx); /** * @brief Decodes the next instruction from the input data source. * @param ctx The instruction decoder context. - * @param info The @c VXInstructionInfo struct that receives the information about the decoded + * @param info The @c ZyDisInstructionInfo struct that receives the information about the decoded * instruction. * @return This function returns @c false if the current position exceeds the maximum input * length. In all other cases (valid and invalid instructions) the return value is * @c true. */ -VX_EXPORT bool VXInstructionDecoder_DecodeInstruction( - VXInstructionDecoderContext *ctx, - VXInstructionInfo *info); +ZYDIS_EXPORT bool ZyDisInstructionDecoder_DecodeInstruction( + ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionInfo *info); /** * @brief Returns a pointer to the current data source. * @param ctx The instruction decoder context. * @return The context of the data source. */ -VX_EXPORT VXBaseDataSourceContext* VXInstructionDecoder_GetDataSource( - const VXInstructionDecoderContext *ctx); +ZYDIS_EXPORT ZyDisBaseDataSourceContext* ZyDisInstructionDecoder_GetDataSource( + const ZyDisInstructionDecoderContext *ctx); /** * @brief Sets a new data source. * @param ctx The instruction decoder context. * @param input The context of the new input data source. */ -VX_EXPORT void VXInstructionDecoder_SetDataSource( - VXInstructionDecoderContext *ctx, - VXBaseDataSourceContext *input); +ZYDIS_EXPORT void ZyDisInstructionDecoder_SetDataSource( + ZyDisInstructionDecoderContext *ctx, + ZyDisBaseDataSourceContext *input); /** * @brief Returns the current disassembler mode. * @param ctx The instruction decoder context. * @return The current disassembler mode. */ -VX_EXPORT VXDisassemblerMode VXInstructionDecoder_GetDisassemblerMode( - const VXInstructionDecoderContext *ctx); +ZYDIS_EXPORT ZyDisDisassemblerMode ZyDisInstructionDecoder_GetDisassemblerMode( + const ZyDisInstructionDecoderContext *ctx); /** * @brief Sets the current disassembler mode. * @param ctx The instruction decoder context. * @param disassemblerMode The new disassembler mode. */ -VX_EXPORT void VXInstructionDecoder_SetDisassemblerMode( - VXInstructionDecoderContext *ctx, - VXDisassemblerMode disassemblerMode); +ZYDIS_EXPORT void ZyDisInstructionDecoder_SetDisassemblerMode( + ZyDisInstructionDecoderContext *ctx, + ZyDisDisassemblerMode disassemblerMode); /** * @brief Returns the preferred instruction-set vendor. * @param ctx The instruction decoder context. * @return The preferred instruction-set vendor. */ -VX_EXPORT VXInstructionSetVendor VXInstructionDecoder_GetPreferredVendor( - const VXInstructionDecoderContext *ctx); +ZYDIS_EXPORT ZyDisInstructionSetVendor ZyDisInstructionDecoder_GetPreferredVendor( + const ZyDisInstructionDecoderContext *ctx); /** * @brief Sets the preferred instruction-set vendor. * @param ctx The instruction decoder context. * @param preferredVendor The new preferred instruction-set vendor. */ -VX_EXPORT void VXInstructionDecoder_SetPreferredVendor( - VXInstructionDecoderContext *ctx, - VXInstructionSetVendor preferredVendor); +ZYDIS_EXPORT void ZyDisInstructionDecoder_SetPreferredVendor( + ZyDisInstructionDecoderContext *ctx, + ZyDisInstructionSetVendor preferredVendor); /** * @brief Returns the current instruction pointer. * @param ctx The instruction decoder context. * @return The current instruction pointer. */ -VX_EXPORT uint64_t VXInstructionDecoder_GetInstructionPointer( - const VXInstructionDecoderContext *ctx); +ZYDIS_EXPORT uint64_t ZyDisInstructionDecoder_GetInstructionPointer( + const ZyDisInstructionDecoderContext *ctx); /** * @brief Sets a new instruction pointer. * @param ctx The instruction decoder context. * @param instructionPointer The new instruction pointer. */ -VX_EXPORT void VXInstructionDecoder_SetInstructionPointer( - VXInstructionDecoderContext *ctx, +ZYDIS_EXPORT void ZyDisInstructionDecoder_SetInstructionPointer( + ZyDisInstructionDecoderContext *ctx, uint64_t instructionPointer); /* ============================================================================================= */ @@ -329,4 +329,4 @@ VX_EXPORT void VXInstructionDecoder_SetInstructionPointer( } #endif -#endif /* _VDE_VXINSTRUCTIONDECODERC_H_ */ +#endif /* _VDE_ZyDisINSTRUCTIONDECODERC_H_ */ diff --git a/VerteronDisassemblerEngine/VXInstructionFormatter.c b/VerteronDisassemblerEngine/ZyDisInstructionFormatter.c similarity index 52% rename from VerteronDisassemblerEngine/VXInstructionFormatter.c rename to VerteronDisassemblerEngine/ZyDisInstructionFormatter.c index 13f7643..a95c2c7 100644 --- a/VerteronDisassemblerEngine/VXInstructionFormatter.c +++ b/VerteronDisassemblerEngine/ZyDisInstructionFormatter.c @@ -30,10 +30,10 @@ **************************************************************************************************/ -#include "VXInstructionFormatter.h" -#include "VXDisassemblerUtils.h" -#include "VXInternalHelpers.h" -#include "VXOpcodeTableInternal.h" +#include "ZyDisInstructionFormatter.h" +#include "ZyDisDisassemblerUtils.h" +#include "ZyDisInternalHelpers.h" +#include "ZyDisOpcodeTableInternal.h" #include #include @@ -43,66 +43,66 @@ /* Interface =================================================================================== */ -/* VXBaseSymbolResolver ------------------------------------------------------------------------ */ +/* ZyDisBaseSymbolResolver ------------------------------------------------------------------------ */ -typedef void (*VXBaseSymbolResolver_DestructionCallback)( - VXBaseSymbolResolverContext *ctx); -typedef const char* (*VXBaseSymbolResolver_ResolveSymbolCallback)( - VXBaseSymbolResolverContext *ctx, - const VXInstructionInfo *info, +typedef void (*ZyDisBaseSymbolResolver_DestructionCallback)( + ZyDisBaseSymbolResolverContext *ctx); +typedef const char* (*ZyDisBaseSymbolResolver_ResolveSymbolCallback)( + ZyDisBaseSymbolResolverContext *ctx, + const ZyDisInstructionInfo *info, uint64_t address, uint64_t *offset); -typedef struct _VXBaseSymbolResolver +typedef struct _ZyDisBaseSymbolResolver { - VXBaseSymbolResolver_DestructionCallback destruct; // may be NULL - VXBaseSymbolResolver_ResolveSymbolCallback resolveCallback; -} VXBaseSymbolResolver; + ZyDisBaseSymbolResolver_DestructionCallback destruct; // may be NULL + ZyDisBaseSymbolResolver_ResolveSymbolCallback resolveCallback; +} ZyDisBaseSymbolResolver; /** * @brief Constructor. * @param ctx The context. */ -static void VXBaseSymbolResolver_Construct(VXBaseSymbolResolverContext *ctx); +static void ZyDisBaseSymbolResolver_Construct(ZyDisBaseSymbolResolverContext *ctx); /** * @brief Destructor. * @param ctx The context. */ -static void VXBaseSymbolResolver_Destruct(VXBaseSymbolResolverContext *ctx); +static void ZyDisBaseSymbolResolver_Destruct(ZyDisBaseSymbolResolverContext *ctx); -/* VXBaseInstructionFormatter ------------------------------------------------------------------ */ +/* ZyDisBaseInstructionFormatter ------------------------------------------------------------------ */ -typedef void(*VXBaseInstructionFormatter_DestructionCallback)( - VXBaseInstructionFormatterContext *ctx); +typedef void(*ZyDisBaseInstructionFormatter_DestructionCallback)( + ZyDisBaseInstructionFormatterContext *ctx); -typedef struct _VXBaseInstructionFormatter +typedef struct _ZyDisBaseInstructionFormatter { - VXBaseInstructionFormatter_DestructionCallback destruct; // may be NULL - VXBaseInstructionFormatter_InternalFormatInstructionCallback internalFormat; - VXBaseSymbolResolverContext *symbolResolver; + ZyDisBaseInstructionFormatter_DestructionCallback destruct; // may be NULL + ZyDisBaseInstructionFormatter_InternalFormatInstructionCallback internalFormat; + ZyDisBaseSymbolResolverContext *symbolResolver; char *outputBuffer; size_t outputBufferCapacity; size_t outputStringLen; bool outputUppercase; -} VXBaseInstructionFormatter; +} ZyDisBaseInstructionFormatter; /** * @brief Constructor. * @param ctx The context. * @param symbolResolver The symbol resolver to use when formatting addresses. */ -static void VXBaseInstructionFormatter_Construct(VXBaseInstructionFormatterContext *ctx, - VXBaseSymbolResolverContext *symbolResolver); +static void ZyDisBaseInstructionFormatter_Construct(ZyDisBaseInstructionFormatterContext *ctx, + ZyDisBaseSymbolResolverContext *symbolResolver); /** * @brief Destructor. * @param ctx The context. */ -static void VXBaseInstructionFormatter_Destruct(VXBaseInstructionFormatterContext *ctx); +static void ZyDisBaseInstructionFormatter_Destruct(ZyDisBaseInstructionFormatterContext *ctx); -/*static void VXBaseInstructionFormatter_OutputSetUppercase( - VXBaseInstructionFormatterContext *ctx, bool uppercase);*/ +/*static void ZyDisBaseInstructionFormatter_OutputSetUppercase( + ZyDisBaseInstructionFormatterContext *ctx, bool uppercase);*/ /** * @brief Returns the string representation of a given register. @@ -110,8 +110,8 @@ static void VXBaseInstructionFormatter_Destruct(VXBaseInstructionFormatterContex * @param reg The register. * @return The string representation of the given register. */ -static char const* VXBaseInstructionFormatter_RegisterToString( - const VXBaseInstructionFormatterContext *ctx, VXRegister reg); +static char const* ZyDisBaseInstructionFormatter_RegisterToString( + const ZyDisBaseInstructionFormatterContext *ctx, ZyDisRegister reg); /** * @brief Resolves a symbol. @@ -122,29 +122,29 @@ static char const* VXBaseInstructionFormatter_RegisterToString( * to the base address of the symbol. * @return The name of the symbol, if the symbol was found, @c NULL if not. */ -static char const* VXBaseInstructionFormatter_ResolveSymbol( - const VXBaseInstructionFormatterContext *ctx, const VXInstructionInfo *info, uint64_t address, +static char const* ZyDisBaseInstructionFormatter_ResolveSymbol( + const ZyDisBaseInstructionFormatterContext *ctx, const ZyDisInstructionInfo *info, uint64_t address, uint64_t *offset); /** * @brief Clears the output string buffer. * @param ctx The context. */ -static void VXBaseInstructionFormatter_OutputClear(VXBaseInstructionFormatterContext *ctx); +static void ZyDisBaseInstructionFormatter_OutputClear(ZyDisBaseInstructionFormatterContext *ctx); /** * @brief Returns the content of the output string buffer. * @param ctx The context. * @return Pointer to the content of the ouput string buffer. */ -static char const* VXBaseInstructionFormatter_OutputString(VXBaseInstructionFormatterContext *ctx); +static char const* ZyDisBaseInstructionFormatter_OutputString(ZyDisBaseInstructionFormatterContext *ctx); /** * @brief Appends text to the ouput string buffer. * @param ctx The context. * @param text The text. */ -static void VXBaseInstructionFormatter_OutputAppend(VXBaseInstructionFormatterContext *ctx, +static void ZyDisBaseInstructionFormatter_OutputAppend(ZyDisBaseInstructionFormatterContext *ctx, char const *text); /** @@ -152,8 +152,8 @@ static void VXBaseInstructionFormatter_OutputAppend(VXBaseInstructionFormatterCo * @param ctx The context. * @param format The format string. */ -static void VXBaseInstructionFormatter_OutputAppendFormatted( - VXBaseInstructionFormatterContext *ctx, char const *format, ...); +static void ZyDisBaseInstructionFormatter_OutputAppendFormatted( + ZyDisBaseInstructionFormatterContext *ctx, char const *format, ...); /** * @brief Appends a formatted address to the output string buffer. @@ -163,8 +163,8 @@ static void VXBaseInstructionFormatter_OutputAppendFormatted( * @param resolveSymbols If this parameter is true, the function will try to display a * smybol name instead of the numeric value. */ -static void VXBaseInstructionFormatter_OutputAppendAddress(VXBaseInstructionFormatterContext *ctx, - const VXInstructionInfo *info, uint64_t address, bool resolveSymbols); +static void ZyDisBaseInstructionFormatter_OutputAppendAddress(ZyDisBaseInstructionFormatterContext *ctx, + const ZyDisInstructionInfo *info, uint64_t address, bool resolveSymbols); /** * @brief Appends a formatted immediate value to the output string buffer. @@ -174,26 +174,26 @@ static void VXBaseInstructionFormatter_OutputAppendAddress(VXBaseInstructionForm * @param resolveSymbols If this parameter is true, the function will try to display a * smybol name instead of the numeric value. */ -static void VXBaseInstructionFormatter_OutputAppendImmediate( - VXBaseInstructionFormatterContext *ctx, const VXInstructionInfo *info, - const VXOperandInfo *operand, bool resolveSymbols); +static void ZyDisBaseInstructionFormatter_OutputAppendImmediate( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisInstructionInfo *info, + const ZyDisOperandInfo *operand, bool resolveSymbols); /** * @brief Appends a formatted memory displacement value to the output string buffer. * @param ctx The context. * @param operand The memory operand. */ -static void VXBaseInstructionFormatter_OutputAppendDisplacement( - VXBaseInstructionFormatterContext *ctx, const VXOperandInfo *operand); +static void ZyDisBaseInstructionFormatter_OutputAppendDisplacement( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisOperandInfo *operand); -/* VXCustomSymbolResolver ---------------------------------------------------------------------- */ +/* ZyDisCustomSymbolResolver ---------------------------------------------------------------------- */ -typedef struct _VXCustomSymbolResolver +typedef struct _ZyDisCustomSymbolResolver { - VXBaseSymbolResolver super; - VXCustomSymbolResolver_ResolveSymbolCallback resolve; + ZyDisBaseSymbolResolver super; + ZyDisCustomSymbolResolver_ResolveSymbolCallback resolve; void *userData; -} VXCustomSymbolResolver; +} ZyDisCustomSymbolResolver; /** * @brief Constructor. @@ -201,27 +201,27 @@ typedef struct _VXCustomSymbolResolver * @param resolverCb The resolver callback. * @param userData User defined data passed to the resolver callback. */ -static void VXCustomSymbolResolver_Construct(VXBaseSymbolResolverContext *ctx, - VXCustomSymbolResolver_ResolveSymbolCallback resolverCb, void *userData); +static void ZyDisCustomSymbolResolver_Construct(ZyDisBaseSymbolResolverContext *ctx, + ZyDisCustomSymbolResolver_ResolveSymbolCallback resolverCb, void *userData); /** * @brief Destructor. * @param ctx The context. */ -static void VXCustomSymbolResolver_Destruct(VXBaseSymbolResolverContext *ctx); +static void ZyDisCustomSymbolResolver_Destruct(ZyDisBaseSymbolResolverContext *ctx); /** - * @copydoc VXBaseSymbolResolver_Resolve + * @copydoc ZyDisBaseSymbolResolver_Resolve */ -static const char* VXCustomSymbolResolver_Resolve(VXBaseSymbolResolverContext *ctx, - const VXInstructionInfo *info, uint64_t address, uint64_t *offset); +static const char* ZyDisCustomSymbolResolver_Resolve(ZyDisBaseSymbolResolverContext *ctx, + const ZyDisInstructionInfo *info, uint64_t address, uint64_t *offset); -/* VXIntelInstructionFormatter ----------------------------------------------------------------- */ +/* ZyDisIntelInstructionFormatter ----------------------------------------------------------------- */ -typedef struct _VXIntelInstructionFormatter +typedef struct _ZyDisIntelInstructionFormatter { - VXBaseInstructionFormatter super; -} VXIntelInstructionFormatter; + ZyDisBaseInstructionFormatter super; +} ZyDisIntelInstructionFormatter; /** * @brief Constructor. @@ -229,22 +229,22 @@ typedef struct _VXIntelInstructionFormatter * @param symbolResolver The symbol resolver used to resolve addresses. * @param userData User defined data passed to the resolver callback. */ -static void VXIntelInstructionFormatter_Construct(VXBaseInstructionFormatterContext *ctx, - VXBaseSymbolResolverContext *symbolResolver); +static void ZyDisIntelInstructionFormatter_Construct(ZyDisBaseInstructionFormatterContext *ctx, + ZyDisBaseSymbolResolverContext *symbolResolver); /** * @brief Destructor. * @param ctx The context. */ -static void VXIntelInstructionFormatter_Destruct(VXBaseInstructionFormatterContext *ctx); +static void ZyDisIntelInstructionFormatter_Destruct(ZyDisBaseInstructionFormatterContext *ctx); /** * @brief Appends an operand cast to the output string buffer. * @param ctx The context. * @param operand The operand. */ -static void VXIntelInstructionFormatter_OutputAppendOperandCast( - VXBaseInstructionFormatterContext *ctx, const VXOperandInfo *operand); +static void ZyDisIntelInstructionFormatter_OutputAppendOperandCast( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisOperandInfo *operand); /** * @brief Formats the specified operand and appends it to the output buffer. @@ -252,53 +252,53 @@ static void VXIntelInstructionFormatter_OutputAppendOperandCast( * @param info The instruction info. * @param operand The operand. */ -static void VXIntelInstructionFormatter_FormatOperand(VXBaseInstructionFormatterContext *ctx, - const VXInstructionInfo *info, const VXOperandInfo *operand); +static void ZyDisIntelInstructionFormatter_FormatOperand(ZyDisBaseInstructionFormatterContext *ctx, + const ZyDisInstructionInfo *info, const ZyDisOperandInfo *operand); /** - * @coypdoc VXBaseInstructionFormatter_InternalFormatInstruction + * @coypdoc ZyDisBaseInstructionFormatter_InternalFormatInstruction */ -static void VXIntelInstructionFormatter_InternalFormatInstruction( - VXBaseInstructionFormatterContext *ctx, const VXInstructionInfo *info); +static void ZyDisIntelInstructionFormatter_InternalFormatInstruction( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisInstructionInfo *info); -/* VXCustomInstructionFormatter ---------------------------------------------------------------- */ +/* ZyDisCustomInstructionFormatter ---------------------------------------------------------------- */ -typedef struct _VXCustomInstructionFormatter +typedef struct _ZyDisCustomInstructionFormatter { - VXBaseInstructionFormatter super; -} VXCustomInstructionFormatter; + ZyDisBaseInstructionFormatter super; +} ZyDisCustomInstructionFormatter; /** * @brief Contructor. * @param ctx The context. * @param formatInsnCb The callback formatting the instruction. */ -static void VXCustomInstructionFormatter_Construct(VXBaseInstructionFormatterContext *ctx, - VXBaseInstructionFormatter_InternalFormatInstructionCallback formatInsnCb); +static void ZyDisCustomInstructionFormatter_Construct(ZyDisBaseInstructionFormatterContext *ctx, + ZyDisBaseInstructionFormatter_InternalFormatInstructionCallback formatInsnCb); /** * @brief Destructor. * @param ctx The context. */ -static void VXCustomInstructionFormatter_Destruct(VXBaseInstructionFormatterContext *ctx); +static void ZyDisCustomInstructionFormatter_Destruct(ZyDisBaseInstructionFormatterContext *ctx); /* Implementation ============================================================================== */ -/* VXBaseSymbolResolver ------------------------------------------------------------------------ */ +/* ZyDisBaseSymbolResolver ------------------------------------------------------------------------ */ -void VXBaseSymbolResolver_Construct(VXBaseSymbolResolverContext *ctx) +void ZyDisBaseSymbolResolver_Construct(ZyDisBaseSymbolResolverContext *ctx) { - memset(VXBaseSymbolResolver_thiz(ctx), 0, sizeof(VXBaseSymbolResolver)); + memset(ZyDisBaseSymbolResolver_thiz(ctx), 0, sizeof(ZyDisBaseSymbolResolver)); } -void VXBaseSymbolResolver_Destruct(VXBaseSymbolResolverContext *ctx) +void ZyDisBaseSymbolResolver_Destruct(ZyDisBaseSymbolResolverContext *ctx) { - VX_UNUSED(ctx); + ZYDIS_UNUSED(ctx); } -void VXBaseSymbolResolver_Release(VXBaseSymbolResolverContext *ctx) +void ZyDisBaseSymbolResolver_Release(ZyDisBaseSymbolResolverContext *ctx) { - VXBaseSymbolResolver *thiz = VXBaseSymbolResolver_thiz(ctx); + ZyDisBaseSymbolResolver *thiz = ZyDisBaseSymbolResolver_thiz(ctx); if (thiz->destruct) { @@ -309,38 +309,38 @@ void VXBaseSymbolResolver_Release(VXBaseSymbolResolverContext *ctx) free(ctx); } -const char* VXBaseSymbolResolver_ResolveSymbol(VXBaseSymbolResolverContext *ctx, - const VXInstructionInfo *info, uint64_t address, uint64_t *offset) +const char* ZyDisBaseSymbolResolver_ResolveSymbol(ZyDisBaseSymbolResolverContext *ctx, + const ZyDisInstructionInfo *info, uint64_t address, uint64_t *offset) { - assert(VXBaseSymbolResolver_thiz(ctx)->resolveCallback); - return VXBaseSymbolResolver_thiz(ctx)->resolveCallback(ctx, info, address, offset); + assert(ZyDisBaseSymbolResolver_thiz(ctx)->resolveCallback); + return ZyDisBaseSymbolResolver_thiz(ctx)->resolveCallback(ctx, info, address, offset); } -/* VXCustomSymbolResolver ---------------------------------------------------------------------- */ +/* ZyDisCustomSymbolResolver ---------------------------------------------------------------------- */ -static void VXCustomSymbolResolver_Construct(VXBaseSymbolResolverContext *ctx, - VXCustomSymbolResolver_ResolveSymbolCallback resolverCb, void *userData) +static void ZyDisCustomSymbolResolver_Construct(ZyDisBaseSymbolResolverContext *ctx, + ZyDisCustomSymbolResolver_ResolveSymbolCallback resolverCb, void *userData) { - VXBaseSymbolResolver_Construct(ctx); - VXCustomSymbolResolver *thiz = VXCustomSymbolResolver_thiz(ctx); + ZyDisBaseSymbolResolver_Construct(ctx); + ZyDisCustomSymbolResolver *thiz = ZyDisCustomSymbolResolver_thiz(ctx); - thiz->super.destruct = &VXCustomSymbolResolver_Destruct; - thiz->super.resolveCallback = &VXCustomSymbolResolver_Resolve; + thiz->super.destruct = &ZyDisCustomSymbolResolver_Destruct; + thiz->super.resolveCallback = &ZyDisCustomSymbolResolver_Resolve; thiz->resolve = resolverCb; thiz->userData = userData; } -static void VXCustomSymbolResolver_Destruct(VXBaseSymbolResolverContext *ctx) +static void ZyDisCustomSymbolResolver_Destruct(ZyDisBaseSymbolResolverContext *ctx) { - VXBaseSymbolResolver_Destruct(ctx); + ZyDisBaseSymbolResolver_Destruct(ctx); } -VXBaseSymbolResolverContext* VXCustomSymbolResolver_Create( - VXCustomSymbolResolver_ResolveSymbolCallback resolverCb, void *userData) +ZyDisBaseSymbolResolverContext* ZyDisCustomSymbolResolver_Create( + ZyDisCustomSymbolResolver_ResolveSymbolCallback resolverCb, void *userData) { - VXCustomSymbolResolver *thiz = malloc(sizeof(VXCustomSymbolResolver)); - VXBaseSymbolResolverContext *ctx = malloc(sizeof(VXBaseSymbolResolverContext)); + ZyDisCustomSymbolResolver *thiz = malloc(sizeof(ZyDisCustomSymbolResolver)); + ZyDisBaseSymbolResolverContext *ctx = malloc(sizeof(ZyDisBaseSymbolResolverContext)); if (!thiz || !ctx) { @@ -359,21 +359,21 @@ VXBaseSymbolResolverContext* VXCustomSymbolResolver_Create( ctx->d.type = TYPE_CUSTOMSYMBOLRESOLVER; ctx->d.ptr = thiz; - VXCustomSymbolResolver_Construct(ctx, resolverCb, userData); + ZyDisCustomSymbolResolver_Construct(ctx, resolverCb, userData); return ctx; } -static const char* VXCustomSymbolResolver_Resolve(VXBaseSymbolResolverContext *ctx, - const VXInstructionInfo *info, uint64_t address, uint64_t *offset) +static const char* ZyDisCustomSymbolResolver_Resolve(ZyDisBaseSymbolResolverContext *ctx, + const ZyDisInstructionInfo *info, uint64_t address, uint64_t *offset) { - VXCustomSymbolResolver *thiz = VXCustomSymbolResolver_thiz(ctx); + ZyDisCustomSymbolResolver *thiz = ZyDisCustomSymbolResolver_thiz(ctx); return thiz->resolve(info, address, offset, thiz->userData); } -/* VXBaseInstructionFormatter ------------------------------------------------------------------ */ +/* ZyDisBaseInstructionFormatter ------------------------------------------------------------------ */ -static const char* VXBaseInstructionFormatter_registerStrings[] = +static const char* ZyDisBaseInstructionFormatter_registerStrings[] = { /* 8 bit general purpose registers */ "al", "cl", "dl", "bl", @@ -429,12 +429,12 @@ static const char* VXBaseInstructionFormatter_registerStrings[] = "rip" }; -static void VXBaseInstructionFormatter_Construct(VXBaseInstructionFormatterContext *ctx, - VXBaseSymbolResolverContext *symbolResolver) +static void ZyDisBaseInstructionFormatter_Construct(ZyDisBaseInstructionFormatterContext *ctx, + ZyDisBaseSymbolResolverContext *symbolResolver) { - VXBaseInstructionFormatter *thiz = VXBaseInstructionFormatter_thiz(ctx); + ZyDisBaseInstructionFormatter *thiz = ZyDisBaseInstructionFormatter_thiz(ctx); - thiz->destruct = &VXBaseInstructionFormatter_Destruct; + thiz->destruct = &ZyDisBaseInstructionFormatter_Destruct; thiz->internalFormat = NULL; thiz->symbolResolver = symbolResolver; thiz->outputStringLen = 0; @@ -443,9 +443,9 @@ static void VXBaseInstructionFormatter_Construct(VXBaseInstructionFormatterConte thiz->outputBuffer = malloc(thiz->outputBufferCapacity); } -static void VXBaseInstructionFormatter_Destruct(VXBaseInstructionFormatterContext *ctx) +static void ZyDisBaseInstructionFormatter_Destruct(ZyDisBaseInstructionFormatterContext *ctx) { - VXBaseInstructionFormatter *thiz = VXBaseInstructionFormatter_thiz(ctx); + ZyDisBaseInstructionFormatter *thiz = ZyDisBaseInstructionFormatter_thiz(ctx); if (thiz->outputBuffer) { @@ -454,9 +454,9 @@ static void VXBaseInstructionFormatter_Destruct(VXBaseInstructionFormatterContex } } -void VXBaseInstructionFormatter_Release(VXBaseInstructionFormatterContext *ctx) +void ZyDisBaseInstructionFormatter_Release(ZyDisBaseInstructionFormatterContext *ctx) { - VXBaseInstructionFormatter *thiz = VXBaseInstructionFormatter_thiz(ctx); + ZyDisBaseInstructionFormatter *thiz = ZyDisBaseInstructionFormatter_thiz(ctx); if (thiz->destruct) { @@ -468,59 +468,59 @@ void VXBaseInstructionFormatter_Release(VXBaseInstructionFormatterContext *ctx) } /* -static void VXBaseInstructionFormatter_OutputSetUppercase(VXBaseInstructionFormatterContext *ctx, +static void ZyDisBaseInstructionFormatter_OutputSetUppercase(ZyDisBaseInstructionFormatterContext *ctx, bool uppercase) { - VXBaseInstructionFormatter_thiz(ctx)->outputUppercase = uppercase; + ZyDisBaseInstructionFormatter_thiz(ctx)->outputUppercase = uppercase; } */ -static char const* VXBaseInstructionFormatter_RegisterToString( - const VXBaseInstructionFormatterContext *ctx, VXRegister reg) +static char const* ZyDisBaseInstructionFormatter_RegisterToString( + const ZyDisBaseInstructionFormatterContext *ctx, ZyDisRegister reg) { - VX_UNUSED(ctx); + ZYDIS_UNUSED(ctx); if (reg == REG_NONE) { return "error"; } - return VXBaseInstructionFormatter_registerStrings[reg - 1]; + return ZyDisBaseInstructionFormatter_registerStrings[reg - 1]; } -static char const* VXBaseInstructionFormatter_ResolveSymbol( - const VXBaseInstructionFormatterContext *ctx, const VXInstructionInfo *info, +static char const* ZyDisBaseInstructionFormatter_ResolveSymbol( + const ZyDisBaseInstructionFormatterContext *ctx, const ZyDisInstructionInfo *info, uint64_t address, uint64_t *offset) { - const VXBaseInstructionFormatter *thiz = VXBaseInstructionFormatter_cthiz(ctx); + const ZyDisBaseInstructionFormatter *thiz = ZyDisBaseInstructionFormatter_cthiz(ctx); if (thiz->symbolResolver) { - return VXBaseSymbolResolver_ResolveSymbol( + return ZyDisBaseSymbolResolver_ResolveSymbol( thiz->symbolResolver, info, address, offset); } return NULL; } -VXBaseSymbolResolverContext* VXBaseInstructionFormatter_GetSymbolResolver( - const VXBaseInstructionFormatterContext *ctx) +ZyDisBaseSymbolResolverContext* ZyDisBaseInstructionFormatter_GetSymbolResolver( + const ZyDisBaseInstructionFormatterContext *ctx) { - return VXBaseInstructionFormatter_cthiz(ctx)->symbolResolver; + return ZyDisBaseInstructionFormatter_cthiz(ctx)->symbolResolver; } -void VXBaseInstructionFormatter_SetSymbolResolver( - VXBaseInstructionFormatterContext *ctx, VXBaseSymbolResolverContext *symbolResolver) +void ZyDisBaseInstructionFormatter_SetSymbolResolver( + ZyDisBaseInstructionFormatterContext *ctx, ZyDisBaseSymbolResolverContext *symbolResolver) { - VXBaseInstructionFormatter_thiz(ctx)->symbolResolver = symbolResolver; + ZyDisBaseInstructionFormatter_thiz(ctx)->symbolResolver = symbolResolver; } -const char* VXBaseInstructionFormatter_FormatInstruction( - VXBaseInstructionFormatterContext *ctx, const VXInstructionInfo *info) +const char* ZyDisBaseInstructionFormatter_FormatInstruction( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisInstructionInfo *info) { - VXBaseInstructionFormatter *thiz = VXBaseInstructionFormatter_thiz(ctx); + ZyDisBaseInstructionFormatter *thiz = ZyDisBaseInstructionFormatter_thiz(ctx); // Clears the internal string buffer - VXBaseInstructionFormatter_OutputClear(ctx); + ZyDisBaseInstructionFormatter_OutputClear(ctx); // Calls the virtual format method that actually formats the instruction thiz->internalFormat(ctx, info); @@ -528,27 +528,27 @@ const char* VXBaseInstructionFormatter_FormatInstruction( if (thiz->outputBufferCapacity == 0) { // The basic instruction formatter only returns the instruction menmonic. - return VXGetInstructionMnemonicString(info->mnemonic); + return ZyDisGetInstructionMnemonicString(info->mnemonic); } // Return the formatted instruction string - return VXBaseInstructionFormatter_OutputString(ctx); + return ZyDisBaseInstructionFormatter_OutputString(ctx); } -static void VXBaseInstructionFormatter_OutputClear(VXBaseInstructionFormatterContext *ctx) +static void ZyDisBaseInstructionFormatter_OutputClear(ZyDisBaseInstructionFormatterContext *ctx) { - VXBaseInstructionFormatter_thiz(ctx)->outputStringLen = 0; + ZyDisBaseInstructionFormatter_thiz(ctx)->outputStringLen = 0; } -static char const* VXBaseInstructionFormatter_OutputString(VXBaseInstructionFormatterContext *ctx) +static char const* ZyDisBaseInstructionFormatter_OutputString(ZyDisBaseInstructionFormatterContext *ctx) { - return &VXBaseInstructionFormatter_thiz(ctx)->outputBuffer[0]; + return &ZyDisBaseInstructionFormatter_thiz(ctx)->outputBuffer[0]; } -static void VXBaseInstructionFormatter_OutputAppend( - VXBaseInstructionFormatterContext *ctx, char const *text) +static void ZyDisBaseInstructionFormatter_OutputAppend( + ZyDisBaseInstructionFormatterContext *ctx, char const *text) { - VXBaseInstructionFormatter *thiz = VXBaseInstructionFormatter_thiz(ctx); + ZyDisBaseInstructionFormatter *thiz = ZyDisBaseInstructionFormatter_thiz(ctx); // Get the string length including the null-terminator char size_t strLen = strlen(text) + 1; @@ -584,10 +584,10 @@ static void VXBaseInstructionFormatter_OutputAppend( } } -static void VXBaseInstructionFormatter_OutputAppendFormatted( - VXBaseInstructionFormatterContext *ctx, char const *format, ...) +static void ZyDisBaseInstructionFormatter_OutputAppendFormatted( + ZyDisBaseInstructionFormatterContext *ctx, char const *format, ...) { - VXBaseInstructionFormatter *thiz = VXBaseInstructionFormatter_thiz(ctx); + ZyDisBaseInstructionFormatter *thiz = ZyDisBaseInstructionFormatter_thiz(ctx); va_list arguments; va_start(arguments, format); @@ -615,7 +615,7 @@ static void VXBaseInstructionFormatter_OutputAppendFormatted( { thiz->outputBufferCapacity = bufLen + 512; thiz->outputBuffer = realloc(thiz->outputBuffer, thiz->outputBufferCapacity); - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, format, arguments); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, format, arguments); return; } // Write the formatted text to the output buffer @@ -638,8 +638,8 @@ static void VXBaseInstructionFormatter_OutputAppendFormatted( va_end(arguments); } -static void VXBaseInstructionFormatter_OutputAppendAddress( - VXBaseInstructionFormatterContext *ctx, const VXInstructionInfo *info, uint64_t address, +static void ZyDisBaseInstructionFormatter_OutputAppendAddress( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisInstructionInfo *info, uint64_t address, bool resolveSymbols) { uint64_t offset = 0; @@ -647,33 +647,33 @@ static void VXBaseInstructionFormatter_OutputAppendAddress( if (resolveSymbols) { - name = VXBaseInstructionFormatter_ResolveSymbol(ctx, info, address, &offset); + name = ZyDisBaseInstructionFormatter_ResolveSymbol(ctx, info, address, &offset); } if (name) { if (offset) { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "%s+%.2llX", name, offset); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "%s+%.2llX", name, offset); } else { - VXBaseInstructionFormatter_OutputAppend(ctx, name); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, name); } } else { if (info->flags & IF_DISASSEMBLER_MODE_16) { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.4X", address); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.4X", address); } else if (info->flags & IF_DISASSEMBLER_MODE_32) { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.8lX", address); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.8lX", address); } else if (info->flags & IF_DISASSEMBLER_MODE_64) { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.16llX", address); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.16llX", address); } else { @@ -682,9 +682,9 @@ static void VXBaseInstructionFormatter_OutputAppendAddress( } } -static void VXBaseInstructionFormatter_OutputAppendImmediate( - VXBaseInstructionFormatterContext *ctx, const VXInstructionInfo *info, - const VXOperandInfo *operand, bool resolveSymbols) +static void ZyDisBaseInstructionFormatter_OutputAppendImmediate( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisInstructionInfo *info, + const ZyDisOperandInfo *operand, bool resolveSymbols) { assert(operand->type == OPTYPE_IMMEDIATE); uint64_t value = 0; @@ -730,28 +730,28 @@ static void VXBaseInstructionFormatter_OutputAppendImmediate( const char* name = NULL; if (resolveSymbols) { - name = VXBaseInstructionFormatter_ResolveSymbol(ctx, info, value, &offset); + name = ZyDisBaseInstructionFormatter_ResolveSymbol(ctx, info, value, &offset); } if (name) { if (offset) { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "%s+%.2llX", name, offset); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "%s+%.2llX", name, offset); } else { - VXBaseInstructionFormatter_OutputAppend(ctx, name); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, name); } } else { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.2llX", value); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.2llX", value); } } -static void VXBaseInstructionFormatter_OutputAppendDisplacement( - VXBaseInstructionFormatterContext *ctx, const VXOperandInfo *operand) +static void ZyDisBaseInstructionFormatter_OutputAppendDisplacement( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisOperandInfo *operand) { assert(operand->offset > 0); if ((operand->base == REG_NONE) && (operand->index == REG_NONE)) @@ -774,7 +774,7 @@ static void VXBaseInstructionFormatter_OutputAppendDisplacement( default: assert(0); } - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.2llX", value); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.2llX", value); } else { @@ -797,42 +797,42 @@ static void VXBaseInstructionFormatter_OutputAppendDisplacement( } if (value < 0) { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "-%.2lX", -value); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "-%.2lX", -value); } else { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "%s%.2lX", + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "%s%.2lX", (operand->base != REG_NONE || operand->index != REG_NONE) ? "+" : "", value); } } } -/* VXIntelInstructionFormatter ----------------------------------------------------------------- */ +/* ZyDisIntelInstructionFormatter ----------------------------------------------------------------- */ -static void VXIntelInstructionFormatter_Construct(VXBaseInstructionFormatterContext *ctx, - VXBaseSymbolResolverContext* symbolResolver) +static void ZyDisIntelInstructionFormatter_Construct(ZyDisBaseInstructionFormatterContext *ctx, + ZyDisBaseSymbolResolverContext* symbolResolver) { - VXBaseInstructionFormatter_Construct(ctx, symbolResolver); - VXIntelInstructionFormatter *thiz = VXIntelInstructionFormatter_thiz(ctx); + ZyDisBaseInstructionFormatter_Construct(ctx, symbolResolver); + ZyDisIntelInstructionFormatter *thiz = ZyDisIntelInstructionFormatter_thiz(ctx); - thiz->super.destruct = &VXIntelInstructionFormatter_Destruct; - thiz->super.internalFormat = &VXIntelInstructionFormatter_InternalFormatInstruction; + thiz->super.destruct = &ZyDisIntelInstructionFormatter_Destruct; + thiz->super.internalFormat = &ZyDisIntelInstructionFormatter_InternalFormatInstruction; } -static void VXIntelInstructionFormatter_Destruct(VXBaseInstructionFormatterContext *ctx) +static void ZyDisIntelInstructionFormatter_Destruct(ZyDisBaseInstructionFormatterContext *ctx) { - VXBaseInstructionFormatter_Destruct(ctx); + ZyDisBaseInstructionFormatter_Destruct(ctx); } -VXBaseInstructionFormatterContext* VXIntelInstructionFormatter_Create(void) +ZyDisBaseInstructionFormatterContext* ZyDisIntelInstructionFormatter_Create(void) { - return VXIntelInstructionFormatter_CreateEx(NULL); + return ZyDisIntelInstructionFormatter_CreateEx(NULL); } -VXBaseInstructionFormatterContext* VXIntelInstructionFormatter_CreateEx( - VXBaseSymbolResolverContext *resolver) +ZyDisBaseInstructionFormatterContext* ZyDisIntelInstructionFormatter_CreateEx( + ZyDisBaseSymbolResolverContext *resolver) { - VXIntelInstructionFormatter *thiz = malloc(sizeof(VXIntelInstructionFormatter)); - VXBaseInstructionFormatterContext *ctx = malloc(sizeof(VXBaseInstructionFormatterContext)); + ZyDisIntelInstructionFormatter *thiz = malloc(sizeof(ZyDisIntelInstructionFormatter)); + ZyDisBaseInstructionFormatterContext *ctx = malloc(sizeof(ZyDisBaseInstructionFormatterContext)); if (!thiz || !ctx) { @@ -851,100 +851,100 @@ VXBaseInstructionFormatterContext* VXIntelInstructionFormatter_CreateEx( ctx->d.type = TYPE_INTELINSTRUCTIONFORMATTER; ctx->d.ptr = thiz; - VXIntelInstructionFormatter_Construct(ctx, resolver); + ZyDisIntelInstructionFormatter_Construct(ctx, resolver); return ctx; } -static void VXIntelInstructionFormatter_OutputAppendOperandCast( - VXBaseInstructionFormatterContext *ctx, const VXOperandInfo *operand) +static void ZyDisIntelInstructionFormatter_OutputAppendOperandCast( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisOperandInfo *operand) { switch(operand->size) { case 8: - VXBaseInstructionFormatter_OutputAppend(ctx, "byte ptr " ); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "byte ptr " ); break; case 16: - VXBaseInstructionFormatter_OutputAppend(ctx, "word ptr " ); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "word ptr " ); break; case 32: - VXBaseInstructionFormatter_OutputAppend(ctx, "dword ptr "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "dword ptr "); break; case 64: - VXBaseInstructionFormatter_OutputAppend(ctx, "qword ptr "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "qword ptr "); break; case 80: - VXBaseInstructionFormatter_OutputAppend(ctx, "tword ptr "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "tword ptr "); break; case 128: - VXBaseInstructionFormatter_OutputAppend(ctx, "oword ptr "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "oword ptr "); break; case 256: - VXBaseInstructionFormatter_OutputAppend(ctx, "yword ptr "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "yword ptr "); break; default: break; } } -static void VXIntelInstructionFormatter_FormatOperand(VXBaseInstructionFormatterContext *ctx, - const VXInstructionInfo *info, const VXOperandInfo *operand) +static void ZyDisIntelInstructionFormatter_FormatOperand(ZyDisBaseInstructionFormatterContext *ctx, + const ZyDisInstructionInfo *info, const ZyDisOperandInfo *operand) { switch (operand->type) { case OPTYPE_REGISTER: - VXBaseInstructionFormatter_OutputAppend(ctx, - VXBaseInstructionFormatter_RegisterToString(ctx, operand->base)); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, + ZyDisBaseInstructionFormatter_RegisterToString(ctx, operand->base)); break; case OPTYPE_MEMORY: if (info->flags & IF_PREFIX_SEGMENT) { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, - "%s:", VXBaseInstructionFormatter_RegisterToString(ctx, info->segment)); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, + "%s:", ZyDisBaseInstructionFormatter_RegisterToString(ctx, info->segment)); } - VXBaseInstructionFormatter_OutputAppend(ctx, "["); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "["); if (operand->base == REG_RIP) { // TODO: Add option - VXBaseInstructionFormatter_OutputAppendAddress( - ctx, info, VXCalcAbsoluteTarget(info, operand), true); + ZyDisBaseInstructionFormatter_OutputAppendAddress( + ctx, info, ZyDisCalcAbsoluteTarget(info, operand), true); } else { if (operand->base != REG_NONE) { - VXBaseInstructionFormatter_OutputAppend(ctx, - VXBaseInstructionFormatter_RegisterToString(ctx, operand->base)); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, + ZyDisBaseInstructionFormatter_RegisterToString(ctx, operand->base)); } if (operand->index != REG_NONE) { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "%s%s", + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "%s%s", operand->base != REG_NONE ? "+" : "", - VXBaseInstructionFormatter_RegisterToString(ctx, operand->index)); + ZyDisBaseInstructionFormatter_RegisterToString(ctx, operand->index)); if (operand->scale) { - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "*%d", operand->scale); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "*%d", operand->scale); } } if (operand->offset) { - VXBaseInstructionFormatter_OutputAppendDisplacement(ctx, operand); + ZyDisBaseInstructionFormatter_OutputAppendDisplacement(ctx, operand); } } - VXBaseInstructionFormatter_OutputAppend(ctx, "]"); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "]"); break; case OPTYPE_POINTER: // TODO: resolve symbols switch (operand->size) { case 32: - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "word %.4X:%.4X", + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "word %.4X:%.4X", operand->lval.ptr.seg, operand->lval.ptr.off & 0xFFFF); break; case 48: - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "dword %.4X:%.8lX", + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "dword %.4X:%.8lX", operand->lval.ptr.seg, operand->lval.ptr.off); break; default: @@ -953,21 +953,21 @@ static void VXIntelInstructionFormatter_FormatOperand(VXBaseInstructionFormatter break; case OPTYPE_IMMEDIATE: { - VXBaseInstructionFormatter_OutputAppendImmediate(ctx, info, operand, true); + ZyDisBaseInstructionFormatter_OutputAppendImmediate(ctx, info, operand, true); } break; case OPTYPE_REL_IMMEDIATE: { if (operand->size == 8) { - VXBaseInstructionFormatter_OutputAppend(ctx, "short "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "short "); } - VXBaseInstructionFormatter_OutputAppendAddress(ctx, info, - VXCalcAbsoluteTarget(info, operand), true); + ZyDisBaseInstructionFormatter_OutputAppendAddress(ctx, info, + ZyDisCalcAbsoluteTarget(info, operand), true); } break; case OPTYPE_CONSTANT: - VXBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.2X", operand->lval.udword); + ZyDisBaseInstructionFormatter_OutputAppendFormatted(ctx, "%.2X", operand->lval.udword); break; default: assert(0); @@ -975,31 +975,31 @@ static void VXIntelInstructionFormatter_FormatOperand(VXBaseInstructionFormatter } } -static void VXIntelInstructionFormatter_InternalFormatInstruction( - VXBaseInstructionFormatterContext *ctx, const VXInstructionInfo *info) +static void ZyDisIntelInstructionFormatter_InternalFormatInstruction( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisInstructionInfo *info) { // Append string prefixes if (info->flags & IF_PREFIX_LOCK) { - VXBaseInstructionFormatter_OutputAppend(ctx, "lock "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "lock "); } if (info->flags & IF_PREFIX_REP) { - VXBaseInstructionFormatter_OutputAppend(ctx, "rep "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "rep "); } else if (info->flags & IF_PREFIX_REPNE) { - VXBaseInstructionFormatter_OutputAppend(ctx, "repne "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, "repne "); } // Append the instruction mnemonic - VXBaseInstructionFormatter_OutputAppend(ctx, VXGetInstructionMnemonicString(info->mnemonic)); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, ZyDisGetInstructionMnemonicString(info->mnemonic)); // Append the first operand if (info->operand[0].type != OPTYPE_NONE) { - VXBaseInstructionFormatter_OutputAppend(ctx, " "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, " "); bool cast = false; if (info->operand[0].type == OPTYPE_MEMORY) { @@ -1031,15 +1031,15 @@ static void VXIntelInstructionFormatter_InternalFormatInstruction( if (cast) { - VXIntelInstructionFormatter_OutputAppendOperandCast(ctx, &info->operand[0]); + ZyDisIntelInstructionFormatter_OutputAppendOperandCast(ctx, &info->operand[0]); } - VXIntelInstructionFormatter_FormatOperand(ctx, info, &info->operand[0]); + ZyDisIntelInstructionFormatter_FormatOperand(ctx, info, &info->operand[0]); } // Append the second operand if (info->operand[1].type != OPTYPE_NONE) { - VXBaseInstructionFormatter_OutputAppend(ctx, ", "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, ", "); bool cast = false; if (info->operand[1].type == OPTYPE_MEMORY && info->operand[0].size != info->operand[1].size && @@ -1056,15 +1056,15 @@ static void VXIntelInstructionFormatter_InternalFormatInstruction( if (cast) { - VXIntelInstructionFormatter_OutputAppendOperandCast(ctx, &info->operand[1]); + ZyDisIntelInstructionFormatter_OutputAppendOperandCast(ctx, &info->operand[1]); } - VXIntelInstructionFormatter_FormatOperand(ctx, info, &info->operand[1]); + ZyDisIntelInstructionFormatter_FormatOperand(ctx, info, &info->operand[1]); } // Append the third operand if (info->operand[2].type != OPTYPE_NONE) { - VXBaseInstructionFormatter_OutputAppend(ctx, ", "); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, ", "); bool cast = false; if (info->operand[2].type == OPTYPE_MEMORY && (info->operand[2].size != info->operand[1].size)) @@ -1074,41 +1074,41 @@ static void VXIntelInstructionFormatter_InternalFormatInstruction( if (cast) { - VXIntelInstructionFormatter_OutputAppendOperandCast(ctx, &info->operand[2]); + ZyDisIntelInstructionFormatter_OutputAppendOperandCast(ctx, &info->operand[2]); } - VXIntelInstructionFormatter_FormatOperand(ctx, info, &info->operand[2]); + ZyDisIntelInstructionFormatter_FormatOperand(ctx, info, &info->operand[2]); } // Append the fourth operand if (info->operand[3].type != OPTYPE_NONE) { - VXBaseInstructionFormatter_OutputAppend(ctx, ", "); - VXIntelInstructionFormatter_FormatOperand(ctx, info, &info->operand[3]); + ZyDisBaseInstructionFormatter_OutputAppend(ctx, ", "); + ZyDisIntelInstructionFormatter_FormatOperand(ctx, info, &info->operand[3]); } } -/* VXCustomInstructionFormatter ---------------------------------------------------------------- */ +/* ZyDisCustomInstructionFormatter ---------------------------------------------------------------- */ -static void VXCustomInstructionFormatter_Construct(VXBaseInstructionFormatterContext *ctx, - VXBaseInstructionFormatter_InternalFormatInstructionCallback formatInsnCb) +static void ZyDisCustomInstructionFormatter_Construct(ZyDisBaseInstructionFormatterContext *ctx, + ZyDisBaseInstructionFormatter_InternalFormatInstructionCallback formatInsnCb) { - VXBaseInstructionFormatter_Construct(ctx, NULL); + ZyDisBaseInstructionFormatter_Construct(ctx, NULL); - VXCustomInstructionFormatter *thiz = VXCustomInstructionFormatter_thiz(ctx); + ZyDisCustomInstructionFormatter *thiz = ZyDisCustomInstructionFormatter_thiz(ctx); thiz->super.internalFormat = formatInsnCb; } -static void VXCustomInstructionFormatter_Destruct(VXBaseInstructionFormatterContext *ctx) +static void ZyDisCustomInstructionFormatter_Destruct(ZyDisBaseInstructionFormatterContext *ctx) { - VXBaseInstructionFormatter_Destruct(ctx); + ZyDisBaseInstructionFormatter_Destruct(ctx); } -VX_EXPORT VXBaseInstructionFormatterContext* VXCustomInstructionFormatter_Create( - VXBaseInstructionFormatter_InternalFormatInstructionCallback formatInsnCb) +ZYDIS_EXPORT ZyDisBaseInstructionFormatterContext* ZyDisCustomInstructionFormatter_Create( + ZyDisBaseInstructionFormatter_InternalFormatInstructionCallback formatInsnCb) { - VXCustomInstructionFormatter *thiz = malloc(sizeof(VXCustomInstructionFormatter)); - VXBaseInstructionFormatterContext *ctx = malloc(sizeof(VXBaseInstructionFormatterContext)); + ZyDisCustomInstructionFormatter *thiz = malloc(sizeof(ZyDisCustomInstructionFormatter)); + ZyDisBaseInstructionFormatterContext *ctx = malloc(sizeof(ZyDisBaseInstructionFormatterContext)); if (!thiz || !ctx) { @@ -1127,7 +1127,7 @@ VX_EXPORT VXBaseInstructionFormatterContext* VXCustomInstructionFormatter_Create ctx->d.type = TYPE_CUSTOMINSTRUCTIONFORMATTER; ctx->d.ptr = thiz; - VXCustomInstructionFormatter_Construct(ctx, formatInsnCb); + ZyDisCustomInstructionFormatter_Construct(ctx, formatInsnCb); return ctx; } diff --git a/VerteronDisassemblerEngine/VXInstructionFormatter.h b/VerteronDisassemblerEngine/ZyDisInstructionFormatter.h similarity index 61% rename from VerteronDisassemblerEngine/VXInstructionFormatter.h rename to VerteronDisassemblerEngine/ZyDisInstructionFormatter.h index 42b2c03..5d70cae 100644 --- a/VerteronDisassemblerEngine/VXInstructionFormatter.h +++ b/VerteronDisassemblerEngine/ZyDisInstructionFormatter.h @@ -30,31 +30,31 @@ **************************************************************************************************/ -#ifndef _VDE_VXINSTRUCTIONFORMATTERC_H_ -#define _VDE_VXINSTRUCTIONFORMATTERC_H_ +#ifndef _VDE_ZyDisINSTRUCTIONFORMATTERC_H_ +#define _VDE_ZyDisINSTRUCTIONFORMATTERC_H_ -#include "VXDisassemblerTypes.h" -#include "VXDisassemblerUtils.h" +#include "ZyDisDisassemblerTypes.h" +#include "ZyDisDisassemblerUtils.h" #ifdef __cplusplus extern "C" { #endif -/* VXBaseSymbolResolver ======================================================================== */ +/* ZyDisBaseSymbolResolver ======================================================================== */ -typedef struct _VXBaseSymbolResolverContext +typedef struct _ZyDisBaseSymbolResolverContext { - VXContextDescriptor d; -} VXBaseSymbolResolverContext; + ZyDisContextDescriptor d; +} ZyDisBaseSymbolResolverContext; /** * @brief Releases a symbol resolver. * @param ctx The context of the symbol resolver to free. * The context may no longer used after it was released. */ -VX_EXPORT void VXBaseSymbolResolver_Release( - VXBaseSymbolResolverContext *ctx); +ZYDIS_EXPORT void ZyDisBaseSymbolResolver_Release( + ZyDisBaseSymbolResolverContext *ctx); /** * @brief Resolves a symbol. @@ -65,16 +65,16 @@ VX_EXPORT void VXBaseSymbolResolver_Release( * the base address of the symbol. * @return The name of the symbol if the symbol was found, else @c NULL. */ -VX_EXPORT const char* VXBaseSymbolResolver_ResolveSymbol( - VXBaseSymbolResolverContext *ctx, - const VXInstructionInfo *info, +ZYDIS_EXPORT const char* ZyDisBaseSymbolResolver_ResolveSymbol( + ZyDisBaseSymbolResolverContext *ctx, + const ZyDisInstructionInfo *info, uint64_t address, uint64_t *offset); -/* VXCustomSymbolResolver ====================================================================== */ +/* ZyDisCustomSymbolResolver ====================================================================== */ -typedef const char* (*VXCustomSymbolResolver_ResolveSymbolCallback)( - const VXInstructionInfo *info, +typedef const char* (*ZyDisCustomSymbolResolver_ResolveSymbolCallback)( + const ZyDisInstructionInfo *info, uint64_t address, uint64_t *offset, void *userData); @@ -86,19 +86,19 @@ typedef const char* (*VXCustomSymbolResolver_ResolveSymbolCallback)( * May also be @c NULL. * @return @c NULL if it fails, else a symbol resolver context. */ -VX_EXPORT VXBaseSymbolResolverContext* VXCustomSymbolResolver_Create( - VXCustomSymbolResolver_ResolveSymbolCallback resolverCb, +ZYDIS_EXPORT ZyDisBaseSymbolResolverContext* ZyDisCustomSymbolResolver_Create( + ZyDisCustomSymbolResolver_ResolveSymbolCallback resolverCb, void *userData); -/* VXBaseInstructionFormatter ================================================================== */ +/* ZyDisBaseInstructionFormatter ================================================================== */ -typedef struct _VXBaseInstructionFormatterContext +typedef struct _ZyDisBaseInstructionFormatterContext { - VXContextDescriptor d; -} VXBaseInstructionFormatterContext; + ZyDisContextDescriptor d; +} ZyDisBaseInstructionFormatterContext; -typedef void(*VXBaseInstructionFormatter_InternalFormatInstructionCallback)( - VXBaseInstructionFormatterContext *ctx, const VXInstructionInfo *info); +typedef void(*ZyDisBaseInstructionFormatter_InternalFormatInstructionCallback)( + ZyDisBaseInstructionFormatterContext *ctx, const ZyDisInstructionInfo *info); /** * @brief Formats a decoded instruction. @@ -107,17 +107,17 @@ typedef void(*VXBaseInstructionFormatter_InternalFormatInstructionCallback)( * @return Pointer to the formatted instruction string. This pointer remains valid until * this function is called again or the context is released. */ -VX_EXPORT const char* VXBaseInstructionFormatter_FormatInstruction( - VXBaseInstructionFormatterContext *ctx, - const VXInstructionInfo *info); +ZYDIS_EXPORT const char* ZyDisBaseInstructionFormatter_FormatInstruction( + ZyDisBaseInstructionFormatterContext *ctx, + const ZyDisInstructionInfo *info); /** * @brief Returns a pointer to the current symbol resolver. * @param ctx The instruction formatter context. * @return Pointer to the current symbol resolver or @c NULL if no symbol resolver is used. */ -VX_EXPORT VXBaseSymbolResolverContext* VXBaseInstructionFormatter_GetSymbolResolver( - const VXBaseInstructionFormatterContext *ctx); +ZYDIS_EXPORT ZyDisBaseSymbolResolverContext* ZyDisBaseInstructionFormatter_GetSymbolResolver( + const ZyDisBaseInstructionFormatterContext *ctx); /** * @brief Sets a new symbol resolver. @@ -125,45 +125,45 @@ VX_EXPORT VXBaseSymbolResolverContext* VXBaseInstructionFormatter_GetSymbolResol * @param symbolResolver Pointer to a symbol resolver instance or @c NULL, if no smybol * resolver should be used. */ -VX_EXPORT void VXBaseInstructionFormatter_SetSymbolResolver( - VXBaseInstructionFormatterContext *ctx, - VXBaseSymbolResolverContext *resolver); +ZYDIS_EXPORT void ZyDisBaseInstructionFormatter_SetSymbolResolver( + ZyDisBaseInstructionFormatterContext *ctx, + ZyDisBaseSymbolResolverContext *resolver); /** * @brief Releases an instruction formatter. * @param ctx The context of the instruction formatter to release. * The context may no longer used after it has been released. */ -VX_EXPORT void VXBaseInstructionFormatter_Release( - VXBaseInstructionFormatterContext *ctx); +ZYDIS_EXPORT void ZyDisBaseInstructionFormatter_Release( + ZyDisBaseInstructionFormatterContext *ctx); -/* VXIntelInstructionFormatter ================================================================= */ +/* ZyDisIntelInstructionFormatter ================================================================= */ /** * @brief Creates an Intel-syntax instruction formatter. * @return @c NULL if it fails, else an Intel instruction formatter context. - * @see VXBaseInstructionFormatter_Release + * @see ZyDisBaseInstructionFormatter_Release */ -VX_EXPORT VXBaseInstructionFormatterContext* VXIntelInstructionFormatter_Create(void); +ZYDIS_EXPORT ZyDisBaseInstructionFormatterContext* ZyDisIntelInstructionFormatter_Create(void); /** * @brief Creates an Intel-syntax instruction formatter. * @param resolver The symbol resolver consulted to resolve symbols on formatting. * @return @c NULL if it fails, else an Intel instruction formatter context. - * @see VXBaseInstructionFormatter_Release + * @see ZyDisBaseInstructionFormatter_Release */ -VX_EXPORT VXBaseInstructionFormatterContext* VXIntelInstructionFormatter_CreateEx( - VXBaseSymbolResolverContext *resolver); +ZYDIS_EXPORT ZyDisBaseInstructionFormatterContext* ZyDisIntelInstructionFormatter_CreateEx( + ZyDisBaseSymbolResolverContext *resolver); -/* VXCustomInstructionFormatter ================================================================ */ +/* ZyDisCustomInstructionFormatter ================================================================ */ /** * @brief Creats a custom instruction formatter. * @param formatInsnCb The callback formatting the instruction. * @return @c NULL if it fails, else a custom instruction formatter context. */ -VX_EXPORT VXBaseInstructionFormatterContext* VXCustomInstructionFormatter_Create( - VXBaseInstructionFormatter_InternalFormatInstructionCallback formatInsnCb); +ZYDIS_EXPORT ZyDisBaseInstructionFormatterContext* ZyDisCustomInstructionFormatter_Create( + ZyDisBaseInstructionFormatter_InternalFormatInstructionCallback formatInsnCb); /* ============================================================================================= */ @@ -171,4 +171,4 @@ VX_EXPORT VXBaseInstructionFormatterContext* VXCustomInstructionFormatter_Create } #endif -#endif /* _VDE_VXINSTRUCTIONFORMATTERC_H_ */ \ No newline at end of file +#endif /* _VDE_ZyDisINSTRUCTIONFORMATTERC_H_ */ \ No newline at end of file diff --git a/VerteronDisassemblerEngine/VXInternalConfig.h b/VerteronDisassemblerEngine/ZyDisInternalConfig.h similarity index 86% rename from VerteronDisassemblerEngine/VXInternalConfig.h rename to VerteronDisassemblerEngine/ZyDisInternalConfig.h index 2e88351..f44a19f 100644 --- a/VerteronDisassemblerEngine/VXInternalConfig.h +++ b/VerteronDisassemblerEngine/ZyDisInternalConfig.h @@ -34,17 +34,17 @@ * Include CMake generated header defining macros im-/exporting functions statically or * dynamically depending what the user requested from CMake. */ -#include "VXExportConfig.h" +#include "ZyDisExportConfig.h" -#ifndef _VDE_VXINTERNALCONFIG_H_ -#define _VDE_VXINTERNALCONFIG_H_ +#ifndef _VDE_ZyDisINTERNALCONFIG_H_ +#define _VDE_ZyDisINTERNALCONFIG_H_ #ifdef _MSC_VER -# define VX_INLINE __inline +# define ZYDIS_INLINE __inline #else -# define VX_INLINE static inline +# define ZYDIS_INLINE static inline #endif -#define VX_UNUSED(x) ((void)x) +#define ZYDIS_UNUSED(x) ((void)x) -#endif /* _VDE_VXINTERNALCONFIG_H_ */ +#endif /* _VDE_ZyDisINTERNALCONFIG_H_ */ diff --git a/VerteronDisassemblerEngine/ZyDisInternalHelpers.h b/VerteronDisassemblerEngine/ZyDisInternalHelpers.h new file mode 100644 index 0000000..7094c92 --- /dev/null +++ b/VerteronDisassemblerEngine/ZyDisInternalHelpers.h @@ -0,0 +1,197 @@ +/************************************************************************************************** + + Verteron Disassembler Engine + Version 1.0 + + Remarks : Freeware, Copyright must be included + + Original Author : athre0z + Modifications : + + Last change : 19. March 2015 + + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + +**************************************************************************************************/ + +#ifndef _VDE_ZyDisINTERNALHELPERS_H_ +#define _VDE_ZyDisINTERNALHELPERS_H_ + +#include "ZyDisInstructionDecoder.h" +#include "ZyDisInstructionFormatter.h" +#include "ZyDisInternalConfig.h" + +#include + +/* Types IDs =================================================================================== */ + +typedef enum _ZyDisTypeId +{ + TYPE_BASEDATASOURCE, + TYPE_MEMORYDATASOURCE, + TYPE_CUSTOMDATASOURCE, + TYPE_INSTRUCTIONDECODER, + TYPE_BASESYMBOLRESOLVER, + TYPE_CUSTOMSYMBOLRESOLVER, + TYPE_BASEINSTRUCTIONFORMATTER, + TYPE_INTELINSTRUCTIONFORMATTER, + TYPE_CUSTOMINSTRUCTIONFORMATTER, +} ZyDisTypeId; + +/* Context conversion helpers ================================================================== */ + +ZYDIS_INLINE struct _ZyDisBaseDataSource* ZyDisBaseDataSource_thiz( + ZyDisBaseDataSourceContext *ctx) +{ + assert(ctx->d.type == TYPE_BASEDATASOURCE + || ctx->d.type == TYPE_MEMORYDATASOURCE + || ctx->d.type == TYPE_CUSTOMDATASOURCE); + return (struct _ZyDisBaseDataSource*)ctx->d.ptr; +} + +ZYDIS_INLINE const struct _ZyDisBaseDataSource* ZyDisBaseDataSource_cthiz( + const ZyDisBaseDataSourceContext *ctx) +{ + assert(ctx->d.type == TYPE_BASEDATASOURCE + || ctx->d.type == TYPE_MEMORYDATASOURCE + || ctx->d.type == TYPE_CUSTOMDATASOURCE); + return (const struct _ZyDisBaseDataSource*)ctx->d.ptr; +} + +ZYDIS_INLINE struct _ZyDisMemoryDataSource* ZyDisMemoryDataSource_thiz( + ZyDisBaseDataSourceContext *ctx) +{ + assert(ctx->d.type == TYPE_MEMORYDATASOURCE); + return (struct _ZyDisMemoryDataSource*)ctx->d.ptr; +} + +ZYDIS_INLINE const struct _ZyDisMemoryDataSource* ZyDisMemoryDataSource_cthiz( + const ZyDisBaseDataSourceContext *ctx) +{ + assert(ctx->d.type == TYPE_MEMORYDATASOURCE); + return (const struct _ZyDisMemoryDataSource*)ctx->d.ptr; +} + +ZYDIS_INLINE struct _ZyDisCustomDataSource* ZyDisCustomDataSource_thiz( + ZyDisBaseDataSourceContext *ctx) +{ + assert(ctx->d.type == TYPE_CUSTOMDATASOURCE); + return (struct _ZyDisCustomDataSource*)ctx->d.ptr; +} + +ZYDIS_INLINE const struct _ZyDisCustomDataSource* ZyDisCustomDataSource_cthiz( + const ZyDisBaseDataSourceContext *ctx) +{ + assert(ctx->d.type == TYPE_CUSTOMDATASOURCE); + return (const struct _ZyDisCustomDataSource*)ctx->d.ptr; +} + +ZYDIS_INLINE struct _ZyDisInstructionDecoder* ZyDisInstructionDecoder_thiz( + ZyDisInstructionDecoderContext *ctx) +{ + assert(ctx->d.type == TYPE_INSTRUCTIONDECODER); + return (struct _ZyDisInstructionDecoder*)ctx->d.ptr; +} + +ZYDIS_INLINE const struct _ZyDisInstructionDecoder* ZyDisInstructionDecoder_cthiz( + const ZyDisInstructionDecoderContext *ctx) +{ + assert(ctx->d.type == TYPE_INSTRUCTIONDECODER); + return (const struct _ZyDisInstructionDecoder*)ctx->d.ptr; +} + +ZYDIS_INLINE struct _ZyDisBaseSymbolResolver* ZyDisBaseSymbolResolver_thiz( + ZyDisBaseSymbolResolverContext *ctx) +{ + assert(ctx->d.type == TYPE_BASESYMBOLRESOLVER + || ctx->d.type == TYPE_CUSTOMSYMBOLRESOLVER); + return (struct _ZyDisBaseSymbolResolver*)ctx->d.ptr; +} + +ZYDIS_INLINE const struct _ZyDisBaseSymbolResolver* ZyDisBaseSymbolResolver_cthiz( + const ZyDisBaseSymbolResolverContext *ctx) +{ + assert(ctx->d.type == TYPE_BASESYMBOLRESOLVER + || ctx->d.type == TYPE_CUSTOMSYMBOLRESOLVER); + return (const struct _ZyDisBaseSymbolResolver*)ctx->d.ptr; +} + +ZYDIS_INLINE struct _ZyDisCustomSymbolResolver* ZyDisCustomSymbolResolver_thiz( + ZyDisBaseSymbolResolverContext *ctx) +{ + assert(ctx->d.type == TYPE_CUSTOMSYMBOLRESOLVER); + return (struct _ZyDisCustomSymbolResolver*)ctx->d.ptr; +} + +ZYDIS_INLINE const struct _ZyDisCustomSymbolResolver* ZyDisCustomSymbolResolver_cthiz( + const ZyDisBaseSymbolResolverContext *ctx) +{ + assert(ctx->d.type == TYPE_CUSTOMSYMBOLRESOLVER); + return (const struct _ZyDisCustomSymbolResolver*)ctx->d.ptr; +} + +ZYDIS_INLINE struct _ZyDisBaseInstructionFormatter* ZyDisBaseInstructionFormatter_thiz( + ZyDisBaseInstructionFormatterContext *ctx) +{ + assert(ctx->d.type == TYPE_BASEINSTRUCTIONFORMATTER + || ctx->d.type == TYPE_INTELINSTRUCTIONFORMATTER + || ctx->d.type == TYPE_CUSTOMINSTRUCTIONFORMATTER); + return (struct _ZyDisBaseInstructionFormatter*)ctx->d.ptr; +} + +ZYDIS_INLINE const struct _ZyDisBaseInstructionFormatter* ZyDisBaseInstructionFormatter_cthiz( + const ZyDisBaseInstructionFormatterContext *ctx) +{ + assert(ctx->d.type == TYPE_BASEINSTRUCTIONFORMATTER + || ctx->d.type == TYPE_INTELINSTRUCTIONFORMATTER + || ctx->d.type == TYPE_CUSTOMINSTRUCTIONFORMATTER); + return (const struct _ZyDisBaseInstructionFormatter*)ctx->d.ptr; +} + +ZYDIS_INLINE struct _ZyDisIntelInstructionFormatter* ZyDisIntelInstructionFormatter_thiz( + ZyDisBaseInstructionFormatterContext *ctx) +{ + assert(ctx->d.type == TYPE_INTELINSTRUCTIONFORMATTER); + return (struct _ZyDisIntelInstructionFormatter*)ctx->d.ptr; +} + +ZYDIS_INLINE const struct _ZyDisIntelInstructionFormatter* ZyDisIntelInstructionFormatter_cthiz( + const ZyDisBaseInstructionFormatterContext *ctx) +{ + assert(ctx->d.type == TYPE_INTELINSTRUCTIONFORMATTER); + return (const struct _ZyDisIntelInstructionFormatter*)ctx->d.ptr; +} + +ZYDIS_INLINE struct _ZyDisCustomInstructionFormatter* ZyDisCustomInstructionFormatter_thiz( + ZyDisBaseInstructionFormatterContext *ctx) +{ + assert(ctx->d.type == TYPE_CUSTOMINSTRUCTIONFORMATTER); + return (struct _ZyDisCustomInstructionFormatter*)ctx->d.ptr; +} + +ZYDIS_INLINE const struct _ZyDisCustomInstructionFormatter* ZyDisCustomInstructionFormatter_cthiz( + const ZyDisBaseInstructionFormatterContext *ctx) +{ + assert(ctx->d.type == TYPE_CUSTOMINSTRUCTIONFORMATTER); + return (struct _ZyDisCustomInstructionFormatter*)ctx->d.ptr; +} + +/* ============================================================================================= */ + +#endif /* _VDE_ZyDisINTERNALHELPERS_H_ */ \ No newline at end of file diff --git a/VerteronDisassemblerEngine/VXOpcodeTable.c b/VerteronDisassemblerEngine/ZyDisOpcodeTable.c similarity index 73% rename from VerteronDisassemblerEngine/VXOpcodeTable.c rename to VerteronDisassemblerEngine/ZyDisOpcodeTable.c index 5a38d5e..762ccf7 100644 --- a/VerteronDisassemblerEngine/VXOpcodeTable.c +++ b/VerteronDisassemblerEngine/ZyDisOpcodeTable.c @@ -30,12 +30,12 @@ **************************************************************************************************/ -#include "VXOpcodeTable.h" +#include "ZyDisOpcodeTable.h" -#define VX_INVALID 0 -#define VX_NODE(type, n) ((VXOpcodeTreeNode)type << 12 | (n)) +#define ZYDIS_INVALID 0 +#define ZYDIS_NODE(type, n) ((ZyDisOpcodeTreeNode)type << 12 | (n)) -const VXOpcodeTreeNode vxOptreeTable[][256] = +const ZyDisOpcodeTreeNode vxOptreeTable[][256] = { { /* 00 */ 0x0015, @@ -44,64 +44,64 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 03 */ 0x0018, /* 04 */ 0x0017, /* 05 */ 0x0010, - /* 06 */ VX_NODE(OTNT_MODE, 0x0000), - /* 07 */ VX_NODE(OTNT_MODE, 0x0001), + /* 06 */ ZYDIS_NODE(OTNT_MODE, 0x0000), + /* 07 */ ZYDIS_NODE(OTNT_MODE, 0x0001), /* 08 */ 0x0394, /* 09 */ 0x0393, /* 0A */ 0x0396, /* 0B */ 0x0395, /* 0C */ 0x0390, /* 0D */ 0x038F, - /* 0E */ VX_NODE(OTNT_MODE, 0x0002), - /* 0F */ VX_NODE(OTNT_TABLE, 0x0001), + /* 0E */ ZYDIS_NODE(OTNT_MODE, 0x0002), + /* 0F */ ZYDIS_NODE(OTNT_TABLE, 0x0001), /* 10 */ 0x000B, /* 11 */ 0x000A, /* 12 */ 0x000C, /* 13 */ 0x000E, /* 14 */ 0x000D, /* 15 */ 0x0006, - /* 16 */ VX_NODE(OTNT_MODE, 0x0007), - /* 17 */ VX_NODE(OTNT_MODE, 0x0008), + /* 16 */ ZYDIS_NODE(OTNT_MODE, 0x0007), + /* 17 */ ZYDIS_NODE(OTNT_MODE, 0x0008), /* 18 */ 0x04FE, /* 19 */ 0x04F7, /* 1A */ 0x04F8, /* 1B */ 0x04FB, /* 1C */ 0x04FA, /* 1D */ 0x04F9, - /* 1E */ VX_NODE(OTNT_MODE, 0x0009), - /* 1F */ VX_NODE(OTNT_MODE, 0x000A), + /* 1E */ ZYDIS_NODE(OTNT_MODE, 0x0009), + /* 1F */ ZYDIS_NODE(OTNT_MODE, 0x000A), /* 20 */ 0x0026, /* 21 */ 0x0027, /* 22 */ 0x0025, /* 23 */ 0x002C, /* 24 */ 0x002D, /* 25 */ 0x002E, - /* 26 */ VX_INVALID, - /* 27 */ VX_NODE(OTNT_MODE, 0x000B), + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_NODE(OTNT_MODE, 0x000B), /* 28 */ 0x0542, /* 29 */ 0x0549, /* 2A */ 0x0548, /* 2B */ 0x054B, /* 2C */ 0x054A, /* 2D */ 0x0547, - /* 2E */ VX_INVALID, - /* 2F */ VX_NODE(OTNT_MODE, 0x000C), + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_NODE(OTNT_MODE, 0x000C), /* 30 */ 0x06B8, /* 31 */ 0x06B9, /* 32 */ 0x06B6, /* 33 */ 0x06B7, /* 34 */ 0x06BA, /* 35 */ 0x06BB, - /* 36 */ VX_INVALID, - /* 37 */ VX_NODE(OTNT_MODE, 0x000D), + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_NODE(OTNT_MODE, 0x000D), /* 38 */ 0x006C, /* 39 */ 0x006D, /* 3A */ 0x006B, /* 3B */ 0x006A, /* 3C */ 0x0070, /* 3D */ 0x006F, - /* 3E */ VX_INVALID, - /* 3F */ VX_NODE(OTNT_MODE, 0x000E), + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_NODE(OTNT_MODE, 0x000E), /* 40 */ 0x02AB, /* 41 */ 0x02AC, /* 42 */ 0x02B2, @@ -134,22 +134,22 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 5D */ 0x043D, /* 5E */ 0x043F, /* 5F */ 0x0441, - /* 60 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0007), - /* 61 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0008), - /* 62 */ VX_NODE(OTNT_MODE, 0x0013), - /* 63 */ VX_NODE(OTNT_MODE, 0x0014), - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, + /* 60 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0007), + /* 61 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0008), + /* 62 */ ZYDIS_NODE(OTNT_MODE, 0x0013), + /* 63 */ ZYDIS_NODE(OTNT_MODE, 0x0014), + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, /* 68 */ 0x04B7, /* 69 */ 0x02A4, /* 6A */ 0x04AB, /* 6B */ 0x02A6, /* 6C */ 0x02B5, - /* 6D */ VX_NODE(OTNT_OPERAND_SIZE, 0x0009), + /* 6D */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0009), /* 6E */ 0x039F, - /* 6F */ VX_NODE(OTNT_OPERAND_SIZE, 0x000A), + /* 6F */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x000A), /* 70 */ 0x02E8, /* 71 */ 0x02E2, /* 72 */ 0x02CA, @@ -166,10 +166,10 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 7D */ 0x02D3, /* 7E */ 0x02D8, /* 7F */ 0x02D1, - /* 80 */ VX_NODE(OTNT_MODRM_REG, 0x0013), - /* 81 */ VX_NODE(OTNT_MODRM_REG, 0x0014), - /* 82 */ VX_NODE(OTNT_MODRM_REG, 0x0015), - /* 83 */ VX_NODE(OTNT_MODRM_REG, 0x0016), + /* 80 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0013), + /* 81 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0014), + /* 82 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0015), + /* 83 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0016), /* 84 */ 0x055C, /* 85 */ 0x055D, /* 86 */ 0x06A8, @@ -181,7 +181,7 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 8C */ 0x031D, /* 8D */ 0x02F4, /* 8E */ 0x031C, - /* 8F */ VX_NODE(OTNT_MODRM_REG, 0x0017), + /* 8F */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0017), /* 90 */ 0x06A9, /* 91 */ 0x06AB, /* 92 */ 0x06AA, @@ -190,12 +190,12 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 95 */ 0x06A4, /* 96 */ 0x06A6, /* 97 */ 0x06A5, - /* 98 */ VX_NODE(OTNT_OPERAND_SIZE, 0x000B), - /* 99 */ VX_NODE(OTNT_OPERAND_SIZE, 0x000C), - /* 9A */ VX_NODE(OTNT_MODE, 0x001D), + /* 98 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x000B), + /* 99 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x000C), + /* 9A */ ZYDIS_NODE(OTNT_MODE, 0x001D), /* 9B */ 0x069D, - /* 9C */ VX_NODE(OTNT_OPERAND_SIZE, 0x000D), - /* 9D */ VX_NODE(OTNT_OPERAND_SIZE, 0x000E), + /* 9C */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x000D), + /* 9D */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x000E), /* 9E */ 0x04EF, /* 9F */ 0x02EF, /* A0 */ 0x031B, @@ -203,17 +203,17 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* A2 */ 0x031F, /* A3 */ 0x031E, /* A4 */ 0x0367, - /* A5 */ VX_NODE(OTNT_OPERAND_SIZE, 0x000F), + /* A5 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x000F), /* A6 */ 0x0076, - /* A7 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0010), + /* A7 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0010), /* A8 */ 0x055E, /* A9 */ 0x055B, /* AA */ 0x053D, - /* AB */ VX_NODE(OTNT_OPERAND_SIZE, 0x0011), + /* AB */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0011), /* AC */ 0x0300, - /* AD */ VX_NODE(OTNT_OPERAND_SIZE, 0x0012), + /* AD */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0012), /* AE */ 0x0501, - /* AF */ VX_NODE(OTNT_OPERAND_SIZE, 0x0013), + /* AF */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0013), /* B0 */ 0x0317, /* B1 */ 0x031A, /* B2 */ 0x0318, @@ -230,49 +230,49 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* BD */ 0x0324, /* BE */ 0x0323, /* BF */ 0x0322, - /* C0 */ VX_NODE(OTNT_MODRM_REG, 0x0018), - /* C1 */ VX_NODE(OTNT_MODRM_REG, 0x0019), + /* C0 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0018), + /* C1 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0019), /* C2 */ 0x04D9, /* C3 */ 0x04D8, - /* C4 */ VX_NODE(OTNT_VEX, 0x0000), - /* C5 */ VX_NODE(OTNT_VEX, 0x0001), - /* C6 */ VX_NODE(OTNT_MODRM_REG, 0x001E), - /* C7 */ VX_NODE(OTNT_MODRM_REG, 0x001F), + /* C4 */ ZYDIS_NODE(OTNT_VEX, 0x0000), + /* C5 */ ZYDIS_NODE(OTNT_VEX, 0x0001), + /* C6 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x001E), + /* C7 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x001F), /* C8 */ 0x00B4, /* C9 */ 0x02F5, /* CA */ 0x04DA, /* CB */ 0x04DB, /* CC */ 0x02BB, /* CD */ 0x02B9, - /* CE */ VX_NODE(OTNT_MODE, 0x0027), - /* CF */ VX_NODE(OTNT_OPERAND_SIZE, 0x0017), - /* D0 */ VX_NODE(OTNT_MODRM_REG, 0x0020), - /* D1 */ VX_NODE(OTNT_MODRM_REG, 0x0021), - /* D2 */ VX_NODE(OTNT_MODRM_REG, 0x0022), - /* D3 */ VX_NODE(OTNT_MODRM_REG, 0x0023), - /* D4 */ VX_NODE(OTNT_MODE, 0x0028), - /* D5 */ VX_NODE(OTNT_MODE, 0x0029), - /* D6 */ VX_NODE(OTNT_MODE, 0x002A), + /* CE */ ZYDIS_NODE(OTNT_MODE, 0x0027), + /* CF */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0017), + /* D0 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0020), + /* D1 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0021), + /* D2 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0022), + /* D3 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0023), + /* D4 */ ZYDIS_NODE(OTNT_MODE, 0x0028), + /* D5 */ ZYDIS_NODE(OTNT_MODE, 0x0029), + /* D6 */ ZYDIS_NODE(OTNT_MODE, 0x002A), /* D7 */ 0x06B2, - /* D8 */ VX_NODE(OTNT_MODRM_MOD, 0x0015), - /* D9 */ VX_NODE(OTNT_MODRM_MOD, 0x0016), - /* DA */ VX_NODE(OTNT_MODRM_MOD, 0x0017), - /* DB */ VX_NODE(OTNT_MODRM_MOD, 0x0018), - /* DC */ VX_NODE(OTNT_MODRM_MOD, 0x0019), - /* DD */ VX_NODE(OTNT_MODRM_MOD, 0x001A), - /* DE */ VX_NODE(OTNT_MODRM_MOD, 0x001B), - /* DF */ VX_NODE(OTNT_MODRM_MOD, 0x001C), + /* D8 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0015), + /* D9 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0016), + /* DA */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0017), + /* DB */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0018), + /* DC */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0019), + /* DD */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x001A), + /* DE */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x001B), + /* DF */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x001C), /* E0 */ 0x0306, /* E1 */ 0x0305, /* E2 */ 0x0304, - /* E3 */ VX_NODE(OTNT_ADDRESS_SIZE, 0x0000), + /* E3 */ ZYDIS_NODE(OTNT_ADDRESS_SIZE, 0x0000), /* E4 */ 0x02A9, /* E5 */ 0x02AA, /* E6 */ 0x039D, /* E7 */ 0x039E, /* E8 */ 0x004E, /* E9 */ 0x02DB, - /* EA */ VX_NODE(OTNT_MODE, 0x002B), + /* EA */ ZYDIS_NODE(OTNT_MODE, 0x002B), /* EB */ 0x02DD, /* EC */ 0x02A7, /* ED */ 0x02A8, @@ -284,872 +284,872 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* F3 */ 0x04D6, /* F4 */ 0x029D, /* F5 */ 0x0059, - /* F6 */ VX_NODE(OTNT_MODRM_REG, 0x002C), - /* F7 */ VX_NODE(OTNT_MODRM_REG, 0x002D), + /* F6 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x002C), + /* F7 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x002D), /* F8 */ 0x0053, /* F9 */ 0x0538, /* FA */ 0x0057, /* FB */ 0x053B, /* FC */ 0x0054, /* FD */ 0x0539, - /* FE */ VX_NODE(OTNT_MODRM_REG, 0x002E), - /* FF */ VX_NODE(OTNT_MODRM_REG, 0x002F), + /* FE */ ZYDIS_NODE(OTNT_MODRM_REG, 0x002E), + /* FF */ ZYDIS_NODE(OTNT_MODRM_REG, 0x002F), }, { - /* 00 */ VX_NODE(OTNT_MANDATORY, 0x0000), - /* 01 */ VX_NODE(OTNT_MODRM_MOD, 0x0000), - /* 02 */ VX_NODE(OTNT_MANDATORY, 0x0003), - /* 03 */ VX_NODE(OTNT_MANDATORY, 0x0004), - /* 04 */ VX_INVALID, - /* 05 */ VX_NODE(OTNT_MANDATORY, 0x0005), - /* 06 */ VX_NODE(OTNT_MANDATORY, 0x0006), - /* 07 */ VX_NODE(OTNT_MANDATORY, 0x0007), - /* 08 */ VX_NODE(OTNT_MANDATORY, 0x0008), - /* 09 */ VX_NODE(OTNT_MANDATORY, 0x0009), - /* 0A */ VX_INVALID, - /* 0B */ VX_NODE(OTNT_MANDATORY, 0x000A), - /* 0C */ VX_INVALID, - /* 0D */ VX_NODE(OTNT_MANDATORY, 0x000B), - /* 0E */ VX_NODE(OTNT_MANDATORY, 0x000C), - /* 0F */ VX_NODE(OTNT_AMD3DNOW, 0x0000), - /* 10 */ VX_NODE(OTNT_MANDATORY, 0x000D), - /* 11 */ VX_NODE(OTNT_MANDATORY, 0x000E), - /* 12 */ VX_NODE(OTNT_MODRM_MOD, 0x0001), - /* 13 */ VX_NODE(OTNT_MANDATORY, 0x0011), - /* 14 */ VX_NODE(OTNT_MANDATORY, 0x0012), - /* 15 */ VX_NODE(OTNT_MANDATORY, 0x0013), - /* 16 */ VX_NODE(OTNT_MODRM_MOD, 0x0002), - /* 17 */ VX_NODE(OTNT_MANDATORY, 0x0016), - /* 18 */ VX_NODE(OTNT_MANDATORY, 0x0017), - /* 19 */ VX_NODE(OTNT_MANDATORY, 0x0018), - /* 1A */ VX_NODE(OTNT_MANDATORY, 0x0019), - /* 1B */ VX_NODE(OTNT_MANDATORY, 0x001A), - /* 1C */ VX_NODE(OTNT_MANDATORY, 0x001B), - /* 1D */ VX_NODE(OTNT_MANDATORY, 0x001C), - /* 1E */ VX_NODE(OTNT_MANDATORY, 0x001D), - /* 1F */ VX_NODE(OTNT_MANDATORY, 0x001E), - /* 20 */ VX_NODE(OTNT_MANDATORY, 0x001F), - /* 21 */ VX_NODE(OTNT_MANDATORY, 0x0020), - /* 22 */ VX_NODE(OTNT_MANDATORY, 0x0021), - /* 23 */ VX_NODE(OTNT_MANDATORY, 0x0022), - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_NODE(OTNT_MANDATORY, 0x0023), - /* 29 */ VX_NODE(OTNT_MANDATORY, 0x0024), - /* 2A */ VX_NODE(OTNT_MANDATORY, 0x0025), - /* 2B */ VX_NODE(OTNT_MANDATORY, 0x0026), - /* 2C */ VX_NODE(OTNT_MANDATORY, 0x0027), - /* 2D */ VX_NODE(OTNT_MANDATORY, 0x0028), - /* 2E */ VX_NODE(OTNT_MANDATORY, 0x0029), - /* 2F */ VX_NODE(OTNT_MANDATORY, 0x002A), - /* 30 */ VX_NODE(OTNT_MANDATORY, 0x002B), - /* 31 */ VX_NODE(OTNT_MANDATORY, 0x002C), - /* 32 */ VX_NODE(OTNT_MANDATORY, 0x002D), - /* 33 */ VX_NODE(OTNT_MANDATORY, 0x002E), - /* 34 */ VX_NODE(OTNT_MANDATORY, 0x002F), - /* 35 */ VX_NODE(OTNT_MANDATORY, 0x0030), - /* 36 */ VX_INVALID, - /* 37 */ VX_NODE(OTNT_MANDATORY, 0x0031), - /* 38 */ VX_NODE(OTNT_TABLE, 0x0002), - /* 39 */ VX_INVALID, - /* 3A */ VX_NODE(OTNT_TABLE, 0x0003), - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_NODE(OTNT_MANDATORY, 0x0081), - /* 41 */ VX_NODE(OTNT_MANDATORY, 0x0082), - /* 42 */ VX_NODE(OTNT_MANDATORY, 0x0083), - /* 43 */ VX_NODE(OTNT_MANDATORY, 0x0084), - /* 44 */ VX_NODE(OTNT_MANDATORY, 0x0085), - /* 45 */ VX_NODE(OTNT_MANDATORY, 0x0086), - /* 46 */ VX_NODE(OTNT_MANDATORY, 0x0087), - /* 47 */ VX_NODE(OTNT_MANDATORY, 0x0088), - /* 48 */ VX_NODE(OTNT_MANDATORY, 0x0089), - /* 49 */ VX_NODE(OTNT_MANDATORY, 0x008A), - /* 4A */ VX_NODE(OTNT_MANDATORY, 0x008B), - /* 4B */ VX_NODE(OTNT_MANDATORY, 0x008C), - /* 4C */ VX_NODE(OTNT_MANDATORY, 0x008D), - /* 4D */ VX_NODE(OTNT_MANDATORY, 0x008E), - /* 4E */ VX_NODE(OTNT_MANDATORY, 0x008F), - /* 4F */ VX_NODE(OTNT_MANDATORY, 0x0090), - /* 50 */ VX_NODE(OTNT_MANDATORY, 0x0091), - /* 51 */ VX_NODE(OTNT_MANDATORY, 0x0092), - /* 52 */ VX_NODE(OTNT_MANDATORY, 0x0093), - /* 53 */ VX_NODE(OTNT_MANDATORY, 0x0094), - /* 54 */ VX_NODE(OTNT_MANDATORY, 0x0095), - /* 55 */ VX_NODE(OTNT_MANDATORY, 0x0096), - /* 56 */ VX_NODE(OTNT_MANDATORY, 0x0097), - /* 57 */ VX_NODE(OTNT_MANDATORY, 0x0098), - /* 58 */ VX_NODE(OTNT_MANDATORY, 0x0099), - /* 59 */ VX_NODE(OTNT_MANDATORY, 0x009A), - /* 5A */ VX_NODE(OTNT_MANDATORY, 0x009B), - /* 5B */ VX_NODE(OTNT_MANDATORY, 0x009C), - /* 5C */ VX_NODE(OTNT_MANDATORY, 0x009D), - /* 5D */ VX_NODE(OTNT_MANDATORY, 0x009E), - /* 5E */ VX_NODE(OTNT_MANDATORY, 0x009F), - /* 5F */ VX_NODE(OTNT_MANDATORY, 0x00A0), - /* 60 */ VX_NODE(OTNT_MANDATORY, 0x00A1), - /* 61 */ VX_NODE(OTNT_MANDATORY, 0x00A2), - /* 62 */ VX_NODE(OTNT_MANDATORY, 0x00A3), - /* 63 */ VX_NODE(OTNT_MANDATORY, 0x00A4), - /* 64 */ VX_NODE(OTNT_MANDATORY, 0x00A5), - /* 65 */ VX_NODE(OTNT_MANDATORY, 0x00A6), - /* 66 */ VX_NODE(OTNT_MANDATORY, 0x00A7), - /* 67 */ VX_NODE(OTNT_MANDATORY, 0x00A8), - /* 68 */ VX_NODE(OTNT_MANDATORY, 0x00A9), - /* 69 */ VX_NODE(OTNT_MANDATORY, 0x00AA), - /* 6A */ VX_NODE(OTNT_MANDATORY, 0x00AB), - /* 6B */ VX_NODE(OTNT_MANDATORY, 0x00AC), - /* 6C */ VX_NODE(OTNT_MANDATORY, 0x00AD), - /* 6D */ VX_NODE(OTNT_MANDATORY, 0x00AE), - /* 6E */ VX_NODE(OTNT_MANDATORY, 0x00AF), - /* 6F */ VX_NODE(OTNT_MANDATORY, 0x00B0), - /* 70 */ VX_NODE(OTNT_MANDATORY, 0x00B1), - /* 71 */ VX_NODE(OTNT_MANDATORY, 0x00B2), - /* 72 */ VX_NODE(OTNT_MANDATORY, 0x00B3), - /* 73 */ VX_NODE(OTNT_MANDATORY, 0x00B4), - /* 74 */ VX_NODE(OTNT_MANDATORY, 0x00B5), - /* 75 */ VX_NODE(OTNT_MANDATORY, 0x00B6), - /* 76 */ VX_NODE(OTNT_MANDATORY, 0x00B7), - /* 77 */ VX_NODE(OTNT_MANDATORY, 0x00B8), - /* 78 */ VX_NODE(OTNT_MANDATORY, 0x00B9), - /* 79 */ VX_NODE(OTNT_MANDATORY, 0x00BA), - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_NODE(OTNT_MANDATORY, 0x00BB), - /* 7D */ VX_NODE(OTNT_MANDATORY, 0x00BC), - /* 7E */ VX_NODE(OTNT_MANDATORY, 0x00BD), - /* 7F */ VX_NODE(OTNT_MANDATORY, 0x00BE), - /* 80 */ VX_NODE(OTNT_MANDATORY, 0x00BF), - /* 81 */ VX_NODE(OTNT_MANDATORY, 0x00C0), - /* 82 */ VX_NODE(OTNT_MANDATORY, 0x00C1), - /* 83 */ VX_NODE(OTNT_MANDATORY, 0x00C2), - /* 84 */ VX_NODE(OTNT_MANDATORY, 0x00C3), - /* 85 */ VX_NODE(OTNT_MANDATORY, 0x00C4), - /* 86 */ VX_NODE(OTNT_MANDATORY, 0x00C5), - /* 87 */ VX_NODE(OTNT_MANDATORY, 0x00C6), - /* 88 */ VX_NODE(OTNT_MANDATORY, 0x00C7), - /* 89 */ VX_NODE(OTNT_MANDATORY, 0x00C8), - /* 8A */ VX_NODE(OTNT_MANDATORY, 0x00C9), - /* 8B */ VX_NODE(OTNT_MANDATORY, 0x00CA), - /* 8C */ VX_NODE(OTNT_MANDATORY, 0x00CB), - /* 8D */ VX_NODE(OTNT_MANDATORY, 0x00CC), - /* 8E */ VX_NODE(OTNT_MANDATORY, 0x00CD), - /* 8F */ VX_NODE(OTNT_MANDATORY, 0x00CE), - /* 90 */ VX_NODE(OTNT_MANDATORY, 0x00CF), - /* 91 */ VX_NODE(OTNT_MANDATORY, 0x00D0), - /* 92 */ VX_NODE(OTNT_MANDATORY, 0x00D1), - /* 93 */ VX_NODE(OTNT_MANDATORY, 0x00D2), - /* 94 */ VX_NODE(OTNT_MANDATORY, 0x00D3), - /* 95 */ VX_NODE(OTNT_MANDATORY, 0x00D4), - /* 96 */ VX_NODE(OTNT_MANDATORY, 0x00D5), - /* 97 */ VX_NODE(OTNT_MANDATORY, 0x00D6), - /* 98 */ VX_NODE(OTNT_MANDATORY, 0x00D7), - /* 99 */ VX_NODE(OTNT_MANDATORY, 0x00D8), - /* 9A */ VX_NODE(OTNT_MANDATORY, 0x00D9), - /* 9B */ VX_NODE(OTNT_MANDATORY, 0x00DA), - /* 9C */ VX_NODE(OTNT_MANDATORY, 0x00DB), - /* 9D */ VX_NODE(OTNT_MANDATORY, 0x00DC), - /* 9E */ VX_NODE(OTNT_MANDATORY, 0x00DD), - /* 9F */ VX_NODE(OTNT_MANDATORY, 0x00DE), - /* A0 */ VX_NODE(OTNT_MANDATORY, 0x00DF), - /* A1 */ VX_NODE(OTNT_MANDATORY, 0x00E0), - /* A2 */ VX_NODE(OTNT_MANDATORY, 0x00E1), - /* A3 */ VX_NODE(OTNT_MANDATORY, 0x00E2), - /* A4 */ VX_NODE(OTNT_MANDATORY, 0x00E3), - /* A5 */ VX_NODE(OTNT_MANDATORY, 0x00E4), - /* A6 */ VX_NODE(OTNT_MODRM_MOD, 0x0003), - /* A7 */ VX_NODE(OTNT_MODRM_MOD, 0x0004), - /* A8 */ VX_NODE(OTNT_MANDATORY, 0x00E7), - /* A9 */ VX_NODE(OTNT_MANDATORY, 0x00E8), - /* AA */ VX_NODE(OTNT_MANDATORY, 0x00E9), - /* AB */ VX_NODE(OTNT_MANDATORY, 0x00EA), - /* AC */ VX_NODE(OTNT_MANDATORY, 0x00EB), - /* AD */ VX_NODE(OTNT_MANDATORY, 0x00EC), - /* AE */ VX_NODE(OTNT_MODRM_MOD, 0x0005), - /* AF */ VX_NODE(OTNT_MANDATORY, 0x00EF), - /* B0 */ VX_NODE(OTNT_MANDATORY, 0x00F0), - /* B1 */ VX_NODE(OTNT_MANDATORY, 0x00F1), - /* B2 */ VX_NODE(OTNT_MANDATORY, 0x00F2), - /* B3 */ VX_NODE(OTNT_MANDATORY, 0x00F3), - /* B4 */ VX_NODE(OTNT_MANDATORY, 0x00F4), - /* B5 */ VX_NODE(OTNT_MANDATORY, 0x00F5), - /* B6 */ VX_NODE(OTNT_MANDATORY, 0x00F6), - /* B7 */ VX_NODE(OTNT_MANDATORY, 0x00F7), - /* B8 */ VX_NODE(OTNT_MANDATORY, 0x00F8), - /* B9 */ VX_INVALID, - /* BA */ VX_NODE(OTNT_MANDATORY, 0x00F9), - /* BB */ VX_NODE(OTNT_MANDATORY, 0x00FA), - /* BC */ VX_NODE(OTNT_MANDATORY, 0x00FB), - /* BD */ VX_NODE(OTNT_MANDATORY, 0x00FC), - /* BE */ VX_NODE(OTNT_MANDATORY, 0x00FD), - /* BF */ VX_NODE(OTNT_MANDATORY, 0x00FE), - /* C0 */ VX_NODE(OTNT_MANDATORY, 0x00FF), - /* C1 */ VX_NODE(OTNT_MANDATORY, 0x0100), - /* C2 */ VX_NODE(OTNT_MANDATORY, 0x0101), - /* C3 */ VX_NODE(OTNT_MANDATORY, 0x0102), - /* C4 */ VX_NODE(OTNT_MANDATORY, 0x0103), - /* C5 */ VX_NODE(OTNT_MANDATORY, 0x0104), - /* C6 */ VX_NODE(OTNT_MANDATORY, 0x0105), - /* C7 */ VX_NODE(OTNT_MODRM_MOD, 0x0006), - /* C8 */ VX_NODE(OTNT_MANDATORY, 0x0108), - /* C9 */ VX_NODE(OTNT_MANDATORY, 0x0109), - /* CA */ VX_NODE(OTNT_MANDATORY, 0x010A), - /* CB */ VX_NODE(OTNT_MANDATORY, 0x010B), - /* CC */ VX_NODE(OTNT_MANDATORY, 0x010C), - /* CD */ VX_NODE(OTNT_MANDATORY, 0x010D), - /* CE */ VX_NODE(OTNT_MANDATORY, 0x010E), - /* CF */ VX_NODE(OTNT_MANDATORY, 0x010F), - /* D0 */ VX_NODE(OTNT_MANDATORY, 0x0110), - /* D1 */ VX_NODE(OTNT_MANDATORY, 0x0111), - /* D2 */ VX_NODE(OTNT_MANDATORY, 0x0112), - /* D3 */ VX_NODE(OTNT_MANDATORY, 0x0113), - /* D4 */ VX_NODE(OTNT_MANDATORY, 0x0114), - /* D5 */ VX_NODE(OTNT_MANDATORY, 0x0115), - /* D6 */ VX_NODE(OTNT_MANDATORY, 0x0116), - /* D7 */ VX_NODE(OTNT_MANDATORY, 0x0117), - /* D8 */ VX_NODE(OTNT_MANDATORY, 0x0118), - /* D9 */ VX_NODE(OTNT_MANDATORY, 0x0119), - /* DA */ VX_NODE(OTNT_MANDATORY, 0x011A), - /* DB */ VX_NODE(OTNT_MANDATORY, 0x011B), - /* DC */ VX_NODE(OTNT_MANDATORY, 0x011C), - /* DD */ VX_NODE(OTNT_MANDATORY, 0x011D), - /* DE */ VX_NODE(OTNT_MANDATORY, 0x011E), - /* DF */ VX_NODE(OTNT_MANDATORY, 0x011F), - /* E0 */ VX_NODE(OTNT_MANDATORY, 0x0120), - /* E1 */ VX_NODE(OTNT_MANDATORY, 0x0121), - /* E2 */ VX_NODE(OTNT_MANDATORY, 0x0122), - /* E3 */ VX_NODE(OTNT_MANDATORY, 0x0123), - /* E4 */ VX_NODE(OTNT_MANDATORY, 0x0124), - /* E5 */ VX_NODE(OTNT_MANDATORY, 0x0125), - /* E6 */ VX_NODE(OTNT_MANDATORY, 0x0126), - /* E7 */ VX_NODE(OTNT_MANDATORY, 0x0127), - /* E8 */ VX_NODE(OTNT_MANDATORY, 0x0128), - /* E9 */ VX_NODE(OTNT_MANDATORY, 0x0129), - /* EA */ VX_NODE(OTNT_MANDATORY, 0x012A), - /* EB */ VX_NODE(OTNT_MANDATORY, 0x012B), - /* EC */ VX_NODE(OTNT_MANDATORY, 0x012C), - /* ED */ VX_NODE(OTNT_MANDATORY, 0x012D), - /* EE */ VX_NODE(OTNT_MANDATORY, 0x012E), - /* EF */ VX_NODE(OTNT_MANDATORY, 0x012F), - /* F0 */ VX_NODE(OTNT_MANDATORY, 0x0130), - /* F1 */ VX_NODE(OTNT_MANDATORY, 0x0131), - /* F2 */ VX_NODE(OTNT_MANDATORY, 0x0132), - /* F3 */ VX_NODE(OTNT_MANDATORY, 0x0133), - /* F4 */ VX_NODE(OTNT_MANDATORY, 0x0134), - /* F5 */ VX_NODE(OTNT_MANDATORY, 0x0135), - /* F6 */ VX_NODE(OTNT_MANDATORY, 0x0136), - /* F7 */ VX_NODE(OTNT_MODRM_MOD, 0x0007), - /* F8 */ VX_NODE(OTNT_MANDATORY, 0x0138), - /* F9 */ VX_NODE(OTNT_MANDATORY, 0x0139), - /* FA */ VX_NODE(OTNT_MANDATORY, 0x013A), - /* FB */ VX_NODE(OTNT_MANDATORY, 0x013B), - /* FC */ VX_NODE(OTNT_MANDATORY, 0x013C), - /* FD */ VX_NODE(OTNT_MANDATORY, 0x013D), - /* FE */ VX_NODE(OTNT_MANDATORY, 0x013E), - /* FF */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0000), + /* 01 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0000), + /* 02 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0003), + /* 03 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0004), + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0005), + /* 06 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0006), + /* 07 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0007), + /* 08 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0008), + /* 09 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0009), + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_NODE(OTNT_MANDATORY, 0x000A), + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_NODE(OTNT_MANDATORY, 0x000B), + /* 0E */ ZYDIS_NODE(OTNT_MANDATORY, 0x000C), + /* 0F */ ZYDIS_NODE(OTNT_AMD3DNOW, 0x0000), + /* 10 */ ZYDIS_NODE(OTNT_MANDATORY, 0x000D), + /* 11 */ ZYDIS_NODE(OTNT_MANDATORY, 0x000E), + /* 12 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0001), + /* 13 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0011), + /* 14 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0012), + /* 15 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0013), + /* 16 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0002), + /* 17 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0016), + /* 18 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0017), + /* 19 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0018), + /* 1A */ ZYDIS_NODE(OTNT_MANDATORY, 0x0019), + /* 1B */ ZYDIS_NODE(OTNT_MANDATORY, 0x001A), + /* 1C */ ZYDIS_NODE(OTNT_MANDATORY, 0x001B), + /* 1D */ ZYDIS_NODE(OTNT_MANDATORY, 0x001C), + /* 1E */ ZYDIS_NODE(OTNT_MANDATORY, 0x001D), + /* 1F */ ZYDIS_NODE(OTNT_MANDATORY, 0x001E), + /* 20 */ ZYDIS_NODE(OTNT_MANDATORY, 0x001F), + /* 21 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0020), + /* 22 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0021), + /* 23 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0022), + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0023), + /* 29 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0024), + /* 2A */ ZYDIS_NODE(OTNT_MANDATORY, 0x0025), + /* 2B */ ZYDIS_NODE(OTNT_MANDATORY, 0x0026), + /* 2C */ ZYDIS_NODE(OTNT_MANDATORY, 0x0027), + /* 2D */ ZYDIS_NODE(OTNT_MANDATORY, 0x0028), + /* 2E */ ZYDIS_NODE(OTNT_MANDATORY, 0x0029), + /* 2F */ ZYDIS_NODE(OTNT_MANDATORY, 0x002A), + /* 30 */ ZYDIS_NODE(OTNT_MANDATORY, 0x002B), + /* 31 */ ZYDIS_NODE(OTNT_MANDATORY, 0x002C), + /* 32 */ ZYDIS_NODE(OTNT_MANDATORY, 0x002D), + /* 33 */ ZYDIS_NODE(OTNT_MANDATORY, 0x002E), + /* 34 */ ZYDIS_NODE(OTNT_MANDATORY, 0x002F), + /* 35 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0030), + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0031), + /* 38 */ ZYDIS_NODE(OTNT_TABLE, 0x0002), + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_NODE(OTNT_TABLE, 0x0003), + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0081), + /* 41 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0082), + /* 42 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0083), + /* 43 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0084), + /* 44 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0085), + /* 45 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0086), + /* 46 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0087), + /* 47 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0088), + /* 48 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0089), + /* 49 */ ZYDIS_NODE(OTNT_MANDATORY, 0x008A), + /* 4A */ ZYDIS_NODE(OTNT_MANDATORY, 0x008B), + /* 4B */ ZYDIS_NODE(OTNT_MANDATORY, 0x008C), + /* 4C */ ZYDIS_NODE(OTNT_MANDATORY, 0x008D), + /* 4D */ ZYDIS_NODE(OTNT_MANDATORY, 0x008E), + /* 4E */ ZYDIS_NODE(OTNT_MANDATORY, 0x008F), + /* 4F */ ZYDIS_NODE(OTNT_MANDATORY, 0x0090), + /* 50 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0091), + /* 51 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0092), + /* 52 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0093), + /* 53 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0094), + /* 54 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0095), + /* 55 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0096), + /* 56 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0097), + /* 57 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0098), + /* 58 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0099), + /* 59 */ ZYDIS_NODE(OTNT_MANDATORY, 0x009A), + /* 5A */ ZYDIS_NODE(OTNT_MANDATORY, 0x009B), + /* 5B */ ZYDIS_NODE(OTNT_MANDATORY, 0x009C), + /* 5C */ ZYDIS_NODE(OTNT_MANDATORY, 0x009D), + /* 5D */ ZYDIS_NODE(OTNT_MANDATORY, 0x009E), + /* 5E */ ZYDIS_NODE(OTNT_MANDATORY, 0x009F), + /* 5F */ ZYDIS_NODE(OTNT_MANDATORY, 0x00A0), + /* 60 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00A1), + /* 61 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00A2), + /* 62 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00A3), + /* 63 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00A4), + /* 64 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00A5), + /* 65 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00A6), + /* 66 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00A7), + /* 67 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00A8), + /* 68 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00A9), + /* 69 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00AA), + /* 6A */ ZYDIS_NODE(OTNT_MANDATORY, 0x00AB), + /* 6B */ ZYDIS_NODE(OTNT_MANDATORY, 0x00AC), + /* 6C */ ZYDIS_NODE(OTNT_MANDATORY, 0x00AD), + /* 6D */ ZYDIS_NODE(OTNT_MANDATORY, 0x00AE), + /* 6E */ ZYDIS_NODE(OTNT_MANDATORY, 0x00AF), + /* 6F */ ZYDIS_NODE(OTNT_MANDATORY, 0x00B0), + /* 70 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00B1), + /* 71 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00B2), + /* 72 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00B3), + /* 73 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00B4), + /* 74 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00B5), + /* 75 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00B6), + /* 76 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00B7), + /* 77 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00B8), + /* 78 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00B9), + /* 79 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00BA), + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_NODE(OTNT_MANDATORY, 0x00BB), + /* 7D */ ZYDIS_NODE(OTNT_MANDATORY, 0x00BC), + /* 7E */ ZYDIS_NODE(OTNT_MANDATORY, 0x00BD), + /* 7F */ ZYDIS_NODE(OTNT_MANDATORY, 0x00BE), + /* 80 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00BF), + /* 81 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00C0), + /* 82 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00C1), + /* 83 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00C2), + /* 84 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00C3), + /* 85 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00C4), + /* 86 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00C5), + /* 87 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00C6), + /* 88 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00C7), + /* 89 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00C8), + /* 8A */ ZYDIS_NODE(OTNT_MANDATORY, 0x00C9), + /* 8B */ ZYDIS_NODE(OTNT_MANDATORY, 0x00CA), + /* 8C */ ZYDIS_NODE(OTNT_MANDATORY, 0x00CB), + /* 8D */ ZYDIS_NODE(OTNT_MANDATORY, 0x00CC), + /* 8E */ ZYDIS_NODE(OTNT_MANDATORY, 0x00CD), + /* 8F */ ZYDIS_NODE(OTNT_MANDATORY, 0x00CE), + /* 90 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00CF), + /* 91 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00D0), + /* 92 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00D1), + /* 93 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00D2), + /* 94 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00D3), + /* 95 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00D4), + /* 96 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00D5), + /* 97 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00D6), + /* 98 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00D7), + /* 99 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00D8), + /* 9A */ ZYDIS_NODE(OTNT_MANDATORY, 0x00D9), + /* 9B */ ZYDIS_NODE(OTNT_MANDATORY, 0x00DA), + /* 9C */ ZYDIS_NODE(OTNT_MANDATORY, 0x00DB), + /* 9D */ ZYDIS_NODE(OTNT_MANDATORY, 0x00DC), + /* 9E */ ZYDIS_NODE(OTNT_MANDATORY, 0x00DD), + /* 9F */ ZYDIS_NODE(OTNT_MANDATORY, 0x00DE), + /* A0 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00DF), + /* A1 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00E0), + /* A2 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00E1), + /* A3 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00E2), + /* A4 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00E3), + /* A5 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00E4), + /* A6 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0003), + /* A7 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0004), + /* A8 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00E7), + /* A9 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00E8), + /* AA */ ZYDIS_NODE(OTNT_MANDATORY, 0x00E9), + /* AB */ ZYDIS_NODE(OTNT_MANDATORY, 0x00EA), + /* AC */ ZYDIS_NODE(OTNT_MANDATORY, 0x00EB), + /* AD */ ZYDIS_NODE(OTNT_MANDATORY, 0x00EC), + /* AE */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0005), + /* AF */ ZYDIS_NODE(OTNT_MANDATORY, 0x00EF), + /* B0 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00F0), + /* B1 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00F1), + /* B2 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00F2), + /* B3 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00F3), + /* B4 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00F4), + /* B5 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00F5), + /* B6 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00F6), + /* B7 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00F7), + /* B8 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00F8), + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_NODE(OTNT_MANDATORY, 0x00F9), + /* BB */ ZYDIS_NODE(OTNT_MANDATORY, 0x00FA), + /* BC */ ZYDIS_NODE(OTNT_MANDATORY, 0x00FB), + /* BD */ ZYDIS_NODE(OTNT_MANDATORY, 0x00FC), + /* BE */ ZYDIS_NODE(OTNT_MANDATORY, 0x00FD), + /* BF */ ZYDIS_NODE(OTNT_MANDATORY, 0x00FE), + /* C0 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00FF), + /* C1 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0100), + /* C2 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0101), + /* C3 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0102), + /* C4 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0103), + /* C5 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0104), + /* C6 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0105), + /* C7 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0006), + /* C8 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0108), + /* C9 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0109), + /* CA */ ZYDIS_NODE(OTNT_MANDATORY, 0x010A), + /* CB */ ZYDIS_NODE(OTNT_MANDATORY, 0x010B), + /* CC */ ZYDIS_NODE(OTNT_MANDATORY, 0x010C), + /* CD */ ZYDIS_NODE(OTNT_MANDATORY, 0x010D), + /* CE */ ZYDIS_NODE(OTNT_MANDATORY, 0x010E), + /* CF */ ZYDIS_NODE(OTNT_MANDATORY, 0x010F), + /* D0 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0110), + /* D1 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0111), + /* D2 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0112), + /* D3 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0113), + /* D4 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0114), + /* D5 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0115), + /* D6 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0116), + /* D7 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0117), + /* D8 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0118), + /* D9 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0119), + /* DA */ ZYDIS_NODE(OTNT_MANDATORY, 0x011A), + /* DB */ ZYDIS_NODE(OTNT_MANDATORY, 0x011B), + /* DC */ ZYDIS_NODE(OTNT_MANDATORY, 0x011C), + /* DD */ ZYDIS_NODE(OTNT_MANDATORY, 0x011D), + /* DE */ ZYDIS_NODE(OTNT_MANDATORY, 0x011E), + /* DF */ ZYDIS_NODE(OTNT_MANDATORY, 0x011F), + /* E0 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0120), + /* E1 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0121), + /* E2 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0122), + /* E3 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0123), + /* E4 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0124), + /* E5 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0125), + /* E6 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0126), + /* E7 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0127), + /* E8 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0128), + /* E9 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0129), + /* EA */ ZYDIS_NODE(OTNT_MANDATORY, 0x012A), + /* EB */ ZYDIS_NODE(OTNT_MANDATORY, 0x012B), + /* EC */ ZYDIS_NODE(OTNT_MANDATORY, 0x012C), + /* ED */ ZYDIS_NODE(OTNT_MANDATORY, 0x012D), + /* EE */ ZYDIS_NODE(OTNT_MANDATORY, 0x012E), + /* EF */ ZYDIS_NODE(OTNT_MANDATORY, 0x012F), + /* F0 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0130), + /* F1 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0131), + /* F2 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0132), + /* F3 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0133), + /* F4 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0134), + /* F5 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0135), + /* F6 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0136), + /* F7 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0007), + /* F8 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0138), + /* F9 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0139), + /* FA */ ZYDIS_NODE(OTNT_MANDATORY, 0x013A), + /* FB */ ZYDIS_NODE(OTNT_MANDATORY, 0x013B), + /* FC */ ZYDIS_NODE(OTNT_MANDATORY, 0x013C), + /* FD */ ZYDIS_NODE(OTNT_MANDATORY, 0x013D), + /* FE */ ZYDIS_NODE(OTNT_MANDATORY, 0x013E), + /* FF */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MANDATORY, 0x0032), - /* 01 */ VX_NODE(OTNT_MANDATORY, 0x0033), - /* 02 */ VX_NODE(OTNT_MANDATORY, 0x0034), - /* 03 */ VX_NODE(OTNT_MANDATORY, 0x0035), - /* 04 */ VX_NODE(OTNT_MANDATORY, 0x0036), - /* 05 */ VX_NODE(OTNT_MANDATORY, 0x0037), - /* 06 */ VX_NODE(OTNT_MANDATORY, 0x0038), - /* 07 */ VX_NODE(OTNT_MANDATORY, 0x0039), - /* 08 */ VX_NODE(OTNT_MANDATORY, 0x003A), - /* 09 */ VX_NODE(OTNT_MANDATORY, 0x003B), - /* 0A */ VX_NODE(OTNT_MANDATORY, 0x003C), - /* 0B */ VX_NODE(OTNT_MANDATORY, 0x003D), - /* 0C */ VX_INVALID, - /* 0D */ VX_INVALID, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - /* 10 */ VX_NODE(OTNT_MANDATORY, 0x003E), - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ VX_NODE(OTNT_MANDATORY, 0x003F), - /* 15 */ VX_NODE(OTNT_MANDATORY, 0x0040), - /* 16 */ VX_INVALID, - /* 17 */ VX_NODE(OTNT_MANDATORY, 0x0041), - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_NODE(OTNT_MANDATORY, 0x0042), - /* 1D */ VX_NODE(OTNT_MANDATORY, 0x0043), - /* 1E */ VX_NODE(OTNT_MANDATORY, 0x0044), - /* 1F */ VX_INVALID, - /* 20 */ VX_NODE(OTNT_MANDATORY, 0x0045), - /* 21 */ VX_NODE(OTNT_MANDATORY, 0x0046), - /* 22 */ VX_NODE(OTNT_MANDATORY, 0x0047), - /* 23 */ VX_NODE(OTNT_MANDATORY, 0x0048), - /* 24 */ VX_NODE(OTNT_MANDATORY, 0x0049), - /* 25 */ VX_NODE(OTNT_MANDATORY, 0x004A), - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_NODE(OTNT_MANDATORY, 0x004B), - /* 29 */ VX_NODE(OTNT_MANDATORY, 0x004C), - /* 2A */ VX_NODE(OTNT_MANDATORY, 0x004D), - /* 2B */ VX_NODE(OTNT_MANDATORY, 0x004E), - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_NODE(OTNT_MANDATORY, 0x004F), - /* 31 */ VX_NODE(OTNT_MANDATORY, 0x0050), - /* 32 */ VX_NODE(OTNT_MANDATORY, 0x0051), - /* 33 */ VX_NODE(OTNT_MANDATORY, 0x0052), - /* 34 */ VX_NODE(OTNT_MANDATORY, 0x0053), - /* 35 */ VX_NODE(OTNT_MANDATORY, 0x0054), - /* 36 */ VX_INVALID, - /* 37 */ VX_NODE(OTNT_MANDATORY, 0x0055), - /* 38 */ VX_NODE(OTNT_MANDATORY, 0x0056), - /* 39 */ VX_NODE(OTNT_MANDATORY, 0x0057), - /* 3A */ VX_NODE(OTNT_MANDATORY, 0x0058), - /* 3B */ VX_NODE(OTNT_MANDATORY, 0x0059), - /* 3C */ VX_NODE(OTNT_MANDATORY, 0x005A), - /* 3D */ VX_NODE(OTNT_MANDATORY, 0x005B), - /* 3E */ VX_NODE(OTNT_MANDATORY, 0x005C), - /* 3F */ VX_NODE(OTNT_MANDATORY, 0x005D), - /* 40 */ VX_NODE(OTNT_MANDATORY, 0x005E), - /* 41 */ VX_NODE(OTNT_MANDATORY, 0x005F), - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ VX_INVALID, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ VX_INVALID, - /* 59 */ VX_INVALID, - /* 5A */ VX_INVALID, - /* 5B */ VX_INVALID, - /* 5C */ VX_INVALID, - /* 5D */ VX_INVALID, - /* 5E */ VX_INVALID, - /* 5F */ VX_INVALID, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_NODE(OTNT_MANDATORY, 0x0060), - /* 81 */ VX_NODE(OTNT_MANDATORY, 0x0061), - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ VX_INVALID, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_NODE(OTNT_MANDATORY, 0x0062), - /* DC */ VX_NODE(OTNT_MANDATORY, 0x0063), - /* DD */ VX_NODE(OTNT_MANDATORY, 0x0064), - /* DE */ VX_NODE(OTNT_MANDATORY, 0x0065), - /* DF */ VX_NODE(OTNT_MANDATORY, 0x0066), - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_NODE(OTNT_MANDATORY, 0x0067), - /* F1 */ VX_NODE(OTNT_MANDATORY, 0x0068), - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0032), + /* 01 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0033), + /* 02 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0034), + /* 03 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0035), + /* 04 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0036), + /* 05 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0037), + /* 06 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0038), + /* 07 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0039), + /* 08 */ ZYDIS_NODE(OTNT_MANDATORY, 0x003A), + /* 09 */ ZYDIS_NODE(OTNT_MANDATORY, 0x003B), + /* 0A */ ZYDIS_NODE(OTNT_MANDATORY, 0x003C), + /* 0B */ ZYDIS_NODE(OTNT_MANDATORY, 0x003D), + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + /* 10 */ ZYDIS_NODE(OTNT_MANDATORY, 0x003E), + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_NODE(OTNT_MANDATORY, 0x003F), + /* 15 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0040), + /* 16 */ ZYDIS_INVALID, + /* 17 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0041), + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_NODE(OTNT_MANDATORY, 0x0042), + /* 1D */ ZYDIS_NODE(OTNT_MANDATORY, 0x0043), + /* 1E */ ZYDIS_NODE(OTNT_MANDATORY, 0x0044), + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0045), + /* 21 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0046), + /* 22 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0047), + /* 23 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0048), + /* 24 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0049), + /* 25 */ ZYDIS_NODE(OTNT_MANDATORY, 0x004A), + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_NODE(OTNT_MANDATORY, 0x004B), + /* 29 */ ZYDIS_NODE(OTNT_MANDATORY, 0x004C), + /* 2A */ ZYDIS_NODE(OTNT_MANDATORY, 0x004D), + /* 2B */ ZYDIS_NODE(OTNT_MANDATORY, 0x004E), + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_NODE(OTNT_MANDATORY, 0x004F), + /* 31 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0050), + /* 32 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0051), + /* 33 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0052), + /* 34 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0053), + /* 35 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0054), + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0055), + /* 38 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0056), + /* 39 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0057), + /* 3A */ ZYDIS_NODE(OTNT_MANDATORY, 0x0058), + /* 3B */ ZYDIS_NODE(OTNT_MANDATORY, 0x0059), + /* 3C */ ZYDIS_NODE(OTNT_MANDATORY, 0x005A), + /* 3D */ ZYDIS_NODE(OTNT_MANDATORY, 0x005B), + /* 3E */ ZYDIS_NODE(OTNT_MANDATORY, 0x005C), + /* 3F */ ZYDIS_NODE(OTNT_MANDATORY, 0x005D), + /* 40 */ ZYDIS_NODE(OTNT_MANDATORY, 0x005E), + /* 41 */ ZYDIS_NODE(OTNT_MANDATORY, 0x005F), + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ ZYDIS_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ ZYDIS_INVALID, + /* 59 */ ZYDIS_INVALID, + /* 5A */ ZYDIS_INVALID, + /* 5B */ ZYDIS_INVALID, + /* 5C */ ZYDIS_INVALID, + /* 5D */ ZYDIS_INVALID, + /* 5E */ ZYDIS_INVALID, + /* 5F */ ZYDIS_INVALID, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0060), + /* 81 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0061), + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ ZYDIS_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_NODE(OTNT_MANDATORY, 0x0062), + /* DC */ ZYDIS_NODE(OTNT_MANDATORY, 0x0063), + /* DD */ ZYDIS_NODE(OTNT_MANDATORY, 0x0064), + /* DE */ ZYDIS_NODE(OTNT_MANDATORY, 0x0065), + /* DF */ ZYDIS_NODE(OTNT_MANDATORY, 0x0066), + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0067), + /* F1 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0068), + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_NODE(OTNT_MANDATORY, 0x0069), - /* 09 */ VX_NODE(OTNT_MANDATORY, 0x006A), - /* 0A */ VX_NODE(OTNT_MANDATORY, 0x006B), - /* 0B */ VX_NODE(OTNT_MANDATORY, 0x006C), - /* 0C */ VX_NODE(OTNT_MANDATORY, 0x006D), - /* 0D */ VX_NODE(OTNT_MANDATORY, 0x006E), - /* 0E */ VX_NODE(OTNT_MANDATORY, 0x006F), - /* 0F */ VX_NODE(OTNT_MANDATORY, 0x0070), - /* 10 */ VX_INVALID, - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ VX_NODE(OTNT_MANDATORY, 0x0071), - /* 15 */ VX_NODE(OTNT_MANDATORY, 0x0072), - /* 16 */ VX_NODE(OTNT_MANDATORY, 0x0073), - /* 17 */ VX_NODE(OTNT_MANDATORY, 0x0074), - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_NODE(OTNT_MANDATORY, 0x0075), - /* 21 */ VX_NODE(OTNT_MANDATORY, 0x0076), - /* 22 */ VX_NODE(OTNT_MANDATORY, 0x0077), - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ VX_INVALID, - /* 2A */ VX_INVALID, - /* 2B */ VX_INVALID, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_NODE(OTNT_MANDATORY, 0x0078), - /* 41 */ VX_NODE(OTNT_MANDATORY, 0x0079), - /* 42 */ VX_NODE(OTNT_MANDATORY, 0x007A), - /* 43 */ VX_INVALID, - /* 44 */ VX_NODE(OTNT_MANDATORY, 0x007B), - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ VX_INVALID, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ VX_INVALID, - /* 59 */ VX_INVALID, - /* 5A */ VX_INVALID, - /* 5B */ VX_INVALID, - /* 5C */ VX_INVALID, - /* 5D */ VX_INVALID, - /* 5E */ VX_INVALID, - /* 5F */ VX_INVALID, - /* 60 */ VX_NODE(OTNT_MANDATORY, 0x007C), - /* 61 */ VX_NODE(OTNT_MANDATORY, 0x007D), - /* 62 */ VX_NODE(OTNT_MANDATORY, 0x007E), - /* 63 */ VX_NODE(OTNT_MANDATORY, 0x007F), - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ VX_INVALID, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ VX_NODE(OTNT_MANDATORY, 0x0080), - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0069), + /* 09 */ ZYDIS_NODE(OTNT_MANDATORY, 0x006A), + /* 0A */ ZYDIS_NODE(OTNT_MANDATORY, 0x006B), + /* 0B */ ZYDIS_NODE(OTNT_MANDATORY, 0x006C), + /* 0C */ ZYDIS_NODE(OTNT_MANDATORY, 0x006D), + /* 0D */ ZYDIS_NODE(OTNT_MANDATORY, 0x006E), + /* 0E */ ZYDIS_NODE(OTNT_MANDATORY, 0x006F), + /* 0F */ ZYDIS_NODE(OTNT_MANDATORY, 0x0070), + /* 10 */ ZYDIS_INVALID, + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0071), + /* 15 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0072), + /* 16 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0073), + /* 17 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0074), + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0075), + /* 21 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0076), + /* 22 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0077), + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ ZYDIS_INVALID, + /* 2A */ ZYDIS_INVALID, + /* 2B */ ZYDIS_INVALID, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0078), + /* 41 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0079), + /* 42 */ ZYDIS_NODE(OTNT_MANDATORY, 0x007A), + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_NODE(OTNT_MANDATORY, 0x007B), + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ ZYDIS_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ ZYDIS_INVALID, + /* 59 */ ZYDIS_INVALID, + /* 5A */ ZYDIS_INVALID, + /* 5B */ ZYDIS_INVALID, + /* 5C */ ZYDIS_INVALID, + /* 5D */ ZYDIS_INVALID, + /* 5E */ ZYDIS_INVALID, + /* 5F */ ZYDIS_INVALID, + /* 60 */ ZYDIS_NODE(OTNT_MANDATORY, 0x007C), + /* 61 */ ZYDIS_NODE(OTNT_MANDATORY, 0x007D), + /* 62 */ ZYDIS_NODE(OTNT_MANDATORY, 0x007E), + /* 63 */ ZYDIS_NODE(OTNT_MANDATORY, 0x007F), + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ ZYDIS_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ ZYDIS_NODE(OTNT_MANDATORY, 0x0080), + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_INVALID, - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ VX_INVALID, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_INVALID, + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, /* 10 */ 0x05E6, /* 11 */ 0x05E5, - /* 12 */ VX_NODE(OTNT_MODRM_MOD, 0x0008), + /* 12 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0008), /* 13 */ 0x05CC, /* 14 */ 0x0698, /* 15 */ 0x0696, - /* 16 */ VX_NODE(OTNT_MODRM_MOD, 0x0009), + /* 16 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0009), /* 17 */ 0x05C7, - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, /* 28 */ 0x05B8, /* 29 */ 0x05B7, - /* 2A */ VX_INVALID, + /* 2A */ ZYDIS_INVALID, /* 2B */ 0x05D2, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, /* 2E */ 0x0694, /* 2F */ 0x0581, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_INVALID, - /* 41 */ VX_INVALID, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_INVALID, + /* 41 */ ZYDIS_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, /* 50 */ 0x05CE, /* 51 */ 0x0689, /* 52 */ 0x0684, @@ -1166,252 +1166,252 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 5D */ 0x05AF, /* 5E */ 0x0593, /* 5F */ 0x05A9, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_NODE(OTNT_VEXL, 0x0000), - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_NODE(OTNT_MODRM_MOD, 0x000A), - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_NODE(OTNT_VEXL, 0x0000), + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x000A), + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, /* C2 */ 0x057D, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, /* C6 */ 0x0687, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ VX_INVALID, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ ZYDIS_INVALID, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_INVALID, - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ VX_INVALID, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_INVALID, + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, /* 10 */ 0x05E4, /* 11 */ 0x05E3, - /* 12 */ VX_NODE(OTNT_MODRM_MOD, 0x000B), + /* 12 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x000B), /* 13 */ 0x05CA, /* 14 */ 0x0697, /* 15 */ 0x0695, - /* 16 */ VX_NODE(OTNT_MODRM_MOD, 0x000C), + /* 16 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x000C), /* 17 */ 0x05C5, - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, /* 28 */ 0x05B5, /* 29 */ 0x05B6, - /* 2A */ VX_INVALID, + /* 2A */ ZYDIS_INVALID, /* 2B */ 0x05D1, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, /* 2E */ 0x0693, /* 2F */ 0x0580, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_INVALID, - /* 41 */ VX_INVALID, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_INVALID, + /* 41 */ ZYDIS_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, /* 50 */ 0x05CD, /* 51 */ 0x0688, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, /* 54 */ 0x0574, /* 55 */ 0x0572, /* 56 */ 0x05F5, @@ -1438,104 +1438,104 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 6B */ 0x05FA, /* 6C */ 0x067B, /* 6D */ 0x0677, - /* 6E */ VX_NODE(OTNT_OPERAND_SIZE, 0x0014), + /* 6E */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0014), /* 6F */ 0x05BF, /* 70 */ 0x0654, - /* 71 */ VX_NODE(OTNT_MODRM_REG, 0x001B), - /* 72 */ VX_NODE(OTNT_MODRM_REG, 0x001C), - /* 73 */ VX_NODE(OTNT_MODRM_REG, 0x001D), + /* 71 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x001B), + /* 72 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x001C), + /* 73 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x001D), /* 74 */ 0x060E, /* 75 */ 0x0611, /* 76 */ 0x060F, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, /* 7C */ 0x059C, /* 7D */ 0x059E, - /* 7E */ VX_NODE(OTNT_OPERAND_SIZE, 0x0015), + /* 7E */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0015), /* 7F */ 0x05C0, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, /* C2 */ 0x057C, - /* C3 */ VX_INVALID, + /* C3 */ ZYDIS_INVALID, /* C4 */ 0x0630, /* C5 */ 0x0623, /* C6 */ 0x0686, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, /* D0 */ 0x056A, /* D1 */ 0x066B, /* D2 */ 0x0665, @@ -1543,7 +1543,7 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* D4 */ 0x0600, /* D5 */ 0x0650, /* D6 */ 0x05D4, - /* D7 */ VX_NODE(OTNT_VEXL, 0x0004), + /* D7 */ ZYDIS_NODE(OTNT_VEXL, 0x0004), /* D8 */ 0x0671, /* D9 */ 0x0672, /* DA */ 0x063C, @@ -1568,14 +1568,14 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* ED */ 0x0602, /* EE */ 0x0635, /* EF */ 0x067D, - /* F0 */ VX_INVALID, - /* F1 */ VX_NODE(OTNT_VEXL, 0x0005), - /* F2 */ VX_NODE(OTNT_VEXL, 0x0006), - /* F3 */ VX_NODE(OTNT_VEXL, 0x0007), - /* F4 */ VX_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_NODE(OTNT_VEXL, 0x0005), + /* F2 */ ZYDIS_NODE(OTNT_VEXL, 0x0006), + /* F3 */ ZYDIS_NODE(OTNT_VEXL, 0x0007), + /* F4 */ ZYDIS_INVALID, /* F5 */ 0x0632, /* F6 */ 0x0652, - /* F7 */ VX_NODE(OTNT_MODRM_MOD, 0x000D), + /* F7 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x000D), /* F8 */ 0x066C, /* F9 */ 0x0673, /* FA */ 0x066D, @@ -1583,7 +1583,7 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* FC */ 0x05FE, /* FD */ 0x0605, /* FE */ 0x05FF, - /* FF */ VX_INVALID, + /* FF */ ZYDIS_INVALID, }, { /* 00 */ 0x0653, @@ -1598,49 +1598,49 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 09 */ 0x0659, /* 0A */ 0x0658, /* 0B */ 0x064C, - /* 0C */ VX_NODE(OTNT_VEXW, 0x0000), - /* 0D */ VX_NODE(OTNT_VEXW, 0x0001), - /* 0E */ VX_NODE(OTNT_VEXW, 0x0002), - /* 0F */ VX_NODE(OTNT_VEXW, 0x0003), - /* 10 */ VX_INVALID, - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ VX_INVALID, - /* 15 */ VX_INVALID, - /* 16 */ VX_INVALID, + /* 0C */ ZYDIS_NODE(OTNT_VEXW, 0x0000), + /* 0D */ ZYDIS_NODE(OTNT_VEXW, 0x0001), + /* 0E */ ZYDIS_NODE(OTNT_VEXW, 0x0002), + /* 0F */ ZYDIS_NODE(OTNT_VEXW, 0x0003), + /* 10 */ ZYDIS_INVALID, + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_INVALID, + /* 15 */ ZYDIS_INVALID, + /* 16 */ ZYDIS_INVALID, /* 17 */ 0x0674, - /* 18 */ VX_NODE(OTNT_VEXW, 0x0004), - /* 19 */ VX_NODE(OTNT_VEXW, 0x0005), - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, + /* 18 */ ZYDIS_NODE(OTNT_VEXW, 0x0004), + /* 19 */ ZYDIS_NODE(OTNT_VEXW, 0x0005), + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, /* 1C */ 0x05F7, /* 1D */ 0x05F9, /* 1E */ 0x05F8, - /* 1F */ VX_INVALID, + /* 1F */ ZYDIS_INVALID, /* 20 */ 0x0642, /* 21 */ 0x0640, /* 22 */ 0x0641, /* 23 */ 0x0643, /* 24 */ 0x0644, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, /* 28 */ 0x064B, /* 29 */ 0x0610, /* 2A */ 0x05D0, /* 2B */ 0x05FC, - /* 2C */ VX_NODE(OTNT_VEXW, 0x0006), - /* 2D */ VX_NODE(OTNT_VEXW, 0x0007), - /* 2E */ VX_NODE(OTNT_VEXW, 0x0008), - /* 2F */ VX_NODE(OTNT_VEXW, 0x0009), + /* 2C */ ZYDIS_NODE(OTNT_VEXW, 0x0006), + /* 2D */ ZYDIS_NODE(OTNT_VEXW, 0x0007), + /* 2E */ ZYDIS_NODE(OTNT_VEXW, 0x0008), + /* 2F */ ZYDIS_NODE(OTNT_VEXW, 0x0009), /* 30 */ 0x0647, /* 31 */ 0x0645, /* 32 */ 0x0646, /* 33 */ 0x0649, /* 34 */ 0x064A, /* 35 */ 0x0648, - /* 36 */ VX_INVALID, + /* 36 */ ZYDIS_INVALID, /* 37 */ 0x0616, /* 38 */ 0x0639, /* 39 */ 0x063A, @@ -1652,206 +1652,206 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 3F */ 0x0637, /* 40 */ 0x064F, /* 41 */ 0x0628, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ VX_INVALID, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ VX_INVALID, - /* 59 */ VX_INVALID, - /* 5A */ VX_INVALID, - /* 5B */ VX_INVALID, - /* 5C */ VX_INVALID, - /* 5D */ VX_INVALID, - /* 5E */ VX_INVALID, - /* 5F */ VX_INVALID, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ VX_INVALID, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ ZYDIS_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ ZYDIS_INVALID, + /* 59 */ ZYDIS_INVALID, + /* 5A */ ZYDIS_INVALID, + /* 5B */ ZYDIS_INVALID, + /* 5C */ ZYDIS_INVALID, + /* 5D */ ZYDIS_INVALID, + /* 5E */ ZYDIS_INVALID, + /* 5F */ ZYDIS_INVALID, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ ZYDIS_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, /* DB */ 0x0570, /* DC */ 0x056E, /* DD */ 0x056F, /* DE */ 0x056C, /* DF */ 0x056D, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_NODE(OTNT_VEXW, 0x000A), - /* 05 */ VX_NODE(OTNT_VEXW, 0x000B), - /* 06 */ VX_NODE(OTNT_VEXW, 0x000C), - /* 07 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_NODE(OTNT_VEXW, 0x000A), + /* 05 */ ZYDIS_NODE(OTNT_VEXW, 0x000B), + /* 06 */ ZYDIS_NODE(OTNT_VEXW, 0x000C), + /* 07 */ ZYDIS_INVALID, /* 08 */ 0x0681, /* 09 */ 0x0680, /* 0A */ 0x0683, @@ -1860,336 +1860,336 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 0D */ 0x0576, /* 0E */ 0x060C, /* 0F */ 0x0606, - /* 10 */ VX_INVALID, - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ VX_NODE(OTNT_VEXW, 0x000D), + /* 10 */ ZYDIS_INVALID, + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_NODE(OTNT_VEXW, 0x000D), /* 15 */ 0x0624, - /* 16 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0016), + /* 16 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0016), /* 17 */ 0x059B, - /* 18 */ VX_NODE(OTNT_VEXW, 0x0011), - /* 19 */ VX_NODE(OTNT_VEXW, 0x0012), - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_NODE(OTNT_VEXW, 0x0013), + /* 18 */ ZYDIS_NODE(OTNT_VEXW, 0x0011), + /* 19 */ ZYDIS_NODE(OTNT_VEXW, 0x0012), + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_NODE(OTNT_VEXW, 0x0013), /* 21 */ 0x05A1, - /* 22 */ VX_NODE(OTNT_MODE, 0x0025), - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ VX_INVALID, - /* 2A */ VX_INVALID, - /* 2B */ VX_INVALID, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, + /* 22 */ ZYDIS_NODE(OTNT_MODE, 0x0025), + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ ZYDIS_INVALID, + /* 2A */ ZYDIS_INVALID, + /* 2B */ ZYDIS_INVALID, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, /* 40 */ 0x0597, /* 41 */ 0x0596, /* 42 */ 0x05E7, - /* 43 */ VX_INVALID, + /* 43 */ ZYDIS_INVALID, /* 44 */ 0x060D, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_NODE(OTNT_VEXW, 0x0016), - /* 4B */ VX_NODE(OTNT_VEXW, 0x0017), - /* 4C */ VX_NODE(OTNT_VEXW, 0x0018), - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ VX_INVALID, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ VX_INVALID, - /* 59 */ VX_INVALID, - /* 5A */ VX_INVALID, - /* 5B */ VX_INVALID, - /* 5C */ VX_INVALID, - /* 5D */ VX_INVALID, - /* 5E */ VX_INVALID, - /* 5F */ VX_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_NODE(OTNT_VEXW, 0x0016), + /* 4B */ ZYDIS_NODE(OTNT_VEXW, 0x0017), + /* 4C */ ZYDIS_NODE(OTNT_VEXW, 0x0018), + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ ZYDIS_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ ZYDIS_INVALID, + /* 59 */ ZYDIS_INVALID, + /* 5A */ ZYDIS_INVALID, + /* 5B */ ZYDIS_INVALID, + /* 5C */ ZYDIS_INVALID, + /* 5D */ ZYDIS_INVALID, + /* 5E */ ZYDIS_INVALID, + /* 5F */ ZYDIS_INVALID, /* 60 */ 0x0613, /* 61 */ 0x0612, /* 62 */ 0x0619, /* 63 */ 0x0618, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ VX_INVALID, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ ZYDIS_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, /* DF */ 0x0571, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_INVALID, - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ VX_INVALID, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - /* 10 */ VX_NODE(OTNT_MODRM_MOD, 0x000E), - /* 11 */ VX_NODE(OTNT_MODRM_MOD, 0x000F), - /* 12 */ VX_NODE(OTNT_MODRM_MOD, 0x0010), - /* 13 */ VX_INVALID, - /* 14 */ VX_INVALID, - /* 15 */ VX_INVALID, - /* 16 */ VX_NODE(OTNT_MODRM_MOD, 0x0011), - /* 17 */ VX_INVALID, - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_INVALID, + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + /* 10 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x000E), + /* 11 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x000F), + /* 12 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0010), + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_INVALID, + /* 15 */ ZYDIS_INVALID, + /* 16 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0011), + /* 17 */ ZYDIS_INVALID, + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ ZYDIS_INVALID, /* 2A */ 0x058B, - /* 2B */ VX_INVALID, + /* 2B */ ZYDIS_INVALID, /* 2C */ 0x0591, /* 2D */ 0x058D, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_INVALID, - /* 41 */ VX_INVALID, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_INVALID, + /* 41 */ ZYDIS_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, /* 51 */ 0x068B, /* 52 */ 0x0685, /* 53 */ 0x067F, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, /* 58 */ 0x0569, /* 59 */ 0x05F1, /* 5A */ 0x058C, @@ -2198,460 +2198,460 @@ const VXOpcodeTreeNode vxOptreeTable[][256] = /* 5D */ 0x05B1, /* 5E */ 0x0595, /* 5F */ 0x05AB, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, /* 6F */ 0x05C2, /* 70 */ 0x0655, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, /* 7E */ 0x05D3, /* 7F */ 0x05C1, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, /* C2 */ 0x057F, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ VX_INVALID, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ ZYDIS_INVALID, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, /* E6 */ 0x0582, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_INVALID, - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ VX_INVALID, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - /* 10 */ VX_NODE(OTNT_MODRM_MOD, 0x0012), - /* 11 */ VX_NODE(OTNT_MODRM_MOD, 0x0013), - /* 12 */ VX_NODE(OTNT_MODRM_MOD, 0x0014), - /* 13 */ VX_INVALID, - /* 14 */ VX_INVALID, - /* 15 */ VX_INVALID, - /* 16 */ VX_INVALID, - /* 17 */ VX_INVALID, - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_INVALID, + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + /* 10 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0012), + /* 11 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0013), + /* 12 */ ZYDIS_NODE(OTNT_MODRM_MOD, 0x0014), + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_INVALID, + /* 15 */ ZYDIS_INVALID, + /* 16 */ ZYDIS_INVALID, + /* 17 */ ZYDIS_INVALID, + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ ZYDIS_INVALID, /* 2A */ 0x058A, - /* 2B */ VX_INVALID, + /* 2B */ ZYDIS_INVALID, /* 2C */ 0x0590, /* 2D */ 0x0588, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_INVALID, - /* 41 */ VX_INVALID, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_INVALID, + /* 41 */ ZYDIS_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, /* 51 */ 0x068A, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, /* 58 */ 0x0568, /* 59 */ 0x05F0, /* 5A */ 0x0589, - /* 5B */ VX_INVALID, + /* 5B */ ZYDIS_INVALID, /* 5C */ 0x068F, /* 5D */ 0x05B0, /* 5E */ 0x0594, /* 5F */ 0x05AA, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, /* 70 */ 0x0656, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, /* 7C */ 0x059D, /* 7D */ 0x059F, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, - /* 8A */ VX_INVALID, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, - /* 8E */ VX_INVALID, - /* 8F */ VX_INVALID, - /* 90 */ VX_INVALID, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, - /* 94 */ VX_INVALID, - /* 95 */ VX_INVALID, - /* 96 */ VX_INVALID, - /* 97 */ VX_INVALID, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, - /* 9A */ VX_INVALID, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, - /* 9E */ VX_INVALID, - /* 9F */ VX_INVALID, - /* A0 */ VX_INVALID, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, - /* A4 */ VX_INVALID, - /* A5 */ VX_INVALID, - /* A6 */ VX_INVALID, - /* A7 */ VX_INVALID, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, - /* AA */ VX_INVALID, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, - /* AE */ VX_INVALID, - /* AF */ VX_INVALID, - /* B0 */ VX_INVALID, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, - /* B4 */ VX_INVALID, - /* B5 */ VX_INVALID, - /* B6 */ VX_INVALID, - /* B7 */ VX_INVALID, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, - /* BB */ VX_INVALID, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, - /* BF */ VX_INVALID, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, + /* 8A */ ZYDIS_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, + /* 8E */ ZYDIS_INVALID, + /* 8F */ ZYDIS_INVALID, + /* 90 */ ZYDIS_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, + /* 94 */ ZYDIS_INVALID, + /* 95 */ ZYDIS_INVALID, + /* 96 */ ZYDIS_INVALID, + /* 97 */ ZYDIS_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, + /* 9A */ ZYDIS_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, + /* 9E */ ZYDIS_INVALID, + /* 9F */ ZYDIS_INVALID, + /* A0 */ ZYDIS_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, + /* A4 */ ZYDIS_INVALID, + /* A5 */ ZYDIS_INVALID, + /* A6 */ ZYDIS_INVALID, + /* A7 */ ZYDIS_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, + /* AA */ ZYDIS_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, + /* AE */ ZYDIS_INVALID, + /* AF */ ZYDIS_INVALID, + /* B0 */ ZYDIS_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, + /* B4 */ ZYDIS_INVALID, + /* B5 */ ZYDIS_INVALID, + /* B6 */ ZYDIS_INVALID, + /* B7 */ ZYDIS_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, + /* BB */ ZYDIS_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, + /* BF */ ZYDIS_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, /* C2 */ 0x057E, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, /* D0 */ 0x056B, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ VX_INVALID, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ ZYDIS_INVALID, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, /* E6 */ 0x0584, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, /* F0 */ 0x05A2, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, }, }; -const VXOpcodeTreeNode vxOptreeModrmMod[][2] = +const ZyDisOpcodeTreeNode vxOptreeModrmMod[][2] = { { - /* 00 */ VX_NODE(OTNT_MANDATORY, 0x0001), - /* 01 */ VX_NODE(OTNT_MANDATORY, 0x0002), + /* 00 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0001), + /* 01 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0002), }, { - /* 00 */ VX_NODE(OTNT_MANDATORY, 0x000F), - /* 01 */ VX_NODE(OTNT_MANDATORY, 0x0010), + /* 00 */ ZYDIS_NODE(OTNT_MANDATORY, 0x000F), + /* 01 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0010), }, { - /* 00 */ VX_NODE(OTNT_MANDATORY, 0x0014), - /* 01 */ VX_NODE(OTNT_MANDATORY, 0x0015), + /* 00 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0014), + /* 01 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0015), }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_NODE(OTNT_MANDATORY, 0x00E5), + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00E5), }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_NODE(OTNT_MANDATORY, 0x00E6), + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00E6), }, { - /* 00 */ VX_NODE(OTNT_MANDATORY, 0x00ED), - /* 01 */ VX_NODE(OTNT_MANDATORY, 0x00EE), + /* 00 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00ED), + /* 01 */ ZYDIS_NODE(OTNT_MANDATORY, 0x00EE), }, { - /* 00 */ VX_NODE(OTNT_MANDATORY, 0x0106), - /* 01 */ VX_NODE(OTNT_MANDATORY, 0x0107), + /* 00 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0106), + /* 01 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0107), }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_NODE(OTNT_MANDATORY, 0x0137), + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_NODE(OTNT_MANDATORY, 0x0137), }, { /* 00 */ 0x05CB, @@ -2662,19 +2662,19 @@ const VXOpcodeTreeNode vxOptreeModrmMod[][2] = /* 01 */ 0x05C8, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x001A), - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x001A), + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x05C9, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x05C4, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05A3, }, { @@ -2706,40 +2706,40 @@ const VXOpcodeTreeNode vxOptreeModrmMod[][2] = /* 01 */ 0x05BD, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0024), - /* 01 */ VX_NODE(OTNT_X87, 0x0000), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0024), + /* 01 */ ZYDIS_NODE(OTNT_X87, 0x0000), }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0025), - /* 01 */ VX_NODE(OTNT_X87, 0x0001), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0025), + /* 01 */ ZYDIS_NODE(OTNT_X87, 0x0001), }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0026), - /* 01 */ VX_NODE(OTNT_X87, 0x0002), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0026), + /* 01 */ ZYDIS_NODE(OTNT_X87, 0x0002), }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0027), - /* 01 */ VX_NODE(OTNT_X87, 0x0003), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0027), + /* 01 */ ZYDIS_NODE(OTNT_X87, 0x0003), }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0028), - /* 01 */ VX_NODE(OTNT_X87, 0x0004), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0028), + /* 01 */ ZYDIS_NODE(OTNT_X87, 0x0004), }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0029), - /* 01 */ VX_NODE(OTNT_X87, 0x0005), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0029), + /* 01 */ ZYDIS_NODE(OTNT_X87, 0x0005), }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x002A), - /* 01 */ VX_NODE(OTNT_X87, 0x0006), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x002A), + /* 01 */ ZYDIS_NODE(OTNT_X87, 0x0006), }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x002B), - /* 01 */ VX_NODE(OTNT_X87, 0x0007), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x002B), + /* 01 */ ZYDIS_NODE(OTNT_X87, 0x0007), }, }; -const VXOpcodeTreeNode vxOptreeModrmReg[][8] = +const ZyDisOpcodeTreeNode vxOptreeModrmReg[][8] = { { /* 00 */ 0x0531, @@ -2748,8 +2748,8 @@ const VXOpcodeTreeNode vxOptreeModrmReg[][8] = /* 03 */ 0x0309, /* 04 */ 0x0598, /* 05 */ 0x0599, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x0516, @@ -2757,109 +2757,109 @@ const VXOpcodeTreeNode vxOptreeModrmReg[][8] = /* 02 */ 0x02F9, /* 03 */ 0x02FB, /* 04 */ 0x0533, - /* 05 */ VX_INVALID, + /* 05 */ ZYDIS_INVALID, /* 06 */ 0x02FE, /* 07 */ 0x02C0, }, { - /* 00 */ VX_NODE(OTNT_MODRM_RM, 0x0000), - /* 01 */ VX_NODE(OTNT_MODRM_RM, 0x0001), - /* 02 */ VX_NODE(OTNT_MODRM_RM, 0x0002), - /* 03 */ VX_NODE(OTNT_MODRM_RM, 0x0003), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x0000), + /* 01 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x0001), + /* 02 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x0002), + /* 03 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x0003), /* 04 */ 0x0532, - /* 05 */ VX_INVALID, + /* 05 */ ZYDIS_INVALID, /* 06 */ 0x02FD, - /* 07 */ VX_NODE(OTNT_MODRM_RM, 0x0004), + /* 07 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x0004), }, { /* 00 */ 0x0455, /* 01 */ 0x0456, /* 02 */ 0x0457, /* 03 */ 0x0458, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x0486, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, /* 04 */ 0x0479, - /* 05 */ VX_INVALID, + /* 05 */ ZYDIS_INVALID, /* 06 */ 0x0470, - /* 07 */ VX_INVALID, + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x0485, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, /* 04 */ 0x0478, - /* 05 */ VX_INVALID, + /* 05 */ ZYDIS_INVALID, /* 06 */ 0x0473, - /* 07 */ VX_INVALID, + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x047E, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, /* 04 */ 0x0475, - /* 05 */ VX_INVALID, + /* 05 */ ZYDIS_INVALID, /* 06 */ 0x0468, - /* 07 */ VX_INVALID, + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x047C, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, /* 04 */ 0x0476, - /* 05 */ VX_INVALID, + /* 05 */ ZYDIS_INVALID, /* 06 */ 0x046A, - /* 07 */ VX_INVALID, + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x0482, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, /* 06 */ 0x046D, - /* 07 */ VX_INVALID, + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x0481, /* 03 */ 0x0480, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, /* 06 */ 0x046C, /* 07 */ 0x046B, }, { - /* 00 */ VX_NODE(OTNT_MODRM_RM, 0x0005), - /* 01 */ VX_NODE(OTNT_MODRM_RM, 0x0006), - /* 02 */ VX_NODE(OTNT_MODRM_RM, 0x0007), - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x0005), + /* 01 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x0006), + /* 02 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x0007), + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODRM_RM, 0x0008), - /* 01 */ VX_NODE(OTNT_MODRM_RM, 0x0009), - /* 02 */ VX_NODE(OTNT_MODRM_RM, 0x000A), - /* 03 */ VX_NODE(OTNT_MODRM_RM, 0x000B), - /* 04 */ VX_NODE(OTNT_MODRM_RM, 0x000C), - /* 05 */ VX_NODE(OTNT_MODRM_RM, 0x000D), - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x0008), + /* 01 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x0009), + /* 02 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x000A), + /* 03 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x000B), + /* 04 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x000C), + /* 05 */ ZYDIS_NODE(OTNT_MODRM_RM, 0x000D), + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x0296, @@ -2868,68 +2868,68 @@ const VXOpcodeTreeNode vxOptreeModrmReg[][8] = /* 03 */ 0x053C, /* 04 */ 0x06C0, /* 05 */ 0x06BF, - /* 06 */ VX_INVALID, + /* 06 */ ZYDIS_INVALID, /* 07 */ 0x0055, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, /* 05 */ 0x02F7, /* 06 */ 0x0310, /* 07 */ 0x0515, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, /* 04 */ 0x0043, /* 05 */ 0x0049, /* 06 */ 0x0047, /* 07 */ 0x0045, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0006), - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_NODE(OTNT_VENDOR, 0x0015), - /* 07 */ VX_NODE(OTNT_VENDOR, 0x0016), + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0006), + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_NODE(OTNT_VENDOR, 0x0015), + /* 07 */ ZYDIS_NODE(OTNT_VENDOR, 0x0016), }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_NODE(OTNT_VENDOR, 0x0017), - /* 07 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_NODE(OTNT_VENDOR, 0x0017), + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_NODE(OTNT_VENDOR, 0x0018), - /* 07 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_NODE(OTNT_VENDOR, 0x0018), + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, /* 06 */ 0x04D3, - /* 07 */ VX_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x000F, @@ -2952,14 +2952,14 @@ const VXOpcodeTreeNode vxOptreeModrmReg[][8] = /* 07 */ 0x0072, }, { - /* 00 */ VX_NODE(OTNT_MODE, 0x0015), - /* 01 */ VX_NODE(OTNT_MODE, 0x0016), - /* 02 */ VX_NODE(OTNT_MODE, 0x0017), - /* 03 */ VX_NODE(OTNT_MODE, 0x0018), - /* 04 */ VX_NODE(OTNT_MODE, 0x0019), - /* 05 */ VX_NODE(OTNT_MODE, 0x001A), - /* 06 */ VX_NODE(OTNT_MODE, 0x001B), - /* 07 */ VX_NODE(OTNT_MODE, 0x001C), + /* 00 */ ZYDIS_NODE(OTNT_MODE, 0x0015), + /* 01 */ ZYDIS_NODE(OTNT_MODE, 0x0016), + /* 02 */ ZYDIS_NODE(OTNT_MODE, 0x0017), + /* 03 */ ZYDIS_NODE(OTNT_MODE, 0x0018), + /* 04 */ ZYDIS_NODE(OTNT_MODE, 0x0019), + /* 05 */ ZYDIS_NODE(OTNT_MODE, 0x001A), + /* 06 */ ZYDIS_NODE(OTNT_MODE, 0x001B), + /* 07 */ ZYDIS_NODE(OTNT_MODE, 0x001C), }, { /* 00 */ 0x0012, @@ -2973,13 +2973,13 @@ const VXOpcodeTreeNode vxOptreeModrmReg[][8] = }, { /* 00 */ 0x0440, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x04DE, @@ -3002,64 +3002,64 @@ const VXOpcodeTreeNode vxOptreeModrmReg[][8] = /* 07 */ 0x04F6, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x068C, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x066A, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, /* 04 */ 0x0664, - /* 05 */ VX_INVALID, - /* 06 */ VX_NODE(OTNT_VEXL, 0x0001), - /* 07 */ VX_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_NODE(OTNT_VEXL, 0x0001), + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x0666, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, /* 04 */ 0x0661, - /* 05 */ VX_INVALID, - /* 06 */ VX_NODE(OTNT_VEXL, 0x0002), - /* 07 */ VX_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_NODE(OTNT_VEXL, 0x0002), + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x0668, /* 03 */ 0x0667, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_NODE(OTNT_VEXL, 0x0003), + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_NODE(OTNT_VEXL, 0x0003), /* 07 */ 0x065C, }, { /* 00 */ 0x0333, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x0332, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x04DD, @@ -3113,7 +3113,7 @@ const VXOpcodeTreeNode vxOptreeModrmReg[][8] = }, { /* 00 */ 0x01BC, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x01FF, /* 03 */ 0x020B, /* 04 */ 0x01C3, @@ -3136,9 +3136,9 @@ const VXOpcodeTreeNode vxOptreeModrmReg[][8] = /* 01 */ 0x01B1, /* 02 */ 0x01AB, /* 03 */ 0x01AD, - /* 04 */ VX_INVALID, + /* 04 */ ZYDIS_INVALID, /* 05 */ 0x01BA, - /* 06 */ VX_INVALID, + /* 06 */ ZYDIS_INVALID, /* 07 */ 0x020A, }, { @@ -3157,7 +3157,7 @@ const VXOpcodeTreeNode vxOptreeModrmReg[][8] = /* 02 */ 0x01FE, /* 03 */ 0x0209, /* 04 */ 0x01F3, - /* 05 */ VX_INVALID, + /* 05 */ ZYDIS_INVALID, /* 06 */ 0x01E8, /* 07 */ 0x01ED, }, @@ -3204,248 +3204,248 @@ const VXOpcodeTreeNode vxOptreeModrmReg[][8] = { /* 00 */ 0x02AF, /* 01 */ 0x00A4, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x02B0, /* 01 */ 0x00A5, - /* 02 */ VX_NODE(OTNT_MODE, 0x002C), + /* 02 */ ZYDIS_NODE(OTNT_MODE, 0x002C), /* 03 */ 0x004C, /* 04 */ 0x02D9, /* 05 */ 0x02DA, /* 06 */ 0x04B8, - /* 07 */ VX_INVALID, + /* 07 */ ZYDIS_INVALID, }, }; -const VXOpcodeTreeNode vxOptreeModrmRm[][8] = +const ZyDisOpcodeTreeNode vxOptreeModrmRm[][8] = { { - /* 00 */ VX_INVALID, - /* 01 */ VX_NODE(OTNT_VENDOR, 0x0000), - /* 02 */ VX_NODE(OTNT_VENDOR, 0x0001), - /* 03 */ VX_NODE(OTNT_VENDOR, 0x0002), - /* 04 */ VX_NODE(OTNT_VENDOR, 0x0003), - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_NODE(OTNT_VENDOR, 0x0000), + /* 02 */ ZYDIS_NODE(OTNT_VENDOR, 0x0001), + /* 03 */ ZYDIS_NODE(OTNT_VENDOR, 0x0002), + /* 04 */ ZYDIS_NODE(OTNT_VENDOR, 0x0003), + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x0315, /* 01 */ 0x0383, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x06B1, /* 01 */ 0x06C1, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_VENDOR, 0x0004), - /* 01 */ VX_NODE(OTNT_VENDOR, 0x0005), - /* 02 */ VX_NODE(OTNT_VENDOR, 0x0006), - /* 03 */ VX_NODE(OTNT_VENDOR, 0x0007), - /* 04 */ VX_NODE(OTNT_VENDOR, 0x0008), - /* 05 */ VX_NODE(OTNT_VENDOR, 0x0009), - /* 06 */ VX_NODE(OTNT_VENDOR, 0x000A), - /* 07 */ VX_NODE(OTNT_VENDOR, 0x000B), + /* 00 */ ZYDIS_NODE(OTNT_VENDOR, 0x0004), + /* 01 */ ZYDIS_NODE(OTNT_VENDOR, 0x0005), + /* 02 */ ZYDIS_NODE(OTNT_VENDOR, 0x0006), + /* 03 */ ZYDIS_NODE(OTNT_VENDOR, 0x0007), + /* 04 */ ZYDIS_NODE(OTNT_VENDOR, 0x0008), + /* 05 */ ZYDIS_NODE(OTNT_VENDOR, 0x0009), + /* 06 */ ZYDIS_NODE(OTNT_VENDOR, 0x000A), + /* 07 */ ZYDIS_NODE(OTNT_VENDOR, 0x000B), }, { /* 00 */ 0x0550, - /* 01 */ VX_NODE(OTNT_VENDOR, 0x000C), - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_NODE(OTNT_VENDOR, 0x000C), + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x0316, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x06C2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x06C3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x06C4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x06AF, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x06AC, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x06AE, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x06AD, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, { /* 00 */ 0x06B0, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, }, }; -const VXOpcodeTreeNode vxOptreeMandatory[][4] = +const ZyDisOpcodeTreeNode vxOptreeMandatory[][4] = { { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0000), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0000), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0001), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0001), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0002), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0002), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02F0, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0307, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0551, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0058, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0556, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02BD, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x069E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0561, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0454, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0189, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0379, @@ -3469,126 +3469,126 @@ const VXOpcodeTreeNode vxOptreeMandatory[][4] = /* 00 */ 0x034C, /* 01 */ 0x0346, /* 02 */ 0x036E, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0354, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0352, }, { /* 00 */ 0x0565, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0564, }, { /* 00 */ 0x0563, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0562, }, { /* 00 */ 0x0350, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x036B, /* 03 */ 0x034E, }, { /* 00 */ 0x0351, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x036C, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x034F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x034D, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0003), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0003), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x038A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x038B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x038C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0389, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0386, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0387, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0388, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0325, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0328, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0327, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0326, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x033A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0338, }, { /* 00 */ 0x0339, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0337, }, { @@ -3599,8 +3599,8 @@ const VXOpcodeTreeNode vxOptreeMandatory[][4] = }, { /* 00 */ 0x035C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x035B, }, { @@ -3617,632 +3617,632 @@ const VXOpcodeTreeNode vxOptreeMandatory[][4] = }, { /* 00 */ 0x0560, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x055F, }, { /* 00 */ 0x0082, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0081, }, { /* 00 */ 0x069F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x04D4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x04D1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x04D2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODE, 0x0003), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODE, 0x0003), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODE, 0x0004), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODE, 0x0004), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x029A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x045B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x045C, }, { /* 00 */ 0x03FD, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03FE, }, { /* 00 */ 0x03FA, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03F9, }, { /* 00 */ 0x03FB, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03FC, }, { /* 00 */ 0x040E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x040F, }, { /* 00 */ 0x0405, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0404, }, { /* 00 */ 0x0400, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0401, }, { /* 00 */ 0x0402, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0403, }, { /* 00 */ 0x0461, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0462, }, { /* 00 */ 0x0466, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0465, }, { /* 00 */ 0x0464, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0463, }, { /* 00 */ 0x0431, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0432, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03CA, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0037, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0036, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x049A, }, { /* 00 */ 0x03A3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03A2, }, { /* 00 */ 0x03A6, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03A7, }, { /* 00 */ 0x03A4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03A5, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0426, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0424, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0425, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0428, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0429, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0427, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0430, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03D1, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0359, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03AC, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x042C, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x042A, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x042B, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x042E, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x042F, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x042D, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03DA, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x041A, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x041B, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0421, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0420, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0412, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0413, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0419, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0418, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0438, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03FF, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_NODE(OTNT_MODE, 0x0005), + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_NODE(OTNT_MODE, 0x0005), }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_NODE(OTNT_MODE, 0x0006), + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_NODE(OTNT_MODE, 0x0006), }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0023, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0021, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0022, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x001F, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0020, }, { /* 00 */ 0x033B, /* 01 */ 0x0086, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x033C, /* 01 */ 0x0085, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x04E9, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x04E8, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x04EB, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x04EA, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0035, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0034, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03CB, }, { /* 00 */ 0x03BF, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03C0, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03DF, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03E3, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0000), + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0000), }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x00B5, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0408, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x02B7, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0001), + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0001), }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x00B2, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x00B1, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x037C, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03CC, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03D5, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03D4, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03DE, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03DD, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0024, }, { /* 00 */ 0x0067, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0064, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x005C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x005B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x005E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0063, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x005D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x005A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0069, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0066, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0068, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0065, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0061, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0060, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0062, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x005F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0357, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0356, }, { @@ -4253,38 +4253,38 @@ const VXOpcodeTreeNode vxOptreeMandatory[][4] = }, { /* 00 */ 0x04ED, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x04EE, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x04C9, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x04CA, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0032, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0031, }, { /* 00 */ 0x0030, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x002F, }, { /* 00 */ 0x039A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0399, }, { /* 00 */ 0x06BE, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x06BD, }, { @@ -4307,7 +4307,7 @@ const VXOpcodeTreeNode vxOptreeMandatory[][4] = }, { /* 00 */ 0x0088, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x0099, /* 03 */ 0x008E, }, @@ -4337,97 +4337,97 @@ const VXOpcodeTreeNode vxOptreeMandatory[][4] = }, { /* 00 */ 0x04A2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x04A3, }, { /* 00 */ 0x04A7, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x04A8, }, { /* 00 */ 0x04A5, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x04A4, }, { /* 00 */ 0x03AA, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03AB, }, { /* 00 */ 0x03D7, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03D6, }, { /* 00 */ 0x03DC, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03DB, }, { /* 00 */ 0x03D8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03D9, }, { /* 00 */ 0x03AD, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03AE, }, { /* 00 */ 0x049B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x049C, }, { /* 00 */ 0x04A1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x04A0, }, { /* 00 */ 0x049E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x049D, }, { /* 00 */ 0x03A8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03A9, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x04A6, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x049F, }, { - /* 00 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0002), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0003), + /* 00 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0002), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0003), }, { /* 00 */ 0x0363, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x034A, /* 03 */ 0x0348, }, @@ -4438,478 +4438,478 @@ const VXOpcodeTreeNode vxOptreeMandatory[][4] = /* 03 */ 0x045D, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0004), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_NODE(OTNT_MODRM_REG, 0x0005), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0004), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0005), }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0006), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_NODE(OTNT_MODRM_REG, 0x0007), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0006), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0007), }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0008), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_NODE(OTNT_MODRM_REG, 0x0009), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0008), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0009), }, { /* 00 */ 0x03CD, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03CE, }, { /* 00 */ 0x03D2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03D3, }, { /* 00 */ 0x03D0, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03CF, }, { /* 00 */ 0x00B3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_VENDOR, 0x0013), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_VENDOR, 0x0013), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_VENDOR, 0x0014), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_VENDOR, 0x0014), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x029C, - /* 02 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x029B, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x029F, - /* 02 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x029E, }, { - /* 00 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0004), - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0004), + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x035F, - /* 03 */ VX_NODE(OTNT_OPERAND_SIZE, 0x0005), + /* 03 */ ZYDIS_NODE(OTNT_OPERAND_SIZE, 0x0005), }, { /* 00 */ 0x0362, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x034B, /* 03 */ 0x0349, }, { /* 00 */ 0x02E9, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02E3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02C9, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02DF, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02CF, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02E0, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02CC, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02C8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02EE, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02E7, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02EA, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02E4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02D6, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02D4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02D7, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02D2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0512, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x050F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0507, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0506, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0509, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x050E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0508, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0505, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0514, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0511, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0513, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0510, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x050C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x050B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x050D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x050A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x04B5, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x044A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0083, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0044, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0524, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0523, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x000A), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x000A), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x000B), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x000B), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x04B6, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0444, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x04EC, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x004A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x052C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x052B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x000C), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x000C), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x000D), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x000D), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02A2, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x007C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x007D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0308, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0048, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02F8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x02FA, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x037B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x037A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, /* 02 */ 0x044D, - /* 03 */ VX_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x000E), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x000E), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0046, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0039, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x003A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0373, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0374, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x06A1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x06A0, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0075, @@ -4919,373 +4919,373 @@ const VXOpcodeTreeNode vxOptreeMandatory[][4] = }, { /* 00 */ 0x035A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x040D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x040C, }, { /* 00 */ 0x03E4, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03E5, }, { /* 00 */ 0x052E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x052D, }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x000F), - /* 01 */ VX_INVALID, - /* 02 */ VX_NODE(OTNT_MODRM_REG, 0x0010), - /* 03 */ VX_NODE(OTNT_MODRM_REG, 0x0011), + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x000F), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0010), + /* 03 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0011), }, { - /* 00 */ VX_NODE(OTNT_MODRM_REG, 0x0012), - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODRM_REG, 0x0012), + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x003F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x003D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0040, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x003C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x003E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x003B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0042, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0041, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x001E, - /* 02 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x001D, }, { /* 00 */ 0x0487, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0488, }, { /* 00 */ 0x047D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x047F, }, { /* 00 */ 0x0483, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0484, }, { /* 00 */ 0x03B3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03B4, }, { /* 00 */ 0x0439, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x043A, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x0347, /* 02 */ 0x0366, /* 03 */ 0x0361, }, { /* 00 */ 0x0422, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0423, }, { /* 00 */ 0x0494, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0493, }, { /* 00 */ 0x0496, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0495, }, { /* 00 */ 0x041E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x041F, }, { /* 00 */ 0x03C1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03C2, }, { /* 00 */ 0x03BA, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03B9, }, { /* 00 */ 0x03BB, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03BC, }, { /* 00 */ 0x0417, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0416, }, { /* 00 */ 0x03C3, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03C4, }, { /* 00 */ 0x03C5, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03C6, }, { /* 00 */ 0x047A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x047B, }, { /* 00 */ 0x0477, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0474, }, { /* 00 */ 0x03C8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03C9, }, { /* 00 */ 0x0434, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0435, }, { /* 00 */ 0x0436, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0437, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x0089, /* 02 */ 0x0087, /* 03 */ 0x0097, }, { /* 00 */ 0x035D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0358, }, { /* 00 */ 0x048F, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0490, }, { /* 00 */ 0x0492, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0491, }, { /* 00 */ 0x041C, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x041D, }, { /* 00 */ 0x0453, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0452, }, { /* 00 */ 0x03B6, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03B5, }, { /* 00 */ 0x03B8, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03B7, }, { /* 00 */ 0x0414, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0415, }, { /* 00 */ 0x04C1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x04C2, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x02F1, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, }, { /* 00 */ 0x0472, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0471, }, { /* 00 */ 0x0469, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0467, }, { /* 00 */ 0x046E, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x046F, }, { /* 00 */ 0x043B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x043C, }, { /* 00 */ 0x0411, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0410, }, { /* 00 */ 0x045A, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0459, }, { /* 00 */ 0x030B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x030A, }, { /* 00 */ 0x0489, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x048A, }, { /* 00 */ 0x0498, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x0497, }, { /* 00 */ 0x048B, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x048C, }, { /* 00 */ 0x048D, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x048E, }, { /* 00 */ 0x03AF, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03B0, }, { /* 00 */ 0x03BE, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03BD, }, { /* 00 */ 0x03B1, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, /* 03 */ 0x03B2, }, }; -const VXOpcodeTreeNode vxOptreeX87[][64] = +const ZyDisOpcodeTreeNode vxOptreeX87[][64] = { { /* 00 */ 0x00BC, @@ -5371,13 +5371,13 @@ const VXOpcodeTreeNode vxOptreeX87[][64] = /* 0E */ 0x027F, /* 0F */ 0x0284, /* 10 */ 0x01E7, - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ VX_INVALID, - /* 15 */ VX_INVALID, - /* 16 */ VX_INVALID, - /* 17 */ VX_INVALID, + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_INVALID, + /* 15 */ ZYDIS_INVALID, + /* 16 */ ZYDIS_INVALID, + /* 17 */ ZYDIS_INVALID, /* 18 */ 0x0213, /* 19 */ 0x0212, /* 1A */ 0x0215, @@ -5388,12 +5388,12 @@ const VXOpcodeTreeNode vxOptreeX87[][64] = /* 1F */ 0x0210, /* 20 */ 0x00D4, /* 21 */ 0x00B7, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, /* 24 */ 0x025A, /* 25 */ 0x027C, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, /* 28 */ 0x01C1, /* 29 */ 0x01C5, /* 2A */ 0x01C4, @@ -5401,7 +5401,7 @@ const VXOpcodeTreeNode vxOptreeX87[][64] = /* 2C */ 0x01C6, /* 2D */ 0x01C7, /* 2E */ 0x01C9, - /* 2F */ VX_INVALID, + /* 2F */ ZYDIS_INVALID, /* 30 */ 0x00B6, /* 31 */ 0x0298, /* 32 */ 0x01F1, @@ -5452,38 +5452,38 @@ const VXOpcodeTreeNode vxOptreeX87[][64] = /* 1D */ 0x0110, /* 1E */ 0x0111, /* 1F */ 0x0112, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, /* 29 */ 0x027B, - /* 2A */ VX_INVALID, - /* 2B */ VX_INVALID, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, + /* 2A */ ZYDIS_INVALID, + /* 2B */ ZYDIS_INVALID, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, }, { /* 00 */ 0x00F0, @@ -5524,8 +5524,8 @@ const VXOpcodeTreeNode vxOptreeX87[][64] = /* 23 */ 0x01E6, /* 24 */ 0x01E9, /* 25 */ 0x01F4, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, /* 28 */ 0x0269, /* 29 */ 0x026A, /* 2A */ 0x0265, @@ -5542,14 +5542,14 @@ const VXOpcodeTreeNode vxOptreeX87[][64] = /* 35 */ 0x012E, /* 36 */ 0x012D, /* 37 */ 0x012C, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, }, { /* 00 */ 0x00B9, @@ -5666,22 +5666,22 @@ const VXOpcodeTreeNode vxOptreeX87[][64] = /* 2D */ 0x0273, /* 2E */ 0x0276, /* 2F */ 0x0275, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, }, { /* 00 */ 0x00CC, @@ -5708,14 +5708,14 @@ const VXOpcodeTreeNode vxOptreeX87[][64] = /* 15 */ 0x014A, /* 16 */ 0x014D, /* 17 */ 0x014C, - /* 18 */ VX_INVALID, + /* 18 */ ZYDIS_INVALID, /* 19 */ 0x0152, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, - /* 1C */ VX_INVALID, - /* 1D */ VX_INVALID, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, + /* 1C */ ZYDIS_INVALID, + /* 1D */ ZYDIS_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, /* 20 */ 0x0258, /* 21 */ 0x0259, /* 22 */ 0x0256, @@ -5783,13 +5783,13 @@ const VXOpcodeTreeNode vxOptreeX87[][64] = /* 1E */ 0x0222, /* 1F */ 0x0223, /* 20 */ 0x01EC, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, /* 28 */ 0x0271, /* 29 */ 0x0272, /* 2A */ 0x026D, @@ -5806,18 +5806,18 @@ const VXOpcodeTreeNode vxOptreeX87[][64] = /* 35 */ 0x0130, /* 36 */ 0x0131, /* 37 */ 0x0132, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, }, }; -const VXOpcodeTreeNode vxOptreeAddressSize[][3] = +const ZyDisOpcodeTreeNode vxOptreeAddressSize[][3] = { { /* 00 */ 0x02CD, @@ -5826,7 +5826,7 @@ const VXOpcodeTreeNode vxOptreeAddressSize[][3] = }, }; -const VXOpcodeTreeNode vxOptreeOperandSize[][3] = +const ZyDisOpcodeTreeNode vxOptreeOperandSize[][3] = { { /* 00 */ 0x03E0, @@ -5864,24 +5864,24 @@ const VXOpcodeTreeNode vxOptreeOperandSize[][3] = /* 02 */ 0x007E, }, { - /* 00 */ VX_NODE(OTNT_MODE, 0x000F), - /* 01 */ VX_NODE(OTNT_MODE, 0x0010), - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODE, 0x000F), + /* 01 */ ZYDIS_NODE(OTNT_MODE, 0x0010), + /* 02 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODE, 0x0011), - /* 01 */ VX_NODE(OTNT_MODE, 0x0012), - /* 02 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODE, 0x0011), + /* 01 */ ZYDIS_NODE(OTNT_MODE, 0x0012), + /* 02 */ ZYDIS_INVALID, }, { /* 00 */ 0x02B8, /* 01 */ 0x02B6, - /* 02 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, }, { /* 00 */ 0x03A1, /* 01 */ 0x03A0, - /* 02 */ VX_INVALID, + /* 02 */ ZYDIS_INVALID, }, { /* 00 */ 0x0050, @@ -5894,14 +5894,14 @@ const VXOpcodeTreeNode vxOptreeOperandSize[][3] = /* 02 */ 0x0084, }, { - /* 00 */ VX_NODE(OTNT_MODE, 0x001E), - /* 01 */ VX_NODE(OTNT_MODE, 0x001F), - /* 02 */ VX_NODE(OTNT_MODE, 0x0020), + /* 00 */ ZYDIS_NODE(OTNT_MODE, 0x001E), + /* 01 */ ZYDIS_NODE(OTNT_MODE, 0x001F), + /* 02 */ ZYDIS_NODE(OTNT_MODE, 0x0020), }, { - /* 00 */ VX_NODE(OTNT_MODE, 0x0021), - /* 01 */ VX_NODE(OTNT_MODE, 0x0022), - /* 02 */ VX_NODE(OTNT_MODE, 0x0023), + /* 00 */ ZYDIS_NODE(OTNT_MODE, 0x0021), + /* 01 */ ZYDIS_NODE(OTNT_MODE, 0x0022), + /* 02 */ ZYDIS_NODE(OTNT_MODE, 0x0023), }, { /* 00 */ 0x0372, @@ -5939,9 +5939,9 @@ const VXOpcodeTreeNode vxOptreeOperandSize[][3] = /* 02 */ 0x05D6, }, { - /* 00 */ VX_NODE(OTNT_VEXW, 0x000E), - /* 01 */ VX_NODE(OTNT_VEXW, 0x000F), - /* 02 */ VX_NODE(OTNT_VEXW, 0x0010), + /* 00 */ ZYDIS_NODE(OTNT_VEXW, 0x000E), + /* 01 */ ZYDIS_NODE(OTNT_VEXW, 0x000F), + /* 02 */ ZYDIS_NODE(OTNT_VEXW, 0x0010), }, { /* 00 */ 0x02C6, @@ -5950,87 +5950,87 @@ const VXOpcodeTreeNode vxOptreeOperandSize[][3] = }, }; -const VXOpcodeTreeNode vxOptreeMode[][2] = +const ZyDisOpcodeTreeNode vxOptreeMode[][2] = { { /* 00 */ 0x04AA, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0445, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x04AD, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0553, - /* 01 */ VX_NODE(OTNT_VENDOR, 0x000D), + /* 01 */ ZYDIS_NODE(OTNT_VENDOR, 0x000D), }, { /* 00 */ 0x0555, - /* 01 */ VX_NODE(OTNT_VENDOR, 0x000E), + /* 01 */ ZYDIS_NODE(OTNT_VENDOR, 0x000E), }, { - /* 00 */ VX_NODE(OTNT_VENDOR, 0x000F), - /* 01 */ VX_NODE(OTNT_VENDOR, 0x0010), + /* 00 */ ZYDIS_NODE(OTNT_VENDOR, 0x000F), + /* 01 */ ZYDIS_NODE(OTNT_VENDOR, 0x0010), }, { - /* 00 */ VX_NODE(OTNT_VENDOR, 0x0011), - /* 01 */ VX_NODE(OTNT_VENDOR, 0x0012), + /* 00 */ ZYDIS_NODE(OTNT_VENDOR, 0x0011), + /* 01 */ ZYDIS_NODE(OTNT_VENDOR, 0x0012), }, { /* 00 */ 0x04AC, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0446, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x04A9, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0443, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x009F, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x00A0, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0001, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0004, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x04BA, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x04BB, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x044B, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x044C, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0038, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0033, @@ -6038,39 +6038,39 @@ const VXOpcodeTreeNode vxOptreeMode[][2] = }, { /* 00 */ 0x0011, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0398, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0007, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x04FC, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x002A, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0546, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x06B3, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0073, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x004F, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x04C0, @@ -6081,52 +6081,52 @@ const VXOpcodeTreeNode vxOptreeMode[][2] = /* 01 */ 0x04BE, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x04BD, }, { /* 00 */ 0x0451, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x044E, /* 01 */ 0x0450, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x044F, }, { /* 00 */ 0x02F6, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_VEXW, 0x0014), - /* 01 */ VX_NODE(OTNT_VEXW, 0x0015), + /* 00 */ ZYDIS_NODE(OTNT_VEXW, 0x0014), + /* 01 */ ZYDIS_NODE(OTNT_VEXW, 0x0015), }, { /* 00 */ 0x02F3, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x02BC, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0003, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0002, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x04F0, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x02DC, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x004D, @@ -6134,517 +6134,517 @@ const VXOpcodeTreeNode vxOptreeMode[][2] = }, }; -const VXOpcodeTreeNode vxOptreeVendor[][2] = +const ZyDisOpcodeTreeNode vxOptreeVendor[][2] = { { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05AC, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05B2, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05EB, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05F3, }, { /* 00 */ 0x05EC, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x05B4, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x05B3, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x05ED, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x053A, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0056, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0530, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x02C1, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x04D5, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x0552, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x0554, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x02BE, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x02BF, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x02C3, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x02C2, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05EA, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05F2, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05E8, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05E9, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05F4, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05AD, }, }; -const VXOpcodeTreeNode vxOptree3dnow[][256] = +const ZyDisOpcodeTreeNode vxOptree3dnow[][256] = { { - /* 00 */ VX_INVALID, - /* 01 */ VX_INVALID, - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_INVALID, - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_INVALID, - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, + /* 01 */ ZYDIS_INVALID, + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_INVALID, + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_INVALID, + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, /* 0C */ 0x0407, /* 0D */ 0x0406, - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, - /* 10 */ VX_INVALID, - /* 11 */ VX_INVALID, - /* 12 */ VX_INVALID, - /* 13 */ VX_INVALID, - /* 14 */ VX_INVALID, - /* 15 */ VX_INVALID, - /* 16 */ VX_INVALID, - /* 17 */ VX_INVALID, - /* 18 */ VX_INVALID, - /* 19 */ VX_INVALID, - /* 1A */ VX_INVALID, - /* 1B */ VX_INVALID, + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, + /* 10 */ ZYDIS_INVALID, + /* 11 */ ZYDIS_INVALID, + /* 12 */ ZYDIS_INVALID, + /* 13 */ ZYDIS_INVALID, + /* 14 */ ZYDIS_INVALID, + /* 15 */ ZYDIS_INVALID, + /* 16 */ ZYDIS_INVALID, + /* 17 */ ZYDIS_INVALID, + /* 18 */ ZYDIS_INVALID, + /* 19 */ ZYDIS_INVALID, + /* 1A */ ZYDIS_INVALID, + /* 1B */ ZYDIS_INVALID, /* 1C */ 0x03E7, /* 1D */ 0x03E6, - /* 1E */ VX_INVALID, - /* 1F */ VX_INVALID, - /* 20 */ VX_INVALID, - /* 21 */ VX_INVALID, - /* 22 */ VX_INVALID, - /* 23 */ VX_INVALID, - /* 24 */ VX_INVALID, - /* 25 */ VX_INVALID, - /* 26 */ VX_INVALID, - /* 27 */ VX_INVALID, - /* 28 */ VX_INVALID, - /* 29 */ VX_INVALID, - /* 2A */ VX_INVALID, - /* 2B */ VX_INVALID, - /* 2C */ VX_INVALID, - /* 2D */ VX_INVALID, - /* 2E */ VX_INVALID, - /* 2F */ VX_INVALID, - /* 30 */ VX_INVALID, - /* 31 */ VX_INVALID, - /* 32 */ VX_INVALID, - /* 33 */ VX_INVALID, - /* 34 */ VX_INVALID, - /* 35 */ VX_INVALID, - /* 36 */ VX_INVALID, - /* 37 */ VX_INVALID, - /* 38 */ VX_INVALID, - /* 39 */ VX_INVALID, - /* 3A */ VX_INVALID, - /* 3B */ VX_INVALID, - /* 3C */ VX_INVALID, - /* 3D */ VX_INVALID, - /* 3E */ VX_INVALID, - /* 3F */ VX_INVALID, - /* 40 */ VX_INVALID, - /* 41 */ VX_INVALID, - /* 42 */ VX_INVALID, - /* 43 */ VX_INVALID, - /* 44 */ VX_INVALID, - /* 45 */ VX_INVALID, - /* 46 */ VX_INVALID, - /* 47 */ VX_INVALID, - /* 48 */ VX_INVALID, - /* 49 */ VX_INVALID, - /* 4A */ VX_INVALID, - /* 4B */ VX_INVALID, - /* 4C */ VX_INVALID, - /* 4D */ VX_INVALID, - /* 4E */ VX_INVALID, - /* 4F */ VX_INVALID, - /* 50 */ VX_INVALID, - /* 51 */ VX_INVALID, - /* 52 */ VX_INVALID, - /* 53 */ VX_INVALID, - /* 54 */ VX_INVALID, - /* 55 */ VX_INVALID, - /* 56 */ VX_INVALID, - /* 57 */ VX_INVALID, - /* 58 */ VX_INVALID, - /* 59 */ VX_INVALID, - /* 5A */ VX_INVALID, - /* 5B */ VX_INVALID, - /* 5C */ VX_INVALID, - /* 5D */ VX_INVALID, - /* 5E */ VX_INVALID, - /* 5F */ VX_INVALID, - /* 60 */ VX_INVALID, - /* 61 */ VX_INVALID, - /* 62 */ VX_INVALID, - /* 63 */ VX_INVALID, - /* 64 */ VX_INVALID, - /* 65 */ VX_INVALID, - /* 66 */ VX_INVALID, - /* 67 */ VX_INVALID, - /* 68 */ VX_INVALID, - /* 69 */ VX_INVALID, - /* 6A */ VX_INVALID, - /* 6B */ VX_INVALID, - /* 6C */ VX_INVALID, - /* 6D */ VX_INVALID, - /* 6E */ VX_INVALID, - /* 6F */ VX_INVALID, - /* 70 */ VX_INVALID, - /* 71 */ VX_INVALID, - /* 72 */ VX_INVALID, - /* 73 */ VX_INVALID, - /* 74 */ VX_INVALID, - /* 75 */ VX_INVALID, - /* 76 */ VX_INVALID, - /* 77 */ VX_INVALID, - /* 78 */ VX_INVALID, - /* 79 */ VX_INVALID, - /* 7A */ VX_INVALID, - /* 7B */ VX_INVALID, - /* 7C */ VX_INVALID, - /* 7D */ VX_INVALID, - /* 7E */ VX_INVALID, - /* 7F */ VX_INVALID, - /* 80 */ VX_INVALID, - /* 81 */ VX_INVALID, - /* 82 */ VX_INVALID, - /* 83 */ VX_INVALID, - /* 84 */ VX_INVALID, - /* 85 */ VX_INVALID, - /* 86 */ VX_INVALID, - /* 87 */ VX_INVALID, - /* 88 */ VX_INVALID, - /* 89 */ VX_INVALID, + /* 1E */ ZYDIS_INVALID, + /* 1F */ ZYDIS_INVALID, + /* 20 */ ZYDIS_INVALID, + /* 21 */ ZYDIS_INVALID, + /* 22 */ ZYDIS_INVALID, + /* 23 */ ZYDIS_INVALID, + /* 24 */ ZYDIS_INVALID, + /* 25 */ ZYDIS_INVALID, + /* 26 */ ZYDIS_INVALID, + /* 27 */ ZYDIS_INVALID, + /* 28 */ ZYDIS_INVALID, + /* 29 */ ZYDIS_INVALID, + /* 2A */ ZYDIS_INVALID, + /* 2B */ ZYDIS_INVALID, + /* 2C */ ZYDIS_INVALID, + /* 2D */ ZYDIS_INVALID, + /* 2E */ ZYDIS_INVALID, + /* 2F */ ZYDIS_INVALID, + /* 30 */ ZYDIS_INVALID, + /* 31 */ ZYDIS_INVALID, + /* 32 */ ZYDIS_INVALID, + /* 33 */ ZYDIS_INVALID, + /* 34 */ ZYDIS_INVALID, + /* 35 */ ZYDIS_INVALID, + /* 36 */ ZYDIS_INVALID, + /* 37 */ ZYDIS_INVALID, + /* 38 */ ZYDIS_INVALID, + /* 39 */ ZYDIS_INVALID, + /* 3A */ ZYDIS_INVALID, + /* 3B */ ZYDIS_INVALID, + /* 3C */ ZYDIS_INVALID, + /* 3D */ ZYDIS_INVALID, + /* 3E */ ZYDIS_INVALID, + /* 3F */ ZYDIS_INVALID, + /* 40 */ ZYDIS_INVALID, + /* 41 */ ZYDIS_INVALID, + /* 42 */ ZYDIS_INVALID, + /* 43 */ ZYDIS_INVALID, + /* 44 */ ZYDIS_INVALID, + /* 45 */ ZYDIS_INVALID, + /* 46 */ ZYDIS_INVALID, + /* 47 */ ZYDIS_INVALID, + /* 48 */ ZYDIS_INVALID, + /* 49 */ ZYDIS_INVALID, + /* 4A */ ZYDIS_INVALID, + /* 4B */ ZYDIS_INVALID, + /* 4C */ ZYDIS_INVALID, + /* 4D */ ZYDIS_INVALID, + /* 4E */ ZYDIS_INVALID, + /* 4F */ ZYDIS_INVALID, + /* 50 */ ZYDIS_INVALID, + /* 51 */ ZYDIS_INVALID, + /* 52 */ ZYDIS_INVALID, + /* 53 */ ZYDIS_INVALID, + /* 54 */ ZYDIS_INVALID, + /* 55 */ ZYDIS_INVALID, + /* 56 */ ZYDIS_INVALID, + /* 57 */ ZYDIS_INVALID, + /* 58 */ ZYDIS_INVALID, + /* 59 */ ZYDIS_INVALID, + /* 5A */ ZYDIS_INVALID, + /* 5B */ ZYDIS_INVALID, + /* 5C */ ZYDIS_INVALID, + /* 5D */ ZYDIS_INVALID, + /* 5E */ ZYDIS_INVALID, + /* 5F */ ZYDIS_INVALID, + /* 60 */ ZYDIS_INVALID, + /* 61 */ ZYDIS_INVALID, + /* 62 */ ZYDIS_INVALID, + /* 63 */ ZYDIS_INVALID, + /* 64 */ ZYDIS_INVALID, + /* 65 */ ZYDIS_INVALID, + /* 66 */ ZYDIS_INVALID, + /* 67 */ ZYDIS_INVALID, + /* 68 */ ZYDIS_INVALID, + /* 69 */ ZYDIS_INVALID, + /* 6A */ ZYDIS_INVALID, + /* 6B */ ZYDIS_INVALID, + /* 6C */ ZYDIS_INVALID, + /* 6D */ ZYDIS_INVALID, + /* 6E */ ZYDIS_INVALID, + /* 6F */ ZYDIS_INVALID, + /* 70 */ ZYDIS_INVALID, + /* 71 */ ZYDIS_INVALID, + /* 72 */ ZYDIS_INVALID, + /* 73 */ ZYDIS_INVALID, + /* 74 */ ZYDIS_INVALID, + /* 75 */ ZYDIS_INVALID, + /* 76 */ ZYDIS_INVALID, + /* 77 */ ZYDIS_INVALID, + /* 78 */ ZYDIS_INVALID, + /* 79 */ ZYDIS_INVALID, + /* 7A */ ZYDIS_INVALID, + /* 7B */ ZYDIS_INVALID, + /* 7C */ ZYDIS_INVALID, + /* 7D */ ZYDIS_INVALID, + /* 7E */ ZYDIS_INVALID, + /* 7F */ ZYDIS_INVALID, + /* 80 */ ZYDIS_INVALID, + /* 81 */ ZYDIS_INVALID, + /* 82 */ ZYDIS_INVALID, + /* 83 */ ZYDIS_INVALID, + /* 84 */ ZYDIS_INVALID, + /* 85 */ ZYDIS_INVALID, + /* 86 */ ZYDIS_INVALID, + /* 87 */ ZYDIS_INVALID, + /* 88 */ ZYDIS_INVALID, + /* 89 */ ZYDIS_INVALID, /* 8A */ 0x03F0, - /* 8B */ VX_INVALID, - /* 8C */ VX_INVALID, - /* 8D */ VX_INVALID, + /* 8B */ ZYDIS_INVALID, + /* 8C */ ZYDIS_INVALID, + /* 8D */ ZYDIS_INVALID, /* 8E */ 0x03F1, - /* 8F */ VX_INVALID, + /* 8F */ ZYDIS_INVALID, /* 90 */ 0x03EB, - /* 91 */ VX_INVALID, - /* 92 */ VX_INVALID, - /* 93 */ VX_INVALID, + /* 91 */ ZYDIS_INVALID, + /* 92 */ ZYDIS_INVALID, + /* 93 */ ZYDIS_INVALID, /* 94 */ 0x03EE, - /* 95 */ VX_INVALID, + /* 95 */ ZYDIS_INVALID, /* 96 */ 0x03F2, /* 97 */ 0x03F6, - /* 98 */ VX_INVALID, - /* 99 */ VX_INVALID, + /* 98 */ ZYDIS_INVALID, + /* 99 */ ZYDIS_INVALID, /* 9A */ 0x03F7, - /* 9B */ VX_INVALID, - /* 9C */ VX_INVALID, - /* 9D */ VX_INVALID, + /* 9B */ ZYDIS_INVALID, + /* 9C */ ZYDIS_INVALID, + /* 9D */ ZYDIS_INVALID, /* 9E */ 0x03E9, - /* 9F */ VX_INVALID, + /* 9F */ ZYDIS_INVALID, /* A0 */ 0x03EC, - /* A1 */ VX_INVALID, - /* A2 */ VX_INVALID, - /* A3 */ VX_INVALID, + /* A1 */ ZYDIS_INVALID, + /* A2 */ ZYDIS_INVALID, + /* A3 */ ZYDIS_INVALID, /* A4 */ 0x03ED, - /* A5 */ VX_INVALID, + /* A5 */ ZYDIS_INVALID, /* A6 */ 0x03F3, /* A7 */ 0x03F5, - /* A8 */ VX_INVALID, - /* A9 */ VX_INVALID, + /* A8 */ ZYDIS_INVALID, + /* A9 */ ZYDIS_INVALID, /* AA */ 0x03F8, - /* AB */ VX_INVALID, - /* AC */ VX_INVALID, - /* AD */ VX_INVALID, + /* AB */ ZYDIS_INVALID, + /* AC */ ZYDIS_INVALID, + /* AD */ ZYDIS_INVALID, /* AE */ 0x03E8, - /* AF */ VX_INVALID, + /* AF */ ZYDIS_INVALID, /* B0 */ 0x03EA, - /* B1 */ VX_INVALID, - /* B2 */ VX_INVALID, - /* B3 */ VX_INVALID, + /* B1 */ ZYDIS_INVALID, + /* B2 */ ZYDIS_INVALID, + /* B3 */ ZYDIS_INVALID, /* B4 */ 0x03EF, - /* B5 */ VX_INVALID, + /* B5 */ ZYDIS_INVALID, /* B6 */ 0x03F4, /* B7 */ 0x0433, - /* B8 */ VX_INVALID, - /* B9 */ VX_INVALID, - /* BA */ VX_INVALID, + /* B8 */ ZYDIS_INVALID, + /* B9 */ ZYDIS_INVALID, + /* BA */ ZYDIS_INVALID, /* BB */ 0x0499, - /* BC */ VX_INVALID, - /* BD */ VX_INVALID, - /* BE */ VX_INVALID, + /* BC */ ZYDIS_INVALID, + /* BD */ ZYDIS_INVALID, + /* BE */ ZYDIS_INVALID, /* BF */ 0x03C7, - /* C0 */ VX_INVALID, - /* C1 */ VX_INVALID, - /* C2 */ VX_INVALID, - /* C3 */ VX_INVALID, - /* C4 */ VX_INVALID, - /* C5 */ VX_INVALID, - /* C6 */ VX_INVALID, - /* C7 */ VX_INVALID, - /* C8 */ VX_INVALID, - /* C9 */ VX_INVALID, - /* CA */ VX_INVALID, - /* CB */ VX_INVALID, - /* CC */ VX_INVALID, - /* CD */ VX_INVALID, - /* CE */ VX_INVALID, - /* CF */ VX_INVALID, - /* D0 */ VX_INVALID, - /* D1 */ VX_INVALID, - /* D2 */ VX_INVALID, - /* D3 */ VX_INVALID, - /* D4 */ VX_INVALID, - /* D5 */ VX_INVALID, - /* D6 */ VX_INVALID, - /* D7 */ VX_INVALID, - /* D8 */ VX_INVALID, - /* D9 */ VX_INVALID, - /* DA */ VX_INVALID, - /* DB */ VX_INVALID, - /* DC */ VX_INVALID, - /* DD */ VX_INVALID, - /* DE */ VX_INVALID, - /* DF */ VX_INVALID, - /* E0 */ VX_INVALID, - /* E1 */ VX_INVALID, - /* E2 */ VX_INVALID, - /* E3 */ VX_INVALID, - /* E4 */ VX_INVALID, - /* E5 */ VX_INVALID, - /* E6 */ VX_INVALID, - /* E7 */ VX_INVALID, - /* E8 */ VX_INVALID, - /* E9 */ VX_INVALID, - /* EA */ VX_INVALID, - /* EB */ VX_INVALID, - /* EC */ VX_INVALID, - /* ED */ VX_INVALID, - /* EE */ VX_INVALID, - /* EF */ VX_INVALID, - /* F0 */ VX_INVALID, - /* F1 */ VX_INVALID, - /* F2 */ VX_INVALID, - /* F3 */ VX_INVALID, - /* F4 */ VX_INVALID, - /* F5 */ VX_INVALID, - /* F6 */ VX_INVALID, - /* F7 */ VX_INVALID, - /* F8 */ VX_INVALID, - /* F9 */ VX_INVALID, - /* FA */ VX_INVALID, - /* FB */ VX_INVALID, - /* FC */ VX_INVALID, - /* FD */ VX_INVALID, - /* FE */ VX_INVALID, - /* FF */ VX_INVALID, + /* C0 */ ZYDIS_INVALID, + /* C1 */ ZYDIS_INVALID, + /* C2 */ ZYDIS_INVALID, + /* C3 */ ZYDIS_INVALID, + /* C4 */ ZYDIS_INVALID, + /* C5 */ ZYDIS_INVALID, + /* C6 */ ZYDIS_INVALID, + /* C7 */ ZYDIS_INVALID, + /* C8 */ ZYDIS_INVALID, + /* C9 */ ZYDIS_INVALID, + /* CA */ ZYDIS_INVALID, + /* CB */ ZYDIS_INVALID, + /* CC */ ZYDIS_INVALID, + /* CD */ ZYDIS_INVALID, + /* CE */ ZYDIS_INVALID, + /* CF */ ZYDIS_INVALID, + /* D0 */ ZYDIS_INVALID, + /* D1 */ ZYDIS_INVALID, + /* D2 */ ZYDIS_INVALID, + /* D3 */ ZYDIS_INVALID, + /* D4 */ ZYDIS_INVALID, + /* D5 */ ZYDIS_INVALID, + /* D6 */ ZYDIS_INVALID, + /* D7 */ ZYDIS_INVALID, + /* D8 */ ZYDIS_INVALID, + /* D9 */ ZYDIS_INVALID, + /* DA */ ZYDIS_INVALID, + /* DB */ ZYDIS_INVALID, + /* DC */ ZYDIS_INVALID, + /* DD */ ZYDIS_INVALID, + /* DE */ ZYDIS_INVALID, + /* DF */ ZYDIS_INVALID, + /* E0 */ ZYDIS_INVALID, + /* E1 */ ZYDIS_INVALID, + /* E2 */ ZYDIS_INVALID, + /* E3 */ ZYDIS_INVALID, + /* E4 */ ZYDIS_INVALID, + /* E5 */ ZYDIS_INVALID, + /* E6 */ ZYDIS_INVALID, + /* E7 */ ZYDIS_INVALID, + /* E8 */ ZYDIS_INVALID, + /* E9 */ ZYDIS_INVALID, + /* EA */ ZYDIS_INVALID, + /* EB */ ZYDIS_INVALID, + /* EC */ ZYDIS_INVALID, + /* ED */ ZYDIS_INVALID, + /* EE */ ZYDIS_INVALID, + /* EF */ ZYDIS_INVALID, + /* F0 */ ZYDIS_INVALID, + /* F1 */ ZYDIS_INVALID, + /* F2 */ ZYDIS_INVALID, + /* F3 */ ZYDIS_INVALID, + /* F4 */ ZYDIS_INVALID, + /* F5 */ ZYDIS_INVALID, + /* F6 */ ZYDIS_INVALID, + /* F7 */ ZYDIS_INVALID, + /* F8 */ ZYDIS_INVALID, + /* F9 */ ZYDIS_INVALID, + /* FA */ ZYDIS_INVALID, + /* FB */ ZYDIS_INVALID, + /* FC */ ZYDIS_INVALID, + /* FD */ ZYDIS_INVALID, + /* FE */ ZYDIS_INVALID, + /* FF */ ZYDIS_INVALID, }, }; -const VXOpcodeTreeNode vxOptreeVex[][16] = +const ZyDisOpcodeTreeNode vxOptreeVex[][16] = { { - /* 00 */ VX_NODE(OTNT_MODE, 0x0024), - /* 01 */ VX_NODE(OTNT_TABLE, 0x0004), - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_NODE(OTNT_TABLE, 0x0005), - /* 06 */ VX_NODE(OTNT_TABLE, 0x0006), - /* 07 */ VX_NODE(OTNT_TABLE, 0x0007), - /* 08 */ VX_INVALID, - /* 09 */ VX_NODE(OTNT_TABLE, 0x0008), - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ VX_NODE(OTNT_TABLE, 0x0009), - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODE, 0x0024), + /* 01 */ ZYDIS_NODE(OTNT_TABLE, 0x0004), + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_NODE(OTNT_TABLE, 0x0005), + /* 06 */ ZYDIS_NODE(OTNT_TABLE, 0x0006), + /* 07 */ ZYDIS_NODE(OTNT_TABLE, 0x0007), + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_NODE(OTNT_TABLE, 0x0008), + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_NODE(OTNT_TABLE, 0x0009), + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_MODE, 0x0026), - /* 01 */ VX_NODE(OTNT_TABLE, 0x0004), - /* 02 */ VX_INVALID, - /* 03 */ VX_INVALID, - /* 04 */ VX_INVALID, - /* 05 */ VX_NODE(OTNT_TABLE, 0x0005), - /* 06 */ VX_INVALID, - /* 07 */ VX_INVALID, - /* 08 */ VX_INVALID, - /* 09 */ VX_NODE(OTNT_TABLE, 0x0008), - /* 0A */ VX_INVALID, - /* 0B */ VX_INVALID, - /* 0C */ VX_INVALID, - /* 0D */ VX_NODE(OTNT_TABLE, 0x0009), - /* 0E */ VX_INVALID, - /* 0F */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_MODE, 0x0026), + /* 01 */ ZYDIS_NODE(OTNT_TABLE, 0x0004), + /* 02 */ ZYDIS_INVALID, + /* 03 */ ZYDIS_INVALID, + /* 04 */ ZYDIS_INVALID, + /* 05 */ ZYDIS_NODE(OTNT_TABLE, 0x0005), + /* 06 */ ZYDIS_INVALID, + /* 07 */ ZYDIS_INVALID, + /* 08 */ ZYDIS_INVALID, + /* 09 */ ZYDIS_NODE(OTNT_TABLE, 0x0008), + /* 0A */ ZYDIS_INVALID, + /* 0B */ ZYDIS_INVALID, + /* 0C */ ZYDIS_INVALID, + /* 0D */ ZYDIS_NODE(OTNT_TABLE, 0x0009), + /* 0E */ ZYDIS_INVALID, + /* 0F */ ZYDIS_INVALID, }, }; -const VXOpcodeTreeNode vxOptreeVexW[][2] = +const ZyDisOpcodeTreeNode vxOptreeVexW[][2] = { { /* 00 */ 0x061D, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x061C, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0692, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0691, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x057B, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_VEXL, 0x0008), - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_VEXL, 0x0008), + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x05A6, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x05A5, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x05A7, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x05A4, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x061E, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x061B, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_VEXL, 0x0009), - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_VEXL, 0x0009), + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x061F, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0620, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0621, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x0622, }, { - /* 00 */ VX_NODE(OTNT_VEXL, 0x000A), - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_VEXL, 0x000A), + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_VEXL, 0x000B), - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_VEXL, 0x000B), + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_VEXL, 0x000C), - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_VEXL, 0x000C), + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_VEXL, 0x000D), - /* 01 */ VX_INVALID, + /* 00 */ ZYDIS_NODE(OTNT_VEXL, 0x000D), + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_NODE(OTNT_VEXL, 0x000E), - /* 01 */ VX_NODE(OTNT_VEXL, 0x000F), + /* 00 */ ZYDIS_NODE(OTNT_VEXL, 0x000E), + /* 01 */ ZYDIS_NODE(OTNT_VEXL, 0x000F), }, { /* 00 */ 0x0579, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x0578, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x060B, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, }; -const VXOpcodeTreeNode vxOptreeVexL[][2] = +const ZyDisOpcodeTreeNode vxOptreeVexL[][2] = { { /* 00 */ 0x069C, @@ -6652,68 +6652,68 @@ const VXOpcodeTreeNode vxOptreeVexL[][2] = }, { /* 00 */ 0x0660, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x065A, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x065E, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x063F, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x065F, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x065B, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x065D, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x057A, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x061A, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x05A0, }, { - /* 00 */ VX_INVALID, + /* 00 */ ZYDIS_INVALID, /* 01 */ 0x059A, }, { /* 00 */ 0x062C, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x062E, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x062D, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, { /* 00 */ 0x062F, - /* 01 */ VX_INVALID, + /* 01 */ ZYDIS_INVALID, }, }; -#undef VX_INVALID -#undef VX_NODE +#undef ZYDIS_INVALID +#undef ZYDIS_NODE #define OPI_NONE { DOT_NONE, DOS_NA } #define OPI_AL { DOT_AL, DOS_B } @@ -6857,7 +6857,7 @@ const VXOpcodeTreeNode vxOptreeVexL[][2] = #define OPI_sIb { DOT_sI, DOS_B } #define OPI_sIz { DOT_sI, DOS_Z } -const VXInstructionDefinition vxInstrDefinitions[] = +const ZyDisInstructionDefinition vxInstrDefinitions[] = { /* 000 */ { MNEM_INVALID, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, /* 001 */ { MNEM_AAA, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, @@ -8548,8 +8548,8 @@ const VXInstructionDefinition vxInstrDefinitions[] = /* 696 */ { MNEM_VUNPCKHPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, /* 697 */ { MNEM_VUNPCKLPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, /* 698 */ { MNEM_VUNPCKLPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, - /* 699 */ { MNEM_VXORPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, - /* 69A */ { MNEM_VXORPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, + /* 699 */ { MNEM_ZyDisORPD, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_ACCEPTS_VEXL | IDF_OPERAND1_READWRITE }, + /* 69A */ { MNEM_ZyDisORPS, { OPI_Vx, OPI_Hx, OPI_Wx, OPI_NONE }, IDF_ACCEPTS_ADDRESS_SIZE_PREFIX | IDF_ACCEPTS_REXR | IDF_ACCEPTS_REXX | IDF_ACCEPTS_REXB | IDF_OPERAND1_READWRITE }, /* 69B */ { MNEM_VZEROALL, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, /* 69C */ { MNEM_VZEROUPPER, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, /* 69D */ { MNEM_WAIT, { OPI_NONE, OPI_NONE, OPI_NONE, OPI_NONE }, 0 }, @@ -9645,5 +9645,5 @@ const char* vxInstrMnemonicStrings[] = /* 388 */ "xstore", }; -#undef VX_NODE -#undef VX_INVALID \ No newline at end of file +#undef ZYDIS_NODE +#undef ZYDIS_INVALID \ No newline at end of file diff --git a/VerteronDisassemblerEngine/VXOpcodeTable.h b/VerteronDisassemblerEngine/ZyDisOpcodeTable.h similarity index 97% rename from VerteronDisassemblerEngine/VXOpcodeTable.h rename to VerteronDisassemblerEngine/ZyDisOpcodeTable.h index f36cc41..472ee34 100644 --- a/VerteronDisassemblerEngine/VXOpcodeTable.h +++ b/VerteronDisassemblerEngine/ZyDisOpcodeTable.h @@ -30,8 +30,8 @@ **************************************************************************************************/ -#ifndef _VDE_VXOPCODETABLEC_H_ -#define _VDE_VXOPCODETABLEC_H_ +#ifndef _VDE_ZyDisOPCODETABLEC_H_ +#define _VDE_ZyDisOPCODETABLEC_H_ #include #include @@ -44,7 +44,7 @@ extern "C" /** * @brief Values that represent an instruction mnemonic. */ -typedef enum _VXInstructionMnemonic /* : uint16_t */ +typedef enum _ZyDisInstructionMnemonic /* : uint16_t */ { /* 000 */ MNEM_INVALID, /* 001 */ MNEM_AAA, @@ -926,8 +926,8 @@ typedef enum _VXInstructionMnemonic /* : uint16_t */ /* 36D */ MNEM_VUNPCKHPS, /* 36E */ MNEM_VUNPCKLPD, /* 36F */ MNEM_VUNPCKLPS, - /* 370 */ MNEM_VXORPD, - /* 371 */ MNEM_VXORPS, + /* 370 */ MNEM_ZyDisORPD, + /* 371 */ MNEM_ZyDisORPS, /* 372 */ MNEM_VZEROALL, /* 373 */ MNEM_VZEROUPPER, /* 374 */ MNEM_WAIT, @@ -953,18 +953,18 @@ typedef enum _VXInstructionMnemonic /* : uint16_t */ /* 388 */ MNEM_XSTORE, MNEM_FORCE_WORD = 0x7FFF -} VXInstructionMnemonic; +} ZyDisInstructionMnemonic; /** * @brief Defines an alias representing an opcode tree node. An opcode tree node is a 16 bit * unsigned integer value with its first 4 bits reserved for the node type. */ -typedef uint16_t VXOpcodeTreeNode; +typedef uint16_t ZyDisOpcodeTreeNode; /** * @brief Values that represent the type of an opcode tree node. */ -typedef enum _VXOpcodeTreeNodeType /* : uint8_t */ +typedef enum _ZyDisOpcodeTreeNodeType /* : uint8_t */ { /** * @brief Reference to a concrete instruction definition. @@ -1026,12 +1026,12 @@ typedef enum _VXOpcodeTreeNodeType /* : uint8_t */ * @brief Reference to a vex_l switch table. */ OTNT_VEXL = 14 -} VXOpcodeTreeNodeType; +} ZyDisOpcodeTreeNodeType; /** * @brief Values that represent the type of an operand in the instruction definition. */ -typedef enum _VXDefinedOperandType /* : uint8_t */ +typedef enum _ZyDisDefinedOperandType /* : uint8_t */ { /* * @brief No operand. @@ -1286,13 +1286,13 @@ typedef enum _VXDefinedOperandType /* : uint8_t */ * @brief Floating point register 7. */ DOT_ST7 -} VXDefinedOperandType; +} ZyDisDefinedOperandType; /** * @brief Values that represent the size of an operand in the instruction definition. * Do not change the order or the values of this enum! */ -typedef enum _VXDefinedOperandSize /* : uint8_t */ +typedef enum _ZyDisDefinedOperandSize /* : uint8_t */ { /** * @brief No operand. @@ -1386,13 +1386,13 @@ typedef enum _VXDefinedOperandSize /* : uint8_t */ * @brief Q sized register or O sized memory operand. */ DOS_QO = (DOS_Q << 4) | DOS_O, -} VXDefinedOperandSize; +} ZyDisDefinedOperandSize; /** * @brief Values that represent optional flags in the instruction definition. * Do not change the order or the values of this enum! */ -typedef enum _VXInstructionDefinitionFlags /* : uint16_t */ +typedef enum _ZyDisInstructionDefinitionFlags /* : uint16_t */ { /** * @brief The instruction accepts the rex.b prefix value. @@ -1456,49 +1456,49 @@ typedef enum _VXInstructionDefinitionFlags /* : uint16_t */ IDF_OPERAND2_READWRITE = 0x4000, IDF_FORCE_WORD = 0x7FFF -} VXInstructionDefinitionFlags; +} ZyDisInstructionDefinitionFlags; #pragma pack (push, 1) /** * @brief An operand definition. */ -typedef struct _VXOperandDefinition +typedef struct _ZyDisOperandDefinition { /** * @brief The defined operand type. - * @see VXDefinedOperandType + * @see ZyDisDefinedOperandType */ uint8_t type; /** * @brief The defined operand size. - * @see VXDefinedOperandType + * @see ZyDisDefinedOperandType */ uint8_t size; -} VXOperandDefinition; +} ZyDisOperandDefinition; /** * @brief An instruction definition. */ -typedef struct _VXInstructionDefinition +typedef struct _ZyDisInstructionDefinition { /** * @brief The instruction mnemonic. - * @see VXInstructionMnemonic + * @see ZyDisInstructionMnemonic */ uint16_t mnemonic; /** * @brief The operand definitions for all four possible operands. */ - VXOperandDefinition operand[4]; + ZyDisOperandDefinition operand[4]; /** * @brief Additional flags for the instruction definition. */ uint16_t flags; -} VXInstructionDefinition; +} ZyDisInstructionDefinition; #pragma pack (pop) #ifdef __cplusplus } #endif -#endif // _VDE_VXOPCODETABLEC_H_ \ No newline at end of file +#endif // _VDE_ZyDisOPCODETABLEC_H_ \ No newline at end of file diff --git a/VerteronDisassemblerEngine/VXOpcodeTableInternal.h b/VerteronDisassemblerEngine/ZyDisOpcodeTableInternal.h similarity index 77% rename from VerteronDisassemblerEngine/VXOpcodeTableInternal.h rename to VerteronDisassemblerEngine/ZyDisOpcodeTableInternal.h index 347f079..5b55354 100644 --- a/VerteronDisassemblerEngine/VXOpcodeTableInternal.h +++ b/VerteronDisassemblerEngine/ZyDisOpcodeTableInternal.h @@ -30,17 +30,17 @@ **************************************************************************************************/ -#ifndef _VDE_VXOPCODETABLEINTERNAL_H_ -#define _VDE_VXOPCODETABLEINTERNAL_H_ +#ifndef _VDE_ZyDisOPCODETABLEINTERNAL_H_ +#define _VDE_ZyDisOPCODETABLEINTERNAL_H_ #include -#include "VXOpcodeTable.h" +#include "ZyDisOpcodeTable.h" /** * @brief Contains all opcode tables. * Indexed by the numeric value of the opcode. */ -extern const VXOpcodeTreeNode vxOptreeTable[][256]; +extern const ZyDisOpcodeTreeNode vxOptreeTable[][256]; /** * @brief Contains all modrm_mod switch tables. @@ -48,19 +48,19 @@ extern const VXOpcodeTreeNode vxOptreeTable[][256]; * 0 = [modrm_mod == !11] * 1 = [modrm_mod == 11] */ -extern const VXOpcodeTreeNode vxOptreeModrmMod[][2]; +extern const ZyDisOpcodeTreeNode vxOptreeModrmMod[][2]; /** * @brief Contains all modrm_reg switch tables. * Indexed by the numeric value of the modrm_reg field. */ -extern const VXOpcodeTreeNode vxOptreeModrmReg[][8]; +extern const ZyDisOpcodeTreeNode vxOptreeModrmReg[][8]; /** * @brief Contains all modrm_rm switch tables. * Indexed by the numeric value of the modrm_rm field. */ -extern const VXOpcodeTreeNode vxOptreeModrmRm[][8]; +extern const ZyDisOpcodeTreeNode vxOptreeModrmRm[][8]; /** * @brief Contains all mandatory-prefix switch tables. @@ -70,14 +70,14 @@ extern const VXOpcodeTreeNode vxOptreeModrmRm[][8]; * 2 = F3 * 3 = 66 */ -extern const VXOpcodeTreeNode vxOptreeMandatory[][4]; +extern const ZyDisOpcodeTreeNode vxOptreeMandatory[][4]; /** * @brief Contains all x87 opcode tables. * Indexed by the numeric value of the 6 lowest bits of the modrm byte (modrm_mod should * always be 11). */ -extern const VXOpcodeTreeNode vxOptreeX87[][64]; +extern const ZyDisOpcodeTreeNode vxOptreeX87[][64]; /** * @brief Contains all address-size switch tables. @@ -86,7 +86,7 @@ extern const VXOpcodeTreeNode vxOptreeX87[][64]; * 1 = 32 * 2 = 64 */ -extern const VXOpcodeTreeNode vxOptreeAddressSize[][3]; +extern const ZyDisOpcodeTreeNode vxOptreeAddressSize[][3]; /** * @brief Contains all operand-size switch tables. @@ -95,7 +95,7 @@ extern const VXOpcodeTreeNode vxOptreeAddressSize[][3]; * 1 = 32 * 2 = 64 */ -extern const VXOpcodeTreeNode vxOptreeOperandSize[][3]; +extern const ZyDisOpcodeTreeNode vxOptreeOperandSize[][3]; /** * @brief Contains all cpu-mode switch tables. @@ -103,7 +103,7 @@ extern const VXOpcodeTreeNode vxOptreeOperandSize[][3]; * 0 = [!= 64] * 1 = 64 */ -extern const VXOpcodeTreeNode vxOptreeMode[][2]; +extern const ZyDisOpcodeTreeNode vxOptreeMode[][2]; /** * @brief Contains all vendor switch tables. @@ -111,13 +111,13 @@ extern const VXOpcodeTreeNode vxOptreeMode[][2]; * 0 = AMD * 1 = Intel */ -extern const VXOpcodeTreeNode vxOptreeVendor[][2]; +extern const ZyDisOpcodeTreeNode vxOptreeVendor[][2]; /** * @brief Contains all 3DNow! switch tables. * Indexed by the numeric value of the 3DNow! opcode. */ -extern const VXOpcodeTreeNode vxOptree3dnow[][256]; +extern const ZyDisOpcodeTreeNode vxOptree3dnow[][256]; /** * @brief Contains all vex switch tables. @@ -139,24 +139,24 @@ extern const VXOpcodeTreeNode vxOptree3dnow[][256]; * E = F2_0F38 * F = F2_0F3A */ -extern const VXOpcodeTreeNode vxOptreeVex[][16]; +extern const ZyDisOpcodeTreeNode vxOptreeVex[][16]; /** * @brief Contains all vex_w switch tables. * Indexed by the numeric value of the vex_w field. */ -extern const VXOpcodeTreeNode vxOptreeVexW[][2]; +extern const ZyDisOpcodeTreeNode vxOptreeVexW[][2]; /** * @brief Contains all vex_l switch tables. * Indexed by the numeric value of the vex_l field. */ -extern const VXOpcodeTreeNode vxOptreeVexL[][2]; +extern const ZyDisOpcodeTreeNode vxOptreeVexL[][2]; /** * @brief Contains all instruction definitions. */ -extern const VXInstructionDefinition vxInstrDefinitions[]; +extern const ZyDisInstructionDefinition vxInstrDefinitions[]; /** * @brief Contains all instruction mnemonic strings. @@ -168,9 +168,9 @@ extern const char* vxInstrMnemonicStrings[]; * @param node The node. * @return The type of the specified opcode tree node. */ -VX_INLINE VXOpcodeTreeNodeType VXGetOpcodeNodeType(VXOpcodeTreeNode node) +ZYDIS_INLINE ZyDisOpcodeTreeNodeType ZyDisGetOpcodeNodeType(ZyDisOpcodeTreeNode node) { - return (VXOpcodeTreeNodeType)((node >> 12) & 0x0F); + return (ZyDisOpcodeTreeNodeType)((node >> 12) & 0x0F); } /** @@ -178,7 +178,7 @@ VX_INLINE VXOpcodeTreeNodeType VXGetOpcodeNodeType(VXOpcodeTreeNode node) * @param node The node. * @return The value of the specified opcode tree node. */ -VX_INLINE uint16_t VXGetOpcodeNodeValue(VXOpcodeTreeNode node) +ZYDIS_INLINE uint16_t ZyDisGetOpcodeNodeValue(ZyDisOpcodeTreeNode node) { return (node & 0x0FFF); } @@ -187,7 +187,7 @@ VX_INLINE uint16_t VXGetOpcodeNodeValue(VXOpcodeTreeNode node) * @brief Returns the root node of the opcode tree. * @return The root node of the opcode tree. */ -VX_INLINE VXOpcodeTreeNode VXGetOpcodeTreeRoot() +ZYDIS_INLINE ZyDisOpcodeTreeNode ZyDisGetOpcodeTreeRoot() { return 0x1000; } @@ -198,10 +198,10 @@ VX_INLINE VXOpcodeTreeNode VXGetOpcodeTreeRoot() * @param index The index of the child node to retrieve. * @return The specified child node. */ -VX_INLINE VXOpcodeTreeNode VXGetOpcodeTreeChild(VXOpcodeTreeNode parent, uint16_t index) +ZYDIS_INLINE ZyDisOpcodeTreeNode ZyDisGetOpcodeTreeChild(ZyDisOpcodeTreeNode parent, uint16_t index) { - VXOpcodeTreeNodeType nodeType = VXGetOpcodeNodeType(parent); - uint16_t tableIndex = VXGetOpcodeNodeValue(parent); + ZyDisOpcodeTreeNodeType nodeType = ZyDisGetOpcodeNodeType(parent); + uint16_t tableIndex = ZyDisGetOpcodeNodeValue(parent); switch (nodeType) { case OTNT_TABLE: @@ -257,9 +257,9 @@ VX_INLINE VXOpcodeTreeNode VXGetOpcodeTreeChild(VXOpcodeTreeNode parent, uint16_ * @param node The instruction definition node. * @return Pointer to the instruction definition. */ -VX_INLINE const VXInstructionDefinition* VXGetInstructionDefinition(VXOpcodeTreeNode node) +ZYDIS_INLINE const ZyDisInstructionDefinition* ZyDisGetInstructionDefinition(ZyDisOpcodeTreeNode node) { - assert(VXGetOpcodeNodeType(node) == OTNT_INSTRUCTION_DEFINITION); + assert(ZyDisGetOpcodeNodeType(node) == OTNT_INSTRUCTION_DEFINITION); return &vxInstrDefinitions[node & 0x0FFF]; } @@ -268,7 +268,7 @@ VX_INLINE const VXInstructionDefinition* VXGetInstructionDefinition(VXOpcodeTree * @param mnemonic The mnemonic. * @return The instruction mnemonic string. */ -VX_INLINE const char* VXGetInstructionMnemonicString(VXInstructionMnemonic mnemonic) +ZYDIS_INLINE const char* ZyDisGetInstructionMnemonicString(ZyDisInstructionMnemonic mnemonic) { return vxInstrMnemonicStrings[(uint16_t)mnemonic]; } @@ -278,7 +278,7 @@ VX_INLINE const char* VXGetInstructionMnemonicString(VXInstructionMnemonic mnemo * @param operandSize The defined operand size. * @return The the numeric value for the simple operand size definition. */ -VX_INLINE uint16_t VXGetSimpleOperandSize(VXDefinedOperandSize operandSize) +ZYDIS_INLINE uint16_t ZyDisGetSimpleOperandSize(ZyDisDefinedOperandSize operandSize) { static const uint16_t operandSizes[8] = { @@ -295,9 +295,9 @@ VX_INLINE uint16_t VXGetSimpleOperandSize(VXDefinedOperandSize operandSize) * @param operandSize The defined operand size. * @return The memory-size part of the operand size definition. */ -VX_INLINE VXDefinedOperandSize VXGetComplexOperandMemSize(VXDefinedOperandSize operandSize) +ZYDIS_INLINE ZyDisDefinedOperandSize ZyDisGetComplexOperandMemSize(ZyDisDefinedOperandSize operandSize) { - return (VXDefinedOperandSize)(operandSize & 0x0F); + return (ZyDisDefinedOperandSize)(operandSize & 0x0F); } /** @@ -305,9 +305,9 @@ VX_INLINE VXDefinedOperandSize VXGetComplexOperandMemSize(VXDefinedOperandSize o * @param operandSize The defined operand size. * @return The register-size part of the operand size definition. */ -VX_INLINE VXDefinedOperandSize VXGetComplexOperandRegSize(VXDefinedOperandSize operandSize) +ZYDIS_INLINE ZyDisDefinedOperandSize ZyDisGetComplexOperandRegSize(ZyDisDefinedOperandSize operandSize) { - return (VXDefinedOperandSize)((operandSize >> 4) & 0x0F); + return (ZyDisDefinedOperandSize)((operandSize >> 4) & 0x0F); } -#endif // _VDE_VXOPCODETABLEINTERNAL_H_ \ No newline at end of file +#endif // _VDE_ZyDisOPCODETABLEINTERNAL_H_ \ No newline at end of file