aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2020-10-09 05:05:57 -0700
committerH.J. Lu <hjl.tools@gmail.com>2020-10-09 05:13:26 -0700
commit32930e4edbc06bc6f10c435dbcc63131715df678 (patch)
tree330e20c899b9aedbd471b8e0463e95cb2fbf42a8 /gas
parent3d87245cc1a4310264d9cb0e4566517d3455a7f5 (diff)
downloadgdb-32930e4edbc06bc6f10c435dbcc63131715df678.zip
gdb-32930e4edbc06bc6f10c435dbcc63131715df678.tar.gz
gdb-32930e4edbc06bc6f10c435dbcc63131715df678.tar.bz2
x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker
GCC 11 supports -march=x86-64-v[234] to enable x86 micro-architecture ISA levels: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97250 Update GNU_PROPERTY_X86_ISA_1_XXX macros: https://gitlab.com/x86-psABIs/x86-64-ABI/-/merge_requests/13 in x86 ELF binaries to indicate that micro-architecture ISA levels required to execute the binary: #define GNU_PROPERTY_X86_ISA_1_NEEDED (GNU_PROPERTY_X86_UINT32_OR_LO + 2) #define GNU_PROPERTY_X86_ISA_1_USED (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2) #define GNU_PROPERTY_X86_ISA_1_V2 (1U << 0) #define GNU_PROPERTY_X86_ISA_1_V3 (1U << 1) #define GNU_PROPERTY_X86_ISA_1_V4 (1U << 2) The previous GNU_PROPERTY_X86_ISA_1_XXX macros are deprecated and renamed to GNU_PROPERTY_X86_COMPAT_2_ISA_1_XXX. In addition to EM_X86_64, GNU_PROPERTY_X86_ISA_1_V[234] marker can be used by ld.so to detect the x86-64-v4 shared library placed in an x86-64-v2 directory by mistake on an x86-64-v2 machine to avoid crashes on x86-64-v4 instructions. Add -z x86-64-v[234] linker command line option to mark x86-64-v[234] ISA level as needed. Also add #define GNU_PROPERTY_X86_FEATURE_2_MASK (1U << 11) for mask registers. bfd/ PR gas/26703 * elf-linker-x86.h (elf_linker_x86_params): Add isa_level. * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Merge GNU_PROPERTY_X86_ISA_1_V[234]. (_bfd_x86_elf_link_setup_gnu_properties): Generate GNU_PROPERTY_X86_ISA_1_V[234] for -z x86-64-v[234]. binutils/ PR gas/26703 * readelf.c (decode_x86_compat_2_isa): New function. (decode_x86_isa): Updated for new X86_ISA_1_XXX bits. (decode_x86_feature_1): Handle GNU_PROPERTY_X86_FEATURE_2_MASK. (print_gnu_property_note): Handle X86_COMPAT_2_ISA_1_USED, and X86_COMPAT_2_ISA_1_NEEDED. * testsuite/binutils-all/i386/pr21231b.s: Updated to the current GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED values. * testsuite/binutils-all/x86-64/pr21231b.s: Likewise. * testsuite/binutils-all/x86-64/pr23494a.s: Likewise. * testsuite/binutils-all/x86-64/pr23494b.s: Likewise. * testsuite/binutils-all/x86-64/pr23494c.s: Likewise. * testsuite/binutils-all/i386/empty.d: Updated. * testsuite/binutils-all/i386/ibt.d: Likewise. * testsuite/binutils-all/i386/pr21231a.d: Likewise. * testsuite/binutils-all/i386/pr21231b.d: Likewise. * testsuite/binutils-all/i386/shstk.d: Likewise. * testsuite/binutils-all/x86-64/empty-x32.d: Likewise. * testsuite/binutils-all/x86-64/empty.d: Likewise. * testsuite/binutils-all/x86-64/ibt-x32.d: Likewise. * testsuite/binutils-all/x86-64/ibt.d: Likewise. * testsuite/binutils-all/x86-64/pr21231a.d: Likewise. * testsuite/binutils-all/x86-64/pr21231b.d: Likewise. * testsuite/binutils-all/x86-64/pr23494a-x32.d: Likewise. * testsuite/binutils-all/x86-64/pr23494a.d: Likewise. * testsuite/binutils-all/x86-64/pr23494c-x32.d: Likewise. * testsuite/binutils-all/x86-64/pr23494c.d: Likewise. * testsuite/binutils-all/x86-64/pr23494d-x32.d: Likewise. * testsuite/binutils-all/x86-64/pr23494d.d: Likewise. * testsuite/binutils-all/x86-64/pr23494e-x32.d: Likewise. * testsuite/binutils-all/x86-64/pr23494e.d: Likewise. * testsuite/binutils-all/x86-64/shstk-x32.d: Likewise. * testsuite/binutils-all/x86-64/shstk.d: Likewise. gas/ PR gas/26703 * config/tc-i386.c (xstate): Add xstate_mask. (md_assemble): Check i.types[j], instead of i.tm.operand_types[j], for xstate. Set xstate_mask, instead of xstate_zmm, for RegMask. (output_insn): Update for GNU_PROPERTY_X86_ISA_1_V[234]. Update xstate for mask register and VSIB. * testsuite/gas/i386/i386.exp: Run more GNU_PROPERTY tests. * testsuite/gas/i386/property-1.s: Updated to the current GNU_PROPERTY_X86_ISA_1_USED value. * testsuite/gas/i386/property-2.s: Only keep cmove. * testsuite/gas/i386/property-3.s: Changed to addsubpd. * testsuite/gas/i386/property-1.d: Updated. * testsuite/gas/i386/property-2.d: Likewise. * testsuite/gas/i386/property-3.d: Likewise. * testsuite/gas/i386/property-4.d: Likewise. * testsuite/gas/i386/property-5.d: Likewise. * testsuite/gas/i386/property-6.d: Likewise. * testsuite/gas/i386/x86-64-property-1.d: Likewise. * testsuite/gas/i386/x86-64-property-2.d: Likewise. * testsuite/gas/i386/x86-64-property-3.d: Likewise. * testsuite/gas/i386/x86-64-property-4.d: Likewise. * testsuite/gas/i386/x86-64-property-5.d: Likewise. * testsuite/gas/i386/x86-64-property-6.d: Likewise. * testsuite/gas/i386/x86-64-property-7.d: Likewise. * testsuite/gas/i386/x86-64-property-8.d: Likewise. * testsuite/gas/i386/x86-64-property-9.d: Likewise. * testsuite/gas/i386/property-11.d: New file. * testsuite/gas/i386/property-11.s: Likewise. * testsuite/gas/i386/property-12.d: Likewise. * testsuite/gas/i386/property-12.s: Likewise. * testsuite/gas/i386/property-13.d: Likewise. * testsuite/gas/i386/property-13.s: Likewise. * testsuite/gas/i386/x86-64-property-11.d: Likewise. * testsuite/gas/i386/x86-64-property-12.d: Likewise. * testsuite/gas/i386/x86-64-property-13.d: Likewise. * testsuite/gas/i386/x86-64-property-14.d: Likewise. * testsuite/gas/i386/x86-64-property-14.s: Likewise. include/ PR gas/26703 * elf/common.h (GNU_PROPERTY_X86_ISA_1_USED): Renamed to ... (GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED): This. (GNU_PROPERTY_X86_ISA_1_NEEDED): Renamed to ... (GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED): This. (GNU_PROPERTY_X86_ISA_1_XXX): Renamed to ... (GNU_PROPERTY_X86_COMPAT_2_ISA_1_XXX): This. (GNU_PROPERTY_X86_ISA_1_NEEDED): New. (GNU_PROPERTY_X86_ISA_1_USED): Likewise. (GNU_PROPERTY_X86_ISA_1_V2): Likewise. (GNU_PROPERTY_X86_ISA_1_V3): Likewise. (GNU_PROPERTY_X86_ISA_1_V4): Likewise. (GNU_PROPERTY_X86_FEATURE_2_MASK): Likewise. ld/ PR gas/26703 * NEWS: Mention -z x86-64-v[234]. * ld.texi: Document -z x86-64-v[234]. * emulparams/elf32_x86_64.sh: Use x86-64-level.sh. * emulparams/elf_i386.sh: Likewise. * emulparams/elf_x86_64.sh: Likewise. * emulparams/x86-64-level.sh: New file. * testsuite/ld-elf/x86-feature-1a.rd: Update. * testsuite/ld-elf/x86-feature-1b.rd: Likewise. * testsuite/ld-elf/x86-feature-1c.rd: Likewise. * testsuite/ld-elf/x86-feature-1d.rd: Likewise. * testsuite/ld-elf/x86-feature-1e.rd: Likewise. * testsuite/ld-i386/pr23372c.d: Likewise. * testsuite/ld-i386/pr23486c.d: Likewise. * testsuite/ld-i386/pr23486d.d: Likewise. * testsuite/ld-i386/pr24322a.d: Likewise. * testsuite/ld-i386/pr24322b.d: Likewise. * testsuite/ld-i386/property-1a.r: Likewise. * testsuite/ld-i386/property-2a.r: Likewise. * testsuite/ld-i386/property-3.r: Likewise. * testsuite/ld-i386/property-3a.r: Likewise. * testsuite/ld-i386/property-4.r: Likewise. * testsuite/ld-i386/property-4a.r: Likewise. * testsuite/ld-i386/property-5.r: Likewise. * testsuite/ld-i386/property-5a.r: Likewise. * testsuite/ld-i386/property-7a.r: Likewise. * testsuite/ld-i386/property-x86-3.d: Likewise. * testsuite/ld-i386/property-x86-4a.d: Likewise. * testsuite/ld-i386/property-x86-5.d: Likewise. * testsuite/ld-i386/property-x86-cet1.d: Likewise. * testsuite/ld-i386/property-x86-cet2a.d: Likewise. * testsuite/ld-i386/property-x86-cet5a.d: Likewise. * testsuite/ld-i386/property-x86-cet5b.d: Likewise. * testsuite/ld-i386/property-x86-ibt1a.d: Likewise. * testsuite/ld-i386/property-x86-ibt1b.d: Likewise. * testsuite/ld-i386/property-x86-ibt2.d: Likewise. * testsuite/ld-i386/property-x86-ibt3a.d: Likewise. * testsuite/ld-i386/property-x86-ibt3b.d: Likewise. * testsuite/ld-i386/property-x86-ibt4.d: Likewise. * testsuite/ld-i386/property-x86-ibt5.d: Likewise. * testsuite/ld-i386/property-x86-shstk1a.d: Likewise. * testsuite/ld-i386/property-x86-shstk1b.d: Likewise. * testsuite/ld-i386/property-x86-shstk2.d: Likewise. * testsuite/ld-i386/property-x86-shstk3a.d: Likewise. * testsuite/ld-i386/property-x86-shstk3b.d: Likewise. * testsuite/ld-i386/property-x86-shstk4.d: Likewise. * testsuite/ld-i386/property-x86-shstk5.d: Likewise. * testsuite/ld-x86-64/pr23372c-x32.d: Likewise. * testsuite/ld-x86-64/pr23372c.d: Likewise. * testsuite/ld-x86-64/pr23486c.d: Likewise. * testsuite/ld-x86-64/pr23486d-x32.d: Likewise. * testsuite/ld-x86-64/pr23486d.d: Likewise. * testsuite/ld-x86-64/pr24322a-x32.d: Likewise. * testsuite/ld-x86-64/pr24322a.d: Likewise. * testsuite/ld-x86-64/pr24322b-x32.d: Likewise. * testsuite/ld-x86-64/pr24322b.d: Likewise. * testsuite/ld-x86-64/pr24458a-x32.d: Likewise. * testsuite/ld-x86-64/pr24458a.d: Likewise. * testsuite/ld-x86-64/pr24458b-x32.d: Likewise. * testsuite/ld-x86-64/pr24458b.d: Likewise. * testsuite/ld-x86-64/pr24458c-x32.d: Likewise. * testsuite/ld-x86-64/pr24458c.d: Likewise. * testsuite/ld-x86-64/property-1a.r: Likewise. * testsuite/ld-x86-64/property-2a.r: Likewise. * testsuite/ld-x86-64/property-3.r: Likewise. * testsuite/ld-x86-64/property-3a.r: Likewise. * testsuite/ld-x86-64/property-4.r: Likewise. * testsuite/ld-x86-64/property-4a.r: Likewise. * testsuite/ld-x86-64/property-5.r: Likewise. * testsuite/ld-x86-64/property-5a.r: Likewise. * testsuite/ld-x86-64/property-7a.r: Likewise. * testsuite/ld-x86-64/property-x86-3-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-3.d: Likewise. * testsuite/ld-x86-64/property-x86-4a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-4a.d: Likewise. * testsuite/ld-x86-64/property-x86-5-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-5.d: Likewise. * testsuite/ld-x86-64/property-x86-cet1-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet1.d: Likewise. * testsuite/ld-x86-64/property-x86-cet2a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet2a.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5a.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5b.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt1a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt1a.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt1b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt1b.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt2-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt2.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt4-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt4.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt5-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt5.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk1a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk1a.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk1b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk1b.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk2-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk2.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk4-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk4.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk5-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk5.d: Likewise. * testsuite/ld-i386/i386.exp: Run property-x86-6, property-x86-isa1, property-x86-isa2 and property-x86-isa3. * testsuite/ld-i386/property-x86-1.S: Updated to the current GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED values. * testsuite/ld-i386/property-x86-2.S: Likewise. * testsuite/ld-i386/property-x86-3.s: Likewise. * testsuite/ld-x86-64/pr23372d.s: Likewise. * testsuite/ld-x86-64/pr23372e.s: Likewise. * testsuite/ld-x86-64/pr23372f.s: Likewise. * testsuite/ld-x86-64/pr23486c.s: Likewise. * testsuite/ld-x86-64/pr23486d.s: Likewise. * testsuite/ld-x86-64/property-x86-1.S: Likewise. * testsuite/ld-x86-64/property-x86-2.S: Likewise. * testsuite/ld-x86-64/property-x86-3.s: Likewise. * testsuite/ld-x86-64/property-x86-5a.s: Likewise. * testsuite/ld-x86-64/property-x86-5b.s: Likewise. * testsuite/ld-i386/property-x86-6.d: New file. * testsuite/ld-i386/property-x86-isa1.d: Likewise. * testsuite/ld-i386/property-x86-isa2.d: Likewise. * testsuite/ld-i386/property-x86-isa3.d: Likewise. * testsuite/ld-x86-64/property-x86-6-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-6.d: Likewise. * testsuite/ld-x86-64/property-x86-6.s: Likewise. * testsuite/ld-x86-64/property-x86-isa1-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-isa1.d: Likewise. * testsuite/ld-x86-64/property-x86-isa1.s: Likewise. * testsuite/ld-x86-64/property-x86-isa2-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-isa2.d: Likewise. * testsuite/ld-x86-64/property-x86-isa3-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-isa3.d: Likewise. * testsuite/ld-x86-64/simple.s: Likewise. * ld/testsuite/ld-x86-64/x86-64.exp: Run property-x86-6, property-x86-6-x32, property-x86-isa1, property-x86-isa1-x32, property-x86-isa2, property-x86-isa2-x32, property-x86-isa3-x32 and property-x86-isa3.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog40
-rw-r--r--gas/config/tc-i386.c126
-rw-r--r--gas/testsuite/gas/i386/i386.exp7
-rw-r--r--gas/testsuite/gas/i386/property-1.d2
-rw-r--r--gas/testsuite/gas/i386/property-1.s2
-rw-r--r--gas/testsuite/gas/i386/property-10.d2
-rw-r--r--gas/testsuite/gas/i386/property-11.d9
-rw-r--r--gas/testsuite/gas/i386/property-11.s2
-rw-r--r--gas/testsuite/gas/i386/property-12.d9
-rw-r--r--gas/testsuite/gas/i386/property-12.s2
-rw-r--r--gas/testsuite/gas/i386/property-13.d9
-rw-r--r--gas/testsuite/gas/i386/property-13.s2
-rw-r--r--gas/testsuite/gas/i386/property-2.d4
-rw-r--r--gas/testsuite/gas/i386/property-2.s30
-rw-r--r--gas/testsuite/gas/i386/property-3.d4
-rw-r--r--gas/testsuite/gas/i386/property-3.s2
-rw-r--r--gas/testsuite/gas/i386/property-4.d4
-rw-r--r--gas/testsuite/gas/i386/property-5.d4
-rw-r--r--gas/testsuite/gas/i386/property-6.d4
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-1.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-10.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-11.d10
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-12.d10
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-13.d10
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-14.d9
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-14.s2
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-2.d4
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-3.d4
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-4.d4
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-5.d4
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-6.d4
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-7.d4
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-8.d4
-rw-r--r--gas/testsuite/gas/i386/x86-64-property-9.d4
34 files changed, 218 insertions, 123 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 26cae9c..0eb9cd9 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,43 @@
+2020-10-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR gas/26703
+ * config/tc-i386.c (xstate): Add xstate_mask.
+ (md_assemble): Check i.types[j], instead of i.tm.operand_types[j],
+ for xstate. Set xstate_mask, instead of xstate_zmm, for RegMask.
+ (output_insn): Update for GNU_PROPERTY_X86_ISA_1_V[234]. Update
+ xstate for mask register and VSIB.
+ * testsuite/gas/i386/i386.exp: Run more GNU_PROPERTY tests.
+ * testsuite/gas/i386/property-1.s: Updated to the current
+ GNU_PROPERTY_X86_ISA_1_USED value.
+ * testsuite/gas/i386/property-2.s: Only keep cmove.
+ * testsuite/gas/i386/property-3.s: Changed to addsubpd.
+ * testsuite/gas/i386/property-1.d: Updated.
+ * testsuite/gas/i386/property-2.d: Likewise.
+ * testsuite/gas/i386/property-3.d: Likewise.
+ * testsuite/gas/i386/property-4.d: Likewise.
+ * testsuite/gas/i386/property-5.d: Likewise.
+ * testsuite/gas/i386/property-6.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-1.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-2.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-3.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-4.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-5.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-6.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-7.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-8.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-9.d: Likewise.
+ * testsuite/gas/i386/property-11.d: New file.
+ * testsuite/gas/i386/property-11.s: Likewise.
+ * testsuite/gas/i386/property-12.d: Likewise.
+ * testsuite/gas/i386/property-12.s: Likewise.
+ * testsuite/gas/i386/property-13.d: Likewise.
+ * testsuite/gas/i386/property-13.s: Likewise.
+ * testsuite/gas/i386/x86-64-property-11.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-12.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-13.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-14.d: Likewise.
+ * testsuite/gas/i386/x86-64-property-14.s: Likewise.
+
2020-10-06 Alex Coplan <alex.coplan@arm.com>
PR 26699
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index f3eaba6..64cd78c 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -374,7 +374,9 @@ struct _i386_insn
/* Use ZMM state. */
xstate_zmm = 1 << 3 | xstate_ymm,
/* Use TMM state. */
- xstate_tmm = 1 << 4
+ xstate_tmm = 1 << 4,
+ /* Use MASK state. */
+ xstate_mask = 1 << 5
} xstate;
/* Has GOTPC or TLS relocation. */
@@ -4860,7 +4862,7 @@ md_assemble (char *line)
for (j = 0; j < i.operands; j++)
{
i.types[j] = operand_type_and (i.types[j], i.tm.operand_types[j]);
- switch (i.tm.operand_types[j].bitfield.class)
+ switch (i.types[j].bitfield.class)
{
default:
break;
@@ -4868,16 +4870,16 @@ md_assemble (char *line)
i.xstate |= xstate_mmx;
break;
case RegMask:
- i.xstate |= xstate_zmm;
+ i.xstate |= xstate_mask;
break;
case RegSIMD:
- if (i.tm.operand_types[j].bitfield.tmmword)
+ if (i.types[j].bitfield.tmmword)
i.xstate |= xstate_tmm;
- else if (i.tm.operand_types[j].bitfield.zmmword)
+ else if (i.types[j].bitfield.zmmword)
i.xstate |= xstate_zmm;
- else if (i.tm.operand_types[j].bitfield.ymmword)
+ else if (i.types[j].bitfield.ymmword)
i.xstate |= xstate_ymm;
- else if (i.tm.operand_types[j].bitfield.xmmword)
+ else if (i.types[j].bitfield.xmmword)
i.xstate |= xstate_xmm;
break;
}
@@ -9167,56 +9169,51 @@ output_insn (void)
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
if (IS_ELF && x86_used_note && now_seg != absolute_section)
{
- if (i.tm.cpu_flags.bitfield.cpucmov)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_CMOV;
- if (i.tm.cpu_flags.bitfield.cpusse)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_SSE;
- if (i.tm.cpu_flags.bitfield.cpusse2)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_SSE2;
- if (i.tm.cpu_flags.bitfield.cpusse3)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_SSE3;
- if (i.tm.cpu_flags.bitfield.cpussse3)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_SSSE3;
- if (i.tm.cpu_flags.bitfield.cpusse4_1)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_SSE4_1;
- if (i.tm.cpu_flags.bitfield.cpusse4_2)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_SSE4_2;
- if (i.tm.cpu_flags.bitfield.cpuavx)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX;
- if (i.tm.cpu_flags.bitfield.cpuavx2)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX2;
- if (i.tm.cpu_flags.bitfield.cpufma)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_FMA;
- if (i.tm.cpu_flags.bitfield.cpuavx512f)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512F;
- if (i.tm.cpu_flags.bitfield.cpuavx512cd)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512CD;
- if (i.tm.cpu_flags.bitfield.cpuavx512er)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512ER;
- if (i.tm.cpu_flags.bitfield.cpuavx512pf)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512PF;
- if (i.tm.cpu_flags.bitfield.cpuavx512vl)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512VL;
- if (i.tm.cpu_flags.bitfield.cpuavx512dq)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512DQ;
- if (i.tm.cpu_flags.bitfield.cpuavx512bw)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512BW;
- if (i.tm.cpu_flags.bitfield.cpuavx512_4fmaps)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512_4FMAPS;
- if (i.tm.cpu_flags.bitfield.cpuavx512_4vnniw)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512_4VNNIW;
- if (i.tm.cpu_flags.bitfield.cpuavx512_bitalg)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512_BITALG;
- if (i.tm.cpu_flags.bitfield.cpuavx512ifma)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512_IFMA;
- if (i.tm.cpu_flags.bitfield.cpuavx512vbmi)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512_VBMI;
- if (i.tm.cpu_flags.bitfield.cpuavx512_vbmi2)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512_VBMI2;
- if (i.tm.cpu_flags.bitfield.cpuavx512_vnni)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512_VNNI;
- if (i.tm.cpu_flags.bitfield.cpuavx512_bf16)
- x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_AVX512_BF16;
+ if ((i.xstate & xstate_tmm) == xstate_tmm
+ || i.tm.cpu_flags.bitfield.cpuamx_tile)
+ x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_TMM;
+
+ if (i.tm.cpu_flags.bitfield.cpusse3
+ || i.tm.cpu_flags.bitfield.cpussse3
+ || i.tm.cpu_flags.bitfield.cpusse4_1
+ || i.tm.cpu_flags.bitfield.cpusse4_2
+ || i.tm.cpu_flags.bitfield.cpucx16
+ || i.tm.cpu_flags.bitfield.cpupopcnt
+ /* LAHF-SAHF insns in 64-bit mode. */
+ || (flag_code == CODE_64BIT
+ && (i.tm.base_opcode | 1) == 0x9f))
+ x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_V2;
+ if (i.tm.cpu_flags.bitfield.cpuavx
+ || i.tm.cpu_flags.bitfield.cpuavx2
+ /* Any VEX encoded insns execpt for CpuAVX512F, CpuAVX512BW,
+ CpuAVX512DQ, LPW, TBM and AMX. */
+ || (i.tm.opcode_modifier.vex
+ && !i.tm.cpu_flags.bitfield.cpuavx512f
+ && !i.tm.cpu_flags.bitfield.cpuavx512bw
+ && !i.tm.cpu_flags.bitfield.cpuavx512dq
+ && !i.tm.cpu_flags.bitfield.cpulwp
+ && !i.tm.cpu_flags.bitfield.cputbm
+ && !(x86_feature_2_used & GNU_PROPERTY_X86_FEATURE_2_TMM))
+ || i.tm.cpu_flags.bitfield.cpuf16c
+ || i.tm.cpu_flags.bitfield.cpufma
+ || i.tm.cpu_flags.bitfield.cpulzcnt
+ || i.tm.cpu_flags.bitfield.cpumovbe
+ || i.tm.cpu_flags.bitfield.cpuxsave
+ || i.tm.cpu_flags.bitfield.cpuxsavec
+ || i.tm.cpu_flags.bitfield.cpuxsaveopt
+ || i.tm.cpu_flags.bitfield.cpuxsaves)
+ x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_V3;
+ if (i.tm.cpu_flags.bitfield.cpuavx512f
+ || i.tm.cpu_flags.bitfield.cpuavx512bw
+ || i.tm.cpu_flags.bitfield.cpuavx512dq
+ || i.tm.cpu_flags.bitfield.cpuavx512vl
+ /* Any EVEX encoded insns except for AVX512ER, AVX512PF and
+ VNNIW. */
+ || (i.tm.opcode_modifier.evex
+ && !i.tm.cpu_flags.bitfield.cpuavx512er
+ && !i.tm.cpu_flags.bitfield.cpuavx512pf
+ && !i.tm.cpu_flags.bitfield.cpuavx512_4vnniw))
+ x86_isa_1_used |= GNU_PROPERTY_X86_ISA_1_V4;
if (i.tm.cpu_flags.bitfield.cpu8087
|| i.tm.cpu_flags.bitfield.cpu287
@@ -9228,6 +9225,15 @@ output_insn (void)
|| i.tm.base_opcode == 0xf77 /* emms */
|| i.tm.base_opcode == 0xf0e /* femms */)
x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_MMX;
+ if (i.index_reg)
+ {
+ if (i.index_reg->reg_type.bitfield.zmmword)
+ i.xstate |= xstate_zmm;
+ else if (i.index_reg->reg_type.bitfield.ymmword)
+ i.xstate |= xstate_ymm;
+ else if (i.index_reg->reg_type.bitfield.xmmword)
+ i.xstate |= xstate_xmm;
+ }
if ((i.xstate & xstate_xmm)
|| i.tm.cpu_flags.bitfield.cpuwidekl
|| i.tm.cpu_flags.bitfield.cpukl)
@@ -9236,6 +9242,8 @@ output_insn (void)
x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_YMM;
if ((i.xstate & xstate_zmm) == xstate_zmm)
x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_ZMM;
+ if (i.mask || (i.xstate & xstate_mask) == xstate_mask)
+ x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_MASK;
if (i.tm.cpu_flags.bitfield.cpufxsr)
x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_FXSR;
if (i.tm.cpu_flags.bitfield.cpuxsave)
@@ -9244,10 +9252,6 @@ 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 3a1ebda..8645f30 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -645,6 +645,9 @@ if [gas_32_check] then {
run_dump_test "property-5"
run_dump_test "property-6"
run_dump_test "property-10"
+ run_dump_test "property-11"
+ run_dump_test "property-12"
+ run_dump_test "property-13"
if {[istarget "*-*-linux*"]} then {
run_dump_test "align-branch-3"
@@ -1254,6 +1257,10 @@ if [gas_64_check] then {
run_dump_test "x86-64-property-8"
run_dump_test "x86-64-property-9"
run_dump_test "x86-64-property-10"
+ run_dump_test "x86-64-property-11"
+ run_dump_test "x86-64-property-12"
+ run_dump_test "x86-64-property-13"
+ run_dump_test "x86-64-property-14"
if {[istarget "*-*-linux*"]} then {
run_dump_test "x86-64-align-branch-3"
diff --git a/gas/testsuite/gas/i386/property-1.d b/gas/testsuite/gas/i386/property-1.d
index cb9dbf8..d40bd52 100644
--- a/gas/testsuite/gas/i386/property-1.d
+++ b/gas/testsuite/gas/i386/property-1.d
@@ -5,4 +5,4 @@
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>
+ Properties: x86 ISA used: x86-64-baseline
diff --git a/gas/testsuite/gas/i386/property-1.s b/gas/testsuite/gas/i386/property-1.s
index 4c29380..729784a 100644
--- a/gas/testsuite/gas/i386/property-1.s
+++ b/gas/testsuite/gas/i386/property-1.s
@@ -17,7 +17,7 @@
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0
diff --git a/gas/testsuite/gas/i386/property-10.d b/gas/testsuite/gas/i386/property-10.d
index ad87ca7..69c8cbb 100644
--- a/gas/testsuite/gas/i386/property-10.d
+++ b/gas/testsuite/gas/i386/property-10.d
@@ -5,5 +5,5 @@
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>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/property-11.d b/gas/testsuite/gas/i386/property-11.d
new file mode 100644
index 0000000..b3a4591
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-11.d
@@ -0,0 +1,9 @@
+#name: i386 property 11
+#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: x86-64-v3
+ x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/property-11.s b/gas/testsuite/gas/i386/property-11.s
new file mode 100644
index 0000000..0bfc4d8
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-11.s
@@ -0,0 +1,2 @@
+ .text
+ vaesenclast %xmm4,%xmm6,%xmm2
diff --git a/gas/testsuite/gas/i386/property-12.d b/gas/testsuite/gas/i386/property-12.d
new file mode 100644
index 0000000..fb9fa5c
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-12.d
@@ -0,0 +1,9 @@
+#name: i386 property 12
+#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: x86-64-v4
+ x86 feature used: x86, XMM, MASK
diff --git a/gas/testsuite/gas/i386/property-12.s b/gas/testsuite/gas/i386/property-12.s
new file mode 100644
index 0000000..f2a198b
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-12.s
@@ -0,0 +1,2 @@
+ .text
+ vpdpwssd %xmm2, %xmm4, %xmm2{%k3}
diff --git a/gas/testsuite/gas/i386/property-13.d b/gas/testsuite/gas/i386/property-13.d
new file mode 100644
index 0000000..91d1ce6
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-13.d
@@ -0,0 +1,9 @@
+#name: i386 property 13
+#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: x86-64-baseline
+ x86 feature used: x86, XMM, YMM, ZMM, MASK
diff --git a/gas/testsuite/gas/i386/property-13.s b/gas/testsuite/gas/i386/property-13.s
new file mode 100644
index 0000000..20e8fdf
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-13.s
@@ -0,0 +1,2 @@
+ .text
+ vscatterpf1dps 123(%ebp,%zmm7,8){%k1}
diff --git a/gas/testsuite/gas/i386/property-2.d b/gas/testsuite/gas/i386/property-2.d
index bdb469b..5e322ca 100644
--- a/gas/testsuite/gas/i386/property-2.d
+++ b/gas/testsuite/gas/i386/property-2.d
@@ -5,5 +5,5 @@
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: CMOV, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2, FMA, AVX512F, AVX512CD, AVX512ER, AVX512PF, AVX512VL, AVX512DQ, AVX512BW, AVX512_4FMAPS, AVX512_4VNNIW, AVX512_BITALG, AVX512_IFMA, AVX512_VBMI, AVX512_VBMI2, AVX512_VNNI, AVX512_BF16
- x86 feature used: x86, x87, MMX, XMM, YMM, ZMM, FXSR, XSAVE, XSAVEOPT, XSAVEC
+ Properties: x86 ISA used: x86-64-baseline
+ x86 feature used: x86
diff --git a/gas/testsuite/gas/i386/property-2.s b/gas/testsuite/gas/i386/property-2.s
index 1528187..5aaefe7 100644
--- a/gas/testsuite/gas/i386/property-2.s
+++ b/gas/testsuite/gas/i386/property-2.s
@@ -1,32 +1,2 @@
.text
- fsin
- movq %mm0, %mm1
- fxsave (%eax)
- xsave (%eax)
- xsaveopt (%eax)
- xsavec (%eax)
cmove %eax,%ebx
- movaps %xmm0, %xmm1
- movapd %xmm0, %xmm1
- mwait
- psignb %xmm0, %xmm1
- blendvpd %xmm0, %xmm1
- pcmpgtq %xmm0, %xmm1
- vmovaps %xmm0, %xmm1
- vpabsb %ymm0, %ymm1
- vfmadd231ps %ymm0, %ymm1, %ymm1
- vmovaps %zmm0, %zmm1
- vplzcntd %zmm0, %zmm1
- vrsqrt28pd %zmm0, %zmm1
- vscatterpf0dpd (%eax,%ymm1){%k1}
- {evex} vpmovzxdq %xmm0, %xmm1
- vandnpd %zmm0, %zmm0, %zmm1
- vpmaxuw %zmm0, %zmm0, %zmm1
- v4fnmaddss (%ecx), %xmm4, %xmm1
- vpopcntb %zmm0, %zmm1
- vp4dpwssd (%ecx), %zmm0, %zmm1
- vpmadd52luq (%ecx), %zmm0, %zmm1
- vpermt2b (%ecx), %zmm0, %zmm1
- vpcompressb %zmm0, %zmm1
- vpdpwssds (%ecx), %zmm0, %zmm1
- vcvtne2ps2bf16 (%ecx), %zmm0, %zmm1
diff --git a/gas/testsuite/gas/i386/property-3.d b/gas/testsuite/gas/i386/property-3.d
index 36d2155..b6aba35 100644
--- a/gas/testsuite/gas/i386/property-3.d
+++ b/gas/testsuite/gas/i386/property-3.d
@@ -5,5 +5,5 @@
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: SSE
- x86 feature used: x86, MMX, XMM
+ Properties: x86 ISA used: x86-64-v2
+ x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/property-3.s b/gas/testsuite/gas/i386/property-3.s
index c42bdcb..4fd398b 100644
--- a/gas/testsuite/gas/i386/property-3.s
+++ b/gas/testsuite/gas/i386/property-3.s
@@ -1,2 +1,2 @@
.text
- cvtpi2ps (%eax), %xmm0
+ addsubpd (%eax), %xmm0
diff --git a/gas/testsuite/gas/i386/property-4.d b/gas/testsuite/gas/i386/property-4.d
index 0fe6bc7..c23625c 100644
--- a/gas/testsuite/gas/i386/property-4.d
+++ b/gas/testsuite/gas/i386/property-4.d
@@ -5,5 +5,5 @@
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: AVX
- x86 feature used: x86, XMM, YMM
+ Properties: x86 ISA used: x86-64-v3
+ x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/property-5.d b/gas/testsuite/gas/i386/property-5.d
index 16e71d6..ba7679d 100644
--- a/gas/testsuite/gas/i386/property-5.d
+++ b/gas/testsuite/gas/i386/property-5.d
@@ -5,5 +5,5 @@
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: AVX512F
- x86 feature used: x86, XMM, YMM, ZMM
+ Properties: x86 ISA used: x86-64-v4
+ x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/property-6.d b/gas/testsuite/gas/i386/property-6.d
index cf175c5..d1a4ed6 100644
--- a/gas/testsuite/gas/i386/property-6.d
+++ b/gas/testsuite/gas/i386/property-6.d
@@ -5,5 +5,5 @@
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: AVX512F
- x86 feature used: x86, XMM, YMM, ZMM
+ Properties: x86 ISA used: x86-64-v4
+ x86 feature used: x86, MASK
diff --git a/gas/testsuite/gas/i386/x86-64-property-1.d b/gas/testsuite/gas/i386/x86-64-property-1.d
index cfcb795..931c7d2 100644
--- a/gas/testsuite/gas/i386/x86-64-property-1.d
+++ b/gas/testsuite/gas/i386/x86-64-property-1.d
@@ -6,4 +6,4 @@
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>
+ Properties: x86 ISA used: x86-64-baseline
diff --git a/gas/testsuite/gas/i386/x86-64-property-10.d b/gas/testsuite/gas/i386/x86-64-property-10.d
index c401ca2..1e7748f 100644
--- a/gas/testsuite/gas/i386/x86-64-property-10.d
+++ b/gas/testsuite/gas/i386/x86-64-property-10.d
@@ -6,5 +6,5 @@
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>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/x86-64-property-11.d b/gas/testsuite/gas/i386/x86-64-property-11.d
new file mode 100644
index 0000000..d240229
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-11.d
@@ -0,0 +1,10 @@
+#name: x86-64 property 11
+#source: property-11.s
+#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: x86-64-v3
+ x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/x86-64-property-12.d b/gas/testsuite/gas/i386/x86-64-property-12.d
new file mode 100644
index 0000000..ff12b65
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-12.d
@@ -0,0 +1,10 @@
+#name: x86-64 property 12
+#source: property-12.s
+#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: x86-64-v4
+ x86 feature used: x86, XMM, MASK
diff --git a/gas/testsuite/gas/i386/x86-64-property-13.d b/gas/testsuite/gas/i386/x86-64-property-13.d
new file mode 100644
index 0000000..5ed609a
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-13.d
@@ -0,0 +1,10 @@
+#name: x86-64 property 13
+#source: property-13.s
+#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: x86-64-baseline
+ x86 feature used: x86, XMM, YMM, ZMM, MASK
diff --git a/gas/testsuite/gas/i386/x86-64-property-14.d b/gas/testsuite/gas/i386/x86-64-property-14.d
new file mode 100644
index 0000000..41503c3
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-14.d
@@ -0,0 +1,9 @@
+#name: x86-64 property 13
+#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: x86-64-v2
+ x86 feature used: x86
diff --git a/gas/testsuite/gas/i386/x86-64-property-14.s b/gas/testsuite/gas/i386/x86-64-property-14.s
new file mode 100644
index 0000000..1b81dae
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-property-14.s
@@ -0,0 +1,2 @@
+ .text
+ sahf
diff --git a/gas/testsuite/gas/i386/x86-64-property-2.d b/gas/testsuite/gas/i386/x86-64-property-2.d
index bde7e55..d54dff9 100644
--- a/gas/testsuite/gas/i386/x86-64-property-2.d
+++ b/gas/testsuite/gas/i386/x86-64-property-2.d
@@ -6,5 +6,5 @@
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: CMOV, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2, FMA, AVX512F, AVX512CD, AVX512ER, AVX512PF, AVX512VL, AVX512DQ, AVX512BW, AVX512_4FMAPS, AVX512_4VNNIW, AVX512_BITALG, AVX512_IFMA, AVX512_VBMI, AVX512_VBMI2, AVX512_VNNI, AVX512_BF16
- x86 feature used: x86, x87, MMX, XMM, YMM, ZMM, FXSR, XSAVE, XSAVEOPT, XSAVEC
+ Properties: x86 ISA used: x86-64-baseline
+ x86 feature used: x86
diff --git a/gas/testsuite/gas/i386/x86-64-property-3.d b/gas/testsuite/gas/i386/x86-64-property-3.d
index aa116e0..bc1e483 100644
--- a/gas/testsuite/gas/i386/x86-64-property-3.d
+++ b/gas/testsuite/gas/i386/x86-64-property-3.d
@@ -6,5 +6,5 @@
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: SSE
- x86 feature used: x86, MMX, XMM
+ Properties: x86 ISA used: x86-64-v2
+ x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/x86-64-property-4.d b/gas/testsuite/gas/i386/x86-64-property-4.d
index 4a48950..fd4bee0 100644
--- a/gas/testsuite/gas/i386/x86-64-property-4.d
+++ b/gas/testsuite/gas/i386/x86-64-property-4.d
@@ -6,5 +6,5 @@
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: AVX
- x86 feature used: x86, XMM, YMM
+ Properties: x86 ISA used: x86-64-v3
+ x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/x86-64-property-5.d b/gas/testsuite/gas/i386/x86-64-property-5.d
index 590d8d5..73e24b9 100644
--- a/gas/testsuite/gas/i386/x86-64-property-5.d
+++ b/gas/testsuite/gas/i386/x86-64-property-5.d
@@ -6,5 +6,5 @@
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: AVX512F
- x86 feature used: x86, XMM, YMM, ZMM
+ Properties: x86 ISA used: x86-64-v4
+ x86 feature used: x86, XMM
diff --git a/gas/testsuite/gas/i386/x86-64-property-6.d b/gas/testsuite/gas/i386/x86-64-property-6.d
index 862d4c3..330e6f6 100644
--- a/gas/testsuite/gas/i386/x86-64-property-6.d
+++ b/gas/testsuite/gas/i386/x86-64-property-6.d
@@ -6,5 +6,5 @@
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: AVX512F
- x86 feature used: x86, XMM, YMM, ZMM
+ Properties: x86 ISA used: x86-64-v4
+ x86 feature used: x86, MASK
diff --git a/gas/testsuite/gas/i386/x86-64-property-7.d b/gas/testsuite/gas/i386/x86-64-property-7.d
index e938cc9..6fe6a36 100644
--- a/gas/testsuite/gas/i386/x86-64-property-7.d
+++ b/gas/testsuite/gas/i386/x86-64-property-7.d
@@ -1,9 +1,9 @@
-#name: x86-64 property 4
+#name: x86-64 property 7
#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>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86, TMM
diff --git a/gas/testsuite/gas/i386/x86-64-property-8.d b/gas/testsuite/gas/i386/x86-64-property-8.d
index e938cc9..4b5908a 100644
--- a/gas/testsuite/gas/i386/x86-64-property-8.d
+++ b/gas/testsuite/gas/i386/x86-64-property-8.d
@@ -1,9 +1,9 @@
-#name: x86-64 property 4
+#name: x86-64 property 8
#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>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86, TMM
diff --git a/gas/testsuite/gas/i386/x86-64-property-9.d b/gas/testsuite/gas/i386/x86-64-property-9.d
index e938cc9..2472c6e 100644
--- a/gas/testsuite/gas/i386/x86-64-property-9.d
+++ b/gas/testsuite/gas/i386/x86-64-property-9.d
@@ -1,9 +1,9 @@
-#name: x86-64 property 4
+#name: x86-64 property 9
#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>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86, TMM