Adrian Hunter 25af37f4e1 x86/insn: Add AVX-512 support to the instruction decoder
Add support for Intel's AVX-512 instructions to the instruction decoder.

AVX-512 instructions are documented in Intel Architecture Instruction
Set Extensions Programming Reference (February 2016).

AVX-512 instructions are identified by a EVEX prefix which, for the
purpose of instruction decoding, can be treated as though it were a
4-byte VEX prefix.

Existing instructions which can now accept an EVEX prefix need not be
further annotated in the op code map (x86-opcode-map.txt). In the case
of new instructions, the op code map is updated accordingly.

Also add associated Mask Instructions that are used to manipulate mask
registers used in AVX-512 instructions.

The 'perf tools' instruction decoder is updated in a subsequent patch.
And a representative set of instructions is added to the perf tools new
instructions test in a subsequent patch.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: X86 ML <x86@kernel.org>
Link: http://lkml.kernel.org/r/1469003437-32706-3-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2016-07-21 09:37:11 -03:00
..
2016-03-31 13:35:08 +02:00
2015-07-31 10:23:23 +02:00
2014-12-11 11:35:02 +01:00
2015-04-14 16:49:06 -07:00
2015-05-28 15:31:53 +02:00
2012-03-28 18:11:12 +01:00
2016-01-20 11:39:14 +01:00
2014-03-04 21:47:51 +01:00
2015-10-21 11:17:32 +02:00
2015-04-24 15:36:55 +02:00
2015-09-08 14:35:59 -07:00
2012-06-25 13:48:30 +02:00
2016-01-12 12:17:28 +01:00
2015-07-31 13:31:10 +02:00
2014-02-27 08:07:39 -08:00
2015-12-19 11:53:40 +01:00
2016-03-15 08:56:16 -05:00
2014-09-01 10:15:31 +02:00
2016-05-19 19:12:14 -07:00
2015-05-19 15:47:30 +02:00
2016-01-30 11:22:17 +01:00
2016-03-29 10:45:04 +02:00
2014-06-04 16:53:57 -07:00
2014-04-18 14:20:46 +02:00
2015-07-31 13:31:10 +02:00
2016-04-19 10:38:52 +02:00
2015-05-19 15:47:30 +02:00