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.
This commit is contained in:
H.J. Lu 2012-07-19 13:41:03 +00:00
parent 6ace3df1ec
commit ff688e1f8e
2 changed files with 74 additions and 8 deletions

View File

@ -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.

View File

@ -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 } },