x86: Update GNU_PROPERTY_X86_XXX macros
This patch updates GNU_PROPERTY_X86_XXX macros: 1. GNU_PROPERTY_X86_UINT32_AND_XXX: A 4-byte unsigned integer property. A bit is set if it is set in all relocatable inputs: #define GNU_PROPERTY_X86_UINT32_AND_LO 0xc0000002 #define GNU_PROPERTY_X86_UINT32_AND_HI 0xc0007fff 2. GNU_PROPERTY_X86_UINT32_OR_XXX: A 4-byte unsigned integer property. A bit is set if it is set in any relocatable inputs: #define GNU_PROPERTY_X86_UINT32_OR_LO 0xc0008000 #define GNU_PROPERTY_X86_UINT32_OR_HI 0xc000ffff 3. GNU_PROPERTY_X86_UINT32_OR_AND_XXX: A 4-byte unsigned integer property. A bit is set if it is set in any relocatable inputs and the property is present in all relocatable inputs: #define GNU_PROPERTY_X86_UINT32_OR_AND_LO 0xc0010000 #define GNU_PROPERTY_X86_UINT32_OR_AND_HI 0xc0017fff 4. GNU_PROPERTY_X86_FEATURE_2_NEEDED, GNU_PROPERTY_X86_FEATURE_2_USED and GNU_PROPERTY_X86_FEATURE_2_XXX bits. GNU_PROPERTY_X86_FEATURE_1_AND is unchanged. GNU_PROPERTY_X86_ISA_1_USED and GNU_PROPERTY_X86_ISA_1_NEEDED are updated to better support targeted processors since GNU_PROPERTY_X86_ISA_1_?86 aren't isn't very useful. A new set of GNU_PROPERTY_X86_ISA_1_XXX bits are defined. The previous GNU_PROPERTY_X86_ISA_1_XXX macros are deprecated and renamed to GNU_PROPERTY_X86_COMPAT_ISA_1_XXX. bfd/ * elfxx-x86.c (_bfd_x86_elf_parse_gnu_properties): Handle X86_COMPAT_ISA_1_USED, X86_COMPAT_ISA_1_NEEDED, X86_UINT32_AND_LO, X86_UINT32_AND_HI, X86_UINT32_OR_LO, X86_UINT32_OR_HI, X86_UINT32_OR_AND_LO and X86_UINT32_OR_AND_HI instead of X86_ISA_1_USED, X86_ISA_1_NEEDED and X86_FEATURE_1_AND. (_bfd_x86_elf_merge_gnu_properties): Likewise. (_bfd_x86_elf_link_setup_gnu_properties): Add X86_FEATURE_2_NEEDED instead of X86_ISA_1_NEEDED. (_bfd_x86_elf_link_fixup_gnu_properties): Handle X86_COMPAT_ISA_1_USED, X86_COMPAT_ISA_1_NEEDED, X86_UINT32_AND_LO, X86_UINT32_AND_HI, X86_UINT32_OR_LO, X86_UINT32_OR_HI, X86_UINT32_OR_AND_LO and X86_UINT32_OR_AND_HI instead of X86_ISA_1_USED, X86_ISA_1_NEEDED and X86_FEATURE_1_AND. binutils/ * readelf.c (decode_x86_compat_isa): New function. (decode_x86_feature_2): Likewise. (decode_x86_isa): Updated for new X86_ISA_1_XXX bits. (decode_x86_feature): Renamed to ... (decode_x86_feature_1): This. Remove the type argument. (print_gnu_property_note): Handle X86_COMPAT_ISA_1_USED, X86_COMPAT_ISA_1_NEEDED, X86_UINT32_AND_LO, X86_UINT32_AND_HI, X86_UINT32_OR_LO, X86_UINT32_OR_HI, X86_UINT32_OR_AND_LO and X86_UINT32_OR_AND_HI instead of X86_ISA_1_USED, X86_ISA_1_NEEDED and X86_FEATURE_1_AND. * 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/pr21231b.d: Updated. * 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. include/ * elf/common.h (GNU_PROPERTY_X86_ISA_1_USED): Renamed to ... (GNU_PROPERTY_X86_COMPAT_ISA_1_USED): This. (GNU_PROPERTY_X86_ISA_1_NEEDED): Renamed to ... (GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED): This. (GNU_PROPERTY_X86_ISA_1_XXX): Renamed to ... (GNU_PROPERTY_X86_COMPAT_ISA_1_XXX): This. (GNU_PROPERTY_X86_UINT32_AND_LO): New. (GNU_PROPERTY_X86_UINT32_AND_HI): Likewise. (GNU_PROPERTY_X86_UINT32_OR_LO): Likewise. (GNU_PROPERTY_X86_UINT32_OR_HI): Likewise. (GNU_PROPERTY_X86_UINT32_OR_AND_LO): Likewise. (GNU_PROPERTY_X86_UINT32_OR_AND_HI): Likewise. (GNU_PROPERTY_X86_ISA_1_CMOV): Likewise. (GNU_PROPERTY_X86_ISA_1_SSE): Likewise. (GNU_PROPERTY_X86_ISA_1_SSE2): Likewise. (GNU_PROPERTY_X86_ISA_1_SSE3): Likewise. (GNU_PROPERTY_X86_ISA_1_SSSE3): Likewise. (GNU_PROPERTY_X86_ISA_1_SSE4_1): Likewise. (GNU_PROPERTY_X86_ISA_1_SSE4_2): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX2): Likewise. (GNU_PROPERTY_X86_ISA_1_FMA): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512F): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512CD): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512ER): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512PF): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512VL): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512DQ): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512BW): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512_4FMAPS): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512_4VNNIW): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512_BITALG): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512_IFMA): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512_VBMI): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512_VBMI2): Likewise. (GNU_PROPERTY_X86_ISA_1_AVX512_VNNI): Likewise. (GNU_PROPERTY_X86_FEATURE_2_X86): Likewise. (GNU_PROPERTY_X86_FEATURE_2_X87): Likewise. (GNU_PROPERTY_X86_FEATURE_2_MMX): Likewise. (GNU_PROPERTY_X86_FEATURE_2_XMM): Likewise. (GNU_PROPERTY_X86_FEATURE_2_YMM): Likewise. (GNU_PROPERTY_X86_FEATURE_2_ZMM): Likewise. (GNU_PROPERTY_X86_FEATURE_2_FXSR): Likewise. (GNU_PROPERTY_X86_FEATURE_2_XSAVE): Likewise. (GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT): Likewise. (GNU_PROPERTY_X86_FEATURE_2_XSAVEC): Likewise. (GNU_PROPERTY_X86_FEATURE_1_AND): Updated to (GNU_PROPERTY_X86_UINT32_AND_LO + 0). (GNU_PROPERTY_X86_ISA_1_NEEDED): Defined to (GNU_PROPERTY_X86_UINT32_OR_LO + 0). (GNU_PROPERTY_X86_FEATURE_2_NEEDED): New. Defined to (GNU_PROPERTY_X86_UINT32_OR_LO + 1). (GNU_PROPERTY_X86_ISA_1_USED): Defined to (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0). (GNU_PROPERTY_X86_FEATURE_2_USED): New. Defined to (GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1). ld/ * testsuite/ld-i386/i386.exp: Run pr23372c, pr23372d, pr23486c and pr23486d. * testsuite/ld-i386/pr23372a.s: Update comments. * testsuite/ld-i386/pr23372b.s: Likewise. * testsuite/ld-i386/pr23372c.s: Likewise. * testsuite/ld-x86-64/pr23372a.s: Likewise. * testsuite/ld-x86-64/pr23372b.s: Likewise. * testsuite/ld-x86-64/pr23372c.s: Likewise. * testsuite/ld-x86-64/pr23486a.s: Likewise. * testsuite/ld-x86-64/pr23486b.s: Likewise. * testsuite/ld-i386/pr23372c.d: New file. * testsuite/ld-i386/pr23372d.d: Likewise. * testsuite/ld-i386/pr23486c.d: Likewise. * testsuite/ld-i386/pr23486d.d: Likewise. * testsuite/ld-x86-64/pr23372c-x32.d: Likewise. * testsuite/ld-x86-64/pr23372c.d: Likewise. * testsuite/ld-x86-64/pr23372d-x32.d: Likewise. * testsuite/ld-x86-64/pr23372d.d: 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-x32.d: Likewise. * testsuite/ld-x86-64/pr23486c.d: Likewise. * testsuite/ld-x86-64/pr23486c.s: Likewise. * testsuite/ld-x86-64/pr23486d-x32.d: Likewise. * testsuite/ld-x86-64/pr23486d.d: Likewise. * testsuite/ld-x86-64/pr23486d.s: Likewise. * testsuite/ld-i386/property-3.r: Updated. * testsuite/ld-i386/property-4.r: Likewise. * testsuite/ld-i386/property-5.r: Likewise. * testsuite/ld-i386/property-x86-3.d: Likewise. * testsuite/ld-i386/property-x86-ibt3a.d: Likewise. * testsuite/ld-i386/property-x86-shstk3a.d: Likewise. * testsuite/ld-i386/property-x86-shstk3b.d: Likewise. * testsuite/ld-x86-64/property-3.r: Likewise. * testsuite/ld-x86-64/property-4.r: Likewise. * testsuite/ld-x86-64/property-5.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-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-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-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/property-x86-1.S: Likewise. * testsuite/ld-x86-64/property-x86-2.S: Likewise. * testsuite/ld-x86-64/property-x86-3.s: Likewise. * ld/testsuite/ld-x86-64/x86-64.exp: Run pr23372c, pr23372c-x32, pr23372d, pr23372d-x32, pr23486c, pr23486c-x32, pr23486d and pr23486d-x32.
This commit is contained in:
parent
aa7bca9b2e
commit
a9eafb08b3
@ -1,3 +1,19 @@
|
||||
2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elfxx-x86.c (_bfd_x86_elf_parse_gnu_properties): Handle
|
||||
X86_COMPAT_ISA_1_USED, X86_COMPAT_ISA_1_NEEDED,
|
||||
X86_UINT32_AND_LO, X86_UINT32_AND_HI, X86_UINT32_OR_LO,
|
||||
X86_UINT32_OR_HI, X86_UINT32_OR_AND_LO and X86_UINT32_OR_AND_HI
|
||||
instead of X86_ISA_1_USED, X86_ISA_1_NEEDED and X86_FEATURE_1_AND.
|
||||
(_bfd_x86_elf_merge_gnu_properties): Likewise.
|
||||
(_bfd_x86_elf_link_setup_gnu_properties): Add X86_FEATURE_2_NEEDED
|
||||
instead of X86_ISA_1_NEEDED.
|
||||
(_bfd_x86_elf_link_fixup_gnu_properties): Handle
|
||||
X86_COMPAT_ISA_1_USED, X86_COMPAT_ISA_1_NEEDED, X86_UINT32_AND_LO,
|
||||
X86_UINT32_AND_HI, X86_UINT32_OR_LO, X86_UINT32_OR_HI,
|
||||
X86_UINT32_OR_AND_LO and X86_UINT32_OR_AND_HI instead of
|
||||
X86_ISA_1_USED, X86_ISA_1_NEEDED and X86_FEATURE_1_AND.
|
||||
|
||||
2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elfxx-x86.c (_bfd_x86_elf_parse_gnu_properties): Mask out the
|
||||
|
136
bfd/elfxx-x86.c
136
bfd/elfxx-x86.c
@ -2361,20 +2361,20 @@ _bfd_x86_elf_parse_gnu_properties (bfd *abfd, unsigned int type,
|
||||
{
|
||||
elf_property *prop;
|
||||
|
||||
switch (type)
|
||||
if (type == GNU_PROPERTY_X86_COMPAT_ISA_1_USED
|
||||
|| type == GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED
|
||||
|| (type >= GNU_PROPERTY_X86_UINT32_AND_LO
|
||||
&& type <= GNU_PROPERTY_X86_UINT32_AND_HI)
|
||||
|| (type >= GNU_PROPERTY_X86_UINT32_OR_LO
|
||||
&& type <= GNU_PROPERTY_X86_UINT32_OR_HI)
|
||||
|| (type >= GNU_PROPERTY_X86_UINT32_OR_AND_LO
|
||||
&& type <= GNU_PROPERTY_X86_UINT32_OR_AND_HI))
|
||||
{
|
||||
case GNU_PROPERTY_X86_ISA_1_USED:
|
||||
case GNU_PROPERTY_X86_ISA_1_NEEDED:
|
||||
case GNU_PROPERTY_X86_FEATURE_1_AND:
|
||||
if (datasz != 4)
|
||||
{
|
||||
_bfd_error_handler
|
||||
((type == GNU_PROPERTY_X86_ISA_1_USED
|
||||
? _("error: %pB: <corrupt x86 ISA used size: 0x%x>")
|
||||
: (type == GNU_PROPERTY_X86_ISA_1_NEEDED
|
||||
? _("error: %pB: <corrupt x86 ISA needed size: 0x%x>")
|
||||
: _("error: %pB: <corrupt x86 feature size: 0x%x>"))),
|
||||
abfd, datasz);
|
||||
(_("error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"),
|
||||
abfd, type, datasz);
|
||||
return property_corrupt;
|
||||
}
|
||||
prop = _bfd_elf_get_property (abfd, type, datasz);
|
||||
@ -2383,13 +2383,10 @@ _bfd_x86_elf_parse_gnu_properties (bfd *abfd, unsigned int type,
|
||||
prop->u.number |= (bfd_h_get_32 (abfd, ptr)
|
||||
& ~GNU_PROPERTY_X86_UINT32_VALID);
|
||||
prop->pr_kind = property_number;
|
||||
break;
|
||||
|
||||
default:
|
||||
return property_ignored;
|
||||
return property_number;
|
||||
}
|
||||
|
||||
return property_number;
|
||||
return property_ignored;
|
||||
}
|
||||
|
||||
/* Merge x86 GNU property BPROP with APROP. If APROP isn't NULL,
|
||||
@ -2406,9 +2403,10 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
|
||||
bfd_boolean updated = FALSE;
|
||||
unsigned int pr_type = aprop != NULL ? aprop->pr_type : bprop->pr_type;
|
||||
|
||||
switch (pr_type)
|
||||
if (pr_type == GNU_PROPERTY_X86_COMPAT_ISA_1_USED
|
||||
|| (pr_type >= GNU_PROPERTY_X86_UINT32_OR_AND_LO
|
||||
&& pr_type <= GNU_PROPERTY_X86_UINT32_OR_AND_HI))
|
||||
{
|
||||
case GNU_PROPERTY_X86_ISA_1_USED:
|
||||
if (aprop == NULL || bprop == NULL)
|
||||
{
|
||||
/* Only one of APROP and BPROP can be NULL. */
|
||||
@ -2419,11 +2417,14 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
|
||||
aprop->pr_kind = property_remove;
|
||||
updated = TRUE;
|
||||
}
|
||||
break;
|
||||
return updated;
|
||||
}
|
||||
goto or_property;
|
||||
|
||||
case GNU_PROPERTY_X86_ISA_1_NEEDED:
|
||||
}
|
||||
else if (pr_type == GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED
|
||||
|| (pr_type >= GNU_PROPERTY_X86_UINT32_OR_LO
|
||||
&& pr_type <= GNU_PROPERTY_X86_UINT32_OR_HI))
|
||||
{
|
||||
if (aprop != NULL && bprop != NULL)
|
||||
{
|
||||
or_property:
|
||||
@ -2458,9 +2459,11 @@ or_property:
|
||||
updated = bprop->u.number != 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case GNU_PROPERTY_X86_FEATURE_1_AND:
|
||||
return updated;
|
||||
}
|
||||
else if (pr_type >= GNU_PROPERTY_X86_UINT32_AND_LO
|
||||
&& pr_type <= GNU_PROPERTY_X86_UINT32_AND_HI)
|
||||
{
|
||||
/* Only one of APROP and BPROP can be NULL:
|
||||
1. APROP & BPROP when both APROP and BPROP aren't NULL.
|
||||
2. If APROP is NULL, remove x86 feature.
|
||||
@ -2511,9 +2514,10 @@ or_property:
|
||||
updated = TRUE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return updated;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Never should happen. */
|
||||
abort ();
|
||||
}
|
||||
@ -2598,27 +2602,30 @@ _bfd_x86_elf_link_setup_gnu_properties
|
||||
{
|
||||
/* If the separate code program header is needed, make sure
|
||||
that the first read-only PT_LOAD segment has no code by
|
||||
adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */
|
||||
adding a GNU_PROPERTY_X86_FEATURE_2_NEEDED note. */
|
||||
elf_property_list *list;
|
||||
bfd_boolean need_property = TRUE;
|
||||
|
||||
for (list = elf_properties (ebfd); list; list = list->next)
|
||||
switch (list->property.pr_type)
|
||||
{
|
||||
case GNU_PROPERTY_STACK_SIZE:
|
||||
case GNU_PROPERTY_NO_COPY_ON_PROTECTED:
|
||||
case GNU_PROPERTY_X86_ISA_1_NEEDED:
|
||||
/* These properties won't be removed during merging. */
|
||||
need_property = FALSE;
|
||||
break;
|
||||
}
|
||||
{
|
||||
unsigned int pr_type = list->property.pr_type;
|
||||
if (pr_type == GNU_PROPERTY_STACK_SIZE
|
||||
|| pr_type == GNU_PROPERTY_NO_COPY_ON_PROTECTED
|
||||
|| pr_type == GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED
|
||||
|| (pr_type >= GNU_PROPERTY_X86_UINT32_OR_LO
|
||||
&& pr_type <= GNU_PROPERTY_X86_UINT32_OR_HI))
|
||||
{
|
||||
/* These properties won't be removed during merging. */
|
||||
need_property = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (need_property)
|
||||
{
|
||||
prop = _bfd_elf_get_property (ebfd,
|
||||
GNU_PROPERTY_X86_ISA_1_NEEDED,
|
||||
4);
|
||||
prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
|
||||
prop = _bfd_elf_get_property
|
||||
(ebfd, GNU_PROPERTY_X86_FEATURE_2_NEEDED, 4);
|
||||
prop->u.number = GNU_PROPERTY_X86_FEATURE_2_X86;
|
||||
prop->pr_kind = property_number;
|
||||
}
|
||||
}
|
||||
@ -2971,26 +2978,35 @@ _bfd_x86_elf_link_fixup_gnu_properties (struct bfd_link_info *info,
|
||||
elf_property_list *p;
|
||||
|
||||
for (p = *listp; p; p = p->next)
|
||||
switch (p->property.pr_type)
|
||||
{
|
||||
case GNU_PROPERTY_X86_ISA_1_USED:
|
||||
case GNU_PROPERTY_X86_ISA_1_NEEDED:
|
||||
case GNU_PROPERTY_X86_FEATURE_1_AND:
|
||||
if (p->property.u.number == 0)
|
||||
{
|
||||
/* Remove empty property. */
|
||||
*listp = p->next;
|
||||
continue;
|
||||
}
|
||||
{
|
||||
unsigned int type = p->property.pr_type;
|
||||
if (type == GNU_PROPERTY_X86_COMPAT_ISA_1_USED
|
||||
|| type == GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED
|
||||
|| (type >= GNU_PROPERTY_X86_UINT32_AND_LO
|
||||
&& type <= GNU_PROPERTY_X86_UINT32_AND_HI)
|
||||
|| (type >= GNU_PROPERTY_X86_UINT32_OR_LO
|
||||
&& type <= GNU_PROPERTY_X86_UINT32_OR_HI)
|
||||
|| (type >= GNU_PROPERTY_X86_UINT32_OR_AND_LO
|
||||
&& type <= GNU_PROPERTY_X86_UINT32_OR_AND_HI))
|
||||
{
|
||||
if (p->property.u.number == 0)
|
||||
{
|
||||
/* Remove empty property. */
|
||||
*listp = p->next;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Mark x86-specific properties with X86_UINT32_VALID for
|
||||
non-relocatable output. */
|
||||
if (!(bfd_link_relocatable (info)))
|
||||
p->property.u.number |= GNU_PROPERTY_X86_UINT32_VALID;
|
||||
/* Mark x86-specific properties with X86_UINT32_VALID for
|
||||
non-relocatable output. */
|
||||
if (!bfd_link_relocatable (info))
|
||||
p->property.u.number |= GNU_PROPERTY_X86_UINT32_VALID;
|
||||
|
||||
listp = &p->next;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
listp = &p->next;
|
||||
}
|
||||
else if (type > GNU_PROPERTY_HIPROC)
|
||||
{
|
||||
/* The property list is sorted in order of type. */
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,33 @@
|
||||
2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* readelf.c (decode_x86_compat_isa): New function.
|
||||
(decode_x86_feature_2): Likewise.
|
||||
(decode_x86_isa): Updated for new X86_ISA_1_XXX bits.
|
||||
(decode_x86_feature): Renamed to ...
|
||||
(decode_x86_feature_1): This. Remove the type argument.
|
||||
(print_gnu_property_note): Handle X86_COMPAT_ISA_1_USED,
|
||||
X86_COMPAT_ISA_1_NEEDED, X86_UINT32_AND_LO, X86_UINT32_AND_HI,
|
||||
X86_UINT32_OR_LO, X86_UINT32_OR_HI, X86_UINT32_OR_AND_LO and
|
||||
X86_UINT32_OR_AND_HI instead of X86_ISA_1_USED, X86_ISA_1_NEEDED
|
||||
and X86_FEATURE_1_AND.
|
||||
* 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/pr21231b.d: Updated.
|
||||
* 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.
|
||||
|
||||
2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* readelf.c (print_gnu_property_note): Check the
|
||||
|
@ -16946,6 +16946,77 @@ get_gnu_elf_note_type (unsigned e_type)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
decode_x86_compat_isa (unsigned int bitmask)
|
||||
{
|
||||
while (bitmask)
|
||||
{
|
||||
unsigned int bit = bitmask & (- bitmask);
|
||||
|
||||
bitmask &= ~ bit;
|
||||
switch (bit)
|
||||
{
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_486:
|
||||
printf ("i486");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_586:
|
||||
printf ("586");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_686:
|
||||
printf ("686");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE:
|
||||
printf ("SSE");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2:
|
||||
printf ("SSE2");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3:
|
||||
printf ("SSE3");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3:
|
||||
printf ("SSSE3");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1:
|
||||
printf ("SSE4_1");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2:
|
||||
printf ("SSE4_2");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX:
|
||||
printf ("AVX");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2:
|
||||
printf ("AVX2");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F:
|
||||
printf ("AVX512F");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512CD:
|
||||
printf ("AVX512CD");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512ER:
|
||||
printf ("AVX512ER");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512PF:
|
||||
printf ("AVX512PF");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512VL:
|
||||
printf ("AVX512VL");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512DQ:
|
||||
printf ("AVX512DQ");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512BW:
|
||||
printf ("AVX512BW");
|
||||
break;
|
||||
default: printf (_("<unknown: %x>"), bit); break;
|
||||
}
|
||||
if (bitmask)
|
||||
printf (", ");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
decode_x86_isa (unsigned int bitmask)
|
||||
{
|
||||
@ -16956,24 +17027,78 @@ decode_x86_isa (unsigned int bitmask)
|
||||
bitmask &= ~ bit;
|
||||
switch (bit)
|
||||
{
|
||||
case GNU_PROPERTY_X86_ISA_1_486: printf ("i486"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_586: printf ("586"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_686: printf ("686"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSE: printf ("SSE"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSE2: printf ("SSE2"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSE3: printf ("SSE3"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSSE3: printf ("SSSE3"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSE4_1: printf ("SSE4_1"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSE4_2: printf ("SSE4_2"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX: printf ("AVX"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX2: printf ("AVX2"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512F: printf ("AVX512F"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512CD: printf ("AVX512CD"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512ER: printf ("AVX512ER"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512PF: printf ("AVX512PF"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512VL: printf ("AVX512VL"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512DQ: printf ("AVX512DQ"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512BW: printf ("AVX512BW"); break;
|
||||
case GNU_PROPERTY_X86_ISA_1_CMOV:
|
||||
printf ("CMOV");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSE:
|
||||
printf ("SSE");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSE2:
|
||||
printf ("SSE2");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSE3:
|
||||
printf ("SSE3");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSSE3:
|
||||
printf ("SSSE3");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSE4_1:
|
||||
printf ("SSE4_1");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_SSE4_2:
|
||||
printf ("SSE4_2");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX:
|
||||
printf ("AVX");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX2:
|
||||
printf ("AVX2");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_FMA:
|
||||
printf ("FMA");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512F:
|
||||
printf ("AVX512F");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512CD:
|
||||
printf ("AVX512CD");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512ER:
|
||||
printf ("AVX512ER");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512PF:
|
||||
printf ("AVX512PF");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512VL:
|
||||
printf ("AVX512VL");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512DQ:
|
||||
printf ("AVX512DQ");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512BW:
|
||||
printf ("AVX512BW");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512_4FMAPS:
|
||||
printf ("AVX512_4FMAPS");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512_4VNNIW:
|
||||
printf ("AVX512_4VNNIW");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512_BITALG:
|
||||
printf ("AVX512_BITALG");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512_IFMA:
|
||||
printf ("AVX512_IFMA");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512_VBMI:
|
||||
printf ("AVX512_VBMI");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512_VBMI2:
|
||||
printf ("AVX512_VBMI2");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_ISA_1_AVX512_VNNI:
|
||||
printf ("AVX512_VNNI");
|
||||
break;
|
||||
default: printf (_("<unknown: %x>"), bit); break;
|
||||
}
|
||||
if (bitmask)
|
||||
@ -16982,7 +17107,7 @@ decode_x86_isa (unsigned int bitmask)
|
||||
}
|
||||
|
||||
static void
|
||||
decode_x86_feature (unsigned int type, unsigned int bitmask)
|
||||
decode_x86_feature_1 (unsigned int bitmask)
|
||||
{
|
||||
while (bitmask)
|
||||
{
|
||||
@ -16992,26 +17117,10 @@ decode_x86_feature (unsigned int type, unsigned int bitmask)
|
||||
switch (bit)
|
||||
{
|
||||
case GNU_PROPERTY_X86_FEATURE_1_IBT:
|
||||
switch (type)
|
||||
{
|
||||
case GNU_PROPERTY_X86_FEATURE_1_AND:
|
||||
printf ("IBT");
|
||||
break;
|
||||
default:
|
||||
/* This should never happen. */
|
||||
abort ();
|
||||
}
|
||||
printf ("IBT");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_FEATURE_1_SHSTK:
|
||||
switch (type)
|
||||
{
|
||||
case GNU_PROPERTY_X86_FEATURE_1_AND:
|
||||
printf ("SHSTK");
|
||||
break;
|
||||
default:
|
||||
/* This should never happen. */
|
||||
abort ();
|
||||
}
|
||||
printf ("SHSTK");
|
||||
break;
|
||||
default:
|
||||
printf (_("<unknown: %x>"), bit);
|
||||
@ -17022,6 +17131,53 @@ decode_x86_feature (unsigned int type, unsigned int bitmask)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
decode_x86_feature_2 (unsigned int bitmask)
|
||||
{
|
||||
while (bitmask)
|
||||
{
|
||||
unsigned int bit = bitmask & (- bitmask);
|
||||
|
||||
bitmask &= ~ bit;
|
||||
switch (bit)
|
||||
{
|
||||
case GNU_PROPERTY_X86_FEATURE_2_X86:
|
||||
printf ("x86");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_FEATURE_2_X87:
|
||||
printf ("x87");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_FEATURE_2_MMX:
|
||||
printf ("MMX");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_FEATURE_2_XMM:
|
||||
printf ("XMM");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_FEATURE_2_YMM:
|
||||
printf ("YMM");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_FEATURE_2_ZMM:
|
||||
printf ("ZMM");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_FEATURE_2_FXSR:
|
||||
printf ("FXSR");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_FEATURE_2_XSAVE:
|
||||
printf ("XSAVE");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT:
|
||||
printf ("XSAVEOPT");
|
||||
break;
|
||||
case GNU_PROPERTY_X86_FEATURE_2_XSAVEC:
|
||||
printf ("XSAVEC");
|
||||
break;
|
||||
default: printf (_("<unknown: %x>"), bit); break;
|
||||
}
|
||||
if (bitmask)
|
||||
printf (", ");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
print_gnu_property_note (Filedata * filedata, Elf_Internal_Note * pnote)
|
||||
{
|
||||
@ -17115,7 +17271,50 @@ print_gnu_property_note (Filedata * filedata, Elf_Internal_Note * pnote)
|
||||
else
|
||||
{
|
||||
printf ("x86 feature: ");
|
||||
decode_x86_feature (type, bitmask);
|
||||
decode_x86_feature_1 (bitmask);
|
||||
}
|
||||
goto next;
|
||||
|
||||
case GNU_PROPERTY_X86_FEATURE_2_USED:
|
||||
if (datasz != 4)
|
||||
printf (_("x86 feature used: <corrupt length: %#x> "),
|
||||
datasz);
|
||||
else
|
||||
{
|
||||
printf ("x86 feature used: ");
|
||||
decode_x86_feature_2 (bitmask);
|
||||
}
|
||||
goto next;
|
||||
|
||||
case GNU_PROPERTY_X86_FEATURE_2_NEEDED:
|
||||
if (datasz != 4)
|
||||
printf (_("x86 feature needed: <corrupt length: %#x> "), datasz);
|
||||
else
|
||||
{
|
||||
printf ("x86 feature needed: ");
|
||||
decode_x86_feature_2 (bitmask);
|
||||
}
|
||||
goto next;
|
||||
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_USED:
|
||||
if (datasz != 4)
|
||||
printf (_("x86 ISA used: <corrupt length: %#x> "),
|
||||
datasz);
|
||||
else
|
||||
{
|
||||
printf ("x86 ISA used: ");
|
||||
decode_x86_compat_isa (bitmask);
|
||||
}
|
||||
goto next;
|
||||
|
||||
case GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED:
|
||||
if (datasz != 4)
|
||||
printf (_("x86 ISA needed: <corrupt length: %#x> "),
|
||||
datasz);
|
||||
else
|
||||
{
|
||||
printf ("x86 ISA needed: ");
|
||||
decode_x86_compat_isa (bitmask);
|
||||
}
|
||||
goto next;
|
||||
|
||||
|
@ -8,5 +8,5 @@ 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: i486, 586, 686, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2, AVX512F, AVX512CD, AVX512ER, AVX512PF, AVX512VL, AVX512DQ, AVX512BW, <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>, <unknown: 80000000>
|
||||
x86 ISA needed: i486, 586, 686, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2, AVX512F, AVX512CD, AVX512ER, AVX512PF, AVX512VL
|
||||
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, <unknown: 1000000>, <unknown: 2000000>, <unknown: 4000000>, <unknown: 8000000>, <unknown: 10000000>, <unknown: 20000000>, <unknown: 40000000>, <unknown: 80000000>
|
||||
x86 ISA needed: CMOV, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2, FMA, AVX512F, AVX512CD, AVX512ER, AVX512PF, AVX512VL, AVX512DQ
|
||||
|
@ -19,14 +19,14 @@
|
||||
.long 0 /* pr_datasz. */
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 4f - 3f /* pr_datasz. */
|
||||
3:
|
||||
.long -1
|
||||
4:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 4f - 3f /* pr_datasz. */
|
||||
3:
|
||||
.long 0xffff
|
||||
|
@ -8,5 +8,5 @@ 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: i486, 586, 686, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2, AVX512F, AVX512CD, AVX512ER, AVX512PF, AVX512VL, AVX512DQ, AVX512BW, <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>, <unknown: 80000000>
|
||||
x86 ISA needed: i486, 586, 686, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2, AVX512F, AVX512CD, AVX512ER, AVX512PF, AVX512VL
|
||||
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, <unknown: 1000000>, <unknown: 2000000>, <unknown: 4000000>, <unknown: 8000000>, <unknown: 10000000>, <unknown: 20000000>, <unknown: 40000000>, <unknown: 80000000>
|
||||
x86 ISA needed: CMOV, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2, FMA, AVX512F, AVX512CD, AVX512ER, AVX512PF, AVX512VL, AVX512DQ
|
||||
|
@ -19,14 +19,14 @@
|
||||
.long 0 /* pr_datasz. */
|
||||
.p2align 3
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 4f - 3f /* pr_datasz. */
|
||||
3:
|
||||
.long -1
|
||||
4:
|
||||
.p2align 3
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 4f - 3f /* pr_datasz. */
|
||||
3:
|
||||
.long 0xffff
|
||||
|
@ -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: 586, SSE, SSE3, SSE4_1
|
||||
x86 ISA needed: SSE3, SSE4_1
|
||||
Properties: x86 ISA needed: SSE4_1, AVX
|
||||
x86 ISA used: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -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: 586, SSE, SSE3, SSE4_1
|
||||
x86 ISA needed: SSE3, SSE4_1
|
||||
Properties: x86 ISA needed: SSE4_1, AVX
|
||||
x86 ISA used: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -17,7 +17,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa
|
||||
@ -48,7 +48,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa0
|
||||
@ -79,7 +79,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa0
|
||||
|
@ -17,7 +17,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa
|
||||
|
@ -8,4 +8,4 @@
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 ISA used: 586, SSE
|
||||
Properties: x86 ISA used: SSE, SSE3
|
||||
|
@ -8,4 +8,4 @@
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 ISA used: 586, SSE
|
||||
Properties: x86 ISA used: SSE, SSE3
|
||||
|
@ -48,7 +48,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa
|
||||
@ -79,7 +79,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa0
|
||||
@ -110,7 +110,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* 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: x86 ISA used: 586, SSE, SSE3, SSE4_1
|
||||
x86 ISA needed: SSE3, SSE4_1
|
||||
Properties: x86 ISA needed: SSE4_1, AVX
|
||||
x86 ISA used: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -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: 586, SSE, SSE3, SSE4_1
|
||||
x86 ISA needed: SSE3, SSE4_1
|
||||
Properties: x86 ISA needed: SSE4_1, AVX
|
||||
x86 ISA used: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -9,5 +9,5 @@ Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x00000030 NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: stack size: 0xffffffff
|
||||
x86 ISA used: 586, SSE, SSE3, SSE4_1
|
||||
x86 ISA needed: SSE3, SSE4_1
|
||||
x86 ISA needed: SSE4_1, AVX
|
||||
x86 ISA used: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -9,5 +9,5 @@ Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x00000024 NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: stack size: 0xffffffff
|
||||
x86 ISA used: 586, SSE, SSE3, SSE4_1
|
||||
x86 ISA needed: SSE3, SSE4_1
|
||||
x86 ISA needed: SSE4_1, AVX
|
||||
x86 ISA used: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -1,3 +1,62 @@
|
||||
2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elf/common.h (GNU_PROPERTY_X86_ISA_1_USED): Renamed to ...
|
||||
(GNU_PROPERTY_X86_COMPAT_ISA_1_USED): This.
|
||||
(GNU_PROPERTY_X86_ISA_1_NEEDED): Renamed to ...
|
||||
(GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED): This.
|
||||
(GNU_PROPERTY_X86_ISA_1_XXX): Renamed to ...
|
||||
(GNU_PROPERTY_X86_COMPAT_ISA_1_XXX): This.
|
||||
(GNU_PROPERTY_X86_UINT32_AND_LO): New.
|
||||
(GNU_PROPERTY_X86_UINT32_AND_HI): Likewise.
|
||||
(GNU_PROPERTY_X86_UINT32_OR_LO): Likewise.
|
||||
(GNU_PROPERTY_X86_UINT32_OR_HI): Likewise.
|
||||
(GNU_PROPERTY_X86_UINT32_OR_AND_LO): Likewise.
|
||||
(GNU_PROPERTY_X86_UINT32_OR_AND_HI): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_CMOV): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_SSE): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_SSE2): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_SSE3): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_SSSE3): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_SSE4_1): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_SSE4_2): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX2): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_FMA): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512F): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512CD): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512ER): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512PF): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512VL): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512DQ): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512BW): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512_4FMAPS): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512_4VNNIW): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512_BITALG): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512_IFMA): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512_VBMI): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512_VBMI2): Likewise.
|
||||
(GNU_PROPERTY_X86_ISA_1_AVX512_VNNI): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_2_X86): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_2_X87): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_2_MMX): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_2_XMM): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_2_YMM): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_2_ZMM): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_2_FXSR): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_2_XSAVE): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_2_XSAVEC): Likewise.
|
||||
(GNU_PROPERTY_X86_FEATURE_1_AND): Updated to
|
||||
(GNU_PROPERTY_X86_UINT32_AND_LO + 0).
|
||||
(GNU_PROPERTY_X86_ISA_1_NEEDED): Defined to
|
||||
(GNU_PROPERTY_X86_UINT32_OR_LO + 0).
|
||||
(GNU_PROPERTY_X86_FEATURE_2_NEEDED): New. Defined to
|
||||
(GNU_PROPERTY_X86_UINT32_OR_LO + 1).
|
||||
(GNU_PROPERTY_X86_ISA_1_USED): Defined to
|
||||
(GNU_PROPERTY_X86_UINT32_OR_AND_LO + 0).
|
||||
(GNU_PROPERTY_X86_FEATURE_2_USED): New. Defined to
|
||||
(GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1).
|
||||
|
||||
2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elf/common.h (GNU_PROPERTY_X86_UINT32_VALID): New.
|
||||
|
@ -748,34 +748,98 @@
|
||||
/* Application-specific semantics, hi */
|
||||
#define GNU_PROPERTY_HIUSER 0xffffffff
|
||||
|
||||
#define GNU_PROPERTY_X86_ISA_1_USED 0xc0000000
|
||||
#define GNU_PROPERTY_X86_ISA_1_NEEDED 0xc0000001
|
||||
#define GNU_PROPERTY_X86_FEATURE_1_AND 0xc0000002
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_USED 0xc0000000
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED 0xc0000001
|
||||
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_486 (1U << 0)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_586 (1U << 1)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_686 (1U << 2)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE (1U << 3)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE2 (1U << 4)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE3 (1U << 5)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSSE3 (1U << 6)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_1 (1U << 7)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_SSE4_2 (1U << 8)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX (1U << 9)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX2 (1U << 10)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512F (1U << 11)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512CD (1U << 12)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512ER (1U << 13)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512PF (1U << 14)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512VL (1U << 15)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512DQ (1U << 16)
|
||||
#define GNU_PROPERTY_X86_COMPAT_ISA_1_AVX512BW (1U << 17)
|
||||
|
||||
/* A 4-byte unsigned integer property: A bit is set if it is set in all
|
||||
relocatable inputs. */
|
||||
#define GNU_PROPERTY_X86_UINT32_AND_LO 0xc0000002
|
||||
#define GNU_PROPERTY_X86_UINT32_AND_HI 0xc0007fff
|
||||
|
||||
/* A 4-byte unsigned integer property: A bit is set if it is set in any
|
||||
relocatable inputs. */
|
||||
#define GNU_PROPERTY_X86_UINT32_OR_LO 0xc0008000
|
||||
#define GNU_PROPERTY_X86_UINT32_OR_HI 0xc000ffff
|
||||
|
||||
/* A 4-byte unsigned integer property: A bit is set if it is set in any
|
||||
relocatable inputs and the property is present in all relocatable
|
||||
inputs. */
|
||||
#define GNU_PROPERTY_X86_UINT32_OR_AND_LO 0xc0010000
|
||||
#define GNU_PROPERTY_X86_UINT32_OR_AND_HI 0xc0017fff
|
||||
|
||||
#define GNU_PROPERTY_X86_FEATURE_1_AND \
|
||||
(GNU_PROPERTY_X86_UINT32_AND_LO + 0)
|
||||
|
||||
#define GNU_PROPERTY_X86_ISA_1_NEEDED \
|
||||
(GNU_PROPERTY_X86_UINT32_OR_LO + 0)
|
||||
#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)
|
||||
#define GNU_PROPERTY_X86_FEATURE_2_USED \
|
||||
(GNU_PROPERTY_X86_UINT32_OR_AND_LO + 1)
|
||||
|
||||
/* Set by linker to indicate that the property is valid. */
|
||||
#define GNU_PROPERTY_X86_UINT32_VALID (1U << 31)
|
||||
|
||||
#define GNU_PROPERTY_X86_ISA_1_486 (1U << 0)
|
||||
#define GNU_PROPERTY_X86_ISA_1_586 (1U << 1)
|
||||
#define GNU_PROPERTY_X86_ISA_1_686 (1U << 2)
|
||||
#define GNU_PROPERTY_X86_ISA_1_SSE (1U << 3)
|
||||
#define GNU_PROPERTY_X86_ISA_1_SSE2 (1U << 4)
|
||||
#define GNU_PROPERTY_X86_ISA_1_SSE3 (1U << 5)
|
||||
#define GNU_PROPERTY_X86_ISA_1_SSSE3 (1U << 6)
|
||||
#define GNU_PROPERTY_X86_ISA_1_SSE4_1 (1U << 7)
|
||||
#define GNU_PROPERTY_X86_ISA_1_SSE4_2 (1U << 8)
|
||||
#define GNU_PROPERTY_X86_ISA_1_AVX (1U << 9)
|
||||
#define GNU_PROPERTY_X86_ISA_1_AVX2 (1U << 10)
|
||||
#define GNU_PROPERTY_X86_ISA_1_AVX512F (1U << 11)
|
||||
#define GNU_PROPERTY_X86_ISA_1_AVX512CD (1U << 12)
|
||||
#define GNU_PROPERTY_X86_ISA_1_AVX512ER (1U << 13)
|
||||
#define GNU_PROPERTY_X86_ISA_1_AVX512PF (1U << 14)
|
||||
#define GNU_PROPERTY_X86_ISA_1_AVX512VL (1U << 15)
|
||||
#define GNU_PROPERTY_X86_ISA_1_AVX512DQ (1U << 16)
|
||||
#define GNU_PROPERTY_X86_ISA_1_AVX512BW (1U << 17)
|
||||
#define GNU_PROPERTY_X86_FEATURE_1_IBT (1U << 0)
|
||||
#define GNU_PROPERTY_X86_FEATURE_1_SHSTK (1U << 1)
|
||||
|
||||
#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_FEATURE_2_X86 (1U << 0)
|
||||
#define GNU_PROPERTY_X86_FEATURE_2_X87 (1U << 1)
|
||||
#define GNU_PROPERTY_X86_FEATURE_2_MMX (1U << 2)
|
||||
#define GNU_PROPERTY_X86_FEATURE_2_XMM (1U << 3)
|
||||
#define GNU_PROPERTY_X86_FEATURE_2_YMM (1U << 4)
|
||||
#define GNU_PROPERTY_X86_FEATURE_2_ZMM (1U << 5)
|
||||
#define GNU_PROPERTY_X86_FEATURE_2_FXSR (1U << 6)
|
||||
#define GNU_PROPERTY_X86_FEATURE_2_XSAVE (1U << 7)
|
||||
#define GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT (1U << 8)
|
||||
#define GNU_PROPERTY_X86_FEATURE_2_XSAVEC (1U << 9)
|
||||
|
||||
/* Values used in GNU .note.ABI-tag notes (NT_GNU_ABI_TAG). */
|
||||
#define GNU_ABI_TAG_LINUX 0
|
||||
|
61
ld/ChangeLog
61
ld/ChangeLog
@ -1,3 +1,64 @@
|
||||
2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* testsuite/ld-i386/i386.exp: Run pr23372c, pr23372d, pr23486c
|
||||
and pr23486d.
|
||||
* testsuite/ld-i386/pr23372a.s: Update comments.
|
||||
* testsuite/ld-i386/pr23372b.s: Likewise.
|
||||
* testsuite/ld-i386/pr23372c.s: Likewise.
|
||||
* testsuite/ld-x86-64/pr23372a.s: Likewise.
|
||||
* testsuite/ld-x86-64/pr23372b.s: Likewise.
|
||||
* testsuite/ld-x86-64/pr23372c.s: Likewise.
|
||||
* testsuite/ld-x86-64/pr23486a.s: Likewise.
|
||||
* testsuite/ld-x86-64/pr23486b.s: Likewise.
|
||||
* testsuite/ld-i386/pr23372c.d: New file.
|
||||
* testsuite/ld-i386/pr23372d.d: Likewise.
|
||||
* testsuite/ld-i386/pr23486c.d: Likewise.
|
||||
* testsuite/ld-i386/pr23486d.d: Likewise.
|
||||
* testsuite/ld-x86-64/pr23372c-x32.d: Likewise.
|
||||
* testsuite/ld-x86-64/pr23372c.d: Likewise.
|
||||
* testsuite/ld-x86-64/pr23372d-x32.d: Likewise.
|
||||
* testsuite/ld-x86-64/pr23372d.d: 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-x32.d: Likewise.
|
||||
* testsuite/ld-x86-64/pr23486c.d: Likewise.
|
||||
* testsuite/ld-x86-64/pr23486c.s: Likewise.
|
||||
* testsuite/ld-x86-64/pr23486d-x32.d: Likewise.
|
||||
* testsuite/ld-x86-64/pr23486d.d: Likewise.
|
||||
* testsuite/ld-x86-64/pr23486d.s: Likewise.
|
||||
* testsuite/ld-i386/property-3.r: Updated.
|
||||
* testsuite/ld-i386/property-4.r: Likewise.
|
||||
* testsuite/ld-i386/property-5.r: Likewise.
|
||||
* testsuite/ld-i386/property-x86-3.d: Likewise.
|
||||
* testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
|
||||
* testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
|
||||
* testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
|
||||
* testsuite/ld-x86-64/property-3.r: Likewise.
|
||||
* testsuite/ld-x86-64/property-4.r: Likewise.
|
||||
* testsuite/ld-x86-64/property-5.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-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-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-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/property-x86-1.S: Likewise.
|
||||
* testsuite/ld-x86-64/property-x86-2.S: Likewise.
|
||||
* testsuite/ld-x86-64/property-x86-3.s: Likewise.
|
||||
* ld/testsuite/ld-x86-64/x86-64.exp: Run pr23372c, pr23372c-x32,
|
||||
pr23372d, pr23372d-x32, pr23486c, pr23486c-x32, pr23486d and
|
||||
pr23486d-x32.
|
||||
|
||||
2018-08-24 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* emultempl/elf32.em (before_allocation): Don't restore
|
||||
|
@ -462,8 +462,12 @@ run_dump_test "pr23189"
|
||||
run_dump_test "pr23194"
|
||||
run_dump_test "pr23372a"
|
||||
run_dump_test "pr23372b"
|
||||
run_dump_test "pr23372c"
|
||||
run_dump_test "pr23372d"
|
||||
run_dump_test "pr23486a"
|
||||
run_dump_test "pr23486b"
|
||||
run_dump_test "pr23486c"
|
||||
run_dump_test "pr23486d"
|
||||
|
||||
if { !([istarget "i?86-*-linux*"]
|
||||
|| [istarget "i?86-*-gnu*"]
|
||||
|
@ -8,7 +8,7 @@
|
||||
.asciz "GNU" /* vendor name. */
|
||||
1:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
/* GNU_PROPERTY_X86_COMPAT_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
|
@ -8,7 +8,7 @@
|
||||
.asciz "GNU" /* vendor name. */
|
||||
1:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
/* GNU_PROPERTY_X86_COMPAT_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
|
5
ld/testsuite/ld-i386/pr23372c.d
Normal file
5
ld/testsuite/ld-i386/pr23372c.d
Normal file
@ -0,0 +1,5 @@
|
||||
#source: ../ld-x86-64/pr23372d.s
|
||||
#source: ../ld-x86-64/pr23372e.s
|
||||
#as: --32
|
||||
#ld: -r -m elf_i386
|
||||
#readelf: -n
|
@ -8,7 +8,7 @@
|
||||
.asciz "GNU" /* vendor name. */
|
||||
1:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
/* GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
|
5
ld/testsuite/ld-i386/pr23372d.d
Normal file
5
ld/testsuite/ld-i386/pr23372d.d
Normal file
@ -0,0 +1,5 @@
|
||||
#source: ../ld-x86-64/pr23372d.s
|
||||
#source: ../ld-x86-64/pr23372f.s
|
||||
#as: --32
|
||||
#ld: -r -m elf_i386
|
||||
#readelf: -n
|
10
ld/testsuite/ld-i386/pr23486c.d
Normal file
10
ld/testsuite/ld-i386/pr23486c.d
Normal file
@ -0,0 +1,10 @@
|
||||
#source: ../ld-x86-64/pr23486c.s
|
||||
#source: ../ld-x86-64/pr23486d.s
|
||||
#as: --32
|
||||
#ld: -r -m elf_i386
|
||||
#readelf: -n
|
||||
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 ISA needed: CMOV, SSE
|
10
ld/testsuite/ld-i386/pr23486d.d
Normal file
10
ld/testsuite/ld-i386/pr23486d.d
Normal file
@ -0,0 +1,10 @@
|
||||
#source: ../ld-x86-64/pr23486d.s
|
||||
#source: ../ld-x86-64/pr23486c.s
|
||||
#as: --32
|
||||
#ld: -r -m elf_i386
|
||||
#readelf: -n
|
||||
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 ISA needed: CMOV, SSE
|
@ -3,5 +3,5 @@ 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: i486, 586
|
||||
x86 ISA needed: CMOV, SSE
|
||||
#pass
|
||||
|
@ -3,5 +3,5 @@ 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: i486, 586, SSE
|
||||
x86 ISA needed: CMOV, SSE, SSE3
|
||||
#pass
|
||||
|
@ -3,5 +3,5 @@ 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: i486, 586, SSE
|
||||
x86 ISA needed: CMOV, SSE, SSE3
|
||||
#pass
|
||||
|
@ -16,14 +16,14 @@
|
||||
5:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa
|
||||
5:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0x3
|
||||
|
@ -9,14 +9,14 @@
|
||||
1:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0x3
|
||||
5:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa
|
||||
|
@ -5,5 +5,5 @@
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 ISA used: i486, 586, SSE2, SSE3
|
||||
x86 ISA needed: 586, SSE, SSE3, SSE4_1
|
||||
Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
|
||||
x86 ISA used: CMOV, SSE, SSSE3, SSE4_1
|
||||
|
@ -9,14 +9,14 @@
|
||||
1:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0x3
|
||||
5:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa
|
||||
@ -35,14 +35,14 @@
|
||||
1:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0x30
|
||||
5:
|
||||
.p2align 2
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa0
|
||||
|
@ -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: 586, SSE, SSE3, SSE4_1
|
||||
Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -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: 586, SSE, SSE3, SSE4_1
|
||||
Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -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: 586, SSE, SSE3, SSE4_1
|
||||
Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -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: 586, SSE, SSE3, SSE4_1
|
||||
Properties: x86 ISA needed: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -16,7 +16,7 @@
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
/* GNU_PROPERTY_X86_COMPAT_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
|
@ -16,7 +16,7 @@
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
/* GNU_PROPERTY_X86_COMPAT_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
|
5
ld/testsuite/ld-x86-64/pr23372c-x32.d
Normal file
5
ld/testsuite/ld-x86-64/pr23372c-x32.d
Normal file
@ -0,0 +1,5 @@
|
||||
#source: pr23372d.s
|
||||
#source: pr23372e.s
|
||||
#as: --x32
|
||||
#ld: -r -m elf32_x86_64
|
||||
#readelf: -n
|
5
ld/testsuite/ld-x86-64/pr23372c.d
Normal file
5
ld/testsuite/ld-x86-64/pr23372c.d
Normal file
@ -0,0 +1,5 @@
|
||||
#source: pr23372d.s
|
||||
#source: pr23372e.s
|
||||
#as: --64 -defsym __64_bit__=1
|
||||
#ld: -r -m elf_x86_64
|
||||
#readelf: -n
|
@ -16,7 +16,7 @@
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
/* GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
|
5
ld/testsuite/ld-x86-64/pr23372d-x32.d
Normal file
5
ld/testsuite/ld-x86-64/pr23372d-x32.d
Normal file
@ -0,0 +1,5 @@
|
||||
#source: pr23372d.s
|
||||
#source: pr23372f.s
|
||||
#as: --x32
|
||||
#ld: -r -m elf32_x86_64
|
||||
#readelf: -n
|
5
ld/testsuite/ld-x86-64/pr23372d.d
Normal file
5
ld/testsuite/ld-x86-64/pr23372d.d
Normal file
@ -0,0 +1,5 @@
|
||||
#source: pr23372d.s
|
||||
#source: pr23372f.s
|
||||
#as: --64 -defsym __64_bit__=1
|
||||
#ld: -r -m elf_x86_64
|
||||
#readelf: -n
|
30
ld/testsuite/ld-x86-64/pr23372d.s
Normal file
30
ld/testsuite/ld-x86-64/pr23372d.s
Normal file
@ -0,0 +1,30 @@
|
||||
.section ".note.gnu.property", "a"
|
||||
.ifdef __64_bit__
|
||||
.p2align 3
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
.long 1f - 0f /* name length. */
|
||||
.long 4f - 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_ISA_1_USED */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
.long 0x0
|
||||
3:
|
||||
.ifdef __64_bit__
|
||||
.p2align 3
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
4:
|
30
ld/testsuite/ld-x86-64/pr23372e.s
Normal file
30
ld/testsuite/ld-x86-64/pr23372e.s
Normal file
@ -0,0 +1,30 @@
|
||||
.section ".note.gnu.property", "a"
|
||||
.ifdef __64_bit__
|
||||
.p2align 3
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
.long 1f - 0f /* name length. */
|
||||
.long 4f - 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_ISA_1_USED */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
.long 0x0
|
||||
3:
|
||||
.ifdef __64_bit__
|
||||
.p2align 3
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
4:
|
30
ld/testsuite/ld-x86-64/pr23372f.s
Normal file
30
ld/testsuite/ld-x86-64/pr23372f.s
Normal file
@ -0,0 +1,30 @@
|
||||
.section ".note.gnu.property", "a"
|
||||
.ifdef __64_bit__
|
||||
.p2align 3
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
.long 1f - 0f /* name length. */
|
||||
.long 4f - 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_ISA_1_NEEDED */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
.long 0x0
|
||||
3:
|
||||
.ifdef __64_bit__
|
||||
.p2align 3
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
4:
|
@ -16,7 +16,7 @@
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
/* GNU_PROPERTY_X86_COMPAT_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
|
@ -16,7 +16,7 @@
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
/* GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
|
10
ld/testsuite/ld-x86-64/pr23486c-x32.d
Normal file
10
ld/testsuite/ld-x86-64/pr23486c-x32.d
Normal file
@ -0,0 +1,10 @@
|
||||
#source: pr23486c.s
|
||||
#source: pr23486d.s
|
||||
#as: --x32
|
||||
#ld: -r -m elf32_x86_64
|
||||
#readelf: -n
|
||||
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 ISA needed: CMOV, SSE
|
10
ld/testsuite/ld-x86-64/pr23486c.d
Normal file
10
ld/testsuite/ld-x86-64/pr23486c.d
Normal file
@ -0,0 +1,10 @@
|
||||
#source: pr23486c.s
|
||||
#source: pr23486d.s
|
||||
#as: --64 -defsym __64_bit__=1
|
||||
#ld: -r -m elf_x86_64
|
||||
#readelf: -n
|
||||
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 ISA needed: CMOV, SSE
|
30
ld/testsuite/ld-x86-64/pr23486c.s
Normal file
30
ld/testsuite/ld-x86-64/pr23486c.s
Normal file
@ -0,0 +1,30 @@
|
||||
.section ".note.gnu.property", "a"
|
||||
.ifdef __64_bit__
|
||||
.p2align 3
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
.long 1f - 0f /* name length. */
|
||||
.long 4f - 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_ISA_1_USED */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
.long 0xa
|
||||
3:
|
||||
.ifdef __64_bit__
|
||||
.p2align 3
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
4:
|
10
ld/testsuite/ld-x86-64/pr23486d-x32.d
Normal file
10
ld/testsuite/ld-x86-64/pr23486d-x32.d
Normal file
@ -0,0 +1,10 @@
|
||||
#source: pr23486d.s
|
||||
#source: pr23486c.s
|
||||
#as: --x32
|
||||
#ld: -r -m elf32_x86_64
|
||||
#readelf: -n
|
||||
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 ISA needed: CMOV, SSE
|
10
ld/testsuite/ld-x86-64/pr23486d.d
Normal file
10
ld/testsuite/ld-x86-64/pr23486d.d
Normal file
@ -0,0 +1,10 @@
|
||||
#source: pr23486d.s
|
||||
#source: pr23486c.s
|
||||
#as: --64 -defsym __64_bit__=1
|
||||
#ld: -r -m elf_x86_64
|
||||
#readelf: -n
|
||||
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 ISA needed: CMOV, SSE
|
30
ld/testsuite/ld-x86-64/pr23486d.s
Normal file
30
ld/testsuite/ld-x86-64/pr23486d.s
Normal file
@ -0,0 +1,30 @@
|
||||
.section ".note.gnu.property", "a"
|
||||
.ifdef __64_bit__
|
||||
.p2align 3
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
.long 1f - 0f /* name length. */
|
||||
.long 4f - 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_ISA_1_NEEDED */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 3f - 2f /* pr_datasz. */
|
||||
2:
|
||||
.long 0x3
|
||||
3:
|
||||
.ifdef __64_bit__
|
||||
.p2align 3
|
||||
.else
|
||||
.p2align 2
|
||||
.endif
|
||||
4:
|
@ -3,5 +3,5 @@ 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: i486, 586
|
||||
x86 ISA needed: CMOV, SSE
|
||||
#pass
|
||||
|
@ -3,5 +3,5 @@ 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: i486, 586, SSE
|
||||
x86 ISA needed: CMOV, SSE, SSE3
|
||||
#pass
|
||||
|
@ -3,5 +3,5 @@ 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: i486, 586, SSE
|
||||
x86 ISA needed: CMOV, SSE, SSE3
|
||||
#pass
|
||||
|
@ -21,14 +21,14 @@
|
||||
5:
|
||||
.p2align ALIGN
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa
|
||||
5:
|
||||
.p2align ALIGN
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0x3
|
||||
|
@ -14,14 +14,14 @@
|
||||
1:
|
||||
.p2align ALIGN
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0x3
|
||||
5:
|
||||
.p2align ALIGN
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa
|
||||
|
@ -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: 586, SSE, SSE3, SSE4_1
|
||||
x86 ISA needed: i486, 586, SSE2, SSE3
|
||||
Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
|
||||
x86 ISA used: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -5,5 +5,5 @@
|
||||
Displaying notes found in: .note.gnu.property
|
||||
Owner Data size Description
|
||||
GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
|
||||
Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
|
||||
x86 ISA needed: i486, 586, SSE2, SSE3
|
||||
Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
|
||||
x86 ISA used: SSE, SSE3, SSE4_1, AVX
|
||||
|
@ -17,7 +17,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa
|
||||
@ -28,7 +28,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0x3
|
||||
@ -59,7 +59,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_USED */
|
||||
.long 0xc0000000 /* pr_type. */
|
||||
.long 0xc0010000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0xa0
|
||||
@ -70,7 +70,7 @@
|
||||
.p2align 2
|
||||
.endif
|
||||
/* GNU_PROPERTY_X86_ISA_1_NEEDED */
|
||||
.long 0xc0000001 /* pr_type. */
|
||||
.long 0xc0008000 /* pr_type. */
|
||||
.long 5f - 4f /* pr_datasz. */
|
||||
4:
|
||||
.long 0x30
|
||||
|
@ -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: i486, 586, SSE2, SSE3
|
||||
Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
|
||||
|
@ -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: i486, 586, SSE2, SSE3
|
||||
Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
|
||||
|
@ -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: i486, 586, SSE2, SSE3
|
||||
Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
|
||||
|
@ -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: i486, 586, SSE2, SSE3
|
||||
Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
|
||||
|
@ -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: i486, 586, SSE2, SSE3
|
||||
Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
|
||||
|
@ -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: i486, 586, SSE2, SSE3
|
||||
Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
|
||||
|
@ -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: i486, 586, SSE2, SSE3
|
||||
Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
|
||||
|
@ -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: i486, 586, SSE2, SSE3
|
||||
Properties: x86 ISA needed: CMOV, SSE, SSSE3, SSE4_1
|
||||
|
@ -403,10 +403,18 @@ run_dump_test "pr23372a"
|
||||
run_dump_test "pr23372a-x32"
|
||||
run_dump_test "pr23372b"
|
||||
run_dump_test "pr23372b-x32"
|
||||
run_dump_test "pr23372c"
|
||||
run_dump_test "pr23372c-x32"
|
||||
run_dump_test "pr23372d"
|
||||
run_dump_test "pr23372d-x32"
|
||||
run_dump_test "pr23486a"
|
||||
run_dump_test "pr23486a-x32"
|
||||
run_dump_test "pr23486b"
|
||||
run_dump_test "pr23486b-x32"
|
||||
run_dump_test "pr23486c"
|
||||
run_dump_test "pr23486c-x32"
|
||||
run_dump_test "pr23486d"
|
||||
run_dump_test "pr23486d-x32"
|
||||
|
||||
if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
|
||||
return
|
||||
|
Loading…
x
Reference in New Issue
Block a user