diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2013-07-25 16:16:35 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2013-07-25 16:16:35 +0000 |
commit | a00464085799717f03cfee95a3de4d4f0fd58c64 (patch) | |
tree | c98872e0f1c99fb02a9076858a0f320057e7fbcb /opcodes/i386-dis.c | |
parent | c623f86cd297d3758aa49ed971d50045f0ab2fc6 (diff) | |
download | gdb-a00464085799717f03cfee95a3de4d4f0fd58c64.zip gdb-a00464085799717f03cfee95a3de4d4f0fd58c64.tar.gz gdb-a00464085799717f03cfee95a3de4d4f0fd58c64.tar.bz2 |
Support Intel SHA
gas/
2013-07-25 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
* config/tc-i386.c (cpu_arch): Add .sha.
* doc/c-i386.texi: Document sha/.sha.
gas/testsuite/
2013-07-25 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
* gas/i386/sha.d: New.
* gas/i386/sha.s: New.
* gas/i386/x86-64-sha.d: New.
* gas/i386/x86-64-sha.s: New.
* gas/i386/i386.exp: Run new SHA tests.
opcodes/
2013-07-25 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
* i386-dis.c (PREFIX enum): Add PREFIX_0F38C8, PREFIX_0F38C9,
PREFIX_0F38CA, PREFIX_0F38CB, PREFIX_0F38CC, PREFIX_0F38CD,
PREFIX_0F3ACC.
(prefix_table): Updated.
(three_byte_table): Likewise.
* i386-gen.c (cpu_flag_init): Add CPU_SHA_FLAGS.
(cpu_flags): Add CpuSHA.
(i386_cpu_flags): Add cpusha.
* i386-init.h: Regenerate.
* i386-opc.h (CpuSHA): New.
(CpuUnused): Restored.
(i386_cpu_flags): Add cpusha.
* i386-opc.tbl: Add SHA instructions.
* i386-tbl.h: Regenerate.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 56 |
1 files changed, 49 insertions, 7 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index eaaebf0..2c47d74 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -861,6 +861,12 @@ enum PREFIX_0F3880, PREFIX_0F3881, PREFIX_0F3882, + PREFIX_0F38C8, + PREFIX_0F38C9, + PREFIX_0F38CA, + PREFIX_0F38CB, + PREFIX_0F38CC, + PREFIX_0F38CD, PREFIX_0F38DB, PREFIX_0F38DC, PREFIX_0F38DD, @@ -891,6 +897,7 @@ enum PREFIX_0F3A61, PREFIX_0F3A62, PREFIX_0F3A63, + PREFIX_0F3ACC, PREFIX_0F3ADF, PREFIX_VEX_0F10, PREFIX_VEX_0F11, @@ -3495,6 +3502,36 @@ static const struct dis386 prefix_table[][4] = { { "invpcid", { Gm, M } }, }, + /* PREFIX_0F38C8 */ + { + { "sha1nexte", { XM, EXxmm } }, + }, + + /* PREFIX_0F38C9 */ + { + { "sha1msg1", { XM, EXxmm } }, + }, + + /* PREFIX_0F38CA */ + { + { "sha1msg2", { XM, EXxmm } }, + }, + + /* PREFIX_0F38CB */ + { + { "sha256rnds2", { XM, EXxmm, XMM0 } }, + }, + + /* PREFIX_0F38CC */ + { + { "sha256msg1", { XM, EXxmm } }, + }, + + /* PREFIX_0F38CD */ + { + { "sha256msg2", { XM, EXxmm } }, + }, + /* PREFIX_0F38DB */ { { Bad_Opcode }, @@ -3708,6 +3745,11 @@ static const struct dis386 prefix_table[][4] = { { "pcmpistri", { XM, EXx, Ib } }, }, + /* PREFIX_0F3ACC */ + { + { "sha1rnds4", { XM, EXxmm, Ib } }, + }, + /* PREFIX_0F3ADF */ { { Bad_Opcode }, @@ -6073,12 +6115,12 @@ static const struct dis386 three_byte_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, /* c8 */ - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { PREFIX_TABLE (PREFIX_0F38C8) }, + { PREFIX_TABLE (PREFIX_0F38C9) }, + { PREFIX_TABLE (PREFIX_0F38CA) }, + { PREFIX_TABLE (PREFIX_0F38CB) }, + { PREFIX_TABLE (PREFIX_0F38CC) }, + { PREFIX_TABLE (PREFIX_0F38CD) }, { Bad_Opcode }, { Bad_Opcode }, /* d0 */ @@ -6368,7 +6410,7 @@ static const struct dis386 three_byte_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { Bad_Opcode }, + { PREFIX_TABLE (PREFIX_0F3ACC) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, |