From ce2f5b3ce728a9fc501e6c3dd597bdc6bd612b6e Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 4 Feb 2009 16:03:31 +0000 Subject: gas/ 2009-02-04 H.J. Lu AVX Programming Reference (January, 2009) * config/tc-i386.c (CPU_FLAGS_PCLMUL_MATCH): New. (CPU_FLAGS_AVX_MATCH): Updated. (CPU_FLAGS_32BIT_MATCH): Likewise. (cpu_flags_match): Likewise. gas/testsuite/ 2009-02-04 H.J. Lu AVX Programming Reference (January, 2009) * gas/i386/arch-avx-1-3.l: New. * gas/i386/arch-avx-1-3.s: Likewise. * gas/i386/arch-avx-1-4.l: Likewise. * gas/i386/arch-avx-1-4.s: Likewise. * gas/i386/arch-avx-1-5.l: Likewise. * gas/i386/arch-avx-1-5.s: Likewise. * gas/i386/arch-avx-1-6.l: Likewise. * gas/i386/arch-avx-1-6.s: Likewise. * gas/i386/arch-10.s: Add vpclmul instructions. * gas/i386/arch-avx-1.s: Likewise. * gas/i386/avx.s: Likewise. * gas/i386/x86-64-arch-2.s: Likewise. * gas/i386/x86-64-avx.s: Likewise. * gas/i386/sse2avx.s: Add pclmul instructions. * gas/i386/x86-64-sse2avx.s: Likewise. * gas/i386/arch-10.d: Updated. * gas/i386/arch-10-1.l: Likewise. * gas/i386/arch-10-2.l: Likewise. * gas/i386/arch-10-3.l: Likewise. * gas/i386/arch-10-4.l: Likewise. * gas/i386/arch-avx-1.d: Likewise. * gas/i386/arch-avx-1-1.l: Likewise. * gas/i386/arch-avx-1-2.l: Likewise. * gas/i386/avx.d: Likewise. * gas/i386/avx-intel.d: Likewise. * gas/i386/sse2avx.d: Likewise. * gas/i386/x86-64-arch-2.d: Likewise. * gas/i386/x86-64-avx.d: Likewise. * gas/i386/x86-64-avx-intel.d: Likewise. * gas/i386/x86-64-sse2avx.d: Likewise. * gas/i386/i386.exp: Run arch-avx-1-3, arch-avx-1-4, arch-avx-1-5 and arch-avx-1-6. opcodes/ 2009-02-04 H.J. Lu AVX Programming Reference (January, 2009) * i386-dis.c (PREFIX_VEX_3A44): New. (VEX_LEN_3A44_P_2): Likewise. (PREFIX_VEX_3A48): Updated. (VEX_LEN_3A4C_P_2): Likewise. (prefix_table): Add PREFIX_VEX_3A44. (vex_table): Likewise. (vex_len_table): Add VEX_LEN_3A44_P_2. * i386-opc.tbl: Add PCLMUL + AVX instructions. * i386-tbl.h: Regenerated. --- opcodes/i386-dis.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'opcodes/i386-dis.c') diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 434ecfc..83de1f7 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1003,7 +1003,8 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define PREFIX_VEX_3A40 (PREFIX_VEX_3A22 + 1) #define PREFIX_VEX_3A41 (PREFIX_VEX_3A40 + 1) #define PREFIX_VEX_3A42 (PREFIX_VEX_3A41 + 1) -#define PREFIX_VEX_3A4A (PREFIX_VEX_3A42 + 1) +#define PREFIX_VEX_3A44 (PREFIX_VEX_3A42 + 1) +#define PREFIX_VEX_3A4A (PREFIX_VEX_3A44 + 1) #define PREFIX_VEX_3A4B (PREFIX_VEX_3A4A + 1) #define PREFIX_VEX_3A4C (PREFIX_VEX_3A4B + 1) #define PREFIX_VEX_3A60 (PREFIX_VEX_3A4C + 1) @@ -1239,7 +1240,8 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define VEX_LEN_3A22_P_2 (VEX_LEN_3A21_P_2 + 1) #define VEX_LEN_3A41_P_2 (VEX_LEN_3A22_P_2 + 1) #define VEX_LEN_3A42_P_2 (VEX_LEN_3A41_P_2 + 1) -#define VEX_LEN_3A4C_P_2 (VEX_LEN_3A42_P_2 + 1) +#define VEX_LEN_3A44_P_2 (VEX_LEN_3A42_P_2 + 1) +#define VEX_LEN_3A4C_P_2 (VEX_LEN_3A44_P_2 + 1) #define VEX_LEN_3A60_P_2 (VEX_LEN_3A4C_P_2 + 1) #define VEX_LEN_3A61_P_2 (VEX_LEN_3A60_P_2 + 1) #define VEX_LEN_3A62_P_2 (VEX_LEN_3A61_P_2 + 1) @@ -5024,6 +5026,14 @@ static const struct dis386 prefix_table[][4] = { { "(bad)", { XX } }, }, + /* PREFIX_VEX_3A44 */ + { + { "(bad)", { XX } }, + { "(bad)", { XX } }, + { VEX_LEN_TABLE (VEX_LEN_3A44_P_2) }, + { "(bad)", { XX } }, + }, + /* PREFIX_VEX_3A4A */ { { "(bad)", { XX } }, @@ -7670,7 +7680,7 @@ static const struct dis386 vex_table[][256] = { { PREFIX_TABLE (PREFIX_VEX_3A41) }, { PREFIX_TABLE (PREFIX_VEX_3A42) }, { "(bad)", { XX } }, - { "(bad)", { XX } }, + { PREFIX_TABLE (PREFIX_VEX_3A44) }, { "(bad)", { XX } }, { "(bad)", { XX } }, { "(bad)", { XX } }, @@ -9007,6 +9017,12 @@ static const struct dis386 vex_len_table[][2] = { { "(bad)", { XX } }, }, + /* VEX_LEN_3A44_P_2 */ + { + { "vpclmulqdq", { XM, Vex128, EXx, PCLMUL } }, + { "(bad)", { XX } }, + }, + /* VEX_LEN_3A4C_P_2 */ { { "vpblendvb", { XM, Vex128, EXx, XMVexI4 } }, -- cgit v1.1