mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 07:08:01 +08:00
x86: fold AVX scalar to/from int conversion insns
There's no point doing a separate decode of the VEX.L bit - both decoded forms are identical.
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
2019-06-27 Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
|
* i386-dis.c (VEX_LEN_0F2A_P_1, VEX_LEN_0F2A_P_3,
|
||||||
|
VEX_LEN_0F2C_P_1, VEX_LEN_0F2C_P_3, VEX_LEN_0F2D_P_1,
|
||||||
|
VEX_LEN_0F2D_P_3): Delete.
|
||||||
|
(vex_len_table): Move vcvtsi2ss, vcvtsi2sd, vcvttss2si,
|
||||||
|
vcvttsd2si, vcvtss2si, and vcvtsd2si leaf entries ...
|
||||||
|
(prefix_table): ... here.
|
||||||
|
|
||||||
2019-06-27 Jan Beulich <jbeulich@suse.com>
|
2019-06-27 Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
* i386-dis.c (Iq): Delete.
|
* i386-dis.c (Iq): Delete.
|
||||||
|
@ -1818,12 +1818,6 @@ enum
|
|||||||
VEX_LEN_0F16_P_0_M_1,
|
VEX_LEN_0F16_P_0_M_1,
|
||||||
VEX_LEN_0F16_P_2,
|
VEX_LEN_0F16_P_2,
|
||||||
VEX_LEN_0F17_M_0,
|
VEX_LEN_0F17_M_0,
|
||||||
VEX_LEN_0F2A_P_1,
|
|
||||||
VEX_LEN_0F2A_P_3,
|
|
||||||
VEX_LEN_0F2C_P_1,
|
|
||||||
VEX_LEN_0F2C_P_3,
|
|
||||||
VEX_LEN_0F2D_P_1,
|
|
||||||
VEX_LEN_0F2D_P_3,
|
|
||||||
VEX_LEN_0F41_P_0,
|
VEX_LEN_0F41_P_0,
|
||||||
VEX_LEN_0F41_P_2,
|
VEX_LEN_0F41_P_2,
|
||||||
VEX_LEN_0F42_P_0,
|
VEX_LEN_0F42_P_0,
|
||||||
@ -4696,25 +4690,25 @@ static const struct dis386 prefix_table[][4] = {
|
|||||||
/* PREFIX_VEX_0F2A */
|
/* PREFIX_VEX_0F2A */
|
||||||
{
|
{
|
||||||
{ Bad_Opcode },
|
{ Bad_Opcode },
|
||||||
{ VEX_LEN_TABLE (VEX_LEN_0F2A_P_1) },
|
{ "vcvtsi2ss%LQ", { XMScalar, VexScalar, Edq }, 0 },
|
||||||
{ Bad_Opcode },
|
{ Bad_Opcode },
|
||||||
{ VEX_LEN_TABLE (VEX_LEN_0F2A_P_3) },
|
{ "vcvtsi2sd%LQ", { XMScalar, VexScalar, Edq }, 0 },
|
||||||
},
|
},
|
||||||
|
|
||||||
/* PREFIX_VEX_0F2C */
|
/* PREFIX_VEX_0F2C */
|
||||||
{
|
{
|
||||||
{ Bad_Opcode },
|
{ Bad_Opcode },
|
||||||
{ VEX_LEN_TABLE (VEX_LEN_0F2C_P_1) },
|
{ "vcvttss2si", { Gdq, EXdScalar }, 0 },
|
||||||
{ Bad_Opcode },
|
{ Bad_Opcode },
|
||||||
{ VEX_LEN_TABLE (VEX_LEN_0F2C_P_3) },
|
{ "vcvttsd2si", { Gdq, EXqScalar }, 0 },
|
||||||
},
|
},
|
||||||
|
|
||||||
/* PREFIX_VEX_0F2D */
|
/* PREFIX_VEX_0F2D */
|
||||||
{
|
{
|
||||||
{ Bad_Opcode },
|
{ Bad_Opcode },
|
||||||
{ VEX_LEN_TABLE (VEX_LEN_0F2D_P_1) },
|
{ "vcvtss2si", { Gdq, EXdScalar }, 0 },
|
||||||
{ Bad_Opcode },
|
{ Bad_Opcode },
|
||||||
{ VEX_LEN_TABLE (VEX_LEN_0F2D_P_3) },
|
{ "vcvtsd2si", { Gdq, EXqScalar }, 0 },
|
||||||
},
|
},
|
||||||
|
|
||||||
/* PREFIX_VEX_0F2E */
|
/* PREFIX_VEX_0F2E */
|
||||||
@ -9341,42 +9335,6 @@ static const struct dis386 vex_len_table[][2] = {
|
|||||||
{ "vmovhpX", { EXq, XM }, 0 },
|
{ "vmovhpX", { EXq, XM }, 0 },
|
||||||
},
|
},
|
||||||
|
|
||||||
/* VEX_LEN_0F2A_P_1 */
|
|
||||||
{
|
|
||||||
{ "vcvtsi2ss%LQ", { XMScalar, VexScalar, Edq }, 0 },
|
|
||||||
{ "vcvtsi2ss%LQ", { XMScalar, VexScalar, Edq }, 0 },
|
|
||||||
},
|
|
||||||
|
|
||||||
/* VEX_LEN_0F2A_P_3 */
|
|
||||||
{
|
|
||||||
{ "vcvtsi2sd%LQ", { XMScalar, VexScalar, Edq }, 0 },
|
|
||||||
{ "vcvtsi2sd%LQ", { XMScalar, VexScalar, Edq }, 0 },
|
|
||||||
},
|
|
||||||
|
|
||||||
/* VEX_LEN_0F2C_P_1 */
|
|
||||||
{
|
|
||||||
{ "vcvttss2si", { Gdq, EXdScalar }, 0 },
|
|
||||||
{ "vcvttss2si", { Gdq, EXdScalar }, 0 },
|
|
||||||
},
|
|
||||||
|
|
||||||
/* VEX_LEN_0F2C_P_3 */
|
|
||||||
{
|
|
||||||
{ "vcvttsd2si", { Gdq, EXqScalar }, 0 },
|
|
||||||
{ "vcvttsd2si", { Gdq, EXqScalar }, 0 },
|
|
||||||
},
|
|
||||||
|
|
||||||
/* VEX_LEN_0F2D_P_1 */
|
|
||||||
{
|
|
||||||
{ "vcvtss2si", { Gdq, EXdScalar }, 0 },
|
|
||||||
{ "vcvtss2si", { Gdq, EXdScalar }, 0 },
|
|
||||||
},
|
|
||||||
|
|
||||||
/* VEX_LEN_0F2D_P_3 */
|
|
||||||
{
|
|
||||||
{ "vcvtsd2si", { Gdq, EXqScalar }, 0 },
|
|
||||||
{ "vcvtsd2si", { Gdq, EXqScalar }, 0 },
|
|
||||||
},
|
|
||||||
|
|
||||||
/* VEX_LEN_0F41_P_0 */
|
/* VEX_LEN_0F41_P_0 */
|
||||||
{
|
{
|
||||||
{ Bad_Opcode },
|
{ Bad_Opcode },
|
||||||
|
Reference in New Issue
Block a user