X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=opcodes%2Fi386-dis-evex-prefix.h;h=e988c099fe3fc0d0d78b1c0644da407288a5d6cb;hb=087e161b3cd9a8626dc05ce1bdb8dfaf353a71b1;hp=86bae37834b7eef0254873440867644135cd1867;hpb=cd546e7bd2832c882e69809fdbeb7b376b62039e;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h index 86bae37834..e988c099fe 100644 --- a/opcodes/i386-dis-evex-prefix.h +++ b/opcodes/i386-dis-evex-prefix.h @@ -1,65 +1,29 @@ /* PREFIX_EVEX_0F10 */ { - { VEX_W_TABLE (EVEX_W_0F10_P_0) }, + { "vmovupX", { XM, EXEvexXNoBcst }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F10_P_1) }, - { VEX_W_TABLE (EVEX_W_0F10_P_2) }, + { "vmovupX", { XM, EXEvexXNoBcst }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F10_P_3) }, }, /* PREFIX_EVEX_0F11 */ { - { VEX_W_TABLE (EVEX_W_0F11_P_0) }, + { "vmovupX", { EXxS, XM }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F11_P_1) }, - { VEX_W_TABLE (EVEX_W_0F11_P_2) }, + { "vmovupX", { EXxS, XM }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F11_P_3) }, }, /* PREFIX_EVEX_0F12 */ { { MOD_TABLE (MOD_EVEX_0F12_PREFIX_0) }, { VEX_W_TABLE (EVEX_W_0F12_P_1) }, - { VEX_W_TABLE (EVEX_W_0F12_P_2) }, + { MOD_TABLE (MOD_EVEX_0F12_PREFIX_2) }, { VEX_W_TABLE (EVEX_W_0F12_P_3) }, }, - /* PREFIX_EVEX_0F13 */ - { - { VEX_W_TABLE (EVEX_W_0F13_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F13_P_2) }, - }, - /* PREFIX_EVEX_0F14 */ - { - { VEX_W_TABLE (EVEX_W_0F14_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F14_P_2) }, - }, - /* PREFIX_EVEX_0F15 */ - { - { VEX_W_TABLE (EVEX_W_0F15_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F15_P_2) }, - }, /* PREFIX_EVEX_0F16 */ { { MOD_TABLE (MOD_EVEX_0F16_PREFIX_0) }, { VEX_W_TABLE (EVEX_W_0F16_P_1) }, - { VEX_W_TABLE (EVEX_W_0F16_P_2) }, - }, - /* PREFIX_EVEX_0F17 */ - { - { VEX_W_TABLE (EVEX_W_0F17_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F17_P_2) }, - }, - /* PREFIX_EVEX_0F28 */ - { - { VEX_W_TABLE (EVEX_W_0F28_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F28_P_2) }, - }, - /* PREFIX_EVEX_0F29 */ - { - { VEX_W_TABLE (EVEX_W_0F29_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F29_P_2) }, + { MOD_TABLE (MOD_EVEX_0F16_PREFIX_2) }, }, /* PREFIX_EVEX_0F2A */ { @@ -68,12 +32,6 @@ { Bad_Opcode }, { VEX_W_TABLE (EVEX_W_0F2A_P_3) }, }, - /* PREFIX_EVEX_0F2B */ - { - { VEX_W_TABLE (EVEX_W_0F2B_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F2B_P_2) }, - }, /* PREFIX_EVEX_0F2C */ { { Bad_Opcode }, @@ -90,59 +48,35 @@ }, /* PREFIX_EVEX_0F2E */ { - { VEX_W_TABLE (EVEX_W_0F2E_P_0) }, + { "vucomisX", { XMScalar, EXxmm_md, EXxEVexS }, PREFIX_OPCODE }, { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F2E_P_2) }, + { "vucomisX", { XMScalar, EXxmm_mq, EXxEVexS }, PREFIX_OPCODE }, }, /* PREFIX_EVEX_0F2F */ { - { VEX_W_TABLE (EVEX_W_0F2F_P_0) }, + { "vcomisX", { XMScalar, EXxmm_md, EXxEVexS }, PREFIX_OPCODE }, { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F2F_P_2) }, + { "vcomisX", { XMScalar, EXxmm_mq, EXxEVexS }, PREFIX_OPCODE }, }, /* PREFIX_EVEX_0F51 */ { - { VEX_W_TABLE (EVEX_W_0F51_P_0) }, + { "vsqrtpX", { XM, EXx, EXxEVexR }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F51_P_1) }, - { VEX_W_TABLE (EVEX_W_0F51_P_2) }, + { "vsqrtpX", { XM, EXx, EXxEVexR }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F51_P_3) }, }, - /* PREFIX_EVEX_0F54 */ - { - { VEX_W_TABLE (EVEX_W_0F54_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F54_P_2) }, - }, - /* PREFIX_EVEX_0F55 */ - { - { VEX_W_TABLE (EVEX_W_0F55_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F55_P_2) }, - }, - /* PREFIX_EVEX_0F56 */ - { - { VEX_W_TABLE (EVEX_W_0F56_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F56_P_2) }, - }, - /* PREFIX_EVEX_0F57 */ - { - { VEX_W_TABLE (EVEX_W_0F57_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0F57_P_2) }, - }, /* PREFIX_EVEX_0F58 */ { - { VEX_W_TABLE (EVEX_W_0F58_P_0) }, + { "vaddpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F58_P_1) }, - { VEX_W_TABLE (EVEX_W_0F58_P_2) }, + { "vaddpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F58_P_3) }, }, /* PREFIX_EVEX_0F59 */ { - { VEX_W_TABLE (EVEX_W_0F59_P_0) }, + { "vmulpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F59_P_1) }, - { VEX_W_TABLE (EVEX_W_0F59_P_2) }, + { "vmulpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F59_P_3) }, }, /* PREFIX_EVEX_0F5A */ @@ -160,30 +94,30 @@ }, /* PREFIX_EVEX_0F5C */ { - { VEX_W_TABLE (EVEX_W_0F5C_P_0) }, + { "vsubpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F5C_P_1) }, - { VEX_W_TABLE (EVEX_W_0F5C_P_2) }, + { "vsubpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F5C_P_3) }, }, /* PREFIX_EVEX_0F5D */ { - { VEX_W_TABLE (EVEX_W_0F5D_P_0) }, + { "vminpX", { XM, Vex, EXx, EXxEVexS }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F5D_P_1) }, - { VEX_W_TABLE (EVEX_W_0F5D_P_2) }, + { "vminpX", { XM, Vex, EXx, EXxEVexS }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F5D_P_3) }, }, /* PREFIX_EVEX_0F5E */ { - { VEX_W_TABLE (EVEX_W_0F5E_P_0) }, + { "vdivpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F5E_P_1) }, - { VEX_W_TABLE (EVEX_W_0F5E_P_2) }, + { "vdivpX", { XM, Vex, EXx, EXxEVexR }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F5E_P_3) }, }, /* PREFIX_EVEX_0F5F */ { - { VEX_W_TABLE (EVEX_W_0F5F_P_0) }, + { "vmaxpX", { XM, Vex, EXx, EXxEVexS }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F5F_P_1) }, - { VEX_W_TABLE (EVEX_W_0F5F_P_2) }, + { "vmaxpX", { XM, Vex, EXx, EXxEVexS }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0F5F_P_3) }, }, /* PREFIX_EVEX_0F60 */ @@ -423,9 +357,9 @@ }, /* PREFIX_EVEX_0FC2 */ { - { VEX_W_TABLE (EVEX_W_0FC2_P_0) }, + { "vcmppX", { XMask, Vex, EXx, EXxEVexS, VCMP }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0FC2_P_1) }, - { VEX_W_TABLE (EVEX_W_0FC2_P_2) }, + { "vcmppX", { XMask, Vex, EXx, EXxEVexS, VCMP }, PREFIX_OPCODE }, { VEX_W_TABLE (EVEX_W_0FC2_P_3) }, }, /* PREFIX_EVEX_0FC4 */ @@ -440,12 +374,6 @@ { Bad_Opcode }, { "vpextrw", { Gdq, XS, Ib }, 0 }, }, - /* PREFIX_EVEX_0FC6 */ - { - { VEX_W_TABLE (EVEX_W_0FC6_P_0) }, - { Bad_Opcode }, - { VEX_W_TABLE (EVEX_W_0FC6_P_2) }, - }, /* PREFIX_EVEX_0FD1 */ { { Bad_Opcode }, @@ -907,7 +835,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vscalefs%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vscalefs%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F3830 */ { @@ -1021,7 +949,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vgetexps%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 }, + { "vgetexps%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS }, 0 }, }, /* PREFIX_EVEX_0F3844 */ { @@ -1057,7 +985,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vrcp14s%XW", { XMScalar, VexScalar, EXxmm_mdq }, 0 }, + { "vrcp14s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 }, }, /* PREFIX_EVEX_0F384E */ { @@ -1069,7 +997,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vrsqrt14s%XW", { XMScalar, VexScalar, EXxmm_mdq }, 0 }, + { "vrsqrt14s%XW", { XMScalar, VexScalar, EXVexWdqScalar }, 0 }, }, /* PREFIX_EVEX_0F3850 */ { @@ -1349,7 +1277,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfmadd132s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F389A */ { @@ -1362,7 +1290,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfmsub132s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, { "v4fmaddss", { XMScalar, VexScalar, Mxmm }, 0 }, }, /* PREFIX_EVEX_0F389C */ @@ -1375,7 +1303,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfnmadd132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfnmadd132s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F389E */ { @@ -1387,7 +1315,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfnmsub132s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfnmsub132s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F38A0 */ { @@ -1435,7 +1363,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfmadd213s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F38AA */ { @@ -1448,7 +1376,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfmsub213s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, { "v4fnmaddss", { XMScalar, VexScalar, Mxmm }, 0 }, }, /* PREFIX_EVEX_0F38AC */ @@ -1461,7 +1389,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfnmadd213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfnmadd213s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F38AE */ { @@ -1473,7 +1401,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfnmsub213s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfnmsub213s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F38B4 */ { @@ -1509,7 +1437,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfmadd231s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F38BA */ { @@ -1521,7 +1449,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F38BC */ { @@ -1533,7 +1461,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfnmadd231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfnmadd231s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F38BE */ { @@ -1545,7 +1473,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfnmsub231s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexR }, 0 }, + { "vfnmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexR }, 0 }, }, /* PREFIX_EVEX_0F38C4 */ { @@ -1617,7 +1545,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vrcp28s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 }, + { "vrcp28s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS }, 0 }, }, /* PREFIX_EVEX_0F38CC */ { @@ -1629,7 +1557,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vrsqrt28s%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS }, 0 }, + { "vrsqrt28s%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS }, 0 }, }, /* PREFIX_EVEX_0F38CF */ { @@ -1827,7 +1755,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vgetmants%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib }, 0 }, + { "vgetmants%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS, Ib }, 0 }, }, /* PREFIX_EVEX_0F3A38 */ { @@ -1905,7 +1833,7 @@ { { Bad_Opcode }, { Bad_Opcode }, - { "vfixupimms%XW", { XMScalar, VexScalar, EXxmm_mdq, EXxEVexS, Ib }, 0 }, + { "vfixupimms%XW", { XMScalar, VexScalar, EXVexWdqScalar, EXxEVexS, Ib }, 0 }, }, /* PREFIX_EVEX_0F3A56 */ {