x86: Support GNU_PROPERTY_X86_ISA_1_V[234] marker
GCC 11 supports -march=x86-64-v[234] to enable x86 micro-architecture ISA levels: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97250 Update GNU_PROPERTY_X86_ISA_1_XXX macros: https://gitlab.com/x86-psABIs/x86-64-ABI/-/merge_requests/13 in x86 ELF binaries to indicate that micro-architecture ISA levels required to execute the binary: #define GNU_PROPERTY_X86_ISA_1_NEEDED (GNU_PROPERTY_X86_UINT32_OR_LO + 2) #define GNU_PROPERTY_X86_ISA_1_USED (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 2) #define GNU_PROPERTY_X86_ISA_1_V2 (1U << 0) #define GNU_PROPERTY_X86_ISA_1_V3 (1U << 1) #define GNU_PROPERTY_X86_ISA_1_V4 (1U << 2) The previous GNU_PROPERTY_X86_ISA_1_XXX macros are deprecated and renamed to GNU_PROPERTY_X86_COMPAT_2_ISA_1_XXX. In addition to EM_X86_64, GNU_PROPERTY_X86_ISA_1_V[234] marker can be used by ld.so to detect the x86-64-v4 shared library placed in an x86-64-v2 directory by mistake on an x86-64-v2 machine to avoid crashes on x86-64-v4 instructions. Add -z x86-64-v[234] linker command line option to mark x86-64-v[234] ISA level as needed. Also add #define GNU_PROPERTY_X86_FEATURE_2_MASK (1U << 11) for mask registers. bfd/ PR gas/26703 * elf-linker-x86.h (elf_linker_x86_params): Add isa_level. * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Merge GNU_PROPERTY_X86_ISA_1_V[234]. (_bfd_x86_elf_link_setup_gnu_properties): Generate GNU_PROPERTY_X86_ISA_1_V[234] for -z x86-64-v[234]. binutils/ PR gas/26703 * readelf.c (decode_x86_compat_2_isa): New function. (decode_x86_isa): Updated for new X86_ISA_1_XXX bits. (decode_x86_feature_1): Handle GNU_PROPERTY_X86_FEATURE_2_MASK. (print_gnu_property_note): Handle X86_COMPAT_2_ISA_1_USED, and X86_COMPAT_2_ISA_1_NEEDED. * testsuite/binutils-all/i386/pr21231b.s: Updated to the current GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED values. * testsuite/binutils-all/x86-64/pr21231b.s: Likewise. * testsuite/binutils-all/x86-64/pr23494a.s: Likewise. * testsuite/binutils-all/x86-64/pr23494b.s: Likewise. * testsuite/binutils-all/x86-64/pr23494c.s: Likewise. * testsuite/binutils-all/i386/empty.d: Updated. * testsuite/binutils-all/i386/ibt.d: Likewise. * testsuite/binutils-all/i386/pr21231a.d: Likewise. * testsuite/binutils-all/i386/pr21231b.d: Likewise. * testsuite/binutils-all/i386/shstk.d: Likewise. * testsuite/binutils-all/x86-64/empty-x32.d: Likewise. * testsuite/binutils-all/x86-64/empty.d: Likewise. * testsuite/binutils-all/x86-64/ibt-x32.d: Likewise. * testsuite/binutils-all/x86-64/ibt.d: Likewise. * testsuite/binutils-all/x86-64/pr21231a.d: Likewise. * testsuite/binutils-all/x86-64/pr21231b.d: Likewise. * testsuite/binutils-all/x86-64/pr23494a-x32.d: Likewise. * testsuite/binutils-all/x86-64/pr23494a.d: Likewise. * testsuite/binutils-all/x86-64/pr23494c-x32.d: Likewise. * testsuite/binutils-all/x86-64/pr23494c.d: Likewise. * testsuite/binutils-all/x86-64/pr23494d-x32.d: Likewise. * testsuite/binutils-all/x86-64/pr23494d.d: Likewise. * testsuite/binutils-all/x86-64/pr23494e-x32.d: Likewise. * testsuite/binutils-all/x86-64/pr23494e.d: Likewise. * testsuite/binutils-all/x86-64/shstk-x32.d: Likewise. * testsuite/binutils-all/x86-64/shstk.d: Likewise. gas/ PR gas/26703 * config/tc-i386.c (xstate): Add xstate_mask. (md_assemble): Check i.types[j], instead of i.tm.operand_types[j], for xstate. Set xstate_mask, instead of xstate_zmm, for RegMask. (output_insn): Update for GNU_PROPERTY_X86_ISA_1_V[234]. Update xstate for mask register and VSIB. * testsuite/gas/i386/i386.exp: Run more GNU_PROPERTY tests. * testsuite/gas/i386/property-1.s: Updated to the current GNU_PROPERTY_X86_ISA_1_USED value. * testsuite/gas/i386/property-2.s: Only keep cmove. * testsuite/gas/i386/property-3.s: Changed to addsubpd. * testsuite/gas/i386/property-1.d: Updated. * testsuite/gas/i386/property-2.d: Likewise. * testsuite/gas/i386/property-3.d: Likewise. * testsuite/gas/i386/property-4.d: Likewise. * testsuite/gas/i386/property-5.d: Likewise. * testsuite/gas/i386/property-6.d: Likewise. * testsuite/gas/i386/x86-64-property-1.d: Likewise. * testsuite/gas/i386/x86-64-property-2.d: Likewise. * testsuite/gas/i386/x86-64-property-3.d: Likewise. * testsuite/gas/i386/x86-64-property-4.d: Likewise. * testsuite/gas/i386/x86-64-property-5.d: Likewise. * testsuite/gas/i386/x86-64-property-6.d: Likewise. * testsuite/gas/i386/x86-64-property-7.d: Likewise. * testsuite/gas/i386/x86-64-property-8.d: Likewise. * testsuite/gas/i386/x86-64-property-9.d: Likewise. * testsuite/gas/i386/property-11.d: New file. * testsuite/gas/i386/property-11.s: Likewise. * testsuite/gas/i386/property-12.d: Likewise. * testsuite/gas/i386/property-12.s: Likewise. * testsuite/gas/i386/property-13.d: Likewise. * testsuite/gas/i386/property-13.s: Likewise. * testsuite/gas/i386/x86-64-property-11.d: Likewise. * testsuite/gas/i386/x86-64-property-12.d: Likewise. * testsuite/gas/i386/x86-64-property-13.d: Likewise. * testsuite/gas/i386/x86-64-property-14.d: Likewise. * testsuite/gas/i386/x86-64-property-14.s: Likewise. include/ PR gas/26703 * elf/common.h (GNU_PROPERTY_X86_ISA_1_USED): Renamed to ... (GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED): This. (GNU_PROPERTY_X86_ISA_1_NEEDED): Renamed to ... (GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED): This. (GNU_PROPERTY_X86_ISA_1_XXX): Renamed to ... (GNU_PROPERTY_X86_COMPAT_2_ISA_1_XXX): This. (GNU_PROPERTY_X86_ISA_1_NEEDED): New. (GNU_PROPERTY_X86_ISA_1_USED): Likewise. (GNU_PROPERTY_X86_ISA_1_V2): Likewise. (GNU_PROPERTY_X86_ISA_1_V3): Likewise. (GNU_PROPERTY_X86_ISA_1_V4): Likewise. (GNU_PROPERTY_X86_FEATURE_2_MASK): Likewise. ld/ PR gas/26703 * NEWS: Mention -z x86-64-v[234]. * ld.texi: Document -z x86-64-v[234]. * emulparams/elf32_x86_64.sh: Use x86-64-level.sh. * emulparams/elf_i386.sh: Likewise. * emulparams/elf_x86_64.sh: Likewise. * emulparams/x86-64-level.sh: New file. * testsuite/ld-elf/x86-feature-1a.rd: Update. * testsuite/ld-elf/x86-feature-1b.rd: Likewise. * testsuite/ld-elf/x86-feature-1c.rd: Likewise. * testsuite/ld-elf/x86-feature-1d.rd: Likewise. * testsuite/ld-elf/x86-feature-1e.rd: Likewise. * testsuite/ld-i386/pr23372c.d: Likewise. * testsuite/ld-i386/pr23486c.d: Likewise. * testsuite/ld-i386/pr23486d.d: Likewise. * testsuite/ld-i386/pr24322a.d: Likewise. * testsuite/ld-i386/pr24322b.d: Likewise. * testsuite/ld-i386/property-1a.r: Likewise. * testsuite/ld-i386/property-2a.r: Likewise. * testsuite/ld-i386/property-3.r: Likewise. * testsuite/ld-i386/property-3a.r: Likewise. * testsuite/ld-i386/property-4.r: Likewise. * testsuite/ld-i386/property-4a.r: Likewise. * testsuite/ld-i386/property-5.r: Likewise. * testsuite/ld-i386/property-5a.r: Likewise. * testsuite/ld-i386/property-7a.r: Likewise. * testsuite/ld-i386/property-x86-3.d: Likewise. * testsuite/ld-i386/property-x86-4a.d: Likewise. * testsuite/ld-i386/property-x86-5.d: Likewise. * testsuite/ld-i386/property-x86-cet1.d: Likewise. * testsuite/ld-i386/property-x86-cet2a.d: Likewise. * testsuite/ld-i386/property-x86-cet5a.d: Likewise. * testsuite/ld-i386/property-x86-cet5b.d: Likewise. * testsuite/ld-i386/property-x86-ibt1a.d: Likewise. * testsuite/ld-i386/property-x86-ibt1b.d: Likewise. * testsuite/ld-i386/property-x86-ibt2.d: Likewise. * testsuite/ld-i386/property-x86-ibt3a.d: Likewise. * testsuite/ld-i386/property-x86-ibt3b.d: Likewise. * testsuite/ld-i386/property-x86-ibt4.d: Likewise. * testsuite/ld-i386/property-x86-ibt5.d: Likewise. * testsuite/ld-i386/property-x86-shstk1a.d: Likewise. * testsuite/ld-i386/property-x86-shstk1b.d: Likewise. * testsuite/ld-i386/property-x86-shstk2.d: Likewise. * testsuite/ld-i386/property-x86-shstk3a.d: Likewise. * testsuite/ld-i386/property-x86-shstk3b.d: Likewise. * testsuite/ld-i386/property-x86-shstk4.d: Likewise. * testsuite/ld-i386/property-x86-shstk5.d: Likewise. * testsuite/ld-x86-64/pr23372c-x32.d: Likewise. * testsuite/ld-x86-64/pr23372c.d: Likewise. * testsuite/ld-x86-64/pr23486c.d: Likewise. * testsuite/ld-x86-64/pr23486d-x32.d: Likewise. * testsuite/ld-x86-64/pr23486d.d: Likewise. * testsuite/ld-x86-64/pr24322a-x32.d: Likewise. * testsuite/ld-x86-64/pr24322a.d: Likewise. * testsuite/ld-x86-64/pr24322b-x32.d: Likewise. * testsuite/ld-x86-64/pr24322b.d: Likewise. * testsuite/ld-x86-64/pr24458a-x32.d: Likewise. * testsuite/ld-x86-64/pr24458a.d: Likewise. * testsuite/ld-x86-64/pr24458b-x32.d: Likewise. * testsuite/ld-x86-64/pr24458b.d: Likewise. * testsuite/ld-x86-64/pr24458c-x32.d: Likewise. * testsuite/ld-x86-64/pr24458c.d: Likewise. * testsuite/ld-x86-64/property-1a.r: Likewise. * testsuite/ld-x86-64/property-2a.r: Likewise. * testsuite/ld-x86-64/property-3.r: Likewise. * testsuite/ld-x86-64/property-3a.r: Likewise. * testsuite/ld-x86-64/property-4.r: Likewise. * testsuite/ld-x86-64/property-4a.r: Likewise. * testsuite/ld-x86-64/property-5.r: Likewise. * testsuite/ld-x86-64/property-5a.r: Likewise. * testsuite/ld-x86-64/property-7a.r: Likewise. * testsuite/ld-x86-64/property-x86-3-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-3.d: Likewise. * testsuite/ld-x86-64/property-x86-4a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-4a.d: Likewise. * testsuite/ld-x86-64/property-x86-5-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-5.d: Likewise. * testsuite/ld-x86-64/property-x86-cet1-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet1.d: Likewise. * testsuite/ld-x86-64/property-x86-cet2a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet2a.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5a.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-cet5b.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt1a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt1a.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt1b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt1b.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt2-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt2.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt4-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt4.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt5-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-ibt5.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk1a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk1a.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk1b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk1b.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk2-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk2.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk4-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk4.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk5-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-shstk5.d: Likewise. * testsuite/ld-i386/i386.exp: Run property-x86-6, property-x86-isa1, property-x86-isa2 and property-x86-isa3. * testsuite/ld-i386/property-x86-1.S: Updated to the current GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED values. * testsuite/ld-i386/property-x86-2.S: Likewise. * testsuite/ld-i386/property-x86-3.s: Likewise. * testsuite/ld-x86-64/pr23372d.s: Likewise. * testsuite/ld-x86-64/pr23372e.s: Likewise. * testsuite/ld-x86-64/pr23372f.s: Likewise. * testsuite/ld-x86-64/pr23486c.s: Likewise. * testsuite/ld-x86-64/pr23486d.s: Likewise. * testsuite/ld-x86-64/property-x86-1.S: Likewise. * testsuite/ld-x86-64/property-x86-2.S: Likewise. * testsuite/ld-x86-64/property-x86-3.s: Likewise. * testsuite/ld-x86-64/property-x86-5a.s: Likewise. * testsuite/ld-x86-64/property-x86-5b.s: Likewise. * testsuite/ld-i386/property-x86-6.d: New file. * testsuite/ld-i386/property-x86-isa1.d: Likewise. * testsuite/ld-i386/property-x86-isa2.d: Likewise. * testsuite/ld-i386/property-x86-isa3.d: Likewise. * testsuite/ld-x86-64/property-x86-6-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-6.d: Likewise. * testsuite/ld-x86-64/property-x86-6.s: Likewise. * testsuite/ld-x86-64/property-x86-isa1-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-isa1.d: Likewise. * testsuite/ld-x86-64/property-x86-isa1.s: Likewise. * testsuite/ld-x86-64/property-x86-isa2-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-isa2.d: Likewise. * testsuite/ld-x86-64/property-x86-isa3-x32.d: Likewise. * testsuite/ld-x86-64/property-x86-isa3.d: Likewise. * testsuite/ld-x86-64/simple.s: Likewise. * ld/testsuite/ld-x86-64/x86-64.exp: Run property-x86-6, property-x86-6-x32, property-x86-isa1, property-x86-isa1-x32, property-x86-isa2, property-x86-isa2-x32, property-x86-isa3-x32 and property-x86-isa3.
This commit is contained in:
parent
3d87245cc1
commit
32930e4edb
211 changed files with 1149 additions and 404 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
@ -18324,6 +18324,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)
|
||||
{
|
||||
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
9
gas/testsuite/gas/i386/property-11.d
Normal file
9
gas/testsuite/gas/i386/property-11.d
Normal file
|
@ -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
|
2
gas/testsuite/gas/i386/property-11.s
Normal file
2
gas/testsuite/gas/i386/property-11.s
Normal file
|
@ -0,0 +1,2 @@
|
|||
.text
|
||||
vaesenclast %xmm4,%xmm6,%xmm2
|
9
gas/testsuite/gas/i386/property-12.d
Normal file
9
gas/testsuite/gas/i386/property-12.d
Normal file
|
@ -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
|
2
gas/testsuite/gas/i386/property-12.s
Normal file
2
gas/testsuite/gas/i386/property-12.s
Normal file
|
@ -0,0 +1,2 @@
|
|||
.text
|
||||
vpdpwssd %xmm2, %xmm4, %xmm2{%k3}
|
9
gas/testsuite/gas/i386/property-13.d
Normal file
9
gas/testsuite/gas/i386/property-13.d
Normal file
|
@ -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
|
2
gas/testsuite/gas/i386/property-13.s
Normal file
2
gas/testsuite/gas/i386/property-13.s
Normal file
|
@ -0,0 +1,2 @@
|
|||
.text
|
||||
vscatterpf1dps 123(%ebp,%zmm7,8){%k1}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
.text
|
||||
cvtpi2ps (%eax), %xmm0
|
||||
addsubpd (%eax), %xmm0
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
10
gas/testsuite/gas/i386/x86-64-property-11.d
Normal file
10
gas/testsuite/gas/i386/x86-64-property-11.d
Normal file
|
@ -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
|
10
gas/testsuite/gas/i386/x86-64-property-12.d
Normal file
10
gas/testsuite/gas/i386/x86-64-property-12.d
Normal file
|
@ -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
|
10
gas/testsuite/gas/i386/x86-64-property-13.d
Normal file
10
gas/testsuite/gas/i386/x86-64-property-13.d
Normal file
|
@ -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
|
9
gas/testsuite/gas/i386/x86-64-property-14.d
Normal file
9
gas/testsuite/gas/i386/x86-64-property-14.d
Normal file
|
@ -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
|
2
gas/testsuite/gas/i386/x86-64-property-14.s
Normal file
2
gas/testsuite/gas/i386/x86-64-property-14.s
Normal file
|
@ -0,0 +1,2 @@
|
|||
.text
|
||||
sahf
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
152
ld/ChangeLog
152
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
|
||||
|
|
3
ld/NEWS
3
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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
18
ld/emulparams/x86-64-level.sh
Normal file
18
ld/emulparams/x86-64-level.sh
Normal file
|
@ -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"
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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*"]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue