aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-07-19 13:41:03 +0000
committerH.J. Lu <hjl.tools@gmail.com>2012-07-19 13:41:03 +0000
commitff688e1f8e3d04ed6ffeb5d1a8aa8f962967324c (patch)
treed5a5d138f1d8f95079d7510671b134ed10866297 /opcodes
parent6ace3df1ec836a2c7aaabbd32877229757fae412 (diff)
downloadgdb-ff688e1f8e3d04ed6ffeb5d1a8aa8f962967324c.zip
gdb-ff688e1f8e3d04ed6ffeb5d1a8aa8f962967324c.tar.gz
gdb-ff688e1f8e3d04ed6ffeb5d1a8aa8f962967324c.tar.bz2
Use vex_len_table in xop_table
PR binutils/14355 * i386-dis.c (VEX_LEN_0FXOP_08_CC): New. (VEX_LEN_0FXOP_08_CD): Likewise. (VEX_LEN_0FXOP_08_CE): Likewise. (VEX_LEN_0FXOP_08_CF): Likewise. (VEX_LEN_0FXOP_08_EC): Likewise. (VEX_LEN_0FXOP_08_ED): Likewise. (VEX_LEN_0FXOP_08_EE): Likewise. (VEX_LEN_0FXOP_08_EF): Likewise. (xop_table): Fix entries for vpcomb, vpcomw, vpcomd, vpcomq, vpcomub, vpcomuw, vpcomud, vpcomuq. (vex_len_table): Add entries for VEX_LEN_0FXOP_08_CC, VEX_LEN_0FXOP_08_CD, VEX_LEN_0FXOP_08_CE, VEX_LEN_0FXOP_08_CF, VEX_LEN_0FXOP_08_EC, VEX_LEN_0FXOP_08_ED, VEX_LEN_0FXOP_08_EE, VEX_LEN_0FXOP_08_EF.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog18
-rw-r--r--opcodes/i386-dis.c64
2 files changed, 74 insertions, 8 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index ff95178..179559f 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,21 @@
+2012-07-19 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
+
+ PR binutils/14355
+ * i386-dis.c (VEX_LEN_0FXOP_08_CC): New.
+ (VEX_LEN_0FXOP_08_CD): Likewise.
+ (VEX_LEN_0FXOP_08_CE): Likewise.
+ (VEX_LEN_0FXOP_08_CF): Likewise.
+ (VEX_LEN_0FXOP_08_EC): Likewise.
+ (VEX_LEN_0FXOP_08_ED): Likewise.
+ (VEX_LEN_0FXOP_08_EE): Likewise.
+ (VEX_LEN_0FXOP_08_EF): Likewise.
+ (xop_table): Fix entries for vpcomb, vpcomw, vpcomd, vpcomq,
+ vpcomub, vpcomuw, vpcomud, vpcomuq.
+ (vex_len_table): Add entries for VEX_LEN_0FXOP_08_CC,
+ VEX_LEN_0FXOP_08_CD, VEX_LEN_0FXOP_08_CE, VEX_LEN_0FXOP_08_CF,
+ VEX_LEN_0FXOP_08_EC, VEX_LEN_0FXOP_08_ED, VEX_LEN_0FXOP_08_EE,
+ VEX_LEN_0FXOP_08_EF.
+
2012-07-16 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
* i386-dis.c (PREFIX_0F38F6): New.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 9abce1a..685e968 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -1319,6 +1319,14 @@ enum
VEX_LEN_0F3A7F_P_2,
VEX_LEN_0F3ADF_P_2,
VEX_LEN_0F3AF0_P_3,
+ VEX_LEN_0FXOP_08_CC,
+ VEX_LEN_0FXOP_08_CD,
+ VEX_LEN_0FXOP_08_CE,
+ VEX_LEN_0FXOP_08_CF,
+ VEX_LEN_0FXOP_08_EC,
+ VEX_LEN_0FXOP_08_ED,
+ VEX_LEN_0FXOP_08_EE,
+ VEX_LEN_0FXOP_08_EF,
VEX_LEN_0FXOP_09_80,
VEX_LEN_0FXOP_09_81
};
@@ -6894,10 +6902,10 @@ static const struct dis386 xop_table[][256] = {
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
- { "vpcomb", { XM, Vex128, EXx, Ib } },
- { "vpcomw", { XM, Vex128, EXx, Ib } },
- { "vpcomd", { XM, Vex128, EXx, Ib } },
- { "vpcomq", { XM, Vex128, EXx, Ib } },
+ { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CC) },
+ { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CD) },
+ { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CE) },
+ { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_CF) },
/* d0 */
{ Bad_Opcode },
{ Bad_Opcode },
@@ -6930,10 +6938,10 @@ static const struct dis386 xop_table[][256] = {
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
- { "vpcomub", { XM, Vex128, EXx, Ib } },
- { "vpcomuw", { XM, Vex128, EXx, Ib } },
- { "vpcomud", { XM, Vex128, EXx, Ib } },
- { "vpcomuq", { XM, Vex128, EXx, Ib } },
+ { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_EC) },
+ { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_ED) },
+ { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_EE) },
+ { VEX_LEN_TABLE (VEX_LEN_0FXOP_08_EF) },
/* f0 */
{ Bad_Opcode },
{ Bad_Opcode },
@@ -9002,6 +9010,46 @@ static const struct dis386 vex_len_table[][2] = {
{ "rorxS", { Gdq, Edq, Ib } },
},
+ /* VEX_LEN_0FXOP_08_CC */
+ {
+ { "vpcomb", { XM, Vex128, EXx, Ib } },
+ },
+
+ /* VEX_LEN_0FXOP_08_CD */
+ {
+ { "vpcomw", { XM, Vex128, EXx, Ib } },
+ },
+
+ /* VEX_LEN_0FXOP_08_CE */
+ {
+ { "vpcomd", { XM, Vex128, EXx, Ib } },
+ },
+
+ /* VEX_LEN_0FXOP_08_CF */
+ {
+ { "vpcomq", { XM, Vex128, EXx, Ib } },
+ },
+
+ /* VEX_LEN_0FXOP_08_EC */
+ {
+ { "vpcomub", { XM, Vex128, EXx, Ib } },
+ },
+
+ /* VEX_LEN_0FXOP_08_ED */
+ {
+ { "vpcomuw", { XM, Vex128, EXx, Ib } },
+ },
+
+ /* VEX_LEN_0FXOP_08_EE */
+ {
+ { "vpcomud", { XM, Vex128, EXx, Ib } },
+ },
+
+ /* VEX_LEN_0FXOP_08_EF */
+ {
+ { "vpcomuq", { XM, Vex128, EXx, Ib } },
+ },
+
/* VEX_LEN_0FXOP_09_80 */
{
{ "vfrczps", { XM, EXxmm } },