summaryrefslogtreecommitdiffstats
path: root/opcodes/i386-gen.c
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2009-11-18 04:04:17 +0000
committerSebastian Pop <sebastian.pop@amd.com>2009-11-18 04:04:17 +0000
commit5dd85c99706566de293156c56d8c72b2c69e9cdb (patch)
tree3bd9b37ad52be36845d7fa5fd9bdeb20e4a45d6b /opcodes/i386-gen.c
parentbef57ef2c61d96430c3478ac1849cbfc264bff36 (diff)
downloadppe42-binutils-5dd85c99706566de293156c56d8c72b2c69e9cdb.tar.gz
ppe42-binutils-5dd85c99706566de293156c56d8c72b2c69e9cdb.zip
2009-11-17 Sebastian Pop <sebastian.pop@amd.com>
Quentin Neill <quentin.neill@amd.com> gas/ * config/tc-i386.c (cpu_arch): Added .xop and .cvt16. (build_vex_prefix): Handle xop08. (md_assemble): Don't special case the constant 3 for insns using MODRM. (build_modrm_byte): Handle vex2sources. (md_show_usage): Add xop and cvt16. * doc/c-i386.texi: Document fma4, xop, and cvt16. gas/testsuite/ * gas/i386/i386.exp: Run xop and cvt16 in 32-bit mode. Run x86-64-xop and x86-64-cvt16 in 64-bit mode. * gas/i386/lwp.d: Update name of the testcase. * gas/i386/x86-64-xop.d: New. * gas/i386/x86-64-xop.s: New. * gas/i386/xop.d: New. * gas/i386/xop.s: New. * gas/i386/cvt16.d: New. * gas/i386/cvt16.s: New. opcodes/ * i386-dis.c (OP_Vex_2src_1): New. (OP_Vex_2src_2): New. (Vex_2src_1): New. (Vex_2src_2): New. (XOP_08): Added. (VEX_LEN_XOP_08_A0): Added. (VEX_LEN_XOP_08_A1): Added. (VEX_LEN_XOP_09_80): Added. (VEX_LEN_XOP_09_81): Added. (xop_table): Added an entry for XOP_08. Handle xop instructions. (vex_len_table): Added entries for VEX_LEN_XOP_08_A0, VEX_LEN_XOP_08_A1, VEX_LEN_XOP_09_80, VEX_LEN_XOP_09_81. (get_valid_dis386): Handle XOP_08. (OP_Vex_2src): New. * i386-gen.c (cpu_flag_init): Add CPU_XOP_FLAGS and CPU_CVT16_FLAGS. (cpu_flags): Add CpuXOP and CpuCVT16. (opcode_modifiers): Add XOP08, Vex2Sources. * i386-opc.h (CpuXOP): Added. (CpuCVT16): Added. (i386_cpu_flags): Add cpuxop and cpucvt16. (XOP08): Added. (Vex2Sources): Added. (i386_opcode_modifier): Add xop08, vex2sources. * i386-opc.tbl: Add entries for XOP and CVT16 instructions. * i386-init.h: Regenerated. * i386-tbl.h: Regenerated.
Diffstat (limited to 'opcodes/i386-gen.c')
-rw-r--r--opcodes/i386-gen.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 3ddd4b6cd2..0e0eb8e44f 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -128,6 +128,10 @@ static initializer cpu_flag_init[] =
"CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAVX|CpuFMA" },
{ "CPU_FMA4_FLAGS",
"CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuAVX|CpuFMA4" },
+ { "CPU_XOP_FLAGS",
+ "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuSSE4a|CpuABM|CpuAVX|CpuFMA4|CpuXOP|CpuCVT16" },
+ { "CPU_CVT16_FLAGS",
+ "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuSSE4a|CpuABM|CpuAVX|CpuFMA4|CpuXOP|CpuCVT16" },
{ "CPU_LWP_FLAGS",
"CpuLWP" },
{ "CPU_MOVBE_FLAGS",
@@ -298,6 +302,8 @@ static bitfield cpu_flags[] =
BITFIELD (CpuPCLMUL),
BITFIELD (CpuFMA),
BITFIELD (CpuFMA4),
+ BITFIELD (CpuXOP),
+ BITFIELD (CpuCVT16),
BITFIELD (CpuLWP),
BITFIELD (CpuLM),
BITFIELD (CpuMovbe),
@@ -359,9 +365,11 @@ static bitfield opcode_modifiers[] =
BITFIELD (Vex0F),
BITFIELD (Vex0F38),
BITFIELD (Vex0F3A),
+ BITFIELD (XOP08),
BITFIELD (XOP09),
BITFIELD (XOP0A),
BITFIELD (Vex3Sources),
+ BITFIELD (Vex2Sources),
BITFIELD (VexImmExt),
BITFIELD (SSE2AVX),
BITFIELD (NoAVX),
OpenPOWER on IntegriCloud