X86: Remove pcommit instruction

Remove x86 pcommit instruction support, which has been deprecated:

https://software.intel.com/en-us/blogs/2016/09/12/deprecate-pcommit-instruction

gas/

	* config/tc-i386.c (cpu_arch): Remove .pcommit.
	* doc/c-i386.texi: Likewise.
	* testsuite/gas/i386/i386.exp: Remove pcommit tests.
	* testsuite/gas/i386/pcommit-intel.d: Removed.
	* testsuite/gas/i386/pcommit.d: Likewise.
	* testsuite/gas/i386/pcommit.s: Likewise.
	* testsuite/gas/i386/x86-64-pcommit-intel.d: Likewise.
	* testsuite/gas/i386/x86-64-pcommit.d: Likewise.
	* testsuite/gas/i386/x86-64-pcommit.s: Likewise.

opcodes/

	* i386-dis.c (PREFIX_RM_0_0FAE_REG_7): Removed.
	(prefix_table): Remove the PREFIX_RM_0_0FAE_REG_7 entry.
	(rm_table): Update the RM_0FAE_REG_7 entry.
	* i386-gen.c (cpu_flag_init): Remove CPU_PCOMMIT_FLAGS.
	(cpu_flags): Remove CpuPCOMMIT.
	* i386-opc.h (CpuPCOMMIT): Removed.
	(i386_cpu_flags): Remove cpupcommit.
	* i386-opc.tbl: Remove pcommit.
	* i386-init.h: Regenerated.
	* i386-tbl.h: Likewise.
This commit is contained in:
H.J. Lu 2016-10-21 12:16:32 -07:00
parent ac423761af
commit b5cefccad8
17 changed files with 5378 additions and 5475 deletions

View File

@ -1,3 +1,15 @@
2016-10-21 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (cpu_arch): Remove .pcommit.
* doc/c-i386.texi: Likewise.
* testsuite/gas/i386/i386.exp: Remove pcommit tests.
* testsuite/gas/i386/pcommit-intel.d: Removed.
* testsuite/gas/i386/pcommit.d: Likewise.
* testsuite/gas/i386/pcommit.s: Likewise.
* testsuite/gas/i386/x86-64-pcommit-intel.d: Likewise.
* testsuite/gas/i386/x86-64-pcommit.d: Likewise.
* testsuite/gas/i386/x86-64-pcommit.s: Likewise.
2016-10-20 H.J. Lu <hongjiu.lu@intel.com>
PR binutis/20705

View File

@ -958,8 +958,6 @@ static const arch_entry cpu_arch[] =
CPU_SE1_FLAGS, 0 },
{ STRING_COMMA_LEN (".clwb"), PROCESSOR_UNKNOWN,
CPU_CLWB_FLAGS, 0 },
{ STRING_COMMA_LEN (".pcommit"), PROCESSOR_UNKNOWN,
CPU_PCOMMIT_FLAGS, 0 },
{ STRING_COMMA_LEN (".avx512ifma"), PROCESSOR_UNKNOWN,
CPU_AVX512IFMA_FLAGS, 0 },
{ STRING_COMMA_LEN (".avx512vbmi"), PROCESSOR_UNKNOWN,

View File

@ -171,7 +171,6 @@ accept various extension mnemonics. For example,
@code{clflushopt},
@code{se1},
@code{clwb},
@code{pcommit},
@code{avx512f},
@code{avx512cd},
@code{avx512er},
@ -1191,7 +1190,7 @@ supported on the CPU specified. The choices for @var{cpu_type} are:
@item @samp{.clflushopt} @tab @samp{.xsavec} @tab @samp{.xsaves} @tab @samp{.se1}
@item @samp{.avx512f} @tab @samp{.avx512cd} @tab @samp{.avx512er} @tab @samp{.avx512pf}
@item @samp{.avx512vl} @tab @samp{.avx512bw} @tab @samp{.avx512dq} @tab @samp{.avx512ifma}
@item @samp{.avx512vbmi} @tab @samp{.clwb} @tab @samp{.pcommit}
@item @samp{.avx512vbmi} @tab @samp{.clwb}
@item @samp{.3dnow} @tab @samp{.3dnowa} @tab @samp{.sse4a} @tab @samp{.sse5}
@item @samp{.syscall} @tab @samp{.rdtscp} @tab @samp{.svme} @tab @samp{.abm}
@item @samp{.lwp} @tab @samp{.fma4} @tab @samp{.xop} @tab @samp{.cx16}

View File

@ -349,8 +349,6 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_dump_test "avx512f-rcigrz"
run_dump_test "clwb"
run_dump_test "clwb-intel"
run_dump_test "pcommit"
run_dump_test "pcommit-intel"
run_dump_test "avx512ifma"
run_dump_test "avx512ifma-intel"
run_dump_test "avx512ifma_vl"
@ -753,8 +751,6 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
run_dump_test "x86-64-avx512f-rcigrz"
run_dump_test "x86-64-clwb"
run_dump_test "x86-64-clwb-intel"
run_dump_test "x86-64-pcommit"
run_dump_test "x86-64-pcommit-intel"
run_dump_test "x86-64-avx512ifma"
run_dump_test "x86-64-avx512ifma-intel"
run_dump_test "x86-64-avx512ifma_vl"

View File

@ -1,14 +0,0 @@
#as:
#objdump: -dw -Mintel
#name: i386 PCOMMIT insns (Intel disassembly)
#source: pcommit.s
.*: +file format .*
Disassembly of section \.text:
00000000 <_start>:
[ ]*[a-f0-9]+:[ ]*66 0f ae f8[ ]*pcommit
[ ]*[a-f0-9]+:[ ]*66 0f ae f8[ ]*pcommit
#pass

View File

@ -1,14 +0,0 @@
#as:
#objdump: -dw
#name: i386 PCOMMIT insns
#source: pcommit.s
.*: +file format .*
Disassembly of section \.text:
00000000 <_start>:
[ ]*[a-f0-9]+:[ ]*66 0f ae f8[ ]*pcommit
[ ]*[a-f0-9]+:[ ]*66 0f ae f8[ ]*pcommit
#pass

View File

@ -1,10 +0,0 @@
# Check 32bit PCOMMIT instructions
.allow_index_reg
.text
_start:
pcommit # PCOMMIT
.intel_syntax noprefix
pcommit # PCOMMIT

View File

@ -1,14 +0,0 @@
#as:
#objdump: -dw -Mintel
#name: x86_64 PCOMMIT insns (Intel disassembly)
#source: x86-64-pcommit.s
.*: +file format .*
Disassembly of section \.text:
0+ <_start>:
[ ]*[a-f0-9]+:[ ]*66 0f ae f8[ ]*pcommit
[ ]*[a-f0-9]+:[ ]*66 0f ae f8[ ]*pcommit
#pass

View File

@ -1,14 +0,0 @@
#as:
#objdump: -dw
#name: x86_64 PCOMMIT insns
#source: x86-64-pcommit.s
.*: +file format .*
Disassembly of section \.text:
0+ <_start>:
[ ]*[a-f0-9]+:[ ]*66 0f ae f8[ ]*pcommit
[ ]*[a-f0-9]+:[ ]*66 0f ae f8[ ]*pcommit
#pass

View File

@ -1,10 +0,0 @@
# Check 32bit PCOMMIT instructions
.allow_index_reg
.text
_start:
pcommit # PCOMMIT
.intel_syntax noprefix
pcommit # PCOMMIT

View File

@ -1,3 +1,16 @@
2016-10-21 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (PREFIX_RM_0_0FAE_REG_7): Removed.
(prefix_table): Remove the PREFIX_RM_0_0FAE_REG_7 entry.
(rm_table): Update the RM_0FAE_REG_7 entry.
* i386-gen.c (cpu_flag_init): Remove CPU_PCOMMIT_FLAGS.
(cpu_flags): Remove CpuPCOMMIT.
* i386-opc.h (CpuPCOMMIT): Removed.
(i386_cpu_flags): Remove cpupcommit.
* i386-opc.tbl: Remove pcommit.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
2016-10-20 H.J. Lu <hongjiu.lu@intel.com>
PR binutis/20705

View File

@ -988,7 +988,6 @@ enum
PREFIX_MOD_3_0FAE_REG_4,
PREFIX_0FAE_REG_6,
PREFIX_0FAE_REG_7,
PREFIX_RM_0_0FAE_REG_7,
PREFIX_0FB8,
PREFIX_0FBC,
PREFIX_0FBD,
@ -4094,13 +4093,6 @@ static const struct dis386 prefix_table[][4] = {
{ "clflushopt", { Mb }, 0 },
},
/* PREFIX_RM_0_0FAE_REG_7 */
{
{ "sfence", { Skip_MODRM }, 0 },
{ Bad_Opcode },
{ "pcommit", { Skip_MODRM }, 0 },
},
/* PREFIX_0FB8 */
{
{ Bad_Opcode },
@ -12484,7 +12476,8 @@ static const struct dis386 rm_table[][8] = {
},
{
/* RM_0FAE_REG_7 */
{ PREFIX_TABLE (PREFIX_RM_0_0FAE_REG_7) },
{ "sfence", { Skip_MODRM }, 0 },
},
};

View File

@ -247,8 +247,6 @@ static initializer cpu_flag_init[] =
"CpuSE1" },
{ "CPU_CLWB_FLAGS",
"CpuCLWB" },
{ "CPU_PCOMMIT_FLAGS",
"CpuPCOMMIT" },
{ "CPU_CLZERO_FLAGS",
"CpuCLZERO" },
{ "CPU_MWAITX_FLAGS",
@ -501,7 +499,6 @@ static bitfield cpu_flags[] =
BITFIELD (CpuPREFETCHWT1),
BITFIELD (CpuSE1),
BITFIELD (CpuCLWB),
BITFIELD (CpuPCOMMIT),
BITFIELD (Cpu64),
BITFIELD (CpuNo64),
BITFIELD (CpuMPX),

File diff suppressed because it is too large Load Diff

View File

@ -188,8 +188,6 @@ enum
CpuSE1,
/* CLWB instruction required */
CpuCLWB,
/* PCOMMIT instruction required */
CpuPCOMMIT,
/* Intel AVX-512 IFMA Instructions support required. */
CpuAVX512IFMA,
/* Intel AVX-512 VBMI Instructions support required. */
@ -315,7 +313,6 @@ typedef union i386_cpu_flags
unsigned int cpuprefetchwt1:1;
unsigned int cpuse1:1;
unsigned int cpuclwb:1;
unsigned int cpupcommit:1;
unsigned int cpuavx512ifma:1;
unsigned int cpuavx512vbmi:1;
unsigned int cpumwaitx:1;

View File

@ -5891,12 +5891,6 @@ clwb, 1, 0x660fae, 0x6, 2, CpuCLWB, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_
// CLWB instructions end.
// PCOMMIT instructions.
pcommit, 0, 0x660fae, 0xf8, 2, CpuPCOMMIT, IgnoreSize|ImmExt|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
// PCOMMIT instructions end.
// AVX512IFMA instructions
vpmadd52huq, 3, 0x66B5, None, 1, CpuAVX512IFMA, Modrm|EVex=1|Masking=3|VexOpcode=1|VexVVVV=1|VexW=2|VecESize=1|Broadcast=2|Disp8MemShift=6|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegZMM|Qword|ZMMword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|Vec_Disp8, RegZMM, RegZMM }

File diff suppressed because it is too large Load Diff