aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2020-07-11 04:04:08 -0700
committerH.J. Lu <hjl.tools@gmail.com>2020-07-11 04:04:20 -0700
commita308b89de77e782b563fe5f712397848bfd4a897 (patch)
tree6bd0ffcf8ece00258d36841317e4d6bfc7d4546e /gas
parentee9cb95ea14cfc2856a1d89a636d50c14a487de2 (diff)
downloadfsf-binutils-gdb-a308b89de77e782b563fe5f712397848bfd4a897.zip
fsf-binutils-gdb-a308b89de77e782b563fe5f712397848bfd4a897.tar.gz
fsf-binutils-gdb-a308b89de77e782b563fe5f712397848bfd4a897.tar.bz2
x86: Support GNU_PROPERTY_X86_FEATURE_2_TMM
Support GNU_PROPERTY_X86_FEATURE_2_TMM in https://gitlab.com/x86-psABIs/x86-64-ABI/-/merge_requests/1 #define GNU_PROPERTY_X86_FEATURE_2_TMM (1U << 10) binutils/ * readelf.c (decode_x86_feature_2): Handle GNU_PROPERTY_X86_FEATURE_2_TMM. gas/ * config/tc-i386.c (output_insn): Check i.xstate to set GNU_PROPERTY_X86_FEATURE_2_TMM. * testsuite/gas/i386/i386.exp: Run x86-64-property-7, x86-64-property-8 and x86-64-property-9. * testsuite/gas/i386/x86-64-property-7.d: New file. * testsuite/gas/i386/x86-64-property-7.s: Likewise. * testsuite/gas/i386/x86-64-property-8.d: Likewise. * testsuite/gas/i386/x86-64-property-8.s: Likewise. * testsuite/gas/i386/x86-64-property-9.d: Likewise. * testsuite/gas/i386/x86-64-property-9.s: Likewise. include/ * elf/common.h (GNU_PROPERTY_X86_FEATURE_2_TMM): New.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog13
-rw-r--r--gas/config/tc-i386.c4
-rw-r--r--gas/testsuite/gas/i386/i386.exp3
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-7.d9
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-7.s2
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-8.d9
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-8.s2
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-9.d9
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-9.s2
9 files changed, 53 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 003e37d..3371d7b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,16 @@
+2020-07-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/tc-i386.c (output_insn): Check i.xstate to set
+ GNU_PROPERTY_X86_FEATURE_2_TMM.
+ * testsuite/gas/i386/i386.exp: Run x86-64-property-7,
+ x86-64-property-8 and x86-64-property-9.
+ * testsuite/gas/i386/x86-64-property-7.d: New file.
+ * testsuite/gas/i386/x86-64-property-7.s: Likewise.
+ * testsuite/gas/i386/x86-64-property-8.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-8.s: Likewise.
+ * testsuite/gas/i386/x86-64-property-9.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-9.s: Likewise.
+
2020-07-10 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (_i386_insn): Remove has_regmmx, has_regxmm,
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 0eb2b94..18f685c 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -9183,6 +9183,10 @@ output_insn (void)
x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT;
if (i.tm.cpu_flags.bitfield.cpuxsavec)
x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XSAVEC;
+
+ if ((i.xstate & xstate_tmm) == xstate_tmm
+ || i.tm.cpu_flags.bitfield.cpuamx_tile)
+ x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_TMM;
}
#endif
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index ab56209..27a425a 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -1217,6 +1217,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
run_dump_test "x86-64-property-4"
run_dump_test "x86-64-property-5"
run_dump_test "x86-64-property-6"
+ run_dump_test "x86-64-property-7"
+ run_dump_test "x86-64-property-8"
+ run_dump_test "x86-64-property-9"
if {[istarget "*-*-linux*"]} then {
run_dump_test "x86-64-align-branch-3"
diff --git a/gas/testsuite/gas/i386/x86-64-property-7.d b/gas/testsuite/gas/i386/x86-64-property-7.d
new file mode 100644
index 0000000..e938cc9
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-7.d
@@ -0,0 +1,9 @@
+#name: x86-64 property 4
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA used: <None>
+ x86 feature used: x86, TMM
diff --git a/gas/testsuite/gas/i386/x86-64-property-7.s b/gas/testsuite/gas/i386/x86-64-property-7.s
new file mode 100644
index 0000000..bfa255b
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-7.s
@@ -0,0 +1,2 @@
+ .text
+ tdpbuud %tmm3, %tmm2, %tmm1
diff --git a/gas/testsuite/gas/i386/x86-64-property-8.d b/gas/testsuite/gas/i386/x86-64-property-8.d
new file mode 100644
index 0000000..e938cc9
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-8.d
@@ -0,0 +1,9 @@
+#name: x86-64 property 4
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA used: <None>
+ x86 feature used: x86, TMM
diff --git a/gas/testsuite/gas/i386/x86-64-property-8.s b/gas/testsuite/gas/i386/x86-64-property-8.s
new file mode 100644
index 0000000..23c270b
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-8.s
@@ -0,0 +1,2 @@
+ .text
+ tilerelease
diff --git a/gas/testsuite/gas/i386/x86-64-property-9.d b/gas/testsuite/gas/i386/x86-64-property-9.d
new file mode 100644
index 0000000..e938cc9
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-9.d
@@ -0,0 +1,9 @@
+#name: x86-64 property 4
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA used: <None>
+ x86 feature used: x86, TMM
diff --git a/gas/testsuite/gas/i386/x86-64-property-9.s b/gas/testsuite/gas/i386/x86-64-property-9.s
new file mode 100644
index 0000000..14d8c5d
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-9.s
@@ -0,0 +1,2 @@
+ .text
+ tileloaddt1 (%rcx), %tmm5