Added support for some MVEX special-cases

This commit is contained in:
flobernd 2017-06-22 22:10:18 +02:00
parent 4d3a71369b
commit 6c370d29c9
3 changed files with 94 additions and 62 deletions

View File

@ -259,21 +259,21 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
/*0100*/ { ZYDIS_MNEMONIC_CMPPD, 3, 0x08F3, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0101*/ { ZYDIS_MNEMONIC_CMPPS, 3, 0x08F6, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*0102*/ { ZYDIS_MNEMONIC_CMPPS, 3, 0x08F9, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0103*/ { ZYDIS_MNEMONIC_CMPSB, 3, 0x090B, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0104*/ { ZYDIS_MNEMONIC_CMPSB, 3, 0x090B, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0103*/ { ZYDIS_MNEMONIC_CMPSB, 3, 0x090B, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0104*/ { ZYDIS_MNEMONIC_CMPSB, 3, 0x090B, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0105*/ { ZYDIS_MNEMONIC_CMPSB, 2, 0x126E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0106*/ { ZYDIS_MNEMONIC_CMPSD, 3, 0x090E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0107*/ { ZYDIS_MNEMONIC_CMPSD, 3, 0x090E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0106*/ { ZYDIS_MNEMONIC_CMPSD, 3, 0x090E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0107*/ { ZYDIS_MNEMONIC_CMPSD, 3, 0x090E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0108*/ { ZYDIS_MNEMONIC_CMPSD, 2, 0x1270, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0109*/ { ZYDIS_MNEMONIC_CMPSD, 3, 0x0911, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*010A*/ { ZYDIS_MNEMONIC_CMPSD, 3, 0x0914, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*010B*/ { ZYDIS_MNEMONIC_CMPSQ, 3, 0x0917, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*010C*/ { ZYDIS_MNEMONIC_CMPSQ, 3, 0x0917, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*010B*/ { ZYDIS_MNEMONIC_CMPSQ, 3, 0x0917, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*010C*/ { ZYDIS_MNEMONIC_CMPSQ, 3, 0x0917, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*010D*/ { ZYDIS_MNEMONIC_CMPSQ, 2, 0x1272, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*010E*/ { ZYDIS_MNEMONIC_CMPSS, 3, 0x091A, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*010F*/ { ZYDIS_MNEMONIC_CMPSS, 3, 0x091D, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0110*/ { ZYDIS_MNEMONIC_CMPSW, 3, 0x0920, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0111*/ { ZYDIS_MNEMONIC_CMPSW, 3, 0x0920, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0110*/ { ZYDIS_MNEMONIC_CMPSW, 3, 0x0920, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0111*/ { ZYDIS_MNEMONIC_CMPSW, 3, 0x0920, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0112*/ { ZYDIS_MNEMONIC_CMPSW, 2, 0x1274, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0113*/ { ZYDIS_MNEMONIC_CMPXCHG, 3, 0x0923, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*0114*/ { ZYDIS_MNEMONIC_CMPXCHG, 3, 0x0923, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
@ -578,19 +578,19 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
/*023F*/ { ZYDIS_MNEMONIC_INC, 1, 0x11F6, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0240*/ { ZYDIS_MNEMONIC_INCSSPD, 1, 0x0566, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0241*/ { ZYDIS_MNEMONIC_INCSSPQ, 1, 0x16D9, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0242*/ { ZYDIS_MNEMONIC_INSB, 3, 0x0956, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0243*/ { ZYDIS_MNEMONIC_INSB, 3, 0x0956, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0242*/ { ZYDIS_MNEMONIC_INSB, 3, 0x0956, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0243*/ { ZYDIS_MNEMONIC_INSB, 3, 0x0956, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0244*/ { ZYDIS_MNEMONIC_INSB, 2, 0x132A, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0245*/ { ZYDIS_MNEMONIC_INSD, 3, 0x0959, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0246*/ { ZYDIS_MNEMONIC_INSD, 3, 0x0959, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0247*/ { ZYDIS_MNEMONIC_INSD, 3, 0x0959, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0248*/ { ZYDIS_MNEMONIC_INSD, 3, 0x0959, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0245*/ { ZYDIS_MNEMONIC_INSD, 3, 0x0959, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0246*/ { ZYDIS_MNEMONIC_INSD, 3, 0x0959, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0247*/ { ZYDIS_MNEMONIC_INSD, 3, 0x0959, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0248*/ { ZYDIS_MNEMONIC_INSD, 3, 0x0959, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0249*/ { ZYDIS_MNEMONIC_INSD, 2, 0x132C, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*024A*/ { ZYDIS_MNEMONIC_INSD, 2, 0x132C, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*024B*/ { ZYDIS_MNEMONIC_INSERTPS, 3, 0x095C, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*024C*/ { ZYDIS_MNEMONIC_INSERTPS, 3, 0x08F9, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*024D*/ { ZYDIS_MNEMONIC_INSW, 3, 0x095F, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*024E*/ { ZYDIS_MNEMONIC_INSW, 3, 0x095F, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*024D*/ { ZYDIS_MNEMONIC_INSW, 3, 0x095F, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*024E*/ { ZYDIS_MNEMONIC_INSW, 3, 0x095F, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*024F*/ { ZYDIS_MNEMONIC_INSW, 2, 0x132E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0250*/ { ZYDIS_MNEMONIC_INT, 2, 0x1330, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0251*/ { ZYDIS_MNEMONIC_INT1, 0, 0x0000, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
@ -700,17 +700,17 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
/*02B9*/ { ZYDIS_MNEMONIC_LLDT, 2, 0x134E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02BA*/ { ZYDIS_MNEMONIC_LMSW, 2, 0x1350, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*02BB*/ { ZYDIS_MNEMONIC_LMSW, 2, 0x1352, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02BC*/ { ZYDIS_MNEMONIC_LODSB, 3, 0x097D, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02BD*/ { ZYDIS_MNEMONIC_LODSB, 3, 0x097D, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02BC*/ { ZYDIS_MNEMONIC_LODSB, 3, 0x097D, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02BD*/ { ZYDIS_MNEMONIC_LODSB, 3, 0x097D, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02BE*/ { ZYDIS_MNEMONIC_LODSB, 2, 0x1354, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02BF*/ { ZYDIS_MNEMONIC_LODSD, 3, 0x0980, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C0*/ { ZYDIS_MNEMONIC_LODSD, 3, 0x0980, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02BF*/ { ZYDIS_MNEMONIC_LODSD, 3, 0x0980, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C0*/ { ZYDIS_MNEMONIC_LODSD, 3, 0x0980, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C1*/ { ZYDIS_MNEMONIC_LODSD, 2, 0x1356, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C2*/ { ZYDIS_MNEMONIC_LODSQ, 3, 0x0983, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C3*/ { ZYDIS_MNEMONIC_LODSQ, 3, 0x0983, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C2*/ { ZYDIS_MNEMONIC_LODSQ, 3, 0x0983, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C3*/ { ZYDIS_MNEMONIC_LODSQ, 3, 0x0983, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C4*/ { ZYDIS_MNEMONIC_LODSQ, 2, 0x1358, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C5*/ { ZYDIS_MNEMONIC_LODSW, 3, 0x0986, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C6*/ { ZYDIS_MNEMONIC_LODSW, 3, 0x0986, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C5*/ { ZYDIS_MNEMONIC_LODSW, 3, 0x0986, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C6*/ { ZYDIS_MNEMONIC_LODSW, 3, 0x0986, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C7*/ { ZYDIS_MNEMONIC_LODSW, 2, 0x135A, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C8*/ { ZYDIS_MNEMONIC_LOOP, 3, 0x0989, 0x04, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*02C9*/ { ZYDIS_MNEMONIC_LOOPE, 3, 0x0989, 0x04, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
@ -854,11 +854,11 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
/*0353*/ { ZYDIS_MNEMONIC_MOVQ, 2, 0x13E0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*0354*/ { ZYDIS_MNEMONIC_MOVQ, 2, 0x13E8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0355*/ { ZYDIS_MNEMONIC_MOVQ2DQ, 2, 0x13EA, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0356*/ { ZYDIS_MNEMONIC_MOVSB, 3, 0x099B, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0357*/ { ZYDIS_MNEMONIC_MOVSB, 3, 0x099B, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0356*/ { ZYDIS_MNEMONIC_MOVSB, 3, 0x099B, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0357*/ { ZYDIS_MNEMONIC_MOVSB, 3, 0x099B, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0358*/ { ZYDIS_MNEMONIC_MOVSB, 2, 0x13EC, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0359*/ { ZYDIS_MNEMONIC_MOVSD, 3, 0x099E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*035A*/ { ZYDIS_MNEMONIC_MOVSD, 3, 0x099E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0359*/ { ZYDIS_MNEMONIC_MOVSD, 3, 0x099E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*035A*/ { ZYDIS_MNEMONIC_MOVSD, 3, 0x099E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*035B*/ { ZYDIS_MNEMONIC_MOVSD, 2, 0x13EE, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*035C*/ { ZYDIS_MNEMONIC_MOVSD, 2, 0x13F0, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*035D*/ { ZYDIS_MNEMONIC_MOVSD, 2, 0x13F2, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
@ -868,15 +868,15 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
/*0361*/ { ZYDIS_MNEMONIC_MOVSHDUP, 2, 0x0A1F, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0362*/ { ZYDIS_MNEMONIC_MOVSLDUP, 2, 0x0A1C, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*0363*/ { ZYDIS_MNEMONIC_MOVSLDUP, 2, 0x0A1F, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0364*/ { ZYDIS_MNEMONIC_MOVSQ, 3, 0x09A1, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0365*/ { ZYDIS_MNEMONIC_MOVSQ, 3, 0x09A1, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0364*/ { ZYDIS_MNEMONIC_MOVSQ, 3, 0x09A1, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0365*/ { ZYDIS_MNEMONIC_MOVSQ, 3, 0x09A1, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0366*/ { ZYDIS_MNEMONIC_MOVSQ, 2, 0x13F8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0367*/ { ZYDIS_MNEMONIC_MOVSS, 2, 0x13FA, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*0368*/ { ZYDIS_MNEMONIC_MOVSS, 2, 0x13FC, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0369*/ { ZYDIS_MNEMONIC_MOVSS, 2, 0x13FE, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*036A*/ { ZYDIS_MNEMONIC_MOVSS, 2, 0x1400, 0x01, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*036B*/ { ZYDIS_MNEMONIC_MOVSW, 3, 0x09A4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*036C*/ { ZYDIS_MNEMONIC_MOVSW, 3, 0x09A4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*036B*/ { ZYDIS_MNEMONIC_MOVSW, 3, 0x09A4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*036C*/ { ZYDIS_MNEMONIC_MOVSW, 3, 0x09A4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*036D*/ { ZYDIS_MNEMONIC_MOVSW, 2, 0x1402, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*036E*/ { ZYDIS_MNEMONIC_MOVSX, 2, 0x1404, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*036F*/ { ZYDIS_MNEMONIC_MOVSX, 2, 0x1406, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
@ -1010,17 +1010,17 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
/*03EF*/ { ZYDIS_MNEMONIC_OUT, 1, 0x0020, 0x02, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F0*/ { ZYDIS_MNEMONIC_OUT, 2, 0x1416, 0x02, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F1*/ { ZYDIS_MNEMONIC_OUT, 1, 0x1329, 0x02, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F2*/ { ZYDIS_MNEMONIC_OUTSB, 3, 0x09AD, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F3*/ { ZYDIS_MNEMONIC_OUTSB, 3, 0x09AD, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F2*/ { ZYDIS_MNEMONIC_OUTSB, 3, 0x09AD, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F3*/ { ZYDIS_MNEMONIC_OUTSB, 3, 0x09AD, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F4*/ { ZYDIS_MNEMONIC_OUTSB, 2, 0x1418, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F5*/ { ZYDIS_MNEMONIC_OUTSD, 3, 0x09B0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F6*/ { ZYDIS_MNEMONIC_OUTSD, 3, 0x09B0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F7*/ { ZYDIS_MNEMONIC_OUTSD, 3, 0x09B0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F8*/ { ZYDIS_MNEMONIC_OUTSD, 3, 0x09B0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F5*/ { ZYDIS_MNEMONIC_OUTSD, 3, 0x09B0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F6*/ { ZYDIS_MNEMONIC_OUTSD, 3, 0x09B0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F7*/ { ZYDIS_MNEMONIC_OUTSD, 3, 0x09B0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F8*/ { ZYDIS_MNEMONIC_OUTSD, 3, 0x09B0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03F9*/ { ZYDIS_MNEMONIC_OUTSD, 2, 0x141A, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03FA*/ { ZYDIS_MNEMONIC_OUTSD, 2, 0x141A, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03FB*/ { ZYDIS_MNEMONIC_OUTSW, 3, 0x09B3, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03FC*/ { ZYDIS_MNEMONIC_OUTSW, 3, 0x09B3, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03FB*/ { ZYDIS_MNEMONIC_OUTSW, 3, 0x09B3, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03FC*/ { ZYDIS_MNEMONIC_OUTSW, 3, 0x09B3, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03FD*/ { ZYDIS_MNEMONIC_OUTSW, 2, 0x141C, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*03FE*/ { ZYDIS_MNEMONIC_PABSB, 2, 0x13DA, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*03FF*/ { ZYDIS_MNEMONIC_PABSB, 2, 0x13DE, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
@ -1597,17 +1597,17 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
/*063A*/ { ZYDIS_MNEMONIC_SBB, 2, 0x120C, 0x00, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*063B*/ { ZYDIS_MNEMONIC_SBB, 2, 0x120C, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*063C*/ { ZYDIS_MNEMONIC_SBB, 2, 0x120E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*063D*/ { ZYDIS_MNEMONIC_SCASB, 3, 0x0A2E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*063E*/ { ZYDIS_MNEMONIC_SCASB, 3, 0x0A2E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*063D*/ { ZYDIS_MNEMONIC_SCASB, 3, 0x0A2E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*063E*/ { ZYDIS_MNEMONIC_SCASB, 3, 0x0A2E, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*063F*/ { ZYDIS_MNEMONIC_SCASB, 2, 0x14D2, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0640*/ { ZYDIS_MNEMONIC_SCASD, 3, 0x0A31, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0641*/ { ZYDIS_MNEMONIC_SCASD, 3, 0x0A31, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0640*/ { ZYDIS_MNEMONIC_SCASD, 3, 0x0A31, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0641*/ { ZYDIS_MNEMONIC_SCASD, 3, 0x0A31, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0642*/ { ZYDIS_MNEMONIC_SCASD, 2, 0x14D4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0643*/ { ZYDIS_MNEMONIC_SCASQ, 3, 0x0A34, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0644*/ { ZYDIS_MNEMONIC_SCASQ, 3, 0x0A34, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0643*/ { ZYDIS_MNEMONIC_SCASQ, 3, 0x0A34, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0644*/ { ZYDIS_MNEMONIC_SCASQ, 3, 0x0A34, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0645*/ { ZYDIS_MNEMONIC_SCASQ, 2, 0x14D6, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0646*/ { ZYDIS_MNEMONIC_SCASW, 3, 0x0A37, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0647*/ { ZYDIS_MNEMONIC_SCASW, 3, 0x0A37, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0646*/ { ZYDIS_MNEMONIC_SCASW, 3, 0x0A37, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0647*/ { ZYDIS_MNEMONIC_SCASW, 3, 0x0A37, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0648*/ { ZYDIS_MNEMONIC_SCASW, 2, 0x14D8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*0649*/ { ZYDIS_MNEMONIC_SETB, 1, 0x09C8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*064A*/ { ZYDIS_MNEMONIC_SETB, 1, 0x1368, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
@ -1728,17 +1728,17 @@ const ZydisInstructionDefinitionDEFAULT instructionDefinitionsDEFAULT[] =
/*06BD*/ { ZYDIS_MNEMONIC_STGI, 0, 0x0000, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06BE*/ { ZYDIS_MNEMONIC_STI, 0, 0x0000, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06BF*/ { ZYDIS_MNEMONIC_STMXCSR, 2, 0x14EC, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*06C0*/ { ZYDIS_MNEMONIC_STOSB, 3, 0x0A4C, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C1*/ { ZYDIS_MNEMONIC_STOSB, 3, 0x0A4C, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C0*/ { ZYDIS_MNEMONIC_STOSB, 3, 0x0A4C, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C1*/ { ZYDIS_MNEMONIC_STOSB, 3, 0x0A4C, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C2*/ { ZYDIS_MNEMONIC_STOSB, 2, 0x14EE, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C3*/ { ZYDIS_MNEMONIC_STOSD, 3, 0x0A4F, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C4*/ { ZYDIS_MNEMONIC_STOSD, 3, 0x0A4F, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C3*/ { ZYDIS_MNEMONIC_STOSD, 3, 0x0A4F, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C4*/ { ZYDIS_MNEMONIC_STOSD, 3, 0x0A4F, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C5*/ { ZYDIS_MNEMONIC_STOSD, 2, 0x14F0, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C6*/ { ZYDIS_MNEMONIC_STOSQ, 3, 0x0A52, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C7*/ { ZYDIS_MNEMONIC_STOSQ, 3, 0x0A52, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C6*/ { ZYDIS_MNEMONIC_STOSQ, 3, 0x0A52, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C7*/ { ZYDIS_MNEMONIC_STOSQ, 3, 0x0A52, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C8*/ { ZYDIS_MNEMONIC_STOSQ, 2, 0x14F2, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C9*/ { ZYDIS_MNEMONIC_STOSW, 3, 0x0A55, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06CA*/ { ZYDIS_MNEMONIC_STOSW, 3, 0x0A55, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06C9*/ { ZYDIS_MNEMONIC_STOSW, 3, 0x0A55, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06CA*/ { ZYDIS_MNEMONIC_STOSW, 3, 0x0A55, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06CB*/ { ZYDIS_MNEMONIC_STOSW, 2, 0x14F4, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
/*06CC*/ { ZYDIS_MNEMONIC_STR, 2, 0x14F6, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_TRUE },
/*06CD*/ { ZYDIS_MNEMONIC_STR, 2, 0x14F8, 0x00, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE, ZYDIS_FALSE },
@ -6546,7 +6546,7 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*0022*/ { ZYDIS_MNEMONIC_VCMPPS, 5, 0x03AA, 0x00, ZYDIS_MVEX_FUNC_SF_32, ZYDIS_MASK_POLICY_ALLOWED },
/*0023*/ { ZYDIS_MNEMONIC_VCMPPS, 5, 0x03AF, 0x00, ZYDIS_MVEX_FUNC_SWIZZLE_64, ZYDIS_MASK_POLICY_ALLOWED },
/*0024*/ { ZYDIS_MNEMONIC_VCMPPS, 5, 0x03AF, 0x00, ZYDIS_MVEX_FUNC_SAE, ZYDIS_MASK_POLICY_ALLOWED },
/*0025*/ { ZYDIS_MNEMONIC_VCVTDQ2PD, 3, 0x08B8, 0x00, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0025*/ { ZYDIS_MNEMONIC_VCVTDQ2PD, 3, 0x08B8, 0x00, ZYDIS_MVEX_FUNC_SI_32_BCST, ZYDIS_MASK_POLICY_ALLOWED },
/*0026*/ { ZYDIS_MNEMONIC_VCVTDQ2PD, 3, 0x08BC, 0x00, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED },
/*0027*/ { ZYDIS_MNEMONIC_VCVTDQ2PD, 3, 0x08BC, 0x00, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0028*/ { ZYDIS_MNEMONIC_VCVTFXPNTDQ2PS, 4, 0x0894, 0x00, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED },
@ -6570,10 +6570,10 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*003A*/ { ZYDIS_MNEMONIC_VCVTPD2PS, 3, 0x0894, 0x00, ZYDIS_MVEX_FUNC_SF_64, ZYDIS_MASK_POLICY_ALLOWED },
/*003B*/ { ZYDIS_MNEMONIC_VCVTPD2PS, 3, 0x11B7, 0x00, ZYDIS_MVEX_FUNC_SWIZZLE_64, ZYDIS_MASK_POLICY_ALLOWED },
/*003C*/ { ZYDIS_MNEMONIC_VCVTPD2PS, 3, 0x11B7, 0x00, ZYDIS_MVEX_FUNC_RC, ZYDIS_MASK_POLICY_ALLOWED },
/*003D*/ { ZYDIS_MNEMONIC_VCVTPS2PD, 3, 0x08B8, 0x00, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*003D*/ { ZYDIS_MNEMONIC_VCVTPS2PD, 3, 0x08B8, 0x00, ZYDIS_MVEX_FUNC_SF_32_BCST, ZYDIS_MASK_POLICY_ALLOWED },
/*003E*/ { ZYDIS_MNEMONIC_VCVTPS2PD, 3, 0x11BA, 0x00, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED },
/*003F*/ { ZYDIS_MNEMONIC_VCVTPS2PD, 3, 0x11BA, 0x00, ZYDIS_MVEX_FUNC_SAE, ZYDIS_MASK_POLICY_ALLOWED },
/*0040*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x08B8, 0x00, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0040*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x08B8, 0x00, ZYDIS_MVEX_FUNC_SI_32_BCST, ZYDIS_MASK_POLICY_ALLOWED },
/*0041*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x08BC, 0x00, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED },
/*0042*/ { ZYDIS_MNEMONIC_VCVTUDQ2PD, 3, 0x08BC, 0x00, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0043*/ { ZYDIS_MNEMONIC_VEXP223PS, 3, 0x08CC, 0x00, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
@ -6603,7 +6603,7 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*005B*/ { ZYDIS_MNEMONIC_VFMADD231PS, 4, 0x0888, 0x00, ZYDIS_MVEX_FUNC_SF_32, ZYDIS_MASK_POLICY_ALLOWED },
/*005C*/ { ZYDIS_MNEMONIC_VFMADD231PS, 4, 0x039B, 0x00, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED },
/*005D*/ { ZYDIS_MNEMONIC_VFMADD231PS, 4, 0x039B, 0x00, ZYDIS_MVEX_FUNC_RC, ZYDIS_MASK_POLICY_ALLOWED },
/*005E*/ { ZYDIS_MNEMONIC_VFMADD233PS, 4, 0x0888, 0x00, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*005E*/ { ZYDIS_MNEMONIC_VFMADD233PS, 4, 0x0888, 0x00, ZYDIS_MVEX_FUNC_SF_32_BCST_4TO16, ZYDIS_MASK_POLICY_ALLOWED },
/*005F*/ { ZYDIS_MNEMONIC_VFMADD233PS, 4, 0x039B, 0x00, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED },
/*0060*/ { ZYDIS_MNEMONIC_VFMADD233PS, 4, 0x039B, 0x00, ZYDIS_MVEX_FUNC_RC, ZYDIS_MASK_POLICY_ALLOWED },
/*0061*/ { ZYDIS_MNEMONIC_VFMSUB132PD, 4, 0x0880, 0x00, ZYDIS_MVEX_FUNC_SF_64, ZYDIS_MASK_POLICY_ALLOWED },
@ -6795,7 +6795,7 @@ const ZydisInstructionDefinitionMVEX instructionDefinitionsMVEX[] =
/*011B*/ { ZYDIS_MNEMONIC_VPMADD231D, 4, 0x0888, 0x00, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED },
/*011C*/ { ZYDIS_MNEMONIC_VPMADD231D, 4, 0x039B, 0x00, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED },
/*011D*/ { ZYDIS_MNEMONIC_VPMADD231D, 4, 0x039B, 0x00, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*011E*/ { ZYDIS_MNEMONIC_VPMADD233D, 4, 0x0888, 0x00, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*011E*/ { ZYDIS_MNEMONIC_VPMADD233D, 4, 0x0888, 0x00, ZYDIS_MVEX_FUNC_SI_32_BCST_4TO16, ZYDIS_MASK_POLICY_ALLOWED },
/*011F*/ { ZYDIS_MNEMONIC_VPMADD233D, 4, 0x039B, 0x00, ZYDIS_MVEX_FUNC_SWIZZLE_32, ZYDIS_MASK_POLICY_ALLOWED },
/*0120*/ { ZYDIS_MNEMONIC_VPMADD233D, 4, 0x039B, 0x00, ZYDIS_MVEX_FUNC_INVALID, ZYDIS_MASK_POLICY_ALLOWED },
/*0121*/ { ZYDIS_MNEMONIC_VPMAXSD, 4, 0x0888, 0x00, ZYDIS_MVEX_FUNC_SI_32, ZYDIS_MASK_POLICY_ALLOWED },

View File

@ -461,6 +461,14 @@ enum ZydisMVEXFunctionalities
* @brief Sf32(mem).
*/
ZYDIS_MVEX_FUNC_SF_32,
/**
* @brief Sf32(mem) broadcast only.
*/
ZYDIS_MVEX_FUNC_SF_32_BCST,
/**
* @brief Sf32(mem) broadcast 4to16 only.
*/
ZYDIS_MVEX_FUNC_SF_32_BCST_4TO16,
/**
* @brief Sf64(mem).
*/
@ -469,6 +477,14 @@ enum ZydisMVEXFunctionalities
* @brief Si32(mem).
*/
ZYDIS_MVEX_FUNC_SI_32,
/**
* @brief Si32(mem) broadcast only.
*/
ZYDIS_MVEX_FUNC_SI_32_BCST,
/**
* @brief Si32(mem) broadcast 4to16 only.
*/
ZYDIS_MVEX_FUNC_SI_32_BCST_4TO16,
/**
* @brief Si64(mem).
*/

View File

@ -1049,12 +1049,16 @@ static void ZydisSetOperandSizeAndElementInfo(ZydisDecoderContext* context,
switch (context->mvex.functionality)
{
case ZYDIS_MVEX_FUNC_SF_32:
case ZYDIS_MVEX_FUNC_SF_32_BCST:
case ZYDIS_MVEX_FUNC_SF_32_BCST_4TO16:
case ZYDIS_MVEX_FUNC_UF_32:
case ZYDIS_MVEX_FUNC_DF_32:
operand->elementType = ZYDIS_ELEMENT_TYPE_FLOAT32;
operand->elementSize = 32;
break;
case ZYDIS_MVEX_FUNC_SI_32:
case ZYDIS_MVEX_FUNC_SI_32_BCST:
case ZYDIS_MVEX_FUNC_SI_32_BCST_4TO16:
case ZYDIS_MVEX_FUNC_UI_32:
case ZYDIS_MVEX_FUNC_DI_32:
operand->elementType = ZYDIS_ELEMENT_TYPE_INT;
@ -2696,6 +2700,8 @@ static void ZydisSetAVXInformation(ZydisDecoderContext* context,
info->avx.swizzleMode = ZYDIS_SWIZZLE_MODE_DCBA + info->details.mvex.SSS;
break;
case ZYDIS_MVEX_FUNC_SF_32:
case ZYDIS_MVEX_FUNC_SF_32_BCST:
case ZYDIS_MVEX_FUNC_SF_32_BCST_4TO16:
switch (info->details.mvex.SSS)
{
case 0:
@ -2723,6 +2729,8 @@ static void ZydisSetAVXInformation(ZydisDecoderContext* context,
}
break;
case ZYDIS_MVEX_FUNC_SI_32:
case ZYDIS_MVEX_FUNC_SI_32_BCST:
case ZYDIS_MVEX_FUNC_SI_32_BCST_4TO16:
switch (info->details.mvex.SSS)
{
case 0:
@ -3519,7 +3527,7 @@ static ZydisStatus ZydisDecodeInstruction(ZydisDecoderContext* context, ZydisIns
maskPolicy = def->maskPolicy;
// Check for invalid MVEX.SSS values
static const uint8_t lookup[17][8] =
static const uint8_t lookup[21][8] =
{
// ZYDIS_MVEX_FUNC_INVALID
{ 0, 0, 0, 0, 0, 0, 0, 0 },
@ -3533,10 +3541,18 @@ static ZydisStatus ZydisDecodeInstruction(ZydisDecoderContext* context, ZydisIns
{ 1, 1, 1, 1, 1, 1, 1, 1 },
// ZYDIS_MVEX_FUNC_SF_32
{ 1, 1, 1, 1, 1, 0, 1, 1 },
// ZYDIS_MVEX_FUNC_SF_32_BCST
{ 1, 1, 1, 0, 0, 0, 0, 0 },
// ZYDIS_MVEX_FUNC_SF_32_BCST_4TO16
{ 1, 0, 1, 0, 0, 0, 0, 0 },
// ZYDIS_MVEX_FUNC_SF_64
{ 1, 1, 1, 0, 0, 0, 0, 0 },
// ZYDIS_MVEX_FUNC_SI_32
{ 1, 1, 1, 0, 1, 1, 1, 1 },
// ZYDIS_MVEX_FUNC_SI_32_BCST
{ 1, 1, 1, 0, 0, 0, 0, 0 },
// ZYDIS_MVEX_FUNC_SI_32_BCST_4TO16
{ 1, 0, 1, 0, 0, 0, 0, 0 },
// ZYDIS_MVEX_FUNC_SI_64
{ 1, 1, 1, 0, 0, 0, 0, 0 },
// ZYDIS_MVEX_FUNC_UF_32