aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog9
-rw-r--r--bfd/elf-linker-x86.h3
-rw-r--r--bfd/elfxx-x86.c64
-rw-r--r--binutils/ChangeLog37
-rw-r--r--binutils/readelf.c111
-rw-r--r--binutils/testsuite/binutils-all/i386/empty.d2
-rw-r--r--binutils/testsuite/binutils-all/i386/ibt.d2
-rw-r--r--binutils/testsuite/binutils-all/i386/pr21231a.d2
-rw-r--r--binutils/testsuite/binutils-all/i386/pr21231b.d6
-rw-r--r--binutils/testsuite/binutils-all/i386/pr21231b.s4
-rw-r--r--binutils/testsuite/binutils-all/i386/shstk.d2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/empty-x32.d2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/empty.d2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/ibt-x32.d2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/ibt.d2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr21231a.d2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr21231b.d6
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr21231b.s4
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494a-x32.d4
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494a.d4
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494a.s6
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494b.s2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494c-x32.d2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494c.d2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494c.s6
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494d-x32.d4
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494d.d4
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494e-x32.d4
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr23494e.d4
-rw-r--r--binutils/testsuite/binutils-all/x86-64/shstk-x32.d2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/shstk.d2
-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
-rw-r--r--include/ChangeLog16
-rw-r--r--include/elf/common.h76
-rw-r--r--ld/ChangeLog152
-rw-r--r--ld/NEWS3
-rw-r--r--ld/emulparams/elf32_x86_64.sh1
-rw-r--r--ld/emulparams/elf_i386.sh1
-rw-r--r--ld/emulparams/elf_x86_64.sh1
-rw-r--r--ld/emulparams/x86-64-level.sh18
-rw-r--r--ld/ld.texi9
-rw-r--r--ld/testsuite/ld-elf/x86-feature-1a.rd2
-rw-r--r--ld/testsuite/ld-elf/x86-feature-1b.rd2
-rw-r--r--ld/testsuite/ld-elf/x86-feature-1c.rd2
-rw-r--r--ld/testsuite/ld-elf/x86-feature-1d.rd2
-rw-r--r--ld/testsuite/ld-elf/x86-feature-1e.rd2
-rw-r--r--ld/testsuite/ld-i386/i386.exp4
-rw-r--r--ld/testsuite/ld-i386/pr23372c.d2
-rw-r--r--ld/testsuite/ld-i386/pr23486c.d2
-rw-r--r--ld/testsuite/ld-i386/pr23486d.d2
-rw-r--r--ld/testsuite/ld-i386/pr24322a.d2
-rw-r--r--ld/testsuite/ld-i386/pr24322b.d2
-rw-r--r--ld/testsuite/ld-i386/property-1a.r2
-rw-r--r--ld/testsuite/ld-i386/property-2a.r2
-rw-r--r--ld/testsuite/ld-i386/property-3.r2
-rw-r--r--ld/testsuite/ld-i386/property-3a.r4
-rw-r--r--ld/testsuite/ld-i386/property-4.r2
-rw-r--r--ld/testsuite/ld-i386/property-4a.r4
-rw-r--r--ld/testsuite/ld-i386/property-5.r2
-rw-r--r--ld/testsuite/ld-i386/property-5a.r4
-rw-r--r--ld/testsuite/ld-i386/property-7a.r2
-rw-r--r--ld/testsuite/ld-i386/property-x86-1.S4
-rw-r--r--ld/testsuite/ld-i386/property-x86-2.S4
-rw-r--r--ld/testsuite/ld-i386/property-x86-3.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-3.s8
-rw-r--r--ld/testsuite/ld-i386/property-x86-4a.d2
-rw-r--r--ld/testsuite/ld-i386/property-x86-5.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-6.d10
-rw-r--r--ld/testsuite/ld-i386/property-x86-cet1.d2
-rw-r--r--ld/testsuite/ld-i386/property-x86-cet2a.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-cet5a.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-cet5b.d2
-rw-r--r--ld/testsuite/ld-i386/property-x86-ibt1a.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-ibt1b.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-ibt2.d2
-rw-r--r--ld/testsuite/ld-i386/property-x86-ibt3a.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-ibt3b.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-ibt4.d2
-rw-r--r--ld/testsuite/ld-i386/property-x86-ibt5.d2
-rw-r--r--ld/testsuite/ld-i386/property-x86-isa1.d11
-rw-r--r--ld/testsuite/ld-i386/property-x86-isa2.d9
-rw-r--r--ld/testsuite/ld-i386/property-x86-isa3.d9
-rw-r--r--ld/testsuite/ld-i386/property-x86-shstk1a.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-shstk1b.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-shstk2.d2
-rw-r--r--ld/testsuite/ld-i386/property-x86-shstk3a.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-shstk3b.d4
-rw-r--r--ld/testsuite/ld-i386/property-x86-shstk4.d2
-rw-r--r--ld/testsuite/ld-i386/property-x86-shstk5.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr23372c-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr23372c.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr23372d.s2
-rw-r--r--ld/testsuite/ld-x86-64/pr23372e.s2
-rw-r--r--ld/testsuite/ld-x86-64/pr23372f.s2
-rw-r--r--ld/testsuite/ld-x86-64/pr23486c-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr23486c.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr23486c.s2
-rw-r--r--ld/testsuite/ld-x86-64/pr23486d-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr23486d.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr23486d.s2
-rw-r--r--ld/testsuite/ld-x86-64/pr24322a-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr24322a.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr24322b-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr24322b.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr24458a-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/pr24458a.d4
-rw-r--r--ld/testsuite/ld-x86-64/pr24458b-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/pr24458b.d4
-rw-r--r--ld/testsuite/ld-x86-64/pr24458c-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/pr24458c.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-1a.r2
-rw-r--r--ld/testsuite/ld-x86-64/property-2a.r2
-rw-r--r--ld/testsuite/ld-x86-64/property-3.r2
-rw-r--r--ld/testsuite/ld-x86-64/property-3a.r4
-rw-r--r--ld/testsuite/ld-x86-64/property-4.r2
-rw-r--r--ld/testsuite/ld-x86-64/property-4a.r4
-rw-r--r--ld/testsuite/ld-x86-64/property-5.r2
-rw-r--r--ld/testsuite/ld-x86-64/property-5a.r4
-rw-r--r--ld/testsuite/ld-x86-64/property-7a.r2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-1.S4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-2.S4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-3-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-3.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-3.s8
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-4a-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-4a.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-5-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-5.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-5a.s4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-5b.s2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-6-x32.d10
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-6.d9
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-6.s83
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-cet1-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-cet1.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-cet2a-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-cet2a.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-cet5a-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-cet5a.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-cet5b-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-cet5b.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt1a-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt1a.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt1b-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt1b.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt2-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt2.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt3a.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt3b.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt4-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt4.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt5-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-ibt5.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-isa1-x32.d11
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-isa1.d11
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-isa1.s54
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-isa2-x32.d9
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-isa2.d9
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-isa3-x32.d9
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-isa3.d9
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk1a-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk1a.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk1b-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk1b.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk2-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk2.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk3a.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk3b.d4
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk4-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk4.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk5-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-shstk5.d2
-rw-r--r--ld/testsuite/ld-x86-64/simple.s4
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp8
211 files changed, 1149 insertions, 404 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 468c6f6..9650b3d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2020-10-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ 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].
+
2020-10-06 H.J. Lu <hongjiu.lu@intel.com>
PR ld/26711
diff --git a/bfd/elf-linker-x86.h b/bfd/elf-linker-x86.h
index d0cb20d..77e8196 100644
--- a/bfd/elf-linker-x86.h
+++ b/bfd/elf-linker-x86.h
@@ -55,6 +55,9 @@ struct elf_linker_x86_params
/* TRUE if --dynamic-linker is passed at command-line. */
unsigned int has_dynamic_linker : 1;
+ /* X86-64 ISA level needed. */
+ unsigned int isa_level;
+
/* Report missing IBT and SHSTK properties. */
enum elf_x86_cet_report cet_report;
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 143aae4..4a0360f 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -2337,6 +2337,8 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
{
unsigned int number, features;
bfd_boolean updated = FALSE;
+ const struct elf_backend_data *bed;
+ struct elf_x86_link_hash_table *htab;
unsigned int pr_type = aprop != NULL ? aprop->pr_type : bprop->pr_type;
if (pr_type == GNU_PROPERTY_X86_COMPAT_ISA_1_USED
@@ -2366,10 +2368,32 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
|| (pr_type >= GNU_PROPERTY_X86_UINT32_OR_LO
&& pr_type <= GNU_PROPERTY_X86_UINT32_OR_HI))
{
+ features = 0;
+ if (pr_type == GNU_PROPERTY_X86_ISA_1_NEEDED)
+ {
+ bed = get_elf_backend_data (info->output_bfd);
+ htab = elf_x86_hash_table (info, bed->target_id);
+ switch (htab->params->isa_level)
+ {
+ case 0:
+ break;
+ case 2:
+ features = GNU_PROPERTY_X86_ISA_1_V2;
+ break;
+ case 3:
+ features = GNU_PROPERTY_X86_ISA_1_V3;
+ break;
+ case 4:
+ features = GNU_PROPERTY_X86_ISA_1_V4;
+ break;
+ default:
+ abort ();
+ }
+ }
if (aprop != NULL && bprop != NULL)
{
number = aprop->u.number;
- aprop->u.number = number | bprop->u.number;
+ aprop->u.number = number | bprop->u.number | features;
/* Remove the property if all bits are empty. */
if (aprop->u.number == 0)
{
@@ -2384,6 +2408,7 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
/* Only one of APROP and BPROP can be NULL. */
if (aprop != NULL)
{
+ aprop->u.number |= features;
if (aprop->u.number == 0)
{
/* Remove APROP if all bits are empty. */
@@ -2396,6 +2421,7 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
/* Return TRUE if APROP is NULL and all bits of BPROP
aren't empty to indicate that BPROP should be added
to ABFD. */
+ bprop->u.number |= features;
updated = bprop->u.number != 0;
}
}
@@ -2409,10 +2435,8 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
2. If APROP is NULL, remove x86 feature.
3. Otherwise, do nothing.
*/
- const struct elf_backend_data *bed
- = get_elf_backend_data (info->output_bfd);
- struct elf_x86_link_hash_table *htab
- = elf_x86_hash_table (info, bed->target_id);
+ bed = get_elf_backend_data (info->output_bfd);
+ htab = elf_x86_hash_table (info, bed->target_id);
if (!htab)
abort ();
if (aprop != NULL && bprop != NULL)
@@ -2490,7 +2514,7 @@ _bfd_x86_elf_link_setup_gnu_properties
asection *sec, *pltsec;
bfd *dynobj;
bfd_boolean use_ibt_plt;
- unsigned int plt_alignment, features;
+ unsigned int plt_alignment, features, isa_level;
struct elf_x86_link_hash_table *htab;
bfd *pbfd;
bfd *ebfd = NULL;
@@ -2532,6 +2556,24 @@ _bfd_x86_elf_link_setup_gnu_properties
if (!(htab->params->cet_report & (cet_report_ibt | cet_report_shstk)))
htab->params->cet_report = cet_report_none;
+ switch (htab->params->isa_level)
+ {
+ case 0:
+ isa_level = 0;
+ break;
+ case 2:
+ isa_level = GNU_PROPERTY_X86_ISA_1_V2;
+ break;
+ case 3:
+ isa_level = GNU_PROPERTY_X86_ISA_1_V3;
+ break;
+ case 4:
+ isa_level = GNU_PROPERTY_X86_ISA_1_V4;
+ break;
+ default:
+ abort ();
+ }
+
if (ebfd != NULL)
{
prop = NULL;
@@ -2546,6 +2588,16 @@ _bfd_x86_elf_link_setup_gnu_properties
prop->pr_kind = property_number;
}
+ if (isa_level)
+ {
+ /* If ISA level is set, add GNU_PROPERTY_X86_ISA_1_NEEDED. */
+ prop = _bfd_elf_get_property (ebfd,
+ GNU_PROPERTY_X86_ISA_1_NEEDED,
+ 4);
+ prop->u.number |= isa_level;
+ prop->pr_kind = property_number;
+ }
+
/* Create the GNU property note section if needed. */
if (prop != NULL && pbfd == NULL)
{
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index b751eee..ed05b24 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,40 @@
+2020-10-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ 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.
+
2020-10-06 Nick Clifton <nickc@redhat.com>
* objcopy.c (copy_object): Compare input and output sections by
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 9ba4e29..33ae4e5 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -18225,7 +18225,7 @@ decode_x86_compat_isa (unsigned int bitmask)
}
static void
-decode_x86_isa (unsigned int bitmask)
+decode_x86_compat_2_isa (unsigned int bitmask)
{
if (!bitmask)
{
@@ -18240,79 +18240,79 @@ decode_x86_isa (unsigned int bitmask)
bitmask &= ~ bit;
switch (bit)
{
- case GNU_PROPERTY_X86_ISA_1_CMOV:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV:
printf ("CMOV");
break;
- case GNU_PROPERTY_X86_ISA_1_SSE:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE:
printf ("SSE");
break;
- case GNU_PROPERTY_X86_ISA_1_SSE2:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2:
printf ("SSE2");
break;
- case GNU_PROPERTY_X86_ISA_1_SSE3:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3:
printf ("SSE3");
break;
- case GNU_PROPERTY_X86_ISA_1_SSSE3:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3:
printf ("SSSE3");
break;
- case GNU_PROPERTY_X86_ISA_1_SSE4_1:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1:
printf ("SSE4_1");
break;
- case GNU_PROPERTY_X86_ISA_1_SSE4_2:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2:
printf ("SSE4_2");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX:
printf ("AVX");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX2:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2:
printf ("AVX2");
break;
- case GNU_PROPERTY_X86_ISA_1_FMA:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA:
printf ("FMA");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512F:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F:
printf ("AVX512F");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512CD:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD:
printf ("AVX512CD");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512ER:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER:
printf ("AVX512ER");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512PF:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF:
printf ("AVX512PF");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512VL:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL:
printf ("AVX512VL");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512DQ:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ:
printf ("AVX512DQ");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512BW:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW:
printf ("AVX512BW");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512_4FMAPS:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS:
printf ("AVX512_4FMAPS");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512_4VNNIW:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW:
printf ("AVX512_4VNNIW");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512_BITALG:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG:
printf ("AVX512_BITALG");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512_IFMA:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA:
printf ("AVX512_IFMA");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512_VBMI:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI:
printf ("AVX512_VBMI");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512_VBMI2:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2:
printf ("AVX512_VBMI2");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512_VNNI:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI:
printf ("AVX512_VNNI");
break;
- case GNU_PROPERTY_X86_ISA_1_AVX512_BF16:
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16:
printf ("AVX512_BF16");
break;
default:
@@ -18325,6 +18325,40 @@ decode_x86_isa (unsigned int bitmask)
}
static void
+decode_x86_isa (unsigned int bitmask)
+{
+ if (!bitmask)
+ {
+ printf (_("x86-64-baseline"));
+ return;
+ }
+
+ while (bitmask)
+ {
+ unsigned int bit = bitmask & (- bitmask);
+
+ bitmask &= ~ bit;
+ switch (bit)
+ {
+ case GNU_PROPERTY_X86_ISA_1_V2:
+ printf ("x86-64-v2");
+ break;
+ case GNU_PROPERTY_X86_ISA_1_V3:
+ printf ("x86-64-v3");
+ break;
+ case GNU_PROPERTY_X86_ISA_1_V4:
+ printf ("x86-64-v4");
+ break;
+ default:
+ printf (_("<unknown: %x>"), bit);
+ break;
+ }
+ if (bitmask)
+ printf (", ");
+ }
+}
+
+static void
decode_x86_feature_1 (unsigned int bitmask)
{
if (!bitmask)
@@ -18392,6 +18426,9 @@ decode_x86_feature_2 (unsigned int bitmask)
case GNU_PROPERTY_X86_FEATURE_2_TMM:
printf ("TMM");
break;
+ case GNU_PROPERTY_X86_FEATURE_2_MASK:
+ printf ("MASK");
+ break;
case GNU_PROPERTY_X86_FEATURE_2_FXSR:
printf ("FXSR");
break;
@@ -18570,6 +18607,28 @@ print_gnu_property_note (Filedata * filedata, Elf_Internal_Note * pnote)
}
goto next;
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED:
+ if (datasz != 4)
+ printf (_("x86 ISA used: <corrupt length: %#x> "),
+ datasz);
+ else
+ {
+ printf ("x86 ISA used: ");
+ decode_x86_compat_2_isa (bitmask);
+ }
+ goto next;
+
+ case GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED:
+ if (datasz != 4)
+ printf (_("x86 ISA needed: <corrupt length: %#x> "),
+ datasz);
+ else
+ {
+ printf ("x86 ISA needed: ");
+ decode_x86_compat_2_isa (bitmask);
+ }
+ goto next;
+
default:
break;
}
diff --git a/binutils/testsuite/binutils-all/i386/empty.d b/binutils/testsuite/binutils-all/i386/empty.d
index 84837ba..ec54389 100644
--- a/binutils/testsuite/binutils-all/i386/empty.d
+++ b/binutils/testsuite/binutils-all/i386/empty.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: <None>
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/i386/ibt.d b/binutils/testsuite/binutils-all/i386/ibt.d
index 7698a8e..7723d70 100644
--- a/binutils/testsuite/binutils-all/i386/ibt.d
+++ b/binutils/testsuite/binutils-all/i386/ibt.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/i386/pr21231a.d b/binutils/testsuite/binutils-all/i386/pr21231a.d
index 6c49a49..657784d 100644
--- a/binutils/testsuite/binutils-all/i386/pr21231a.d
+++ b/binutils/testsuite/binutils-all/i386/pr21231a.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x00000008 NT_GNU_PROPERTY_TYPE_0
Properties: no copy on protected
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/i386/pr21231b.d b/binutils/testsuite/binutils-all/i386/pr21231b.d
index 921345d..77ef4e6 100644
--- a/binutils/testsuite/binutils-all/i386/pr21231b.d
+++ b/binutils/testsuite/binutils-all/i386/pr21231b.d
@@ -8,8 +8,8 @@ Displaying notes found in: .note.gnu.property
GNU 0x0000002c NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
no copy on protected
- 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, <unknown: 2000000>, <unknown: 4000000>, <unknown: 8000000>, <unknown: 10000000>, <unknown: 20000000>, <unknown: 40000000>
- x86 ISA needed: CMOV, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2, FMA, AVX512F, AVX512CD, AVX512ER, AVX512PF, AVX512VL, AVX512DQ
+ x86 ISA used: x86-64-v2, x86-64-v3, x86-64-v4, <unknown: 8>, <unknown: 10>, <unknown: 20>, <unknown: 40>, <unknown: 80>, <unknown: 100>, <unknown: 200>, <unknown: 400>, <unknown: 800>, <unknown: 1000>, <unknown: 2000>, <unknown: 4000>, <unknown: 8000>, <unknown: 10000>, <unknown: 20000>, <unknown: 40000>, <unknown: 80000>, <unknown: 100000>, <unknown: 200000>, <unknown: 400000>, <unknown: 800000>, <unknown: 1000000>, <unknown: 2000000>, <unknown: 4000000>, <unknown: 8000000>, <unknown: 10000000>, <unknown: 20000000>, <unknown: 40000000>
+ x86 ISA needed: x86-64-v2, x86-64-v3, x86-64-v4, <unknown: 8>, <unknown: 10>, <unknown: 20>, <unknown: 40>, <unknown: 80>, <unknown: 100>, <unknown: 200>, <unknown: 400>, <unknown: 800>, <unknown: 1000>, <unknown: 2000>, <unknown: 4000>, <unknown: 8000>
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/i386/pr21231b.s b/binutils/testsuite/binutils-all/i386/pr21231b.s
index 1fd2575..67cd08d 100644
--- a/binutils/testsuite/binutils-all/i386/pr21231b.s
+++ b/binutils/testsuite/binutils-all/i386/pr21231b.s
@@ -19,14 +19,14 @@
.long 0 /* pr_datasz. */
.p2align 2
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 4f - 3f /* pr_datasz. */
3:
.long 0x7fffffff
4:
.p2align 2
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 4f - 3f /* pr_datasz. */
3:
.long 0xffff
diff --git a/binutils/testsuite/binutils-all/i386/shstk.d b/binutils/testsuite/binutils-all/i386/shstk.d
index c2b5bec..8d2e9f2 100644
--- a/binutils/testsuite/binutils-all/i386/shstk.d
+++ b/binutils/testsuite/binutils-all/i386/shstk.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/x86-64/empty-x32.d b/binutils/testsuite/binutils-all/x86-64/empty-x32.d
index 2e6dc42..820996b 100644
--- a/binutils/testsuite/binutils-all/x86-64/empty-x32.d
+++ b/binutils/testsuite/binutils-all/x86-64/empty-x32.d
@@ -9,5 +9,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: <None>
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/x86-64/empty.d b/binutils/testsuite/binutils-all/x86-64/empty.d
index f66f0fc..0f9d8ce 100644
--- a/binutils/testsuite/binutils-all/x86-64/empty.d
+++ b/binutils/testsuite/binutils-all/x86-64/empty.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: <None>
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/x86-64/ibt-x32.d b/binutils/testsuite/binutils-all/x86-64/ibt-x32.d
index 21a7abe..490938a 100644
--- a/binutils/testsuite/binutils-all/x86-64/ibt-x32.d
+++ b/binutils/testsuite/binutils-all/x86-64/ibt-x32.d
@@ -9,5 +9,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/x86-64/ibt.d b/binutils/testsuite/binutils-all/x86-64/ibt.d
index 0860761..500ab54 100644
--- a/binutils/testsuite/binutils-all/x86-64/ibt.d
+++ b/binutils/testsuite/binutils-all/x86-64/ibt.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/x86-64/pr21231a.d b/binutils/testsuite/binutils-all/x86-64/pr21231a.d
index 4e2c8e3..f643a78 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr21231a.d
+++ b/binutils/testsuite/binutils-all/x86-64/pr21231a.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x00000008 NT_GNU_PROPERTY_TYPE_0
Properties: no copy on protected
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/x86-64/pr21231b.d b/binutils/testsuite/binutils-all/x86-64/pr21231b.d
index e1ca772..e9a185f 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr21231b.d
+++ b/binutils/testsuite/binutils-all/x86-64/pr21231b.d
@@ -8,8 +8,8 @@ Displaying notes found in: .note.gnu.property
GNU 0x00000038 NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
no copy on protected
- 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, <unknown: 2000000>, <unknown: 4000000>, <unknown: 8000000>, <unknown: 10000000>, <unknown: 20000000>, <unknown: 40000000>
- x86 ISA needed: CMOV, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2, FMA, AVX512F, AVX512CD, AVX512ER, AVX512PF, AVX512VL, AVX512DQ
+ x86 ISA used: x86-64-v2, x86-64-v3, x86-64-v4, <unknown: 8>, <unknown: 10>, <unknown: 20>, <unknown: 40>, <unknown: 80>, <unknown: 100>, <unknown: 200>, <unknown: 400>, <unknown: 800>, <unknown: 1000>, <unknown: 2000>, <unknown: 4000>, <unknown: 8000>, <unknown: 10000>, <unknown: 20000>, <unknown: 40000>, <unknown: 80000>, <unknown: 100000>, <unknown: 200000>, <unknown: 400000>, <unknown: 800000>, <unknown: 1000000>, <unknown: 2000000>, <unknown: 4000000>, <unknown: 8000000>, <unknown: 10000000>, <unknown: 20000000>, <unknown: 40000000>
+ x86 ISA needed: x86-64-v2, x86-64-v3, x86-64-v4, <unknown: 8>, <unknown: 10>, <unknown: 20>, <unknown: 40>, <unknown: 80>, <unknown: 100>, <unknown: 200>, <unknown: 400>, <unknown: 800>, <unknown: 1000>, <unknown: 2000>, <unknown: 4000>, <unknown: 8000>
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/x86-64/pr21231b.s b/binutils/testsuite/binutils-all/x86-64/pr21231b.s
index 8fefebd..1feea55 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr21231b.s
+++ b/binutils/testsuite/binutils-all/x86-64/pr21231b.s
@@ -19,14 +19,14 @@
.long 0 /* pr_datasz. */
.p2align 3
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 4f - 3f /* pr_datasz. */
3:
.long 0x7fffffff
4:
.p2align 3
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 4f - 3f /* pr_datasz. */
3:
.long 0xffff
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494a-x32.d b/binutils/testsuite/binutils-all/x86-64/pr23494a-x32.d
index 8195517..018809c 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494a-x32.d
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494a-x32.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: SSE4_1, AVX
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494a.d b/binutils/testsuite/binutils-all/x86-64/pr23494a.d
index 9062733..dab7d18 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494a.d
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494a.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: SSE4_1, AVX
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494a.s b/binutils/testsuite/binutils-all/x86-64/pr23494a.s
index 26f7139..a36d303 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494a.s
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494a.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 0xa
@@ -48,7 +48,7 @@
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0xa0
@@ -79,7 +79,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 0xa0
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494b.s b/binutils/testsuite/binutils-all/x86-64/pr23494b.s
index 75a8d5a..aa3cdb5 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494b.s
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494b.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 0xa
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494c-x32.d b/binutils/testsuite/binutils-all/x86-64/pr23494c-x32.d
index 188705b..05f3263 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494c-x32.d
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494c-x32.d
@@ -7,4 +7,4 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: SSE, SSE3
+ Properties: x86 ISA used: x86-64-v3, <unknown: 8>
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494c.d b/binutils/testsuite/binutils-all/x86-64/pr23494c.d
index 7fff8e6..6b0d4f3 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494c.d
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494c.d
@@ -7,4 +7,4 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: SSE, SSE3
+ Properties: x86 ISA used: x86-64-v3, <unknown: 8>
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494c.s b/binutils/testsuite/binutils-all/x86-64/pr23494c.s
index 474182c..0109bdb 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494c.s
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494c.s
@@ -48,7 +48,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 0xa
@@ -79,7 +79,7 @@
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0xa0
@@ -110,7 +110,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 0xa0
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494d-x32.d b/binutils/testsuite/binutils-all/x86-64/pr23494d-x32.d
index eaf5438..385cbdb 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494d-x32.d
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494d-x32.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: SSE4_1, AVX
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494d.d b/binutils/testsuite/binutils-all/x86-64/pr23494d.d
index ef70683..45e9a39 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494d.d
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494d.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: SSE4_1, AVX
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494e-x32.d b/binutils/testsuite/binutils-all/x86-64/pr23494e-x32.d
index 62c655d..968262a 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494e-x32.d
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494e-x32.d
@@ -8,6 +8,6 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000040 NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0xffffffff
- x86 ISA needed: SSE4_1, AVX
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ x86 ISA needed: <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/binutils/testsuite/binutils-all/x86-64/pr23494e.d b/binutils/testsuite/binutils-all/x86-64/pr23494e.d
index 6423bbf..bbd9e21 100644
--- a/binutils/testsuite/binutils-all/x86-64/pr23494e.d
+++ b/binutils/testsuite/binutils-all/x86-64/pr23494e.d
@@ -8,6 +8,6 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0xffffffff
- x86 ISA needed: SSE4_1, AVX
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ x86 ISA needed: <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/binutils/testsuite/binutils-all/x86-64/shstk-x32.d b/binutils/testsuite/binutils-all/x86-64/shstk-x32.d
index e8918b1..b798d88 100644
--- a/binutils/testsuite/binutils-all/x86-64/shstk-x32.d
+++ b/binutils/testsuite/binutils-all/x86-64/shstk-x32.d
@@ -9,5 +9,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
diff --git a/binutils/testsuite/binutils-all/x86-64/shstk.d b/binutils/testsuite/binutils-all/x86-64/shstk.d
index 4258834..7523e45 100644
--- a/binutils/testsuite/binutils-all/x86-64/shstk.d
+++ b/binutils/testsuite/binutils-all/x86-64/shstk.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
+ Properties: x86 ISA used: x86-64-baseline
x86 feature used: x86
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
diff --git a/include/ChangeLog b/include/ChangeLog
index 12fd17b..8fdf30f 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,19 @@
+2020-10-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ 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.
+
2020-09-23 Mark Wielaard <mark@klomp.org>
Sync with GCC
diff --git a/include/elf/common.h b/include/elf/common.h
index 571e21a..b3c30e0 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -805,44 +805,31 @@
(GNU_PROPERTY_X86_UINT32_AND_LO + 0)
#define GNU_PROPERTY_X86_ISA_1_NEEDED \
- (GNU_PROPERTY_X86_UINT32_OR_LO + 0)
+ (GNU_PROPERTY_X86_UINT32_OR_LO + 2)
#define GNU_PROPERTY_X86_FEATURE_2_NEEDED \
(GNU_PROPERTY_X86_UINT32_OR_LO + 1)
#define GNU_PROPERTY_X86_ISA_1_USED \
- (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0)
+ (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2)
#define GNU_PROPERTY_X86_FEATURE_2_USED \
(GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1)
+/* Baseline: CMOV (cmov) CX8 (cmpxchg8b) FPU (fld), FXSR (fxsave),
+ SCE (syscall), MMX, SSE and SSE2. */
+
+/* GNU_PROPERTY_X86_ISA_1_V2: Baseline, CMPXCHG16B (cmpxchg16b),
+ LAHF-SAHF (lahf), POPCNT (popcnt), SSE3, SSSE3, SSE4.1 and SSE4.2. */
+#define GNU_PROPERTY_X86_ISA_1_V2 (1U << 0)
+/* GNU_PROPERTY_X86_ISA_1_V3: GNU_PROPERTY_X86_ISA_1_V2, AVX, AVX2, BMI1,
+ BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE. */
+#define GNU_PROPERTY_X86_ISA_1_V3 (1U << 1)
+/* GNU_PROPERTY_X86_ISA_1_V4: GNU_PROPERTY_X86_ISA_1_V3, AVX512F,
+ AVX512BW, AVX512CD, AVX512DQ and AVX512VL. */
+#define GNU_PROPERTY_X86_ISA_1_V4 (1U << 2)
+
#define GNU_PROPERTY_X86_FEATURE_1_IBT (1U << 0)
#define GNU_PROPERTY_X86_FEATURE_1_SHSTK (1U << 1)
-#define GNU_PROPERTY_X86_ISA_1_CMOV (1U << 0)
-#define GNU_PROPERTY_X86_ISA_1_SSE (1U << 1)
-#define GNU_PROPERTY_X86_ISA_1_SSE2 (1U << 2)
-#define GNU_PROPERTY_X86_ISA_1_SSE3 (1U << 3)
-#define GNU_PROPERTY_X86_ISA_1_SSSE3 (1U << 4)
-#define GNU_PROPERTY_X86_ISA_1_SSE4_1 (1U << 5)
-#define GNU_PROPERTY_X86_ISA_1_SSE4_2 (1U << 6)
-#define GNU_PROPERTY_X86_ISA_1_AVX (1U << 7)
-#define GNU_PROPERTY_X86_ISA_1_AVX2 (1U << 8)
-#define GNU_PROPERTY_X86_ISA_1_FMA (1U << 9)
-#define GNU_PROPERTY_X86_ISA_1_AVX512F (1U << 10)
-#define GNU_PROPERTY_X86_ISA_1_AVX512CD (1U << 11)
-#define GNU_PROPERTY_X86_ISA_1_AVX512ER (1U << 12)
-#define GNU_PROPERTY_X86_ISA_1_AVX512PF (1U << 13)
-#define GNU_PROPERTY_X86_ISA_1_AVX512VL (1U << 14)
-#define GNU_PROPERTY_X86_ISA_1_AVX512DQ (1U << 15)
-#define GNU_PROPERTY_X86_ISA_1_AVX512BW (1U << 16)
-#define GNU_PROPERTY_X86_ISA_1_AVX512_4FMAPS (1U << 17)
-#define GNU_PROPERTY_X86_ISA_1_AVX512_4VNNIW (1U << 18)
-#define GNU_PROPERTY_X86_ISA_1_AVX512_BITALG (1U << 19)
-#define GNU_PROPERTY_X86_ISA_1_AVX512_IFMA (1U << 20)
-#define GNU_PROPERTY_X86_ISA_1_AVX512_VBMI (1U << 21)
-#define GNU_PROPERTY_X86_ISA_1_AVX512_VBMI2 (1U << 22)
-#define GNU_PROPERTY_X86_ISA_1_AVX512_VNNI (1U << 23)
-#define GNU_PROPERTY_X86_ISA_1_AVX512_BF16 (1U << 24)
-
#define GNU_PROPERTY_X86_FEATURE_2_X86 (1U << 0)
#define GNU_PROPERTY_X86_FEATURE_2_X87 (1U << 1)
#define GNU_PROPERTY_X86_FEATURE_2_MMX (1U << 2)
@@ -854,6 +841,39 @@
#define GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT (1U << 8)
#define GNU_PROPERTY_X86_FEATURE_2_XSAVEC (1U << 9)
#define GNU_PROPERTY_X86_FEATURE_2_TMM (1U << 10)
+#define GNU_PROPERTY_X86_FEATURE_2_MASK (1U << 11)
+
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED \
+ (GNU_PROPERTY_X86_UINT32_OR_LO + 0)
+
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED \
+ (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0)
+
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_CMOV (1U << 0)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE (1U << 1)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE2 (1U << 2)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE3 (1U << 3)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSSE3 (1U << 4)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_1 (1U << 5)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_SSE4_2 (1U << 6)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX (1U << 7)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX2 (1U << 8)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_FMA (1U << 9)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512F (1U << 10)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512CD (1U << 11)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512ER (1U << 12)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512PF (1U << 13)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512VL (1U << 14)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512DQ (1U << 15)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512BW (1U << 16)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4FMAPS (1U << 17)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_4VNNIW (1U << 18)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BITALG (1U << 19)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_IFMA (1U << 20)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI (1U << 21)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VBMI2 (1U << 22)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_VNNI (1U << 23)
+#define GNU_PROPERTY_X86_COMPAT_2_ISA_1_AVX512_BF16 (1U << 24)
/* AArch64 specific GNU PROPERTY. */
#define GNU_PROPERTY_AARCH64_FEATURE_1_AND 0xc0000000
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 738014e..205f6ac 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,155 @@
+2020-10-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ 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.
+
2020-10-06 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/ld-i386/property-3.r: Updated for Fedora binary
diff --git a/ld/NEWS b/ld/NEWS
index e4ae43b..2f20a5f 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,5 +1,8 @@
-*- text -*-
+* Add -z x86-64-v[234] to the x86 ELF linker to mark x86-64-v[234] ISA
+ level as needed.
+
* Add -z unique-symbol to avoid duplicated local symbol names.
* The creation of PE format DLLs now defaults to using a more secure set of DLL
diff --git a/ld/emulparams/elf32_x86_64.sh b/ld/emulparams/elf32_x86_64.sh
index 1f672c6..0d7c714 100644
--- a/ld/emulparams/elf32_x86_64.sh
+++ b/ld/emulparams/elf32_x86_64.sh
@@ -4,6 +4,7 @@ source_sh ${srcdir}/emulparams/dynamic_undefined_weak.sh
source_sh ${srcdir}/emulparams/reloc_overflow.sh
source_sh ${srcdir}/emulparams/call_nop.sh
source_sh ${srcdir}/emulparams/cet.sh
+source_sh ${srcdir}/emulparams/x86-64-level.sh
source_sh ${srcdir}/emulparams/static.sh
SCRIPT_NAME=elf
ELFSIZE=32
diff --git a/ld/emulparams/elf_i386.sh b/ld/emulparams/elf_i386.sh
index c98d5e6..741633f 100644
--- a/ld/emulparams/elf_i386.sh
+++ b/ld/emulparams/elf_i386.sh
@@ -3,6 +3,7 @@ source_sh ${srcdir}/emulparams/extern_protected_data.sh
source_sh ${srcdir}/emulparams/dynamic_undefined_weak.sh
source_sh ${srcdir}/emulparams/call_nop.sh
source_sh ${srcdir}/emulparams/cet.sh
+source_sh ${srcdir}/emulparams/x86-64-level.sh
source_sh ${srcdir}/emulparams/static.sh
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-i386"
diff --git a/ld/emulparams/elf_x86_64.sh b/ld/emulparams/elf_x86_64.sh
index be98082..5996055 100644
--- a/ld/emulparams/elf_x86_64.sh
+++ b/ld/emulparams/elf_x86_64.sh
@@ -4,6 +4,7 @@ source_sh ${srcdir}/emulparams/dynamic_undefined_weak.sh
source_sh ${srcdir}/emulparams/reloc_overflow.sh
source_sh ${srcdir}/emulparams/call_nop.sh
source_sh ${srcdir}/emulparams/cet.sh
+source_sh ${srcdir}/emulparams/x86-64-level.sh
source_sh ${srcdir}/emulparams/static.sh
SCRIPT_NAME=elf
ELFSIZE=64
diff --git a/ld/emulparams/x86-64-level.sh b/ld/emulparams/x86-64-level.sh
new file mode 100644
index 0000000..efa75ca
--- /dev/null
+++ b/ld/emulparams/x86-64-level.sh
@@ -0,0 +1,18 @@
+PARSE_AND_LIST_OPTIONS_X86_64_LEVEL='
+ fprintf (file, _("\
+ -z x86-64-v[234] Mark x86-64-v[234] ISA level as needed\n"));
+'
+PARSE_AND_LIST_ARGS_CASE_Z_X86_64_LEVEL='
+ else if (strncmp (optarg, "x86-64-v", 8) == 0)
+ {
+ char *end;
+ unsigned int level = strtoul (optarg + 8 , &end, 10);
+ if (*end != '\0' || level < 2 || level > 4)
+ einfo (_("%F%P: invalid x86-64 ISA level: %s\n"),
+ optarg);
+ params.isa_level = level;
+ }
+'
+
+PARSE_AND_LIST_OPTIONS="$PARSE_AND_LIST_OPTIONS $PARSE_AND_LIST_OPTIONS_X86_64_LEVEL"
+PARSE_AND_LIST_ARGS_CASE_Z="$PARSE_AND_LIST_ARGS_CASE_Z $PARSE_AND_LIST_ARGS_CASE_Z_X86_64_LEVEL"
diff --git a/ld/ld.texi b/ld/ld.texi
index ee592df..66bede2 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -1419,6 +1419,15 @@ Do not report unresolved symbol references from regular object files,
either when creating an executable, or when creating a shared library.
This option is the inverse of @samp{-z defs}.
+@item x86-64-v2
+@item x86-64-v3
+@itemx x86-64-v4
+Specify the x86-64 ISA level needed in .note.gnu.property section.
+@option{x86-64-v2} generates @code{GNU_PROPERTY_X86_ISA_1_V2}.
+@option{x86-64-v3} generates @code{GNU_PROPERTY_X86_ISA_1_V3}.
+@option{x86-64-v4} generates @code{GNU_PROPERTY_X86_ISA_1_V4}.
+Supported for Linux/i386 and Linux/x86_64.
+
@end table
Other keywords are ignored for Solaris compatibility.
diff --git a/ld/testsuite/ld-elf/x86-feature-1a.rd b/ld/testsuite/ld-elf/x86-feature-1a.rd
index db7718a..fda3063 100644
--- a/ld/testsuite/ld-elf/x86-feature-1a.rd
+++ b/ld/testsuite/ld-elf/x86-feature-1a.rd
@@ -2,5 +2,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-elf/x86-feature-1b.rd b/ld/testsuite/ld-elf/x86-feature-1b.rd
index 81a8d8d..b0d6f64 100644
--- a/ld/testsuite/ld-elf/x86-feature-1b.rd
+++ b/ld/testsuite/ld-elf/x86-feature-1b.rd
@@ -2,5 +2,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-elf/x86-feature-1c.rd b/ld/testsuite/ld-elf/x86-feature-1c.rd
index 81a8d8d..b0d6f64 100644
--- a/ld/testsuite/ld-elf/x86-feature-1c.rd
+++ b/ld/testsuite/ld-elf/x86-feature-1c.rd
@@ -2,5 +2,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-elf/x86-feature-1d.rd b/ld/testsuite/ld-elf/x86-feature-1d.rd
index 3dea012..d5c3deb 100644
--- a/ld/testsuite/ld-elf/x86-feature-1d.rd
+++ b/ld/testsuite/ld-elf/x86-feature-1d.rd
@@ -2,5 +2,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: <None>
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-elf/x86-feature-1e.rd b/ld/testsuite/ld-elf/x86-feature-1e.rd
index 8ad7d43..eb82ef2 100644
--- a/ld/testsuite/ld-elf/x86-feature-1e.rd
+++ b/ld/testsuite/ld-elf/x86-feature-1e.rd
@@ -2,5 +2,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT, SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index cd7b4de..0b1538e 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -422,6 +422,7 @@ run_dump_test "property-x86-3"
run_dump_test "property-x86-4a"
run_dump_test "property-x86-4b"
run_dump_test "property-x86-5"
+run_dump_test "property-x86-6"
run_dump_test "property-x86-ibt1a"
run_dump_test "property-x86-ibt1b"
run_dump_test "property-x86-ibt2"
@@ -475,6 +476,9 @@ run_dump_test "pr26263"
run_dump_test "pr26711-1"
run_dump_test "pr26711-2"
run_dump_test "pr26711-3"
+run_dump_test "property-x86-isa1"
+run_dump_test "property-x86-isa2"
+run_dump_test "property-x86-isa3"
if { !([istarget "i?86-*-linux*"]
|| [istarget "i?86-*-gnu*"]
diff --git a/ld/testsuite/ld-i386/pr23372c.d b/ld/testsuite/ld-i386/pr23372c.d
index 59fdc23..fffd680 100644
--- a/ld/testsuite/ld-i386/pr23372c.d
+++ b/ld/testsuite/ld-i386/pr23372c.d
@@ -7,4 +7,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/ld/testsuite/ld-i386/pr23486c.d b/ld/testsuite/ld-i386/pr23486c.d
index 30d2259..92765f5 100644
--- a/ld/testsuite/ld-i386/pr23486c.d
+++ b/ld/testsuite/ld-i386/pr23486c.d
@@ -7,4 +7,4 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3
diff --git a/ld/testsuite/ld-i386/pr23486d.d b/ld/testsuite/ld-i386/pr23486d.d
index 025b8e0..c673e8e 100644
--- a/ld/testsuite/ld-i386/pr23486d.d
+++ b/ld/testsuite/ld-i386/pr23486d.d
@@ -7,4 +7,4 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3
diff --git a/ld/testsuite/ld-i386/pr24322a.d b/ld/testsuite/ld-i386/pr24322a.d
index a77a85c..a273e68 100644
--- a/ld/testsuite/ld-i386/pr24322a.d
+++ b/ld/testsuite/ld-i386/pr24322a.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/pr24322b.d b/ld/testsuite/ld-i386/pr24322b.d
index 62e8246..244d8c3 100644
--- a/ld/testsuite/ld-i386/pr24322b.d
+++ b/ld/testsuite/ld-i386/pr24322b.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-1a.r b/ld/testsuite/ld-i386/property-1a.r
index 85615f1..cbdd647 100644
--- a/ld/testsuite/ld-i386/property-1a.r
+++ b/ld/testsuite/ld-i386/property-1a.r
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: no copy on protected
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
#pass
diff --git a/ld/testsuite/ld-i386/property-2a.r b/ld/testsuite/ld-i386/property-2a.r
index a85ef0e..51bfde8 100644
--- a/ld/testsuite/ld-i386/property-2a.r
+++ b/ld/testsuite/ld-i386/property-2a.r
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
#pass
diff --git a/ld/testsuite/ld-i386/property-3.r b/ld/testsuite/ld-i386/property-3.r
index e95d47a..3578823 100644
--- a/ld/testsuite/ld-i386/property-3.r
+++ b/ld/testsuite/ld-i386/property-3.r
@@ -4,5 +4,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
#...
- x86 ISA needed: CMOV, SSE
+ x86 ISA needed: x86-64-v2, x86-64-v3
#pass
diff --git a/ld/testsuite/ld-i386/property-3a.r b/ld/testsuite/ld-i386/property-3a.r
index 2201c98..89cc8fa 100644
--- a/ld/testsuite/ld-i386/property-3a.r
+++ b/ld/testsuite/ld-i386/property-3a.r
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA needed: CMOV, SSE
- x86 ISA used: SSE, SSE3
+ x86 ISA needed: x86-64-v2, x86-64-v3
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>
#pass
diff --git a/ld/testsuite/ld-i386/property-4.r b/ld/testsuite/ld-i386/property-4.r
index a4b7bb7..a024b2a 100644
--- a/ld/testsuite/ld-i386/property-4.r
+++ b/ld/testsuite/ld-i386/property-4.r
@@ -4,5 +4,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
#...
- x86 ISA needed: CMOV, SSE, SSE3
+ x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 8>
#pass
diff --git a/ld/testsuite/ld-i386/property-4a.r b/ld/testsuite/ld-i386/property-4a.r
index 8448cc7..ff61875 100644
--- a/ld/testsuite/ld-i386/property-4a.r
+++ b/ld/testsuite/ld-i386/property-4a.r
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA needed: CMOV, SSE, SSE3
- x86 ISA used: CMOV, SSE, SSE3
+ x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 8>
x86 feature used: x86
+ x86 ISA used: x86-64-v2, x86-64-v3, <unknown: 8>
#pass
diff --git a/ld/testsuite/ld-i386/property-5.r b/ld/testsuite/ld-i386/property-5.r
index 5ff9564..eb24e3a 100644
--- a/ld/testsuite/ld-i386/property-5.r
+++ b/ld/testsuite/ld-i386/property-5.r
@@ -4,5 +4,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x900000
#...
- x86 ISA needed: CMOV, SSE, SSE3
+ x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 8>
#pass
diff --git a/ld/testsuite/ld-i386/property-5a.r b/ld/testsuite/ld-i386/property-5a.r
index 9388a07..c99af9e 100644
--- a/ld/testsuite/ld-i386/property-5a.r
+++ b/ld/testsuite/ld-i386/property-5a.r
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x900000
- x86 ISA needed: CMOV, SSE, SSE3
- x86 ISA used: CMOV, SSE, SSE3
+ x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 8>
x86 feature used: x86
+ x86 ISA used: x86-64-v2, x86-64-v3, <unknown: 8>
#pass
diff --git a/ld/testsuite/ld-i386/property-7a.r b/ld/testsuite/ld-i386/property-7a.r
index 1cce5d9..c97fc72 100644
--- a/ld/testsuite/ld-i386/property-7a.r
+++ b/ld/testsuite/ld-i386/property-7a.r
@@ -4,5 +4,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
no copy on protected
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-1.S b/ld/testsuite/ld-i386/property-x86-1.S
index f0b8fc0..cb0a2cf 100644
--- a/ld/testsuite/ld-i386/property-x86-1.S
+++ b/ld/testsuite/ld-i386/property-x86-1.S
@@ -16,14 +16,14 @@
5:
.p2align 2
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0xa
5:
.p2align 2
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x3
diff --git a/ld/testsuite/ld-i386/property-x86-2.S b/ld/testsuite/ld-i386/property-x86-2.S
index 3987681..01c755f 100644
--- a/ld/testsuite/ld-i386/property-x86-2.S
+++ b/ld/testsuite/ld-i386/property-x86-2.S
@@ -9,14 +9,14 @@
1:
.p2align 2
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x3
5:
.p2align 2
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0xa
diff --git a/ld/testsuite/ld-i386/property-x86-3.d b/ld/testsuite/ld-i386/property-x86-3.d
index 8b3ddb5..059388d 100644
--- a/ld/testsuite/ld-i386/property-x86-3.d
+++ b/ld/testsuite/ld-i386/property-x86-3.d
@@ -5,6 +5,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
- x86 ISA used: CMOV, SSE, SSSE3, SSE4_1
+ Properties: x86 ISA needed: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
diff --git a/ld/testsuite/ld-i386/property-x86-3.s b/ld/testsuite/ld-i386/property-x86-3.s
index 7e5924f..f137b71 100644
--- a/ld/testsuite/ld-i386/property-x86-3.s
+++ b/ld/testsuite/ld-i386/property-x86-3.s
@@ -9,14 +9,14 @@
1:
.p2align 2
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x3
5:
.p2align 2
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0xa
@@ -35,14 +35,14 @@
1:
.p2align 2
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x30
5:
.p2align 2
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0xa0
diff --git a/ld/testsuite/ld-i386/property-x86-4a.d b/ld/testsuite/ld-i386/property-x86-4a.d
index e28562a..3006627 100644
--- a/ld/testsuite/ld-i386/property-x86-4a.d
+++ b/ld/testsuite/ld-i386/property-x86-4a.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
Properties: no copy on protected
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-5.d b/ld/testsuite/ld-i386/property-x86-5.d
index dc9b67c..71faa63 100644
--- a/ld/testsuite/ld-i386/property-x86-5.d
+++ b/ld/testsuite/ld-i386/property-x86-5.d
@@ -7,5 +7,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 needed: CMOV
- x86 ISA used: <None>
+ Properties: x86 ISA needed: x86-64-v2
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-6.d b/ld/testsuite/ld-i386/property-x86-6.d
new file mode 100644
index 0000000..95c64b2
--- /dev/null
+++ b/ld/testsuite/ld-i386/property-x86-6.d
@@ -0,0 +1,10 @@
+#source: ../ld-x86-64/property-x86-6.s
+#as: --32 -mx86-used-note=no
+#ld: -shared -m elf_i386
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
+ x86 ISA used: SSE, SSE3, SSE4_1, AVX
diff --git a/ld/testsuite/ld-i386/property-x86-cet1.d b/ld/testsuite/ld-i386/property-x86-cet1.d
index f2cf7a6..fbce0bb 100644
--- a/ld/testsuite/ld-i386/property-x86-cet1.d
+++ b/ld/testsuite/ld-i386/property-x86-cet1.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT, SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-cet2a.d b/ld/testsuite/ld-i386/property-x86-cet2a.d
index 93b871e..655762d 100644
--- a/ld/testsuite/ld-i386/property-x86-cet2a.d
+++ b/ld/testsuite/ld-i386/property-x86-cet2a.d
@@ -10,6 +10,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
- x86 ISA used: CMOV, SSE, SSSE3, SSE4_1
+ Properties: x86 ISA needed: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
diff --git a/ld/testsuite/ld-i386/property-x86-cet5a.d b/ld/testsuite/ld-i386/property-x86-cet5a.d
index 412f4dc..bd7e2ed 100644
--- a/ld/testsuite/ld-i386/property-x86-cet5a.d
+++ b/ld/testsuite/ld-i386/property-x86-cet5a.d
@@ -6,5 +6,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-cet5b.d b/ld/testsuite/ld-i386/property-x86-cet5b.d
index 868b003..0b47267 100644
--- a/ld/testsuite/ld-i386/property-x86-cet5b.d
+++ b/ld/testsuite/ld-i386/property-x86-cet5b.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT, SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-ibt1a.d b/ld/testsuite/ld-i386/property-x86-ibt1a.d
index 989b99c..1fee1ae 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt1a.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt1a.d
@@ -7,5 +7,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-ibt1b.d b/ld/testsuite/ld-i386/property-x86-ibt1b.d
index 1aa80cb..adb00d7 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt1b.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt1b.d
@@ -7,5 +7,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-ibt2.d b/ld/testsuite/ld-i386/property-x86-ibt2.d
index bd47f95..68aa0fe 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt2.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt2.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-ibt3a.d b/ld/testsuite/ld-i386/property-x86-ibt3a.d
index 7e6079c..290bcac 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt3a.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt3a.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
- x86 ISA used: CMOV, SSE, SSSE3, SSE4_1
+ Properties: x86 ISA needed: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
diff --git a/ld/testsuite/ld-i386/property-x86-ibt3b.d b/ld/testsuite/ld-i386/property-x86-ibt3b.d
index 861fec9..0ac9e7f 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt3b.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt3b.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
- x86 ISA used: CMOV, SSE, SSSE3, SSE4_1
+ Properties: x86 ISA needed: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
diff --git a/ld/testsuite/ld-i386/property-x86-ibt4.d b/ld/testsuite/ld-i386/property-x86-ibt4.d
index e271cc9..0e613e2 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt4.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt4.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-ibt5.d b/ld/testsuite/ld-i386/property-x86-ibt5.d
index 2245369..23da096 100644
--- a/ld/testsuite/ld-i386/property-x86-ibt5.d
+++ b/ld/testsuite/ld-i386/property-x86-ibt5.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-isa1.d b/ld/testsuite/ld-i386/property-x86-isa1.d
new file mode 100644
index 0000000..22ac02b
--- /dev/null
+++ b/ld/testsuite/ld-i386/property-x86-isa1.d
@@ -0,0 +1,11 @@
+#source: ../ld-x86-64/property-x86-isa1.s
+#source: ../ld-x86-64/simple.s
+#as: --32 -mx86-used-note=no
+#ld: -m elf_i386 -z x86-64-v4
+#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 needed: x86-64-v2, x86-64-v4
+ <procesor-specific type 0xc0009000 data: 30 00 00 00 >
diff --git a/ld/testsuite/ld-i386/property-x86-isa2.d b/ld/testsuite/ld-i386/property-x86-isa2.d
new file mode 100644
index 0000000..1dc83a7
--- /dev/null
+++ b/ld/testsuite/ld-i386/property-x86-isa2.d
@@ -0,0 +1,9 @@
+#source: ../ld-x86-64/simple.s
+#as: --32 -mx86-used-note=no
+#ld: -m elf_i386 -z x86-64-v4
+#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 needed: x86-64-v4
diff --git a/ld/testsuite/ld-i386/property-x86-isa3.d b/ld/testsuite/ld-i386/property-x86-isa3.d
new file mode 100644
index 0000000..60b20d2
--- /dev/null
+++ b/ld/testsuite/ld-i386/property-x86-isa3.d
@@ -0,0 +1,9 @@
+#source: ../ld-x86-64/simple.s
+#as: --32 -mx86-used-note=no
+#ld: -r -m elf_i386 -z x86-64-v4
+#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 needed: x86-64-v4
diff --git a/ld/testsuite/ld-i386/property-x86-shstk1a.d b/ld/testsuite/ld-i386/property-x86-shstk1a.d
index 93586d4..ab774dc 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk1a.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk1a.d
@@ -7,5 +7,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-shstk1b.d b/ld/testsuite/ld-i386/property-x86-shstk1b.d
index 3916bac..97517c3 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk1b.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk1b.d
@@ -7,5 +7,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-shstk2.d b/ld/testsuite/ld-i386/property-x86-shstk2.d
index 3c24ee5..9700302 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk2.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk2.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-shstk3a.d b/ld/testsuite/ld-i386/property-x86-shstk3a.d
index 9d2ce55..1b6da4f 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk3a.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk3a.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
- x86 ISA used: CMOV, SSE, SSSE3, SSE4_1
+ Properties: x86 ISA needed: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
diff --git a/ld/testsuite/ld-i386/property-x86-shstk3b.d b/ld/testsuite/ld-i386/property-x86-shstk3b.d
index 86f4395..98a1562 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk3b.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk3b.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
- x86 ISA used: CMOV, SSE, SSSE3, SSE4_1
+ Properties: x86 ISA needed: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
x86 feature used: x86
+ x86 ISA used: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
diff --git a/ld/testsuite/ld-i386/property-x86-shstk4.d b/ld/testsuite/ld-i386/property-x86-shstk4.d
index 84dda93..fa4c88c 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk4.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk4.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-i386/property-x86-shstk5.d b/ld/testsuite/ld-i386/property-x86-shstk5.d
index 613daa4..64a3539 100644
--- a/ld/testsuite/ld-i386/property-x86-shstk5.d
+++ b/ld/testsuite/ld-i386/property-x86-shstk5.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr23372c-x32.d b/ld/testsuite/ld-x86-64/pr23372c-x32.d
index e01a766..5698ec2 100644
--- a/ld/testsuite/ld-x86-64/pr23372c-x32.d
+++ b/ld/testsuite/ld-x86-64/pr23372c-x32.d
@@ -7,4 +7,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/ld/testsuite/ld-x86-64/pr23372c.d b/ld/testsuite/ld-x86-64/pr23372c.d
index 359cc09..e1281b2 100644
--- a/ld/testsuite/ld-x86-64/pr23372c.d
+++ b/ld/testsuite/ld-x86-64/pr23372c.d
@@ -7,4 +7,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/ld/testsuite/ld-x86-64/pr23372d.s b/ld/testsuite/ld-x86-64/pr23372d.s
index cec05cd..3875c94 100644
--- a/ld/testsuite/ld-x86-64/pr23372d.s
+++ b/ld/testsuite/ld-x86-64/pr23372d.s
@@ -17,7 +17,7 @@
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 3f - 2f /* pr_datasz. */
2:
.long 0x0
diff --git a/ld/testsuite/ld-x86-64/pr23372e.s b/ld/testsuite/ld-x86-64/pr23372e.s
index cec05cd..3875c94 100644
--- a/ld/testsuite/ld-x86-64/pr23372e.s
+++ b/ld/testsuite/ld-x86-64/pr23372e.s
@@ -17,7 +17,7 @@
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 3f - 2f /* pr_datasz. */
2:
.long 0x0
diff --git a/ld/testsuite/ld-x86-64/pr23372f.s b/ld/testsuite/ld-x86-64/pr23372f.s
index 57797c8..6d79c14 100644
--- a/ld/testsuite/ld-x86-64/pr23372f.s
+++ b/ld/testsuite/ld-x86-64/pr23372f.s
@@ -17,7 +17,7 @@
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 3f - 2f /* pr_datasz. */
2:
.long 0x0
diff --git a/ld/testsuite/ld-x86-64/pr23486c-x32.d b/ld/testsuite/ld-x86-64/pr23486c-x32.d
index 7a5e732..11215f3 100644
--- a/ld/testsuite/ld-x86-64/pr23486c-x32.d
+++ b/ld/testsuite/ld-x86-64/pr23486c-x32.d
@@ -7,4 +7,4 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3
diff --git a/ld/testsuite/ld-x86-64/pr23486c.d b/ld/testsuite/ld-x86-64/pr23486c.d
index cda1f1c..38c54ca 100644
--- a/ld/testsuite/ld-x86-64/pr23486c.d
+++ b/ld/testsuite/ld-x86-64/pr23486c.d
@@ -7,4 +7,4 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3
diff --git a/ld/testsuite/ld-x86-64/pr23486c.s b/ld/testsuite/ld-x86-64/pr23486c.s
index 16bb94d..7860eac 100644
--- a/ld/testsuite/ld-x86-64/pr23486c.s
+++ b/ld/testsuite/ld-x86-64/pr23486c.s
@@ -17,7 +17,7 @@
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 3f - 2f /* pr_datasz. */
2:
.long 0xa
diff --git a/ld/testsuite/ld-x86-64/pr23486d-x32.d b/ld/testsuite/ld-x86-64/pr23486d-x32.d
index 41da74c..74eb4c0 100644
--- a/ld/testsuite/ld-x86-64/pr23486d-x32.d
+++ b/ld/testsuite/ld-x86-64/pr23486d-x32.d
@@ -7,4 +7,4 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3
diff --git a/ld/testsuite/ld-x86-64/pr23486d.d b/ld/testsuite/ld-x86-64/pr23486d.d
index 0ca7c50..4f33523 100644
--- a/ld/testsuite/ld-x86-64/pr23486d.d
+++ b/ld/testsuite/ld-x86-64/pr23486d.d
@@ -7,4 +7,4 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3
diff --git a/ld/testsuite/ld-x86-64/pr23486d.s b/ld/testsuite/ld-x86-64/pr23486d.s
index 88f9c11..c399105 100644
--- a/ld/testsuite/ld-x86-64/pr23486d.s
+++ b/ld/testsuite/ld-x86-64/pr23486d.s
@@ -17,7 +17,7 @@
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 3f - 2f /* pr_datasz. */
2:
.long 0x3
diff --git a/ld/testsuite/ld-x86-64/pr24322a-x32.d b/ld/testsuite/ld-x86-64/pr24322a-x32.d
index f18678d..8009f91 100644
--- a/ld/testsuite/ld-x86-64/pr24322a-x32.d
+++ b/ld/testsuite/ld-x86-64/pr24322a-x32.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr24322a.d b/ld/testsuite/ld-x86-64/pr24322a.d
index a27de4a..6ddb7a7 100644
--- a/ld/testsuite/ld-x86-64/pr24322a.d
+++ b/ld/testsuite/ld-x86-64/pr24322a.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr24322b-x32.d b/ld/testsuite/ld-x86-64/pr24322b-x32.d
index 4e19b8d..76ebd1c 100644
--- a/ld/testsuite/ld-x86-64/pr24322b-x32.d
+++ b/ld/testsuite/ld-x86-64/pr24322b-x32.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr24322b.d b/ld/testsuite/ld-x86-64/pr24322b.d
index f56e211..6ee0146 100644
--- a/ld/testsuite/ld-x86-64/pr24322b.d
+++ b/ld/testsuite/ld-x86-64/pr24322b.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr24458a-x32.d b/ld/testsuite/ld-x86-64/pr24458a-x32.d
index 9b8dc30..9909f17 100644
--- a/ld/testsuite/ld-x86-64/pr24458a-x32.d
+++ b/ld/testsuite/ld-x86-64/pr24458a-x32.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>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr24458a.d b/ld/testsuite/ld-x86-64/pr24458a.d
index 8319a58..d0fbc33 100644
--- a/ld/testsuite/ld-x86-64/pr24458a.d
+++ b/ld/testsuite/ld-x86-64/pr24458a.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>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr24458b-x32.d b/ld/testsuite/ld-x86-64/pr24458b-x32.d
index 263c797..9f80ed2 100644
--- a/ld/testsuite/ld-x86-64/pr24458b-x32.d
+++ b/ld/testsuite/ld-x86-64/pr24458b-x32.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>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr24458b.d b/ld/testsuite/ld-x86-64/pr24458b.d
index 3614d67..ee18948 100644
--- a/ld/testsuite/ld-x86-64/pr24458b.d
+++ b/ld/testsuite/ld-x86-64/pr24458b.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>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr24458c-x32.d b/ld/testsuite/ld-x86-64/pr24458c-x32.d
index 767038a..7107c3f 100644
--- a/ld/testsuite/ld-x86-64/pr24458c-x32.d
+++ b/ld/testsuite/ld-x86-64/pr24458c-x32.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>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr24458c.d b/ld/testsuite/ld-x86-64/pr24458c.d
index bc3758f..690088a 100644
--- a/ld/testsuite/ld-x86-64/pr24458c.d
+++ b/ld/testsuite/ld-x86-64/pr24458c.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>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-1a.r b/ld/testsuite/ld-x86-64/property-1a.r
index 85615f1..cbdd647 100644
--- a/ld/testsuite/ld-x86-64/property-1a.r
+++ b/ld/testsuite/ld-x86-64/property-1a.r
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: no copy on protected
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
#pass
diff --git a/ld/testsuite/ld-x86-64/property-2a.r b/ld/testsuite/ld-x86-64/property-2a.r
index a85ef0e..51bfde8 100644
--- a/ld/testsuite/ld-x86-64/property-2a.r
+++ b/ld/testsuite/ld-x86-64/property-2a.r
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
#pass
diff --git a/ld/testsuite/ld-x86-64/property-3.r b/ld/testsuite/ld-x86-64/property-3.r
index e95d47a..3578823 100644
--- a/ld/testsuite/ld-x86-64/property-3.r
+++ b/ld/testsuite/ld-x86-64/property-3.r
@@ -4,5 +4,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
#...
- x86 ISA needed: CMOV, SSE
+ x86 ISA needed: x86-64-v2, x86-64-v3
#pass
diff --git a/ld/testsuite/ld-x86-64/property-3a.r b/ld/testsuite/ld-x86-64/property-3a.r
index 2201c98..89cc8fa 100644
--- a/ld/testsuite/ld-x86-64/property-3a.r
+++ b/ld/testsuite/ld-x86-64/property-3a.r
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA needed: CMOV, SSE
- x86 ISA used: SSE, SSE3
+ x86 ISA needed: x86-64-v2, x86-64-v3
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>
#pass
diff --git a/ld/testsuite/ld-x86-64/property-4.r b/ld/testsuite/ld-x86-64/property-4.r
index a4b7bb7..a024b2a 100644
--- a/ld/testsuite/ld-x86-64/property-4.r
+++ b/ld/testsuite/ld-x86-64/property-4.r
@@ -4,5 +4,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
#...
- x86 ISA needed: CMOV, SSE, SSE3
+ x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 8>
#pass
diff --git a/ld/testsuite/ld-x86-64/property-4a.r b/ld/testsuite/ld-x86-64/property-4a.r
index 8448cc7..ff61875 100644
--- a/ld/testsuite/ld-x86-64/property-4a.r
+++ b/ld/testsuite/ld-x86-64/property-4a.r
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
- x86 ISA needed: CMOV, SSE, SSE3
- x86 ISA used: CMOV, SSE, SSE3
+ x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 8>
x86 feature used: x86
+ x86 ISA used: x86-64-v2, x86-64-v3, <unknown: 8>
#pass
diff --git a/ld/testsuite/ld-x86-64/property-5.r b/ld/testsuite/ld-x86-64/property-5.r
index 5ff9564..eb24e3a 100644
--- a/ld/testsuite/ld-x86-64/property-5.r
+++ b/ld/testsuite/ld-x86-64/property-5.r
@@ -4,5 +4,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x900000
#...
- x86 ISA needed: CMOV, SSE, SSE3
+ x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 8>
#pass
diff --git a/ld/testsuite/ld-x86-64/property-5a.r b/ld/testsuite/ld-x86-64/property-5a.r
index 9388a07..c99af9e 100644
--- a/ld/testsuite/ld-x86-64/property-5a.r
+++ b/ld/testsuite/ld-x86-64/property-5a.r
@@ -3,7 +3,7 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x900000
- x86 ISA needed: CMOV, SSE, SSE3
- x86 ISA used: CMOV, SSE, SSE3
+ x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 8>
x86 feature used: x86
+ x86 ISA used: x86-64-v2, x86-64-v3, <unknown: 8>
#pass
diff --git a/ld/testsuite/ld-x86-64/property-7a.r b/ld/testsuite/ld-x86-64/property-7a.r
index 1cce5d9..c97fc72 100644
--- a/ld/testsuite/ld-x86-64/property-7a.r
+++ b/ld/testsuite/ld-x86-64/property-7a.r
@@ -4,5 +4,5 @@ Displaying notes found in: .note.gnu.property
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
Properties: stack size: 0x800000
no copy on protected
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-1.S b/ld/testsuite/ld-x86-64/property-x86-1.S
index c950b9d..b669e72 100644
--- a/ld/testsuite/ld-x86-64/property-x86-1.S
+++ b/ld/testsuite/ld-x86-64/property-x86-1.S
@@ -21,14 +21,14 @@
5:
.p2align ALIGN
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0xa
5:
.p2align ALIGN
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x3
diff --git a/ld/testsuite/ld-x86-64/property-x86-2.S b/ld/testsuite/ld-x86-64/property-x86-2.S
index 72056be..b108b17 100644
--- a/ld/testsuite/ld-x86-64/property-x86-2.S
+++ b/ld/testsuite/ld-x86-64/property-x86-2.S
@@ -14,14 +14,14 @@
1:
.p2align ALIGN
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x3
5:
.p2align ALIGN
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0xa
diff --git a/ld/testsuite/ld-x86-64/property-x86-3-x32.d b/ld/testsuite/ld-x86-64/property-x86-3-x32.d
index ef70a64..5125a7a 100644
--- a/ld/testsuite/ld-x86-64/property-x86-3-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-3-x32.d
@@ -6,6 +6,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-3.d b/ld/testsuite/ld-x86-64/property-x86-3.d
index 1d191be..9742308 100644
--- a/ld/testsuite/ld-x86-64/property-x86-3.d
+++ b/ld/testsuite/ld-x86-64/property-x86-3.d
@@ -5,6 +5,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-3.s b/ld/testsuite/ld-x86-64/property-x86-3.s
index 8c9d6da..cce71da 100644
--- a/ld/testsuite/ld-x86-64/property-x86-3.s
+++ b/ld/testsuite/ld-x86-64/property-x86-3.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 0xa
@@ -28,7 +28,7 @@
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x3
@@ -59,7 +59,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 0xa0
@@ -70,7 +70,7 @@
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x30
diff --git a/ld/testsuite/ld-x86-64/property-x86-4a-x32.d b/ld/testsuite/ld-x86-64/property-x86-4a-x32.d
index 07c5081..cf5046f 100644
--- a/ld/testsuite/ld-x86-64/property-x86-4a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-4a-x32.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
Properties: no copy on protected
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-4a.d b/ld/testsuite/ld-x86-64/property-x86-4a.d
index 6ae427e..7c2bb78 100644
--- a/ld/testsuite/ld-x86-64/property-x86-4a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-4a.d
@@ -8,5 +8,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000028 NT_GNU_PROPERTY_TYPE_0
Properties: no copy on protected
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-5-x32.d b/ld/testsuite/ld-x86-64/property-x86-5-x32.d
index 8e6b8e5..8f62e3b 100644
--- a/ld/testsuite/ld-x86-64/property-x86-5-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-5-x32.d
@@ -7,5 +7,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 needed: CMOV
- x86 ISA used: <None>
+ Properties: x86 ISA needed: x86-64-v2
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-5.d b/ld/testsuite/ld-x86-64/property-x86-5.d
index dd1da83..3ba1f48 100644
--- a/ld/testsuite/ld-x86-64/property-x86-5.d
+++ b/ld/testsuite/ld-x86-64/property-x86-5.d
@@ -7,5 +7,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 needed: CMOV
- x86 ISA used: <None>
+ Properties: x86 ISA needed: x86-64-v2
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-5a.s b/ld/testsuite/ld-x86-64/property-x86-5a.s
index 990c468..755facd 100644
--- a/ld/testsuite/ld-x86-64/property-x86-5a.s
+++ b/ld/testsuite/ld-x86-64/property-x86-5a.s
@@ -22,7 +22,7 @@ _start:
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
- .long 0xc0008000 /* pr_type. */
+ .long 0xc0008002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x1
@@ -38,7 +38,7 @@ _start:
.p2align 2
.endif
/* GNU_PROPERTY_X86_ISA_1_USED */
- .long 0xc0010000 /* pr_type. */
+ .long 0xc0010002 /* pr_type. */
.long 5f - 4f /* pr_datasz. */
4:
.long 0x0
diff --git a/ld/testsuite/ld-x86-64/property-x86-5b.s b/ld/testsuite/ld-x86-64/property-x86-5b.s
index 1f90dfc..7851481 100644
--- a/ld/testsuite/ld-x86-64/property-x86-5b.s
+++ b/ld/testsuite/ld-x86-64/property-x86-5b.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 0x0
diff --git a/ld/testsuite/ld-x86-64/property-x86-6-x32.d b/ld/testsuite/ld-x86-64/property-x86-6-x32.d
new file mode 100644
index 0000000..57aa3c2
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/property-x86-6-x32.d
@@ -0,0 +1,10 @@
+#source: property-x86-6.s
+#as: --x32 -mx86-used-note=no
+#ld: -shared -m elf32_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
+ x86 ISA used: SSE, SSE3, SSE4_1, AVX
diff --git a/ld/testsuite/ld-x86-64/property-x86-6.d b/ld/testsuite/ld-x86-64/property-x86-6.d
new file mode 100644
index 0000000..8639f9f
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/property-x86-6.d
@@ -0,0 +1,9 @@
+#as: --64 -defsym __64_bit__=1 -mx86-used-note=no
+#ld: -shared -m elf_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
+ x86 ISA used: SSE, SSE3, SSE4_1, AVX
diff --git a/ld/testsuite/ld-x86-64/property-x86-6.s b/ld/testsuite/ld-x86-64/property-x86-6.s
new file mode 100644
index 0000000..9a2f8f4
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/property-x86-6.s
@@ -0,0 +1,83 @@
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length. */
+ .long 3f - 1f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0 */
+ .long 5 /* note type. */
+0:
+ .asciz "GNU" /* vendor name. */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ /* GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED */
+ .long 0xc0010000 /* pr_type. */
+ .long 5f - 4f /* pr_datasz. */
+4:
+ .long 0xa
+5:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ /* GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED */
+ .long 0xc0008000 /* pr_type. */
+ .long 5f - 4f /* pr_datasz. */
+4:
+ .long 0x3
+5:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+3:
+
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length. */
+ .long 3f - 1f /* data length. */
+ /* NT_GNU_PROPERTY_TYPE_0 */
+ .long 5 /* note type. */
+0:
+ .asciz "GNU" /* vendor name. */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ /* GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED */
+ .long 0xc0010000 /* pr_type. */
+ .long 5f - 4f /* pr_datasz. */
+4:
+ .long 0xa0
+5:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ /* GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED */
+ .long 0xc0008000 /* pr_type. */
+ .long 5f - 4f /* pr_datasz. */
+4:
+ .long 0x30
+5:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+3:
diff --git a/ld/testsuite/ld-x86-64/property-x86-cet1-x32.d b/ld/testsuite/ld-x86-64/property-x86-cet1-x32.d
index 3b4391a..25cf016 100644
--- a/ld/testsuite/ld-x86-64/property-x86-cet1-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-cet1-x32.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT, SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-cet1.d b/ld/testsuite/ld-x86-64/property-x86-cet1.d
index abf76c5..3e79729 100644
--- a/ld/testsuite/ld-x86-64/property-x86-cet1.d
+++ b/ld/testsuite/ld-x86-64/property-x86-cet1.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT, SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-cet2a-x32.d b/ld/testsuite/ld-x86-64/property-x86-cet2a-x32.d
index 55996c9..2f1facb 100644
--- a/ld/testsuite/ld-x86-64/property-x86-cet2a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-cet2a-x32.d
@@ -10,6 +10,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-cet2a.d b/ld/testsuite/ld-x86-64/property-x86-cet2a.d
index 2d7ad8c..9e3560c 100644
--- a/ld/testsuite/ld-x86-64/property-x86-cet2a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-cet2a.d
@@ -10,6 +10,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-cet5a-x32.d b/ld/testsuite/ld-x86-64/property-x86-cet5a-x32.d
index 6520e56..928cc13 100644
--- a/ld/testsuite/ld-x86-64/property-x86-cet5a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-cet5a-x32.d
@@ -6,5 +6,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-cet5a.d b/ld/testsuite/ld-x86-64/property-x86-cet5a.d
index 6a05136..e36db37 100644
--- a/ld/testsuite/ld-x86-64/property-x86-cet5a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-cet5a.d
@@ -6,5 +6,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-cet5b-x32.d b/ld/testsuite/ld-x86-64/property-x86-cet5b-x32.d
index da3c854..890d070 100644
--- a/ld/testsuite/ld-x86-64/property-x86-cet5b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-cet5b-x32.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT, SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-cet5b.d b/ld/testsuite/ld-x86-64/property-x86-cet5b.d
index 1c5681d..4f81698 100644
--- a/ld/testsuite/ld-x86-64/property-x86-cet5b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-cet5b.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT, SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt1a-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt1a-x32.d
index 4ce851a..ba0de1b 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt1a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt1a-x32.d
@@ -8,5 +8,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt1a.d b/ld/testsuite/ld-x86-64/property-x86-ibt1a.d
index 5f9836f..c5caf30 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt1a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt1a.d
@@ -8,5 +8,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt1b-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt1b-x32.d
index 2e6c45e..a891894 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt1b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt1b-x32.d
@@ -7,5 +7,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt1b.d b/ld/testsuite/ld-x86-64/property-x86-ibt1b.d
index 18020c6..5120c01 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt1b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt1b.d
@@ -7,5 +7,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt2-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt2-x32.d
index eca7956..3946aec 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt2-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt2-x32.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt2.d b/ld/testsuite/ld-x86-64/property-x86-ibt2.d
index ddf9cc3..2a55017 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt2.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt2.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
index 2d9cd35..ea4254e 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
index fc32d70..f74b2d1 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
index a17c121..a2ad6f8 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
index 2425c31..ab6bfb6 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt4-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt4-x32.d
index f6f67db..95155c5 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt4-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt4-x32.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt4.d b/ld/testsuite/ld-x86-64/property-x86-ibt4.d
index ab02175..496c00c 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt4.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt4.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt5-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt5-x32.d
index 5e3c6df..d9bf59e 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt5-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt5-x32.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt5.d b/ld/testsuite/ld-x86-64/property-x86-ibt5.d
index cdf8ead..212c3b2 100644
--- a/ld/testsuite/ld-x86-64/property-x86-ibt5.d
+++ b/ld/testsuite/ld-x86-64/property-x86-ibt5.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: IBT
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-isa1-x32.d b/ld/testsuite/ld-x86-64/property-x86-isa1-x32.d
new file mode 100644
index 0000000..e50e135
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/property-x86-isa1-x32.d
@@ -0,0 +1,11 @@
+#source: property-x86-isa1.s
+#source: simple.s
+#as: --x32 -mx86-used-note=no
+#ld: -m elf32_x86_64 -z x86-64-v4
+#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 needed: x86-64-v2, x86-64-v4
+ <procesor-specific type 0xc0009000 data: 30 00 00 00 >
diff --git a/ld/testsuite/ld-x86-64/property-x86-isa1.d b/ld/testsuite/ld-x86-64/property-x86-isa1.d
new file mode 100644
index 0000000..fd05ade
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/property-x86-isa1.d
@@ -0,0 +1,11 @@
+#source: property-x86-isa1.s
+#source: simple.s
+#as: --64 -defsym __64_bit__=1 -mx86-used-note=no
+#ld: -m elf_x86_64 -z x86-64-v4
+#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 needed: x86-64-v2, x86-64-v4
+ <procesor-specific type 0xc0009000 data: 30 00 00 00 >
diff --git a/ld/testsuite/ld-x86-64/property-x86-isa1.s b/ld/testsuite/ld-x86-64/property-x86-isa1.s
new file mode 100644
index 0000000..938dc78
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/property-x86-isa1.s
@@ -0,0 +1,54 @@
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+2: .long 0xc0008002 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x1
+4:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+5:
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+2: .long 0xc0009000 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x30
+4:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+5:
diff --git a/ld/testsuite/ld-x86-64/property-x86-isa2-x32.d b/ld/testsuite/ld-x86-64/property-x86-isa2-x32.d
new file mode 100644
index 0000000..c0f1607
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/property-x86-isa2-x32.d
@@ -0,0 +1,9 @@
+#source: simple.s
+#as: --x32 -mx86-used-note=no
+#ld: -m elf32_x86_64 -z x86-64-v4
+#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 needed: x86-64-v4
diff --git a/ld/testsuite/ld-x86-64/property-x86-isa2.d b/ld/testsuite/ld-x86-64/property-x86-isa2.d
new file mode 100644
index 0000000..6a1d5ef
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/property-x86-isa2.d
@@ -0,0 +1,9 @@
+#source: simple.s
+#as: --64 -defsym __64_bit__=1 -mx86-used-note=no
+#ld: -m elf_x86_64 -z x86-64-v4
+#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 needed: x86-64-v4
diff --git a/ld/testsuite/ld-x86-64/property-x86-isa3-x32.d b/ld/testsuite/ld-x86-64/property-x86-isa3-x32.d
new file mode 100644
index 0000000..864e452
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/property-x86-isa3-x32.d
@@ -0,0 +1,9 @@
+#source: simple.s
+#as: --x32 -mx86-used-note=no
+#ld: -r -m elf32_x86_64 -z x86-64-v4
+#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 needed: x86-64-v4
diff --git a/ld/testsuite/ld-x86-64/property-x86-isa3.d b/ld/testsuite/ld-x86-64/property-x86-isa3.d
new file mode 100644
index 0000000..5d2fe8a
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/property-x86-isa3.d
@@ -0,0 +1,9 @@
+#source: simple.s
+#as: --64 -defsym __64_bit__=1 -mx86-used-note=no
+#ld: -r -m elf_x86_64 -z x86-64-v4
+#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 needed: x86-64-v4
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk1a-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk1a-x32.d
index 4bb55e5..bc98572 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk1a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk1a-x32.d
@@ -7,5 +7,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk1a.d b/ld/testsuite/ld-x86-64/property-x86-shstk1a.d
index 7882df6..b61d272 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk1a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk1a.d
@@ -7,5 +7,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk1b-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk1b-x32.d
index a815c0d..28807f2 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk1b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk1b-x32.d
@@ -7,5 +7,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk1b.d b/ld/testsuite/ld-x86-64/property-x86-shstk1b.d
index 5977760..d30e15c 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk1b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk1b.d
@@ -7,5 +7,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: <None>
- x86 feature used: x86
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk2-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk2-x32.d
index 7321b60..66839c3 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk2-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk2-x32.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk2.d b/ld/testsuite/ld-x86-64/property-x86-shstk2.d
index e91c100..e75dc3a 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk2.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk2.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
index 3447f55..f73ded6 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
index 0c647c9..a653cf2 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
index 02bffac..893bf31 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
index 0422825..b7be8bc 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
@@ -7,6 +7,6 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
- x86 ISA used: SSE, SSE3, SSE4_1, AVX
+ Properties: x86 ISA needed: x86-64-v2, x86-64-v3, <unknown: 10>, <unknown: 20>
x86 feature used: x86
+ x86 ISA used: x86-64-v3, <unknown: 8>, <unknown: 20>, <unknown: 80>
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk4-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk4-x32.d
index 101fdfc..a04e304 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk4-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk4-x32.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk4.d b/ld/testsuite/ld-x86-64/property-x86-shstk4.d
index c31dc38..04cce50 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk4.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk4.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk5-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk5-x32.d
index 3528489..f78e6f4 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk5-x32.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk5-x32.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk5.d b/ld/testsuite/ld-x86-64/property-x86-shstk5.d
index aac1626..c96782c 100644
--- a/ld/testsuite/ld-x86-64/property-x86-shstk5.d
+++ b/ld/testsuite/ld-x86-64/property-x86-shstk5.d
@@ -7,5 +7,5 @@ Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
Properties: x86 feature: SHSTK
- x86 ISA used: <None>
x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/simple.s b/ld/testsuite/ld-x86-64/simple.s
new file mode 100644
index 0000000..b2b025b
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/simple.s
@@ -0,0 +1,4 @@
+ .text
+ .globl _start
+_start:
+ ret
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 59cad54..9170207 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -323,6 +323,8 @@ run_dump_test "property-x86-4a-x32"
run_dump_test "property-x86-4b-x32"
run_dump_test "property-x86-5"
run_dump_test "property-x86-5-x32"
+run_dump_test "property-x86-6"
+run_dump_test "property-x86-6-x32"
run_dump_test "property-x86-ibt1a"
run_dump_test "property-x86-ibt1b"
run_dump_test "property-x86-ibt1a-x32"
@@ -438,6 +440,12 @@ run_dump_test "pr26711-2"
run_dump_test "pr26711-2-x32"
run_dump_test "pr26711-3"
run_dump_test "pr26711-3-x32"
+run_dump_test "property-x86-isa1"
+run_dump_test "property-x86-isa1-x32"
+run_dump_test "property-x86-isa2"
+run_dump_test "property-x86-isa2-x32"
+run_dump_test "property-x86-isa3"
+run_dump_test "property-x86-isa3-x32"
if ![istarget "x86_64-*-linux*"] {
return