aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorIlya Tocar <ilya.tocar@intel.com>2014-11-17 14:49:47 +0300
committerH.J. Lu <hjl.tools@gmail.com>2014-11-17 05:56:47 -0800
commit9d8596f0792ad0f9d21d6af23ff0db68beb56ccd (patch)
treede1b652fa43b919fba904616132de1365d629b85 /gas
parentc5e7287a1a245a2043352e0db9c731fb7e31a90f (diff)
downloadfsf-binutils-gdb-9d8596f0792ad0f9d21d6af23ff0db68beb56ccd.zip
fsf-binutils-gdb-9d8596f0792ad0f9d21d6af23ff0db68beb56ccd.tar.gz
fsf-binutils-gdb-9d8596f0792ad0f9d21d6af23ff0db68beb56ccd.tar.bz2
Add pcommit instruction
gas/ * config/tc-i386.c (cpu_arch): Add .pcommit. * doc/c-i386.texi: Document it. /opcodes * i386-dis.c (PREFIX enum): Add PREFIX_RM_0_0FAE_REG_7. (prefix_table): Add pcommit. * i386-gen.c (cpu_flag_init): Add CPU_PCOMMIT_FLAGS. (cpu_flags): Add CpuPCOMMIT. * i386-opc.h (enum): Add CpuPCOMMIT. (i386_cpu_flags): Add cpupcommit. * i386-opc.tbl: Add pcommit. * i386-init.h: Regenerated. * i386-tbl.h: Likewise. /gas/testsuite/ * gas/i386/i386.exp: Run new tests. * gas/i386/pcommit-intel.d: New file. * gas/i386/pcommit.d: Likewise. * gas/i386/pcommit.s: Likewise. * gas/i386/x86-64-pcommit-intel.d: Likewise. * gas/i386/x86-64-pcommit.d: Likewise. * gas/i386/x86-64-pcommit.s: Likewise.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c2
-rw-r--r--gas/doc/c-i386.texi3
-rw-r--r--gas/testsuite/ChangeLog11
-rw-r--r--gas/testsuite/gas/i386/i386.exp4
-rw-r--r--gas/testsuite/gas/i386/pcommit-intel.d14
-rw-r--r--gas/testsuite/gas/i386/pcommit.d14
-rw-r--r--gas/testsuite/gas/i386/pcommit.s10
-rw-r--r--gas/testsuite/gas/i386/x86-64-pcommit-intel.d14
-rw-r--r--gas/testsuite/gas/i386/x86-64-pcommit.d14
-rw-r--r--gas/testsuite/gas/i386/x86-64-pcommit.s10
11 files changed, 99 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9e85486..a5e9aa0 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2014-11-17 Ilya Tocar <ilya.tocar@intel.com>
+ * config/tc-i386.c (cpu_arch): Add .pcommit.
+ * doc/c-i386.texi: Document it.
+
+2014-11-17 Ilya Tocar <ilya.tocar@intel.com>
+
* config/tc-i386.c (cpu_arch): Add .clwb.
* doc/c-i386.texi: Document it.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index d28230b..e3bcc9a 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -931,6 +931,8 @@ static const arch_entry cpu_arch[] =
CPU_SE1_FLAGS, 0, 0 },
{ STRING_COMMA_LEN (".clwb"), PROCESSOR_UNKNOWN,
CPU_CLWB_FLAGS, 0, 0 },
+ { STRING_COMMA_LEN (".pcommit"), PROCESSOR_UNKNOWN,
+ CPU_PCOMMIT_FLAGS, 0, 0 },
};
#ifdef I386COFF
diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi
index f3a1eec..df7ece4 100644
--- a/gas/doc/c-i386.texi
+++ b/gas/doc/c-i386.texi
@@ -155,6 +155,7 @@ accept various extension mnemonics. For example,
@code{clflushopt},
@code{se1},
@code{clwb},
+@code{pcommit},
@code{avx512f},
@code{avx512cd},
@code{avx512er},
@@ -1104,7 +1105,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}
-@item @samp{.clwb}
+@item @samp{.clwb} @tab @samp{.pcommit}
@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}
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 6fa1604..1c2def2 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,6 +1,16 @@
2014-11-17 Ilya Tocar <ilya.tocar@intel.com>
* gas/i386/i386.exp: Run new tests.
+ * gas/i386/pcommit-intel.d: New file.
+ * gas/i386/pcommit.d: Likewise.
+ * gas/i386/pcommit.s: Likewise.
+ * gas/i386/x86-64-pcommit-intel.d: Likewise.
+ * gas/i386/x86-64-pcommit.d: Likewise.
+ * gas/i386/x86-64-pcommit.s: Likewise.
+
+2014-11-17 Ilya Tocar <ilya.tocar@intel.com>
+
+ * gas/i386/i386.exp: Run new tests.
* gas/i386/clwb-intel.d: New file.
* gas/i386/clwb.d: Likewise.
* gas/i386/clwb.s: Likewise.
@@ -12,7 +22,6 @@
PR gas/17598
* gas/i386/reloc64.s: Add @gotplt check.
-
* gas/i386/reloc64.d: Updated.
* gas/i386/reloc64.l: Likewise.
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 4d85105..5914e5c 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -332,6 +332,8 @@ 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 "disassem"
# These tests require support for 8 and 16 bit relocs,
@@ -685,6 +687,8 @@ 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"
if { ![istarget "*-*-aix*"]
&& ![istarget "*-*-beos*"]
diff --git a/gas/testsuite/gas/i386/pcommit-intel.d b/gas/testsuite/gas/i386/pcommit-intel.d
new file mode 100644
index 0000000..ff34d10
--- /dev/null
+++ b/gas/testsuite/gas/i386/pcommit-intel.d
@@ -0,0 +1,14 @@
+#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
diff --git a/gas/testsuite/gas/i386/pcommit.d b/gas/testsuite/gas/i386/pcommit.d
new file mode 100644
index 0000000..2af4576
--- /dev/null
+++ b/gas/testsuite/gas/i386/pcommit.d
@@ -0,0 +1,14 @@
+#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
diff --git a/gas/testsuite/gas/i386/pcommit.s b/gas/testsuite/gas/i386/pcommit.s
new file mode 100644
index 0000000..b791376
--- /dev/null
+++ b/gas/testsuite/gas/i386/pcommit.s
@@ -0,0 +1,10 @@
+# Check 32bit PCOMMIT instructions
+
+ .allow_index_reg
+ .text
+_start:
+
+ pcommit # PCOMMIT
+
+ .intel_syntax noprefix
+ pcommit # PCOMMIT
diff --git a/gas/testsuite/gas/i386/x86-64-pcommit-intel.d b/gas/testsuite/gas/i386/x86-64-pcommit-intel.d
new file mode 100644
index 0000000..ec9c1a6
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-pcommit-intel.d
@@ -0,0 +1,14 @@
+#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
diff --git a/gas/testsuite/gas/i386/x86-64-pcommit.d b/gas/testsuite/gas/i386/x86-64-pcommit.d
new file mode 100644
index 0000000..1a378cf
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-pcommit.d
@@ -0,0 +1,14 @@
+#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
diff --git a/gas/testsuite/gas/i386/x86-64-pcommit.s b/gas/testsuite/gas/i386/x86-64-pcommit.s
new file mode 100644
index 0000000..b791376
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-pcommit.s
@@ -0,0 +1,10 @@
+# Check 32bit PCOMMIT instructions
+
+ .allow_index_reg
+ .text
+_start:
+
+ pcommit # PCOMMIT
+
+ .intel_syntax noprefix
+ pcommit # PCOMMIT