From be3a8dca2d7241878302ca55f45129d532b6f746 Mon Sep 17 00:00:00 2001 From: Igor Tsimbalist Date: Tue, 23 Jan 2018 19:56:30 +0300 Subject: Enable Intel PCONFIG instruction. Intel has disclosed a set of new instructions for Icelake processor. The spec is https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf This patch enables Intel PCONFIG instruction. gas/ * config/tc-i386.c (cpu_arch): Add .pconfig. * doc/c-i386.texi: Document .pconfig. * testsuite/gas/i386/i386.exp: Add PCONFIG tests. * testsuite/gas/i386/pconfig-intel.d: New test. * testsuite/gas/i386/pconfig.d: Likewise. * testsuite/gas/i386/pconfig.s: Likewise. * testsuite/gas/i386/x86-64-pconfig-intel.d: Likewise. * testsuite/gas/i386/x86-64-pconfig.d: Likewise. * testsuite/gas/i386/x86-64-pconfig.s: Likewise. opcodes/ * i386-dis.c (enum): Add pconfig. * i386-gen.c (cpu_flag_init): Add CPU_PCONFIG_FLAGS. (cpu_flags): Add CpuPCONFIG. * i386-opc.h (enum): Add CpuPCONFIG. (i386_cpu_flags): Add cpupconfig. * i386-opc.tbl: Add PCONFIG instruction. * i386-init.h: Regenerate. * i386-tbl.h: Likewise. --- gas/testsuite/gas/i386/i386.exp | 4 ++++ gas/testsuite/gas/i386/pconfig-intel.d | 11 +++++++++++ gas/testsuite/gas/i386/pconfig.d | 11 +++++++++++ gas/testsuite/gas/i386/pconfig.s | 5 +++++ gas/testsuite/gas/i386/x86-64-pconfig-intel.d | 11 +++++++++++ gas/testsuite/gas/i386/x86-64-pconfig.d | 11 +++++++++++ gas/testsuite/gas/i386/x86-64-pconfig.s | 5 +++++ 7 files changed, 58 insertions(+) create mode 100644 gas/testsuite/gas/i386/pconfig-intel.d create mode 100644 gas/testsuite/gas/i386/pconfig.d create mode 100644 gas/testsuite/gas/i386/pconfig.s create mode 100644 gas/testsuite/gas/i386/x86-64-pconfig-intel.d create mode 100644 gas/testsuite/gas/i386/x86-64-pconfig.d create mode 100644 gas/testsuite/gas/i386/x86-64-pconfig.s (limited to 'gas/testsuite') diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 4123cd8..a21ef84 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -415,6 +415,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "vpclmulqdq-intel" run_dump_test "wbnoinvd" run_dump_test "wbnoinvd-intel" + run_dump_test "pconfig" + run_dump_test "pconfig-intel" run_list_test "avx512vl-1" "-al" run_list_test "avx512vl-2" "-al" run_dump_test "fpu-bad" @@ -884,6 +886,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_dump_test "x86-64-vpclmulqdq-intel" run_dump_test "x86-64-wbnoinvd" run_dump_test "x86-64-wbnoinvd-intel" + run_dump_test "x86-64-pconfig" + run_dump_test "x86-64-pconfig-intel" run_dump_test "x86-64-fence-as-lock-add-yes" run_dump_test "x86-64-fence-as-lock-add-no" run_dump_test "x86-64-pr20141" diff --git a/gas/testsuite/gas/i386/pconfig-intel.d b/gas/testsuite/gas/i386/pconfig-intel.d new file mode 100644 index 0000000..08584fe --- /dev/null +++ b/gas/testsuite/gas/i386/pconfig-intel.d @@ -0,0 +1,11 @@ +#objdump: -dwMintel +#name: i386 PCONFIG (Intel disassembly) +#source: pconfig.s + +.*: +file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+:[ ]*0f 01 c5[ ]*pconfig[ ]* +#pass diff --git a/gas/testsuite/gas/i386/pconfig.d b/gas/testsuite/gas/i386/pconfig.d new file mode 100644 index 0000000..de61788 --- /dev/null +++ b/gas/testsuite/gas/i386/pconfig.d @@ -0,0 +1,11 @@ +#objdump: -dw +#name: i386 PCONFIG insn + +.*: +file format .* + + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+:[ ]*0f 01 c5[ ]*pconfig[ ]* +#pass diff --git a/gas/testsuite/gas/i386/pconfig.s b/gas/testsuite/gas/i386/pconfig.s new file mode 100644 index 0000000..f08c628 --- /dev/null +++ b/gas/testsuite/gas/i386/pconfig.s @@ -0,0 +1,5 @@ +# Check 32bit PCONFIG instructions. + + .text +_start: + pconfig diff --git a/gas/testsuite/gas/i386/x86-64-pconfig-intel.d b/gas/testsuite/gas/i386/x86-64-pconfig-intel.d new file mode 100644 index 0000000..08584fe --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-pconfig-intel.d @@ -0,0 +1,11 @@ +#objdump: -dwMintel +#name: i386 PCONFIG (Intel disassembly) +#source: pconfig.s + +.*: +file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+:[ ]*0f 01 c5[ ]*pconfig[ ]* +#pass diff --git a/gas/testsuite/gas/i386/x86-64-pconfig.d b/gas/testsuite/gas/i386/x86-64-pconfig.d new file mode 100644 index 0000000..de61788 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-pconfig.d @@ -0,0 +1,11 @@ +#objdump: -dw +#name: i386 PCONFIG insn + +.*: +file format .* + + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+:[ ]*0f 01 c5[ ]*pconfig[ ]* +#pass diff --git a/gas/testsuite/gas/i386/x86-64-pconfig.s b/gas/testsuite/gas/i386/x86-64-pconfig.s new file mode 100644 index 0000000..8fb9b02 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-pconfig.s @@ -0,0 +1,5 @@ +# Check 64bit PCONFIG instructions. + + .text +_start: + pconfig -- cgit v1.1