forked from Imagelibrary/binutils-gdb
* ld/testsuite/ld-arm/attr-merge-2.attr: Update for changes in attribute output.
* ld/testsuite/ld-arm/attr-merge-3.attr: Likewise. * ld/testsuite/ld-arm/attr-merge-vfp-1.d: Likewise. * ld/testsuite/ld-arm/attr-merge-vfp-1r.d: Likewise. * ld/testsuite/ld-arm/attr-merge-vfp-2.d: Likewise. * ld/testsuite/ld-arm/attr-merge-vfp-2r.d: Likewise. * ld/testsuite/ld-arm/attr-merge-vfp-3.d: Likewise. * ld/testsuite/ld-arm/attr-merge-vfp-3r.d: Likewise. * ld/testsuite/ld-arm/attr-merge-vfp-4.d: Likeiwse. * ld/testsuite/ld-arm/attr-merge-vfp-4r.d: Likewise. * ld/testsuite/ld-arm/attr-merge-vfp-5.d: Likewise. * ld/testsuite/ld-arm/attr-merge-vfp-5r.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-00.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-02.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-04.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-20.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-22.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-40.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d: Likewise. * ld/testsuite/ld-arm/attr-merge-wchar-44.d: Likewise. * ld/testsuite/ld-arm/attr-merge.attr: Likewise. * binutils/readelf.c (arm_attr_tag_FP_arch): Rename from arm_attr_tag_VFP_arch. (arm_attr_tag_ABI_align8_needed): Remove. (arm_attr_tag_ABI_align8_preserved): Remove. (arm_attr_tag_ABI_HardFP_use): Update text strings. (arm_attr_public_tags): Add strings for ABI v2.08 attribute tags. (display_arm_attribute): Add decoding of ABI v2.08 attributes. * include/elf/arm.h (Tag_FP_arch, Tag_ABI_align_needed, Tag_ABI_align_preserved, Tag_FP_HP_extension): Add new ABI attribute tags. * gas/config/tc-arm.c (arm_convert_symbolic_attribute): Add support for new tag names in v2.08 of ARM ABI. * gas/doc/c-arm.texi: Document new tag names in ABI. * gas/testsuite/gas/arm/attr-mcpu.d: Update for new attribute tag names. * gas/testsuite/gas/arm/attr-mfpu-arm1020e.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-arm1020t.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-neon.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfp.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfp10.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfp3.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfp9.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfpv2.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfpv3.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfpv4.d: Likewise. * gas/testsuite/gas/arm/attr-mfpu-vfpxd.d: Likewise. * gas/testsuite/gas/arm/attr-names.d: Add test to make sure all attribute names are recognised. * gas/testsuite/gas/arm/attr-names.s: Likewise.
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
2010-04-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||||
|
||||
* readelf.c (arm_attr_tag_FP_arch): Rename from arm_attr_tag_VFP_arch.
|
||||
(arm_attr_tag_ABI_align8_needed): Remove.
|
||||
(arm_attr_tag_ABI_align8_preserved): Remove.
|
||||
(arm_attr_tag_ABI_HardFP_use): Update text strings.
|
||||
(arm_attr_public_tags): Add strings for ABI v2.08 attribute tags.
|
||||
(display_arm_attribute): Add decoding of ABI v2.08 attributes.
|
||||
|
||||
2010-04-13 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
PR binutils/11419
|
||||
|
||||
@@ -9801,7 +9801,7 @@ static const char * arm_attr_tag_CPU_arch[] =
|
||||
static const char * arm_attr_tag_ARM_ISA_use[] = {"No", "Yes"};
|
||||
static const char * arm_attr_tag_THUMB_ISA_use[] =
|
||||
{"No", "Thumb-1", "Thumb-2"};
|
||||
static const char * arm_attr_tag_VFP_arch[] =
|
||||
static const char * arm_attr_tag_FP_arch[] =
|
||||
{"No", "VFPv1", "VFPv2", "VFPv3", "VFPv3-D16", "VFPv4", "VFPv4-D16"};
|
||||
static const char * arm_attr_tag_WMMX_arch[] = {"No", "WMMXv1", "WMMXv2"};
|
||||
static const char * arm_attr_tag_Advanced_SIMD_arch[] =
|
||||
@@ -9826,13 +9826,10 @@ static const char * arm_attr_tag_ABI_FP_exceptions[] = {"Unused", "Needed"};
|
||||
static const char * arm_attr_tag_ABI_FP_user_exceptions[] = {"Unused", "Needed"};
|
||||
static const char * arm_attr_tag_ABI_FP_number_model[] =
|
||||
{"Unused", "Finite", "RTABI", "IEEE 754"};
|
||||
static const char * arm_attr_tag_ABI_align8_needed[] = {"No", "Yes", "4-byte"};
|
||||
static const char * arm_attr_tag_ABI_align8_preserved[] =
|
||||
{"No", "Yes, except leaf SP", "Yes"};
|
||||
static const char * arm_attr_tag_ABI_enum_size[] =
|
||||
{"Unused", "small", "int", "forced to int"};
|
||||
static const char * arm_attr_tag_ABI_HardFP_use[] =
|
||||
{"As Tag_VFP_arch", "SP only", "DP only", "SP and DP"};
|
||||
{"As Tag_FP_arch", "SP only", "DP only", "SP and DP"};
|
||||
static const char * arm_attr_tag_ABI_VFP_args[] =
|
||||
{"AAPCS", "VFP registers", "custom"};
|
||||
static const char * arm_attr_tag_ABI_WMMX_args[] =
|
||||
@@ -9844,7 +9841,7 @@ static const char * arm_attr_tag_ABI_FP_optimization_goals[] =
|
||||
{"None", "Prefer Speed", "Aggressive Speed", "Prefer Size",
|
||||
"Aggressive Size", "Prefer Accuracy", "Aggressive Accuracy"};
|
||||
static const char * arm_attr_tag_CPU_unaligned_access[] = {"None", "v6"};
|
||||
static const char * arm_attr_tag_VFP_HP_extension[] =
|
||||
static const char * arm_attr_tag_FP_HP_extension[] =
|
||||
{"Not Allowed", "Allowed"};
|
||||
static const char * arm_attr_tag_ABI_FP_16bit_format[] =
|
||||
{"None", "IEEE 754", "Alternative Format"};
|
||||
@@ -9870,7 +9867,7 @@ static arm_attr_public_tag arm_attr_public_tags[] =
|
||||
{7, "CPU_arch_profile", 0, NULL},
|
||||
LOOKUP(8, ARM_ISA_use),
|
||||
LOOKUP(9, THUMB_ISA_use),
|
||||
LOOKUP(10, VFP_arch),
|
||||
LOOKUP(10, FP_arch),
|
||||
LOOKUP(11, WMMX_arch),
|
||||
LOOKUP(12, Advanced_SIMD_arch),
|
||||
LOOKUP(13, PCS_config),
|
||||
@@ -9884,8 +9881,8 @@ static arm_attr_public_tag arm_attr_public_tags[] =
|
||||
LOOKUP(21, ABI_FP_exceptions),
|
||||
LOOKUP(22, ABI_FP_user_exceptions),
|
||||
LOOKUP(23, ABI_FP_number_model),
|
||||
LOOKUP(24, ABI_align8_needed),
|
||||
LOOKUP(25, ABI_align8_preserved),
|
||||
{24, "ABI_align_needed", 0, NULL},
|
||||
{25, "ABI_align_preserved", 0, NULL},
|
||||
LOOKUP(26, ABI_enum_size),
|
||||
LOOKUP(27, ABI_HardFP_use),
|
||||
LOOKUP(28, ABI_VFP_args),
|
||||
@@ -9894,7 +9891,7 @@ static arm_attr_public_tag arm_attr_public_tags[] =
|
||||
LOOKUP(31, ABI_FP_optimization_goals),
|
||||
{32, "compatibility", 0, NULL},
|
||||
LOOKUP(34, CPU_unaligned_access),
|
||||
LOOKUP(36, VFP_HP_extension),
|
||||
LOOKUP(36, FP_HP_extension),
|
||||
LOOKUP(38, ABI_FP_16bit_format),
|
||||
LOOKUP(42, MPextension_use),
|
||||
LOOKUP(44, DIV_use),
|
||||
@@ -9946,10 +9943,49 @@ display_arm_attribute (unsigned char * p)
|
||||
case 'A': printf ("Application\n"); break;
|
||||
case 'R': printf ("Realtime\n"); break;
|
||||
case 'M': printf ("Microcontroller\n"); break;
|
||||
case 'S': printf ("Application or Realtime\n"); break;
|
||||
default: printf ("??? (%d)\n", val); break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 24: /* Tag_align_needed. */
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
switch (val)
|
||||
{
|
||||
case 0: printf ("None\n"); break;
|
||||
case 1: printf ("8-byte\n"); break;
|
||||
case 2: printf ("4-byte\n"); break;
|
||||
case 3: printf ("??? 3\n"); break;
|
||||
default:
|
||||
if (val <= 12)
|
||||
printf ("8-byte and up to %d-byte extended\n",
|
||||
1 << val);
|
||||
else
|
||||
printf ("??? (%d)\n", val);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 25: /* Tag_align_preserved. */
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
switch (val)
|
||||
{
|
||||
case 0: printf ("None\n"); break;
|
||||
case 1: printf ("8-byte, except leaf SP\n"); break;
|
||||
case 2: printf ("8-byte\n"); break;
|
||||
case 3: printf ("??? 3\n"); break;
|
||||
default:
|
||||
if (val <= 12)
|
||||
printf ("8-byte and up to %d-byte extended\n",
|
||||
1 << val);
|
||||
else
|
||||
printf ("??? (%d)\n", val);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 32: /* Tag_compatibility. */
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
|
||||
Reference in New Issue
Block a user