mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-24 02:24:46 +08:00
bfd:
* elf32-tic6x.c (elf32_tic6x_obj_attrs_arg_type): Except for Tag_ABI_compatibility, treat odd tags as strings and even ones as integers. (elf32_tic6x_obj_attrs_order, elf32_tic6x_tag_to_array_alignment, elf32_tic6x_array_alignment_to_tag): New. (elf32_tic6x_merge_attributes): Handle more attributes. Set type for merged attributes. (elf_backend_obj_attrs_order): Define. binutils: * readelf.c (display_tic6x_attribute): Handle more attributes. gas: * config/tc-tic6x.c (OPTION_MPID, OPTION_MPIC, OPTION_MNO_PIC): New enum values. (md_longopts): Add options mpid, mpic and mno-pic. (tic6x_pid_type, tic6x_pid, tic6x_pic, tic6x_pid_type_table, tic6x_pid_types, tic6x_use_pid): New. (md_parse_option): Handle new options. (md_show_usage): Output help text for new options. (tic6x_set_attributes): Set PID and PIC attributes. * doc/as.texinfo: Document -mpid=, -mpic and -mno-pic. * doc/c-tic6x.texi (TIC6X Options): Likewise. gas/testsuite: * gas/tic6x/attr-array-directive-1.d, gas/tic6x/attr-array-directive-1.s, gas/tic6x/attr-array-directive-2.d, gas/tic6x/attr-array-directive-2.s, gas/tic6x/attr-array-directive-3.d, gas/tic6x/attr-array-directive-3.s, gas/tic6x/attr-array-directive-4.d, gas/tic6x/attr-array-directive-4.s, gas/tic6x/attr-conformance-directive-1.d, gas/tic6x/attr-conformance-directive-1.s, gas/tic6x/attr-conformance-directive-2.d, gas/tic6x/attr-conformance-directive-2.s, gas/tic6x/attr-pic-directive-1.d, gas/tic6x/attr-pic-directive-1.s, gas/tic6x/attr-pic-directive-2.d, gas/tic6x/attr-pic-directive-2.s, gas/tic6x/attr-pic-opts-mno-pic.d, gas/tic6x/attr-pic-opts-mpic.d, gas/tic6x/attr-pid-directive-1.d, gas/tic6x/attr-pid-directive-1.s, gas/tic6x/attr-pid-directive-2.d, gas/tic6x/attr-pid-directive-2.s, gas/tic6x/attr-pid-opts-mpid-far.d, gas/tic6x/attr-pid-opts-mpid-near.d, gas/tic6x/attr-pid-opts-mpid-no.d, gas/tic6x/attr-stack-directive-1.d, gas/tic6x/attr-stack-directive-1.s, gas/tic6x/attr-stack-directive-2.d, gas/tic6x/attr-stack-directive-2.s, gas/tic6x/attr-wchar-directive-1.d, gas/tic6x/attr-wchar-directive-1.s, gas/tic6x/attr-wchar-directive-2.d, gas/tic6x/attr-wchar-directive-2.s: New tests. include/elf: * tic6x-attrs.h (Tag_ABI_wchar_t, Tag_ABI_stack_align_needed, Tag_ABI_stack_align_preserved, Tag_ABI_PID, Tag_ABI_PIC, Tag_ABI_array_object_alignment, Tag_ABI_array_object_align_expected, Tag_ABI_conformance): Define. ld/testsuite: * ld-tic6x/attr-array-16-16.d, ld-tic6x/attr-array-16-4.d, ld-tic6x/attr-array-16-416.d, ld-tic6x/attr-array-16-48.d, ld-tic6x/attr-array-16-8.d, ld-tic6x/attr-array-16-816.d, ld-tic6x/attr-array-16.s, ld-tic6x/attr-array-4-16.d, ld-tic6x/attr-array-4-4.d, ld-tic6x/attr-array-4-416.d, ld-tic6x/attr-array-4-48.d, ld-tic6x/attr-array-4-8.d, ld-tic6x/attr-array-4-816.d, ld-tic6x/attr-array-4.s, ld-tic6x/attr-array-416-16.d, ld-tic6x/attr-array-416-4.d, ld-tic6x/attr-array-416-416.d, ld-tic6x/attr-array-416-48.d, ld-tic6x/attr-array-416-8.d, ld-tic6x/attr-array-416-816.d, ld-tic6x/attr-array-416.s, ld-tic6x/attr-array-48-16.d, ld-tic6x/attr-array-48-4.d, ld-tic6x/attr-array-48-416.d, ld-tic6x/attr-array-48-48.d, ld-tic6x/attr-array-48-8.d, ld-tic6x/attr-array-48-816.d, ld-tic6x/attr-array-48.s, ld-tic6x/attr-array-8-16.d, ld-tic6x/attr-array-8-4.d, ld-tic6x/attr-array-8-416.d, ld-tic6x/attr-array-8-48.d, ld-tic6x/attr-array-8-8.d, ld-tic6x/attr-array-8-816.d, ld-tic6x/attr-array-8.s, ld-tic6x/attr-array-816-16.d, ld-tic6x/attr-array-816-4.d, ld-tic6x/attr-array-816-416.d, ld-tic6x/attr-array-816-48.d, ld-tic6x/attr-array-816-8.d, ld-tic6x/attr-array-816-816.d, ld-tic6x/attr-array-816.s, ld-tic6x/attr-conformance-10-10.d, ld-tic6x/attr-conformance-10-11.d, ld-tic6x/attr-conformance-10-none.d, ld-tic6x/attr-conformance-10.s, ld-tic6x/attr-conformance-11-10.d, ld-tic6x/attr-conformance-11-11.d, ld-tic6x/attr-conformance-11-none.d, ld-tic6x/attr-conformance-11.s, ld-tic6x/attr-conformance-none-10.d, ld-tic6x/attr-conformance-none-11.d, ld-tic6x/attr-conformance-none-none.d, ld-tic6x/attr-conformance-none.s, ld-tic6x/attr-pic-0.s, ld-tic6x/attr-pic-00.d, ld-tic6x/attr-pic-01.d, ld-tic6x/attr-pic-1.s, ld-tic6x/attr-pic-10.d, ld-tic6x/attr-pic-11.d, ld-tic6x/attr-pid-0.s, ld-tic6x/attr-pid-00.d, ld-tic6x/attr-pid-01.d, ld-tic6x/attr-pid-02.d, ld-tic6x/attr-pid-1.s, ld-tic6x/attr-pid-10.d, ld-tic6x/attr-pid-11.d, ld-tic6x/attr-pid-12.d, ld-tic6x/attr-pid-2.s, ld-tic6x/attr-pid-20.d, ld-tic6x/attr-pid-21.d, ld-tic6x/attr-pid-22.d, ld-tic6x/attr-stack-16-16.d, ld-tic6x/attr-stack-16-8.d, ld-tic6x/attr-stack-16-816.d, ld-tic6x/attr-stack-16.s, ld-tic6x/attr-stack-8-16.d, ld-tic6x/attr-stack-8-8.d, ld-tic6x/attr-stack-8-816.d, ld-tic6x/attr-stack-8.s, ld-tic6x/attr-stack-816-16.d, ld-tic6x/attr-stack-816-8.d, ld-tic6x/attr-stack-816-816.d, ld-tic6x/attr-stack-816.s, ld-tic6x/attr-wchar-0.s, ld-tic6x/attr-wchar-00.d, ld-tic6x/attr-wchar-01.d, ld-tic6x/attr-wchar-02.d, ld-tic6x/attr-wchar-1.s, ld-tic6x/attr-wchar-10.d, ld-tic6x/attr-wchar-11.d, ld-tic6x/attr-wchar-12.d, ld-tic6x/attr-wchar-2.s, ld-tic6x/attr-wchar-20.d, ld-tic6x/attr-wchar-21.d, ld-tic6x/attr-wchar-22.d: New tests.
This commit is contained in:
parent
34734a010b
commit
877791769e
@ -1,3 +1,14 @@
|
||||
2010-11-02 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* elf32-tic6x.c (elf32_tic6x_obj_attrs_arg_type): Except for
|
||||
Tag_ABI_compatibility, treat odd tags as strings and even ones as
|
||||
integers.
|
||||
(elf32_tic6x_obj_attrs_order, elf32_tic6x_tag_to_array_alignment,
|
||||
elf32_tic6x_array_alignment_to_tag): New.
|
||||
(elf32_tic6x_merge_attributes): Handle more attributes. Set type
|
||||
for merged attributes.
|
||||
(elf_backend_obj_attrs_order): Define.
|
||||
|
||||
2010-10-29 Maciej W. Rozycki <macro@codesourcery.com>
|
||||
|
||||
* elfxx-mips.c (mips_elf_calculate_relocation): Fix a typo.
|
||||
|
@ -1663,11 +1663,22 @@ elf32_tic6x_obj_attrs_arg_type (int tag)
|
||||
{
|
||||
if (tag == Tag_ABI_compatibility)
|
||||
return ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_STR_VAL;
|
||||
else if (tag & 1)
|
||||
return ATTR_TYPE_FLAG_STR_VAL;
|
||||
else
|
||||
/* Correct for known attributes, arbitrary for others. */
|
||||
return ATTR_TYPE_FLAG_INT_VAL;
|
||||
}
|
||||
|
||||
static int
|
||||
elf32_tic6x_obj_attrs_order (int num)
|
||||
{
|
||||
if (num == LEAST_KNOWN_OBJ_ATTRIBUTE)
|
||||
return Tag_ABI_conformance;
|
||||
if ((num - 1) < Tag_ABI_conformance)
|
||||
return num - 1;
|
||||
return num;
|
||||
}
|
||||
|
||||
/* Merge the Tag_ISA attribute values ARCH1 and ARCH2
|
||||
and return the merged value. At present, all merges succeed, so no
|
||||
return value for errors is defined. */
|
||||
@ -1691,14 +1702,64 @@ elf32_tic6x_merge_arch_attributes (int arch1, int arch2)
|
||||
return max_arch;
|
||||
}
|
||||
|
||||
/* Convert a Tag_ABI_array_object_alignment or
|
||||
Tag_ABI_array_object_align_expected tag value TAG to a
|
||||
corresponding alignment value; return the alignment, or -1 for an
|
||||
unknown tag value. */
|
||||
|
||||
static int
|
||||
elf32_tic6x_tag_to_array_alignment (int tag)
|
||||
{
|
||||
switch (tag)
|
||||
{
|
||||
case 0:
|
||||
return 8;
|
||||
|
||||
case 1:
|
||||
return 4;
|
||||
|
||||
case 2:
|
||||
return 16;
|
||||
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Convert a Tag_ABI_array_object_alignment or
|
||||
Tag_ABI_array_object_align_expected alignment ALIGN to a
|
||||
corresponding tag value; return the tag value. */
|
||||
|
||||
static int
|
||||
elf32_tic6x_array_alignment_to_tag (int align)
|
||||
{
|
||||
switch (align)
|
||||
{
|
||||
case 8:
|
||||
return 0;
|
||||
|
||||
case 4:
|
||||
return 1;
|
||||
|
||||
case 16:
|
||||
return 2;
|
||||
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
|
||||
/* Merge attributes from IBFD and OBFD, returning TRUE if the merge
|
||||
succeeded, FALSE otherwise. */
|
||||
|
||||
static bfd_boolean
|
||||
elf32_tic6x_merge_attributes (bfd *ibfd, bfd *obfd)
|
||||
{
|
||||
bfd_boolean result = TRUE;
|
||||
obj_attribute *in_attr;
|
||||
obj_attribute *out_attr;
|
||||
int i;
|
||||
int array_align_in, array_align_out, array_expect_in, array_expect_out;
|
||||
|
||||
if (!elf_known_obj_attributes_proc (obfd)[0].i)
|
||||
{
|
||||
@ -1719,21 +1780,177 @@ elf32_tic6x_merge_attributes (bfd *ibfd, bfd *obfd)
|
||||
|
||||
/* No specification yet for handling of unknown attributes, so just
|
||||
ignore them and handle known ones. */
|
||||
out_attr[Tag_ISA].i
|
||||
= elf32_tic6x_merge_arch_attributes (in_attr[Tag_ISA].i,
|
||||
out_attr[Tag_ISA].i);
|
||||
|
||||
if (out_attr[Tag_ABI_DSBT].i != in_attr[Tag_ABI_DSBT].i)
|
||||
if (out_attr[Tag_ABI_stack_align_preserved].i
|
||||
< in_attr[Tag_ABI_stack_align_needed].i)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("warning: %B and %B differ in whether code is compiled for DSBT"),
|
||||
obfd, ibfd);
|
||||
(_("error: %B requires more stack alignment than %B preserves"),
|
||||
ibfd, obfd);
|
||||
result = FALSE;
|
||||
}
|
||||
if (in_attr[Tag_ABI_stack_align_preserved].i
|
||||
< out_attr[Tag_ABI_stack_align_needed].i)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("error: %B requires more stack alignment than %B preserves"),
|
||||
obfd, ibfd);
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
array_align_in = elf32_tic6x_tag_to_array_alignment
|
||||
(in_attr[Tag_ABI_array_object_alignment].i);
|
||||
if (array_align_in == -1)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("error: unknown Tag_ABI_array_object_alignment value in %B"),
|
||||
ibfd);
|
||||
result = FALSE;
|
||||
}
|
||||
array_align_out = elf32_tic6x_tag_to_array_alignment
|
||||
(out_attr[Tag_ABI_array_object_alignment].i);
|
||||
if (array_align_out == -1)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("error: unknown Tag_ABI_array_object_alignment value in %B"),
|
||||
obfd);
|
||||
result = FALSE;
|
||||
}
|
||||
array_expect_in = elf32_tic6x_tag_to_array_alignment
|
||||
(in_attr[Tag_ABI_array_object_align_expected].i);
|
||||
if (array_expect_in == -1)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("error: unknown Tag_ABI_array_object_align_expected value in %B"),
|
||||
ibfd);
|
||||
result = FALSE;
|
||||
}
|
||||
array_expect_out = elf32_tic6x_tag_to_array_alignment
|
||||
(out_attr[Tag_ABI_array_object_align_expected].i);
|
||||
if (array_expect_out == -1)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("error: unknown Tag_ABI_array_object_align_expected value in %B"),
|
||||
obfd);
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
if (array_align_out < array_expect_in)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("error: %B requires more array alignment than %B preserves"),
|
||||
ibfd, obfd);
|
||||
result = FALSE;
|
||||
}
|
||||
if (array_align_in < array_expect_out)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("error: %B requires more array alignment than %B preserves"),
|
||||
obfd, ibfd);
|
||||
result = FALSE;
|
||||
}
|
||||
|
||||
for (i = LEAST_KNOWN_OBJ_ATTRIBUTE; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++)
|
||||
{
|
||||
switch (i)
|
||||
{
|
||||
case Tag_ISA:
|
||||
out_attr[i].i = elf32_tic6x_merge_arch_attributes (in_attr[i].i,
|
||||
out_attr[i].i);
|
||||
break;
|
||||
|
||||
case Tag_ABI_wchar_t:
|
||||
if (out_attr[i].i == 0)
|
||||
out_attr[i].i = in_attr[i].i;
|
||||
if (out_attr[i].i != 0
|
||||
&& in_attr[i].i != 0
|
||||
&& out_attr[i].i != in_attr[i].i)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("warning: %B and %B differ in wchar_t size"), obfd, ibfd);
|
||||
}
|
||||
break;
|
||||
|
||||
case Tag_ABI_stack_align_needed:
|
||||
if (out_attr[i].i < in_attr[i].i)
|
||||
out_attr[i].i = in_attr[i].i;
|
||||
break;
|
||||
|
||||
case Tag_ABI_stack_align_preserved:
|
||||
if (out_attr[i].i > in_attr[i].i)
|
||||
out_attr[i].i = in_attr[i].i;
|
||||
break;
|
||||
|
||||
case Tag_ABI_DSBT:
|
||||
if (out_attr[i].i != in_attr[i].i)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("warning: %B and %B differ in whether code is "
|
||||
"compiled for DSBT"),
|
||||
obfd, ibfd);
|
||||
}
|
||||
break;
|
||||
|
||||
case Tag_ABI_PID:
|
||||
if (out_attr[i].i != in_attr[i].i)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("warning: %B and %B differ in position-dependence of "
|
||||
"data addressing"),
|
||||
obfd, ibfd);
|
||||
}
|
||||
break;
|
||||
|
||||
case Tag_ABI_PIC:
|
||||
if (out_attr[i].i != in_attr[i].i)
|
||||
{
|
||||
_bfd_error_handler
|
||||
(_("warning: %B and %B differ in position-dependence of "
|
||||
"code addressing"),
|
||||
obfd, ibfd);
|
||||
}
|
||||
break;
|
||||
|
||||
case Tag_ABI_array_object_alignment:
|
||||
if (array_align_out != -1
|
||||
&& array_align_in != -1
|
||||
&& array_align_out > array_align_in)
|
||||
out_attr[i].i
|
||||
= elf32_tic6x_array_alignment_to_tag (array_align_in);
|
||||
break;
|
||||
|
||||
case Tag_ABI_array_object_align_expected:
|
||||
if (array_expect_out != -1
|
||||
&& array_expect_in != -1
|
||||
&& array_expect_out < array_expect_in)
|
||||
out_attr[i].i
|
||||
= elf32_tic6x_array_alignment_to_tag (array_expect_in);
|
||||
break;
|
||||
|
||||
case Tag_ABI_conformance:
|
||||
/* Merging for this attribute is not specified. As on ARM,
|
||||
treat a missing attribute as no claim to conform and only
|
||||
merge identical values. */
|
||||
if (out_attr[i].s == NULL
|
||||
|| in_attr[i].s == NULL
|
||||
|| strcmp (out_attr[i].s,
|
||||
in_attr[i].s) != 0)
|
||||
out_attr[i].s = NULL;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (in_attr[i].type && !out_attr[i].type)
|
||||
out_attr[i].type = in_attr[i].type;
|
||||
}
|
||||
|
||||
/* Merge Tag_ABI_compatibility attributes and any common GNU ones. */
|
||||
if (!_bfd_elf_merge_object_attributes (ibfd, obfd))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
return result;
|
||||
}
|
||||
|
||||
static bfd_boolean
|
||||
@ -1767,6 +1984,7 @@ elf32_tic6x_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
|
||||
#define elf_backend_may_use_rel_p 1
|
||||
#define elf_backend_may_use_rela_p 1
|
||||
#define elf_backend_obj_attrs_arg_type elf32_tic6x_obj_attrs_arg_type
|
||||
#define elf_backend_obj_attrs_order elf32_tic6x_obj_attrs_order
|
||||
#define elf_backend_obj_attrs_section ".c6xabi.attributes"
|
||||
#define elf_backend_obj_attrs_section_type SHT_C6000_ATTRIBUTES
|
||||
#define elf_backend_obj_attrs_vendor "c6xabi"
|
||||
|
@ -1,3 +1,7 @@
|
||||
2010-11-02 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* readelf.c (display_tic6x_attribute): Handle more attributes.
|
||||
|
||||
2010-10-30 Kai Tietz <kai.tietz@onevision.com>
|
||||
|
||||
* dlltool.c (scan_drectve_symbols): Allow quoted strings for -export
|
||||
|
@ -10804,6 +10804,63 @@ display_tic6x_attribute (unsigned char * p)
|
||||
}
|
||||
return p;
|
||||
|
||||
case Tag_ABI_wchar_t:
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
printf (" Tag_ABI_wchar_t: ");
|
||||
switch (val)
|
||||
{
|
||||
case 0:
|
||||
printf (_("Not used\n"));
|
||||
break;
|
||||
case 1:
|
||||
printf (_("2 bytes\n"));
|
||||
break;
|
||||
case 2:
|
||||
printf (_("4 bytes\n"));
|
||||
break;
|
||||
default:
|
||||
printf ("??? (%d)\n", val);
|
||||
break;
|
||||
}
|
||||
return p;
|
||||
|
||||
case Tag_ABI_stack_align_needed:
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
printf (" Tag_ABI_stack_align_needed: ");
|
||||
switch (val)
|
||||
{
|
||||
case 0:
|
||||
printf (_("8-byte\n"));
|
||||
break;
|
||||
case 1:
|
||||
printf (_("16-byte\n"));
|
||||
break;
|
||||
default:
|
||||
printf ("??? (%d)\n", val);
|
||||
break;
|
||||
}
|
||||
return p;
|
||||
|
||||
case Tag_ABI_stack_align_preserved:
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
printf (" Tag_ABI_stack_align_preserved: ");
|
||||
switch (val)
|
||||
{
|
||||
case 0:
|
||||
printf (_("8-byte\n"));
|
||||
break;
|
||||
case 1:
|
||||
printf (_("16-byte\n"));
|
||||
break;
|
||||
default:
|
||||
printf ("??? (%d)\n", val);
|
||||
break;
|
||||
}
|
||||
return p;
|
||||
|
||||
case Tag_ABI_DSBT:
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
@ -10822,6 +10879,87 @@ display_tic6x_attribute (unsigned char * p)
|
||||
}
|
||||
return p;
|
||||
|
||||
case Tag_ABI_PID:
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
printf (" Tag_ABI_PID: ");
|
||||
switch (val)
|
||||
{
|
||||
case 0:
|
||||
printf (_("Data addressing position-dependent\n"));
|
||||
break;
|
||||
case 1:
|
||||
printf (_("Data addressing position-independent, GOT near DP\n"));
|
||||
break;
|
||||
case 2:
|
||||
printf (_("Data addressing position-independent, GOT far from DP\n"));
|
||||
break;
|
||||
default:
|
||||
printf ("??? (%d)\n", val);
|
||||
break;
|
||||
}
|
||||
return p;
|
||||
|
||||
case Tag_ABI_PIC:
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
printf (" Tag_ABI_PIC: ");
|
||||
switch (val)
|
||||
{
|
||||
case 0:
|
||||
printf (_("Code addressing position-dependent\n"));
|
||||
break;
|
||||
case 1:
|
||||
printf (_("Code addressing position-independent\n"));
|
||||
break;
|
||||
default:
|
||||
printf ("??? (%d)\n", val);
|
||||
break;
|
||||
}
|
||||
return p;
|
||||
|
||||
case Tag_ABI_array_object_alignment:
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
printf (" Tag_ABI_array_object_alignment: ");
|
||||
switch (val)
|
||||
{
|
||||
case 0:
|
||||
printf (_("8-byte\n"));
|
||||
break;
|
||||
case 1:
|
||||
printf (_("4-byte\n"));
|
||||
break;
|
||||
case 2:
|
||||
printf (_("16-byte\n"));
|
||||
break;
|
||||
default:
|
||||
printf ("??? (%d)\n", val);
|
||||
break;
|
||||
}
|
||||
return p;
|
||||
|
||||
case Tag_ABI_array_object_align_expected:
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
printf (" Tag_ABI_array_object_align_expected: ");
|
||||
switch (val)
|
||||
{
|
||||
case 0:
|
||||
printf (_("8-byte\n"));
|
||||
break;
|
||||
case 1:
|
||||
printf (_("4-byte\n"));
|
||||
break;
|
||||
case 2:
|
||||
printf (_("16-byte\n"));
|
||||
break;
|
||||
default:
|
||||
printf ("??? (%d)\n", val);
|
||||
break;
|
||||
}
|
||||
return p;
|
||||
|
||||
case Tag_ABI_compatibility:
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
@ -10829,15 +10967,27 @@ display_tic6x_attribute (unsigned char * p)
|
||||
printf (_("flag = %d, vendor = %s\n"), val, p);
|
||||
p += strlen ((char *) p) + 1;
|
||||
return p;
|
||||
|
||||
case Tag_ABI_conformance:
|
||||
printf (" Tag_ABI_conformance: ");
|
||||
printf ("\"%s\"\n", p);
|
||||
p += strlen ((char *) p) + 1;
|
||||
return p;
|
||||
}
|
||||
|
||||
printf (" Tag_unknown_%d: ", tag);
|
||||
|
||||
/* No general documentation of handling unknown attributes, treat as
|
||||
ULEB128 for now. */
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
printf ("%d (0x%x)\n", val, val);
|
||||
if (tag & 1)
|
||||
{
|
||||
printf ("\"%s\"\n", p);
|
||||
p += strlen ((char *) p) + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
val = read_uleb128 (p, &len);
|
||||
p += len;
|
||||
printf ("%d (0x%x)\n", val, val);
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
|
@ -1,3 +1,16 @@
|
||||
2010-11-02 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* config/tc-tic6x.c (OPTION_MPID, OPTION_MPIC, OPTION_MNO_PIC):
|
||||
New enum values.
|
||||
(md_longopts): Add options mpid, mpic and mno-pic.
|
||||
(tic6x_pid_type, tic6x_pid, tic6x_pic, tic6x_pid_type_table,
|
||||
tic6x_pid_types, tic6x_use_pid): New.
|
||||
(md_parse_option): Handle new options.
|
||||
(md_show_usage): Output help text for new options.
|
||||
(tic6x_set_attributes): Set PID and PIC attributes.
|
||||
* doc/as.texinfo: Document -mpid=, -mpic and -mno-pic.
|
||||
* doc/c-tic6x.texi (TIC6X Options): Likewise.
|
||||
|
||||
2010-11-01 Maciej W. Rozycki <macro@linux-mips.org>
|
||||
|
||||
* config/tc-mips.c (macro)[M_LD_OB, M_SD_OB]: Use the offset
|
||||
|
@ -52,6 +52,9 @@ enum
|
||||
OPTION_MLITTLE_ENDIAN,
|
||||
OPTION_MDSBT,
|
||||
OPTION_MNO_DSBT,
|
||||
OPTION_MPID,
|
||||
OPTION_MPIC,
|
||||
OPTION_MNO_PIC,
|
||||
OPTION_MGENERATE_REL
|
||||
};
|
||||
|
||||
@ -64,6 +67,9 @@ struct option md_longopts[] =
|
||||
{ "mlittle-endian", no_argument, NULL, OPTION_MLITTLE_ENDIAN },
|
||||
{ "mdsbt", no_argument, NULL, OPTION_MDSBT },
|
||||
{ "mno-dsbt", no_argument, NULL, OPTION_MNO_DSBT },
|
||||
{ "mpid", required_argument, NULL, OPTION_MPID },
|
||||
{ "mpic", no_argument, NULL, OPTION_MPIC },
|
||||
{ "mno-pic", no_argument, NULL, OPTION_MNO_PIC },
|
||||
{ "mgenerate-rel", no_argument, NULL, OPTION_MGENERATE_REL },
|
||||
{ NULL, no_argument, NULL, 0 }
|
||||
};
|
||||
@ -120,6 +126,21 @@ static bfd_boolean tic6x_generate_rela = TRUE;
|
||||
/* Whether the code uses DSBT addressing. */
|
||||
static bfd_boolean tic6x_dsbt;
|
||||
|
||||
/* Types of position-independent data (attribute values for
|
||||
Tag_ABI_PID). */
|
||||
typedef enum
|
||||
{
|
||||
tic6x_pid_no = 0,
|
||||
tic6x_pid_near = 1,
|
||||
tic6x_pid_far = 2
|
||||
} tic6x_pid_type;
|
||||
|
||||
/* The type of data addressing used in this code. */
|
||||
static tic6x_pid_type tic6x_pid;
|
||||
|
||||
/* Whether the code uses position-independent code. */
|
||||
static bfd_boolean tic6x_pic;
|
||||
|
||||
/* Table of supported architecture variants. */
|
||||
typedef struct
|
||||
{
|
||||
@ -171,6 +192,36 @@ tic6x_use_arch (const char *arch)
|
||||
as_bad (_("unknown architecture '%s'"), arch);
|
||||
}
|
||||
|
||||
/* Table of supported -mpid arguments. */
|
||||
typedef struct
|
||||
{
|
||||
const char *arg;
|
||||
tic6x_pid_type attr;
|
||||
} tic6x_pid_type_table;
|
||||
static const tic6x_pid_type_table tic6x_pid_types[] =
|
||||
{
|
||||
{ "no", tic6x_pid_no },
|
||||
{ "near", tic6x_pid_near },
|
||||
{ "far", tic6x_pid_far }
|
||||
};
|
||||
|
||||
/* Handle -mpid=ARG. */
|
||||
|
||||
static void
|
||||
tic6x_use_pid (const char *arg)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE (tic6x_pid_types); i++)
|
||||
if (strcmp (arg, tic6x_pid_types[i].arg) == 0)
|
||||
{
|
||||
tic6x_pid = tic6x_pid_types[i].attr;
|
||||
return;
|
||||
}
|
||||
|
||||
as_bad (_("unknown -mpid= argument '%s'"), arg);
|
||||
}
|
||||
|
||||
/* Parse a target-specific option. */
|
||||
|
||||
int
|
||||
@ -206,6 +257,18 @@ md_parse_option (int c, char *arg)
|
||||
tic6x_dsbt = 0;
|
||||
break;
|
||||
|
||||
case OPTION_MPID:
|
||||
tic6x_use_pid (arg);
|
||||
break;
|
||||
|
||||
case OPTION_MPIC:
|
||||
tic6x_pic = 1;
|
||||
break;
|
||||
|
||||
case OPTION_MNO_PIC:
|
||||
tic6x_pic = 0;
|
||||
break;
|
||||
|
||||
case OPTION_MGENERATE_REL:
|
||||
tic6x_generate_rela = FALSE;
|
||||
break;
|
||||
@ -230,6 +293,13 @@ md_show_usage (FILE *stream ATTRIBUTE_UNUSED)
|
||||
fprintf (stream, _(" -mlittle-endian generate little-endian code\n"));
|
||||
fprintf (stream, _(" -mdsbt code uses DSBT addressing\n"));
|
||||
fprintf (stream, _(" -mno-dsbt code does not use DSBT addressing\n"));
|
||||
fprintf (stream, _(" -mpid=no code uses position-dependent data addressing\n"));
|
||||
fprintf (stream, _(" -mpid=near code uses position-independent data addressing,\n"
|
||||
" GOT accesses use near DP addressing\n"));
|
||||
fprintf (stream, _(" -mpid=far code uses position-independent data addressing,\n"
|
||||
" GOT accesses use far DP addressing\n"));
|
||||
fprintf (stream, _(" -mpic code addressing is position-independent\n"));
|
||||
fprintf (stream, _(" -mno-pic code addressing is position-dependent\n"));
|
||||
/* -mgenerate-rel is only for testsuite use and is deliberately
|
||||
undocumented. */
|
||||
|
||||
@ -3915,6 +3985,8 @@ tic6x_set_attributes (void)
|
||||
|
||||
tic6x_set_attribute_int (Tag_ISA, tic6x_arch_attribute);
|
||||
tic6x_set_attribute_int (Tag_ABI_DSBT, tic6x_dsbt);
|
||||
tic6x_set_attribute_int (Tag_ABI_PID, tic6x_pid);
|
||||
tic6x_set_attribute_int (Tag_ABI_PIC, tic6x_pic);
|
||||
}
|
||||
|
||||
/* Do machine-dependent manipulations of the frag chains after all
|
||||
|
@ -477,6 +477,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
|
||||
@emph{Target TIC6X options:}
|
||||
[@b{-march=@var{arch}}] [@b{-matomic}|@b{-mno-atomic}]
|
||||
[@b{-mbig-endian}|@b{-mlittle-endian}] [@b{-mdsbt}|@b{-mno-dsbt}]
|
||||
[@b{-mpid=no}|@b{-mpid=near}|@b{-mpid=far}] [@b{-mpic}|@b{-mno-pic}]
|
||||
@end ifset
|
||||
|
||||
@ifset Z80
|
||||
@ -1294,6 +1295,29 @@ default, causes the tag to have a value of 0, indicating that the code
|
||||
does not use DSBT addressing. The linker will emit a warning if
|
||||
objects of different type (DSBT and non-DSBT) are linked together.
|
||||
|
||||
@item -mpid=no
|
||||
@itemx -mpid=near
|
||||
@itemx -mpid=far
|
||||
The @option{-mpid=} option causes the assembler to generate the
|
||||
@code{Tag_ABI_PID} attribute with a value indicating the form of data
|
||||
addressing used by the code. @option{-mpid=no}, the default,
|
||||
indicates position-dependent data addressing, @option{-mpid=near}
|
||||
indicates position-independent addressing with GOT accesses using near
|
||||
DP addressing, and @option{-mpid=far} indicates position-independent
|
||||
addressing with GOT accesses using far DP addressing. The linker will
|
||||
emit a warning if objects built with different settings of this option
|
||||
are linked together.
|
||||
|
||||
@item -mpic
|
||||
@itemx -mno-pic
|
||||
The @option{-mpic} option causes the assembler to generate the
|
||||
@code{Tag_ABI_PIC} attribute with a value of 1, indicating that the
|
||||
code is using position-independent code addressing, The
|
||||
@code{-mno-pic} option, the default, causes the tag to have a value of
|
||||
0, indicating position-dependent code addressing. The linker will
|
||||
emit a warning if objects of different type (position-dependent and
|
||||
position-independent) are linked together.
|
||||
|
||||
@item -mbig-endian
|
||||
@itemx -mlittle-endian
|
||||
Generate code for the specified endianness. The default is
|
||||
|
@ -59,6 +59,32 @@ default, causes the tag to have a value of 0, indicating that the code
|
||||
does not use DSBT addressing. The linker will emit a warning if
|
||||
objects of different type (DSBT and non-DSBT) are linked together.
|
||||
|
||||
@cindex @code{-mpid=} command line option, TIC6X
|
||||
@item -mpid=no
|
||||
@itemx -mpid=near
|
||||
@itemx -mpid=far
|
||||
The @option{-mpid=} option causes the assembler to generate the
|
||||
@code{Tag_ABI_PID} attribute with a value indicating the form of data
|
||||
addressing used by the code. @option{-mpid=no}, the default,
|
||||
indicates position-dependent data addressing, @option{-mpid=near}
|
||||
indicates position-independent addressing with GOT accesses using near
|
||||
DP addressing, and @option{-mpid=far} indicates position-independent
|
||||
addressing with GOT accesses using far DP addressing. The linker will
|
||||
emit a warning if objects built with different settings of this option
|
||||
are linked together.
|
||||
|
||||
@cindex @code{-mpic} command line option, TIC6X
|
||||
@cindex @code{-mno-pic} command line option, TIC6X
|
||||
@item -mpic
|
||||
@itemx -mno-pic
|
||||
The @option{-mpic} option causes the assembler to generate the
|
||||
@code{Tag_ABI_PIC} attribute with a value of 1, indicating that the
|
||||
code is using position-independent code addressing, The
|
||||
@code{-mno-pic} option, the default, causes the tag to have a value of
|
||||
0, indicating position-dependent code addressing. The linker will
|
||||
emit a warning if objects of different type (position-dependent and
|
||||
position-independent) are linked together.
|
||||
|
||||
@cindex TIC6X big-endian output
|
||||
@cindex TIC6X little-endian output
|
||||
@cindex big-endian output, TIC6X
|
||||
@ -125,7 +151,13 @@ These have the same effects as @option{-matomic} and
|
||||
Set the C6000 EABI build attribute @var{tag} to @var{value}.
|
||||
|
||||
The @var{tag} is either an attribute number or one of
|
||||
@code{Tag_ISA}, @code{Tag_ABI_DSBT} and @code{Tag_ABI_compatibility}. The
|
||||
@code{Tag_ISA}, @code{Tag_ABI_wchar_t},
|
||||
@code{Tag_ABI_stack_align_needed},
|
||||
@code{Tag_ABI_stack_align_preserved}, @code{Tag_ABI_DSBT},
|
||||
@code{Tag_ABI_PID}, @code{Tag_ABI_PIC},
|
||||
@code{TAG_ABI_array_object_alignment},
|
||||
@code{TAG_ABI_array_object_align_expected},
|
||||
@code{Tag_ABI_compatibility} and @code{Tag_ABI_conformance}. The
|
||||
@var{value} is either a @code{number}, @code{"string"}, or
|
||||
@code{number, "string"} depending on the tag.
|
||||
|
||||
|
@ -1,3 +1,38 @@
|
||||
2010-11-02 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* gas/tic6x/attr-array-directive-1.d,
|
||||
gas/tic6x/attr-array-directive-1.s,
|
||||
gas/tic6x/attr-array-directive-2.d,
|
||||
gas/tic6x/attr-array-directive-2.s,
|
||||
gas/tic6x/attr-array-directive-3.d,
|
||||
gas/tic6x/attr-array-directive-3.s,
|
||||
gas/tic6x/attr-array-directive-4.d,
|
||||
gas/tic6x/attr-array-directive-4.s,
|
||||
gas/tic6x/attr-conformance-directive-1.d,
|
||||
gas/tic6x/attr-conformance-directive-1.s,
|
||||
gas/tic6x/attr-conformance-directive-2.d,
|
||||
gas/tic6x/attr-conformance-directive-2.s,
|
||||
gas/tic6x/attr-pic-directive-1.d,
|
||||
gas/tic6x/attr-pic-directive-1.s,
|
||||
gas/tic6x/attr-pic-directive-2.d,
|
||||
gas/tic6x/attr-pic-directive-2.s,
|
||||
gas/tic6x/attr-pic-opts-mno-pic.d, gas/tic6x/attr-pic-opts-mpic.d,
|
||||
gas/tic6x/attr-pid-directive-1.d,
|
||||
gas/tic6x/attr-pid-directive-1.s,
|
||||
gas/tic6x/attr-pid-directive-2.d,
|
||||
gas/tic6x/attr-pid-directive-2.s,
|
||||
gas/tic6x/attr-pid-opts-mpid-far.d,
|
||||
gas/tic6x/attr-pid-opts-mpid-near.d,
|
||||
gas/tic6x/attr-pid-opts-mpid-no.d,
|
||||
gas/tic6x/attr-stack-directive-1.d,
|
||||
gas/tic6x/attr-stack-directive-1.s,
|
||||
gas/tic6x/attr-stack-directive-2.d,
|
||||
gas/tic6x/attr-stack-directive-2.s,
|
||||
gas/tic6x/attr-wchar-directive-1.d,
|
||||
gas/tic6x/attr-wchar-directive-1.s,
|
||||
gas/tic6x/attr-wchar-directive-2.d,
|
||||
gas/tic6x/attr-wchar-directive-2.s: New tests.
|
||||
|
||||
2010-10-29 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* gas/tic6x/attr-compatibility-directive-1.d,
|
||||
|
9
gas/testsuite/gas/tic6x/attr-array-directive-1.d
Normal file
9
gas/testsuite/gas/tic6x/attr-array-directive-1.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X array alignment attributes, directives 1
|
||||
#as:
|
||||
#source: attr-array-directive-1.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 4-byte
|
1
gas/testsuite/gas/tic6x/attr-array-directive-1.s
Normal file
1
gas/testsuite/gas/tic6x/attr-array-directive-1.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute Tag_ABI_array_object_alignment, 1
|
9
gas/testsuite/gas/tic6x/attr-array-directive-2.d
Normal file
9
gas/testsuite/gas/tic6x/attr-array-directive-2.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X array alignment attributes, directives 2
|
||||
#as:
|
||||
#source: attr-array-directive-2.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 16-byte
|
1
gas/testsuite/gas/tic6x/attr-array-directive-2.s
Normal file
1
gas/testsuite/gas/tic6x/attr-array-directive-2.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute 18, 2
|
9
gas/testsuite/gas/tic6x/attr-array-directive-3.d
Normal file
9
gas/testsuite/gas/tic6x/attr-array-directive-3.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X array alignment attributes, directives 3
|
||||
#as:
|
||||
#source: attr-array-directive-3.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_align_expected: 4-byte
|
1
gas/testsuite/gas/tic6x/attr-array-directive-3.s
Normal file
1
gas/testsuite/gas/tic6x/attr-array-directive-3.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
|
9
gas/testsuite/gas/tic6x/attr-array-directive-4.d
Normal file
9
gas/testsuite/gas/tic6x/attr-array-directive-4.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X array alignment attributes, directives 4
|
||||
#as:
|
||||
#source: attr-array-directive-4.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_align_expected: 16-byte
|
1
gas/testsuite/gas/tic6x/attr-array-directive-4.s
Normal file
1
gas/testsuite/gas/tic6x/attr-array-directive-4.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute 20, 2
|
9
gas/testsuite/gas/tic6x/attr-conformance-directive-1.d
Normal file
9
gas/testsuite/gas/tic6x/attr-conformance-directive-1.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X conformance attribute, directives 1
|
||||
#as:
|
||||
#source: attr-conformance-directive-1.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ABI_conformance: "1.0"
|
||||
Tag_ISA: C674x
|
1
gas/testsuite/gas/tic6x/attr-conformance-directive-1.s
Normal file
1
gas/testsuite/gas/tic6x/attr-conformance-directive-1.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute Tag_ABI_conformance, "1.0"
|
9
gas/testsuite/gas/tic6x/attr-conformance-directive-2.d
Normal file
9
gas/testsuite/gas/tic6x/attr-conformance-directive-2.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X conformance attribute, directives 2
|
||||
#as:
|
||||
#source: attr-conformance-directive-2.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ABI_conformance: "1.0"
|
||||
Tag_ISA: C674x
|
1
gas/testsuite/gas/tic6x/attr-conformance-directive-2.s
Normal file
1
gas/testsuite/gas/tic6x/attr-conformance-directive-2.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute 67, "1.0"
|
9
gas/testsuite/gas/tic6x/attr-pic-directive-1.d
Normal file
9
gas/testsuite/gas/tic6x/attr-pic-directive-1.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X PIC attribute, directives 1
|
||||
#as:
|
||||
#source: attr-pic-directive-1.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_PIC: Code addressing position-independent
|
1
gas/testsuite/gas/tic6x/attr-pic-directive-1.s
Normal file
1
gas/testsuite/gas/tic6x/attr-pic-directive-1.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute Tag_ABI_PIC, 1
|
9
gas/testsuite/gas/tic6x/attr-pic-directive-2.d
Normal file
9
gas/testsuite/gas/tic6x/attr-pic-directive-2.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X PIC attribute, directives 2
|
||||
#as:
|
||||
#source: attr-pic-directive-2.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_PIC: Code addressing position-independent
|
1
gas/testsuite/gas/tic6x/attr-pic-directive-2.s
Normal file
1
gas/testsuite/gas/tic6x/attr-pic-directive-2.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute 16, 1
|
8
gas/testsuite/gas/tic6x/attr-pic-opts-mno-pic.d
Normal file
8
gas/testsuite/gas/tic6x/attr-pic-opts-mno-pic.d
Normal file
@ -0,0 +1,8 @@
|
||||
#readelf: -A
|
||||
#name: C6X PIC attribute, -mno-pic
|
||||
#as: -mno-pic
|
||||
#source: dummy.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
9
gas/testsuite/gas/tic6x/attr-pic-opts-mpic.d
Normal file
9
gas/testsuite/gas/tic6x/attr-pic-opts-mpic.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X PIC attribute, -mpic
|
||||
#as: -mpic
|
||||
#source: dummy.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_PIC: Code addressing position-independent
|
9
gas/testsuite/gas/tic6x/attr-pid-directive-1.d
Normal file
9
gas/testsuite/gas/tic6x/attr-pid-directive-1.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X PID attribute, directives 1
|
||||
#as:
|
||||
#source: attr-pid-directive-1.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_PID: Data addressing position-independent, GOT near DP
|
1
gas/testsuite/gas/tic6x/attr-pid-directive-1.s
Normal file
1
gas/testsuite/gas/tic6x/attr-pid-directive-1.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute Tag_ABI_PID, 1
|
9
gas/testsuite/gas/tic6x/attr-pid-directive-2.d
Normal file
9
gas/testsuite/gas/tic6x/attr-pid-directive-2.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X PID attribute, directives 2
|
||||
#as:
|
||||
#source: attr-pid-directive-2.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_PID: Data addressing position-independent, GOT far from DP
|
1
gas/testsuite/gas/tic6x/attr-pid-directive-2.s
Normal file
1
gas/testsuite/gas/tic6x/attr-pid-directive-2.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute 14, 2
|
9
gas/testsuite/gas/tic6x/attr-pid-opts-mpid-far.d
Normal file
9
gas/testsuite/gas/tic6x/attr-pid-opts-mpid-far.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X PID attribute, -mpid=far
|
||||
#as: -mpid=far
|
||||
#source: dummy.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_PID: Data addressing position-independent, GOT far from DP
|
9
gas/testsuite/gas/tic6x/attr-pid-opts-mpid-near.d
Normal file
9
gas/testsuite/gas/tic6x/attr-pid-opts-mpid-near.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X PID attribute, -mpid=near
|
||||
#as: -mpid=near
|
||||
#source: dummy.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_PID: Data addressing position-independent, GOT near DP
|
8
gas/testsuite/gas/tic6x/attr-pid-opts-mpid-no.d
Normal file
8
gas/testsuite/gas/tic6x/attr-pid-opts-mpid-no.d
Normal file
@ -0,0 +1,8 @@
|
||||
#readelf: -A
|
||||
#name: C6X PID attribute, -mpid=no
|
||||
#as: -mpid=no
|
||||
#source: dummy.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
9
gas/testsuite/gas/tic6x/attr-stack-directive-1.d
Normal file
9
gas/testsuite/gas/tic6x/attr-stack-directive-1.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X stack alignment attributes, directives 1
|
||||
#as:
|
||||
#source: attr-stack-directive-1.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_stack_align_preserved: 16-byte
|
2
gas/testsuite/gas/tic6x/attr-stack-directive-1.s
Normal file
2
gas/testsuite/gas/tic6x/attr-stack-directive-1.s
Normal file
@ -0,0 +1,2 @@
|
||||
.c6xabi_attribute Tag_ABI_stack_align_needed, 0
|
||||
.c6xabi_attribute Tag_ABI_stack_align_preserved, 1
|
10
gas/testsuite/gas/tic6x/attr-stack-directive-2.d
Normal file
10
gas/testsuite/gas/tic6x/attr-stack-directive-2.d
Normal file
@ -0,0 +1,10 @@
|
||||
#readelf: -A
|
||||
#name: C6X stack alignment attributes, directives 2
|
||||
#as:
|
||||
#source: attr-stack-directive-2.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_stack_align_needed: 16-byte
|
||||
Tag_ABI_stack_align_preserved: 16-byte
|
2
gas/testsuite/gas/tic6x/attr-stack-directive-2.s
Normal file
2
gas/testsuite/gas/tic6x/attr-stack-directive-2.s
Normal file
@ -0,0 +1,2 @@
|
||||
.c6xabi_attribute 8, 1
|
||||
.c6xabi_attribute 10, 1
|
9
gas/testsuite/gas/tic6x/attr-wchar-directive-1.d
Normal file
9
gas/testsuite/gas/tic6x/attr-wchar-directive-1.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X wchar_t attribute, directives 1
|
||||
#as:
|
||||
#source: attr-wchar-directive-1.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_wchar_t: 2 bytes
|
1
gas/testsuite/gas/tic6x/attr-wchar-directive-1.s
Normal file
1
gas/testsuite/gas/tic6x/attr-wchar-directive-1.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute Tag_ABI_wchar_t, 1
|
9
gas/testsuite/gas/tic6x/attr-wchar-directive-2.d
Normal file
9
gas/testsuite/gas/tic6x/attr-wchar-directive-2.d
Normal file
@ -0,0 +1,9 @@
|
||||
#readelf: -A
|
||||
#name: C6X wchar_t attribute, directives 2
|
||||
#as:
|
||||
#source: attr-wchar-directive-2.s
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_wchar_t: 4 bytes
|
1
gas/testsuite/gas/tic6x/attr-wchar-directive-2.s
Normal file
1
gas/testsuite/gas/tic6x/attr-wchar-directive-2.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute 6, 2
|
@ -1,3 +1,10 @@
|
||||
2010-11-02 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* tic6x-attrs.h (Tag_ABI_wchar_t, Tag_ABI_stack_align_needed,
|
||||
Tag_ABI_stack_align_preserved, Tag_ABI_PID, Tag_ABI_PIC,
|
||||
Tag_ABI_array_object_alignment,
|
||||
Tag_ABI_array_object_align_expected, Tag_ABI_conformance): Define.
|
||||
|
||||
2010-10-29 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* tic6x-attrs.h (Tag_ABI_compatibility): Define.
|
||||
|
@ -23,5 +23,13 @@
|
||||
name and value. */
|
||||
|
||||
TAG(Tag_ISA, 4)
|
||||
TAG(Tag_ABI_wchar_t, 6)
|
||||
TAG(Tag_ABI_stack_align_needed, 8)
|
||||
TAG(Tag_ABI_stack_align_preserved, 10)
|
||||
TAG(Tag_ABI_DSBT, 12)
|
||||
TAG(Tag_ABI_PID, 14)
|
||||
TAG(Tag_ABI_PIC, 16)
|
||||
TAG(Tag_ABI_array_object_alignment, 18)
|
||||
TAG(Tag_ABI_array_object_align_expected, 20)
|
||||
TAG(Tag_ABI_compatibility, 32)
|
||||
TAG(Tag_ABI_conformance, 67)
|
||||
|
@ -1,3 +1,59 @@
|
||||
2010-11-02 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* ld-tic6x/attr-array-16-16.d, ld-tic6x/attr-array-16-4.d,
|
||||
ld-tic6x/attr-array-16-416.d, ld-tic6x/attr-array-16-48.d,
|
||||
ld-tic6x/attr-array-16-8.d, ld-tic6x/attr-array-16-816.d,
|
||||
ld-tic6x/attr-array-16.s, ld-tic6x/attr-array-4-16.d,
|
||||
ld-tic6x/attr-array-4-4.d, ld-tic6x/attr-array-4-416.d,
|
||||
ld-tic6x/attr-array-4-48.d, ld-tic6x/attr-array-4-8.d,
|
||||
ld-tic6x/attr-array-4-816.d, ld-tic6x/attr-array-4.s,
|
||||
ld-tic6x/attr-array-416-16.d, ld-tic6x/attr-array-416-4.d,
|
||||
ld-tic6x/attr-array-416-416.d, ld-tic6x/attr-array-416-48.d,
|
||||
ld-tic6x/attr-array-416-8.d, ld-tic6x/attr-array-416-816.d,
|
||||
ld-tic6x/attr-array-416.s, ld-tic6x/attr-array-48-16.d,
|
||||
ld-tic6x/attr-array-48-4.d, ld-tic6x/attr-array-48-416.d,
|
||||
ld-tic6x/attr-array-48-48.d, ld-tic6x/attr-array-48-8.d,
|
||||
ld-tic6x/attr-array-48-816.d, ld-tic6x/attr-array-48.s,
|
||||
ld-tic6x/attr-array-8-16.d, ld-tic6x/attr-array-8-4.d,
|
||||
ld-tic6x/attr-array-8-416.d, ld-tic6x/attr-array-8-48.d,
|
||||
ld-tic6x/attr-array-8-8.d, ld-tic6x/attr-array-8-816.d,
|
||||
ld-tic6x/attr-array-8.s, ld-tic6x/attr-array-816-16.d,
|
||||
ld-tic6x/attr-array-816-4.d, ld-tic6x/attr-array-816-416.d,
|
||||
ld-tic6x/attr-array-816-48.d, ld-tic6x/attr-array-816-8.d,
|
||||
ld-tic6x/attr-array-816-816.d, ld-tic6x/attr-array-816.s,
|
||||
ld-tic6x/attr-conformance-10-10.d,
|
||||
ld-tic6x/attr-conformance-10-11.d,
|
||||
ld-tic6x/attr-conformance-10-none.d,
|
||||
ld-tic6x/attr-conformance-10.s, ld-tic6x/attr-conformance-11-10.d,
|
||||
ld-tic6x/attr-conformance-11-11.d,
|
||||
ld-tic6x/attr-conformance-11-none.d,
|
||||
ld-tic6x/attr-conformance-11.s,
|
||||
ld-tic6x/attr-conformance-none-10.d,
|
||||
ld-tic6x/attr-conformance-none-11.d,
|
||||
ld-tic6x/attr-conformance-none-none.d,
|
||||
ld-tic6x/attr-conformance-none.s, ld-tic6x/attr-pic-0.s,
|
||||
ld-tic6x/attr-pic-00.d, ld-tic6x/attr-pic-01.d,
|
||||
ld-tic6x/attr-pic-1.s, ld-tic6x/attr-pic-10.d,
|
||||
ld-tic6x/attr-pic-11.d, ld-tic6x/attr-pid-0.s,
|
||||
ld-tic6x/attr-pid-00.d, ld-tic6x/attr-pid-01.d,
|
||||
ld-tic6x/attr-pid-02.d, ld-tic6x/attr-pid-1.s,
|
||||
ld-tic6x/attr-pid-10.d, ld-tic6x/attr-pid-11.d,
|
||||
ld-tic6x/attr-pid-12.d, ld-tic6x/attr-pid-2.s,
|
||||
ld-tic6x/attr-pid-20.d, ld-tic6x/attr-pid-21.d,
|
||||
ld-tic6x/attr-pid-22.d, ld-tic6x/attr-stack-16-16.d,
|
||||
ld-tic6x/attr-stack-16-8.d, ld-tic6x/attr-stack-16-816.d,
|
||||
ld-tic6x/attr-stack-16.s, ld-tic6x/attr-stack-8-16.d,
|
||||
ld-tic6x/attr-stack-8-8.d, ld-tic6x/attr-stack-8-816.d,
|
||||
ld-tic6x/attr-stack-8.s, ld-tic6x/attr-stack-816-16.d,
|
||||
ld-tic6x/attr-stack-816-8.d, ld-tic6x/attr-stack-816-816.d,
|
||||
ld-tic6x/attr-stack-816.s, ld-tic6x/attr-wchar-0.s,
|
||||
ld-tic6x/attr-wchar-00.d, ld-tic6x/attr-wchar-01.d,
|
||||
ld-tic6x/attr-wchar-02.d, ld-tic6x/attr-wchar-1.s,
|
||||
ld-tic6x/attr-wchar-10.d, ld-tic6x/attr-wchar-11.d,
|
||||
ld-tic6x/attr-wchar-12.d, ld-tic6x/attr-wchar-2.s,
|
||||
ld-tic6x/attr-wchar-20.d, ld-tic6x/attr-wchar-21.d,
|
||||
ld-tic6x/attr-wchar-22.d: New tests.
|
||||
|
||||
2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* ld-elf/compress1a.d: Also check MIPS_DWARF.
|
||||
|
12
ld/testsuite/ld-tic6x/attr-array-16-16.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-16-16.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 16 16
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-16.s
|
||||
#source: attr-array-16.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 16-byte
|
||||
Tag_ABI_array_object_align_expected: 16-byte
|
6
ld/testsuite/ld-tic6x/attr-array-16-4.d
Normal file
6
ld/testsuite/ld-tic6x/attr-array-16-4.d
Normal file
@ -0,0 +1,6 @@
|
||||
#name: C6X array attribute merging, 16 4
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-16.s
|
||||
#source: attr-array-4.s
|
||||
#error: .*requires more array alignment than .* preserves
|
12
ld/testsuite/ld-tic6x/attr-array-16-416.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-16-416.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 16 416
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-16.s
|
||||
#source: attr-array-416.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 16-byte
|
||||
Tag_ABI_array_object_align_expected: 16-byte
|
6
ld/testsuite/ld-tic6x/attr-array-16-48.d
Normal file
6
ld/testsuite/ld-tic6x/attr-array-16-48.d
Normal file
@ -0,0 +1,6 @@
|
||||
#name: C6X array attribute merging, 16 48
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-16.s
|
||||
#source: attr-array-48.s
|
||||
#error: .*requires more array alignment than .* preserves
|
6
ld/testsuite/ld-tic6x/attr-array-16-8.d
Normal file
6
ld/testsuite/ld-tic6x/attr-array-16-8.d
Normal file
@ -0,0 +1,6 @@
|
||||
#name: C6X array attribute merging, 16 8
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-16.s
|
||||
#source: attr-array-8.s
|
||||
#error: .*requires more array alignment than .* preserves
|
12
ld/testsuite/ld-tic6x/attr-array-16-816.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-16-816.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 16 816
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-16.s
|
||||
#source: attr-array-816.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 16-byte
|
||||
Tag_ABI_array_object_align_expected: 16-byte
|
2
ld/testsuite/ld-tic6x/attr-array-16.s
Normal file
2
ld/testsuite/ld-tic6x/attr-array-16.s
Normal file
@ -0,0 +1,2 @@
|
||||
.c6xabi_attribute Tag_ABI_array_object_align_expected, 2
|
||||
.c6xabi_attribute Tag_ABI_array_object_alignment, 2
|
6
ld/testsuite/ld-tic6x/attr-array-4-16.d
Normal file
6
ld/testsuite/ld-tic6x/attr-array-4-16.d
Normal file
@ -0,0 +1,6 @@
|
||||
#name: C6X array attribute merging, 4 16
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-4.s
|
||||
#source: attr-array-16.s
|
||||
#error: .*requires more array alignment than .* preserves
|
12
ld/testsuite/ld-tic6x/attr-array-4-4.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-4-4.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 4 4
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-4.s
|
||||
#source: attr-array-4.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 4-byte
|
||||
Tag_ABI_array_object_align_expected: 4-byte
|
12
ld/testsuite/ld-tic6x/attr-array-4-416.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-4-416.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 4 416
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-4.s
|
||||
#source: attr-array-416.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 4-byte
|
||||
Tag_ABI_array_object_align_expected: 4-byte
|
12
ld/testsuite/ld-tic6x/attr-array-4-48.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-4-48.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 4 48
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-4.s
|
||||
#source: attr-array-48.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 4-byte
|
||||
Tag_ABI_array_object_align_expected: 4-byte
|
6
ld/testsuite/ld-tic6x/attr-array-4-8.d
Normal file
6
ld/testsuite/ld-tic6x/attr-array-4-8.d
Normal file
@ -0,0 +1,6 @@
|
||||
#name: C6X array attribute merging, 4 8
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-4.s
|
||||
#source: attr-array-8.s
|
||||
#error: .*requires more array alignment than .* preserves
|
6
ld/testsuite/ld-tic6x/attr-array-4-816.d
Normal file
6
ld/testsuite/ld-tic6x/attr-array-4-816.d
Normal file
@ -0,0 +1,6 @@
|
||||
#name: C6X array attribute merging, 4 816
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-4.s
|
||||
#source: attr-array-816.s
|
||||
#error: .*requires more array alignment than .* preserves
|
2
ld/testsuite/ld-tic6x/attr-array-4.s
Normal file
2
ld/testsuite/ld-tic6x/attr-array-4.s
Normal file
@ -0,0 +1,2 @@
|
||||
.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
|
||||
.c6xabi_attribute Tag_ABI_array_object_alignment, 1
|
12
ld/testsuite/ld-tic6x/attr-array-416-16.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-416-16.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 416 16
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-416.s
|
||||
#source: attr-array-16.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 16-byte
|
||||
Tag_ABI_array_object_align_expected: 16-byte
|
12
ld/testsuite/ld-tic6x/attr-array-416-4.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-416-4.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 416 4
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-416.s
|
||||
#source: attr-array-4.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 4-byte
|
||||
Tag_ABI_array_object_align_expected: 4-byte
|
12
ld/testsuite/ld-tic6x/attr-array-416-416.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-416-416.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 416 416
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-416.s
|
||||
#source: attr-array-416.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 16-byte
|
||||
Tag_ABI_array_object_align_expected: 4-byte
|
11
ld/testsuite/ld-tic6x/attr-array-416-48.d
Normal file
11
ld/testsuite/ld-tic6x/attr-array-416-48.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: C6X array attribute merging, 416 48
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-416.s
|
||||
#source: attr-array-48.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_align_expected: 4-byte
|
10
ld/testsuite/ld-tic6x/attr-array-416-8.d
Normal file
10
ld/testsuite/ld-tic6x/attr-array-416-8.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X array attribute merging, 416 8
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-416.s
|
||||
#source: attr-array-8.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
11
ld/testsuite/ld-tic6x/attr-array-416-816.d
Normal file
11
ld/testsuite/ld-tic6x/attr-array-416-816.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: C6X array attribute merging, 416 816
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-416.s
|
||||
#source: attr-array-816.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 16-byte
|
2
ld/testsuite/ld-tic6x/attr-array-416.s
Normal file
2
ld/testsuite/ld-tic6x/attr-array-416.s
Normal file
@ -0,0 +1,2 @@
|
||||
.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
|
||||
.c6xabi_attribute Tag_ABI_array_object_alignment, 2
|
6
ld/testsuite/ld-tic6x/attr-array-48-16.d
Normal file
6
ld/testsuite/ld-tic6x/attr-array-48-16.d
Normal file
@ -0,0 +1,6 @@
|
||||
#name: C6X array attribute merging, 48 16
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-48.s
|
||||
#source: attr-array-16.s
|
||||
#error: .*requires more array alignment than .* preserves
|
12
ld/testsuite/ld-tic6x/attr-array-48-4.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-48-4.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 48 4
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-48.s
|
||||
#source: attr-array-4.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 4-byte
|
||||
Tag_ABI_array_object_align_expected: 4-byte
|
11
ld/testsuite/ld-tic6x/attr-array-48-416.d
Normal file
11
ld/testsuite/ld-tic6x/attr-array-48-416.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: C6X array attribute merging, 48 416
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-48.s
|
||||
#source: attr-array-416.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_align_expected: 4-byte
|
11
ld/testsuite/ld-tic6x/attr-array-48-48.d
Normal file
11
ld/testsuite/ld-tic6x/attr-array-48-48.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: C6X array attribute merging, 48 48
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-48.s
|
||||
#source: attr-array-48.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_align_expected: 4-byte
|
10
ld/testsuite/ld-tic6x/attr-array-48-8.d
Normal file
10
ld/testsuite/ld-tic6x/attr-array-48-8.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X array attribute merging, 48 8
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-48.s
|
||||
#source: attr-array-8.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
10
ld/testsuite/ld-tic6x/attr-array-48-816.d
Normal file
10
ld/testsuite/ld-tic6x/attr-array-48-816.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X array attribute merging, 48 816
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-48.s
|
||||
#source: attr-array-816.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
2
ld/testsuite/ld-tic6x/attr-array-48.s
Normal file
2
ld/testsuite/ld-tic6x/attr-array-48.s
Normal file
@ -0,0 +1,2 @@
|
||||
.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
|
||||
.c6xabi_attribute Tag_ABI_array_object_alignment, 0
|
6
ld/testsuite/ld-tic6x/attr-array-8-16.d
Normal file
6
ld/testsuite/ld-tic6x/attr-array-8-16.d
Normal file
@ -0,0 +1,6 @@
|
||||
#name: C6X array attribute merging, 8 16
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-8.s
|
||||
#source: attr-array-16.s
|
||||
#error: .*requires more array alignment than .* preserves
|
6
ld/testsuite/ld-tic6x/attr-array-8-4.d
Normal file
6
ld/testsuite/ld-tic6x/attr-array-8-4.d
Normal file
@ -0,0 +1,6 @@
|
||||
#name: C6X array attribute merging, 8 4
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-8.s
|
||||
#source: attr-array-4.s
|
||||
#error: .*requires more array alignment than .* preserves
|
10
ld/testsuite/ld-tic6x/attr-array-8-416.d
Normal file
10
ld/testsuite/ld-tic6x/attr-array-8-416.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X array attribute merging, 8 416
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-8.s
|
||||
#source: attr-array-416.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
10
ld/testsuite/ld-tic6x/attr-array-8-48.d
Normal file
10
ld/testsuite/ld-tic6x/attr-array-8-48.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X array attribute merging, 8 48
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-8.s
|
||||
#source: attr-array-48.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
10
ld/testsuite/ld-tic6x/attr-array-8-8.d
Normal file
10
ld/testsuite/ld-tic6x/attr-array-8-8.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X array attribute merging, 8 8
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-8.s
|
||||
#source: attr-array-8.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
10
ld/testsuite/ld-tic6x/attr-array-8-816.d
Normal file
10
ld/testsuite/ld-tic6x/attr-array-8-816.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X array attribute merging, 8 816
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-8.s
|
||||
#source: attr-array-816.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
2
ld/testsuite/ld-tic6x/attr-array-8.s
Normal file
2
ld/testsuite/ld-tic6x/attr-array-8.s
Normal file
@ -0,0 +1,2 @@
|
||||
.c6xabi_attribute Tag_ABI_array_object_align_expected, 0
|
||||
.c6xabi_attribute Tag_ABI_array_object_alignment, 0
|
12
ld/testsuite/ld-tic6x/attr-array-816-16.d
Normal file
12
ld/testsuite/ld-tic6x/attr-array-816-16.d
Normal file
@ -0,0 +1,12 @@
|
||||
#name: C6X array attribute merging, 816 16
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-816.s
|
||||
#source: attr-array-16.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 16-byte
|
||||
Tag_ABI_array_object_align_expected: 16-byte
|
6
ld/testsuite/ld-tic6x/attr-array-816-4.d
Normal file
6
ld/testsuite/ld-tic6x/attr-array-816-4.d
Normal file
@ -0,0 +1,6 @@
|
||||
#name: C6X array attribute merging, 816 4
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-816.s
|
||||
#source: attr-array-4.s
|
||||
#error: .*requires more array alignment than .* preserves
|
11
ld/testsuite/ld-tic6x/attr-array-816-416.d
Normal file
11
ld/testsuite/ld-tic6x/attr-array-816-416.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: C6X array attribute merging, 816 416
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-816.s
|
||||
#source: attr-array-416.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 16-byte
|
10
ld/testsuite/ld-tic6x/attr-array-816-48.d
Normal file
10
ld/testsuite/ld-tic6x/attr-array-816-48.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X array attribute merging, 816 48
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-816.s
|
||||
#source: attr-array-48.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
10
ld/testsuite/ld-tic6x/attr-array-816-8.d
Normal file
10
ld/testsuite/ld-tic6x/attr-array-816-8.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X array attribute merging, 816 8
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-816.s
|
||||
#source: attr-array-8.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
11
ld/testsuite/ld-tic6x/attr-array-816-816.d
Normal file
11
ld/testsuite/ld-tic6x/attr-array-816-816.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: C6X array attribute merging, 816 816
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-array-816.s
|
||||
#source: attr-array-816.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
||||
Tag_ABI_array_object_alignment: 16-byte
|
2
ld/testsuite/ld-tic6x/attr-array-816.s
Normal file
2
ld/testsuite/ld-tic6x/attr-array-816.s
Normal file
@ -0,0 +1,2 @@
|
||||
.c6xabi_attribute Tag_ABI_array_object_align_expected, 0
|
||||
.c6xabi_attribute Tag_ABI_array_object_alignment, 2
|
11
ld/testsuite/ld-tic6x/attr-conformance-10-10.d
Normal file
11
ld/testsuite/ld-tic6x/attr-conformance-10-10.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: C6X conformance attribute merging, 10 10
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-conformance-10.s
|
||||
#source: attr-conformance-10.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ABI_conformance: "1.0"
|
||||
Tag_ISA: C674x
|
10
ld/testsuite/ld-tic6x/attr-conformance-10-11.d
Normal file
10
ld/testsuite/ld-tic6x/attr-conformance-10-11.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X conformance attribute merging, 10 11
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-conformance-10.s
|
||||
#source: attr-conformance-11.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
10
ld/testsuite/ld-tic6x/attr-conformance-10-none.d
Normal file
10
ld/testsuite/ld-tic6x/attr-conformance-10-none.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X conformance attribute merging, 10 none
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-conformance-10.s
|
||||
#source: attr-conformance-none.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
1
ld/testsuite/ld-tic6x/attr-conformance-10.s
Normal file
1
ld/testsuite/ld-tic6x/attr-conformance-10.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute Tag_ABI_conformance, "1.0"
|
10
ld/testsuite/ld-tic6x/attr-conformance-11-10.d
Normal file
10
ld/testsuite/ld-tic6x/attr-conformance-11-10.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X conformance attribute merging, 11 10
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-conformance-11.s
|
||||
#source: attr-conformance-10.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
11
ld/testsuite/ld-tic6x/attr-conformance-11-11.d
Normal file
11
ld/testsuite/ld-tic6x/attr-conformance-11-11.d
Normal file
@ -0,0 +1,11 @@
|
||||
#name: C6X conformance attribute merging, 11 11
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-conformance-11.s
|
||||
#source: attr-conformance-11.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ABI_conformance: "1.1"
|
||||
Tag_ISA: C674x
|
10
ld/testsuite/ld-tic6x/attr-conformance-11-none.d
Normal file
10
ld/testsuite/ld-tic6x/attr-conformance-11-none.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X conformance attribute merging, 11 none
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-conformance-11.s
|
||||
#source: attr-conformance-none.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
1
ld/testsuite/ld-tic6x/attr-conformance-11.s
Normal file
1
ld/testsuite/ld-tic6x/attr-conformance-11.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute Tag_ABI_conformance, "1.1"
|
10
ld/testsuite/ld-tic6x/attr-conformance-none-10.d
Normal file
10
ld/testsuite/ld-tic6x/attr-conformance-none-10.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X conformance attribute merging, none 10
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-conformance-none.s
|
||||
#source: attr-conformance-10.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
10
ld/testsuite/ld-tic6x/attr-conformance-none-11.d
Normal file
10
ld/testsuite/ld-tic6x/attr-conformance-none-11.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X conformance attribute merging, none 11
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-conformance-none.s
|
||||
#source: attr-conformance-11.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
10
ld/testsuite/ld-tic6x/attr-conformance-none-none.d
Normal file
10
ld/testsuite/ld-tic6x/attr-conformance-none-none.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: C6X conformance attribute merging, none none
|
||||
#as: -mlittle-endian
|
||||
#ld: -r -melf32_tic6x_le
|
||||
#source: attr-conformance-none.s
|
||||
#source: attr-conformance-none.s
|
||||
#readelf: -A
|
||||
|
||||
Attribute Section: c6xabi
|
||||
File Attributes
|
||||
Tag_ISA: C674x
|
1
ld/testsuite/ld-tic6x/attr-conformance-none.s
Normal file
1
ld/testsuite/ld-tic6x/attr-conformance-none.s
Normal file
@ -0,0 +1 @@
|
||||
# No conformance attribute.
|
1
ld/testsuite/ld-tic6x/attr-pic-0.s
Normal file
1
ld/testsuite/ld-tic6x/attr-pic-0.s
Normal file
@ -0,0 +1 @@
|
||||
.c6xabi_attribute Tag_ABI_PIC, 0
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user