aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis.c
diff options
context:
space:
mode:
authorIlya Tocar <ilya.tocar@intel.com>2013-11-25 16:35:42 +0400
committerH.J. Lu <hjl.tools@gmail.com>2014-02-12 07:50:24 -0800
commit963f35869dd021f4a2a236ca6fa1242efc860d86 (patch)
tree07729d7236c7dafff0a4cbd36fe5d3e3b67f76be /opcodes/i386-dis.c
parent0548b5db301937e52a34dd6991ae571e21e75b40 (diff)
downloadgdb-963f35869dd021f4a2a236ca6fa1242efc860d86.zip
gdb-963f35869dd021f4a2a236ca6fa1242efc860d86.tar.gz
gdb-963f35869dd021f4a2a236ca6fa1242efc860d86.tar.bz2
Add clflushopt, xsaves, xsavec, xrstors
gas/ 2014-02-12 Ilya Tocar <ilya.tocar@intel.com> * config/tc-i386.c (cpu_arch): Add .clflushopt, .xsavec, .xsaves. * doc/c-i386.texi: Document .xsavec/xsavec/.xsaves/xsaves/ clflushopt/.clfushopt. gas/testsuite/ 2014-02-12 Ilya Tocar <ilya.tocar@intel.com> * gas/i386/clflushopt-intel.d: New. * gas/i386/clflushopt.d: Ditto. * gas/i386/clflushopt.s: Ditto. * gas/i386/i386.exp: Run new tests. * gas/i386/x86-64-clflushopt-intel.d: New. * gas/i386/x86-64-clflushopt.d: Ditto. * gas/i386/x86-64-clflushopt.s: Ditto. * gas/i386/x86-64-xsavec-intel.d: Ditto. * gas/i386/x86-64-xsavec.d: Ditto. * gas/i386/x86-64-xsavec.s: Ditto. * gas/i386/x86-64-xsaves-intel.d: Ditto. * gas/i386/x86-64-xsaves.d: Ditto. * gas/i386/x86-64-xsaves.s: Ditto. * gas/i386/xsavec-intel.d: Ditto. * gas/i386/xsavec.d: Ditto. * gas/i386/xsavec.s: Ditto. * gas/i386/xsaves-intel.d: Ditto. * gas/i386/xsaves.d: Ditto. * gas/i386/xsaves.s: Ditto. opcodes/ 2014-02-12 Ilya Tocar <ilya.tocar@intel.com> * i386-dis.c (MOD enum): Add MOD_0FC7_REG_3, MOD_0FC7_REG_4, MOD_0FC7_REG_5. (PREFIX enum): Add PREFIX_0FAE_REG_7. (reg_table): Add MOD_0FC7_REG_3, MOD_0FC7_REG_4 MOD_0FC7_REG_5. (prefix_table): Add clflusopt. (mod_table): Add xrstors, xsavec, xsaves. * i386-gen.c (cpu_flag_init): Add CPU_CLFLUSHOPT_FLAGS, CPU_XSAVES_FLAGS, CPU_XSAVEC_FLAGS. (cpu_flags): Add CpuClflushOpt, CpuXSAVES, CpuXSAVEC. * i386-init.h: Regenerate. * i386-opc.tbl: Add clflushopt, xrstors, xrstors64, xsaves, xsaves64, xsavec, xsavec64. * i386-tbl.h: Regenerate.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r--opcodes/i386-dis.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 3645daf..126d497 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -769,6 +769,9 @@ enum
MOD_0FB2,
MOD_0FB4,
MOD_0FB5,
+ MOD_0FC7_REG_3,
+ MOD_0FC7_REG_4,
+ MOD_0FC7_REG_5,
MOD_0FC7_REG_6,
MOD_0FC7_REG_7,
MOD_0FD7,
@@ -884,6 +887,7 @@ enum
PREFIX_0FAE_REG_1,
PREFIX_0FAE_REG_2,
PREFIX_0FAE_REG_3,
+ PREFIX_0FAE_REG_7,
PREFIX_0FB8,
PREFIX_0FBC,
PREFIX_0FBD,
@@ -3354,9 +3358,9 @@ static const struct dis386 reg_table[][8] = {
{ Bad_Opcode },
{ "cmpxchg8b", { { CMPXCHG8B_Fixup, q_mode } } },
{ Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
- { Bad_Opcode },
+ { MOD_TABLE (MOD_0FC7_REG_3) },
+ { MOD_TABLE (MOD_0FC7_REG_4) },
+ { MOD_TABLE (MOD_0FC7_REG_5) },
{ MOD_TABLE (MOD_0FC7_REG_6) },
{ MOD_TABLE (MOD_0FC7_REG_7) },
},
@@ -3759,6 +3763,13 @@ static const struct dis386 prefix_table[][4] = {
{ "wrgsbase", { Ev } },
},
+ /* PREFIX_0FAE_REG_7 */
+ {
+ { "clflush", { Mb } },
+ { Bad_Opcode },
+ { "clflushopt", { Mb } },
+ },
+
/* PREFIX_0FB8 */
{
{ Bad_Opcode },
@@ -11286,7 +11297,7 @@ static const struct dis386 mod_table[][2] = {
},
{
/* MOD_0FAE_REG_7 */
- { "clflush", { Mb } },
+ { PREFIX_TABLE (PREFIX_0FAE_REG_7) },
{ RM_TABLE (RM_0FAE_REG_7) },
},
{
@@ -11302,6 +11313,18 @@ static const struct dis386 mod_table[][2] = {
{ "lgsS", { Gv, Mp } },
},
{
+ /* MOD_0FC7_REG_3 */
+ { "xrstors", { FXSAVE } },
+ },
+ {
+ /* MOD_0FC7_REG_4 */
+ { "xsavec", { FXSAVE } },
+ },
+ {
+ /* MOD_0FC7_REG_5 */
+ { "xsaves", { FXSAVE } },
+ },
+ {
/* MOD_0FC7_REG_6 */
{ PREFIX_TABLE (PREFIX_0FC7_REG_6) },
{ "rdrand", { Ev } },