This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

More C6X attributes


I've applied this patch to add support for the full set of build 
attributes in the current version of the C6000 EABI.

The one piece not added is the specified rules for handling unknown 
attributes; those rules are essentially the same as those for ARM so I'll 
send a separate patch that refactors the ARM code so that most of the code 
for unknown attribute handling can be shared by multiple architectures.

The general rule I followed for which attributes get command-line options 
is that if an attribute has exact matching required for compatibility, and 
no "don't care" possibility, then it should have an option for convenience 
in passing from compiler specs when building .s sources, to avoid every 
assembly source file needing to specify several attributes.

bfd:
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.

binutils:
2010-11-02  Joseph Myers  <joseph@codesourcery.com>

	* readelf.c (display_tic6x_attribute): Handle more attributes.

gas:
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.

gas/testsuite:
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.

include/elf:
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.

ld/testsuite:
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.

Index: bfd/elf32-tic6x.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-tic6x.c,v
retrieving revision 1.11
diff -u -p -r1.11 elf32-tic6x.c
--- bfd/elf32-tic6x.c	29 Oct 2010 16:47:51 -0000	1.11
+++ bfd/elf32-tic6x.c	2 Nov 2010 14:24:59 -0000
@@ -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 a
   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,
 
   /* 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
+	(_("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
-	(_("warning: %B and %B differ in whether code is compiled for DSBT"),
+	(_("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 
 #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"
Index: binutils/readelf.c
===================================================================
RCS file: /cvs/src/src/binutils/readelf.c,v
retrieving revision 1.521
diff -u -p -r1.521 readelf.c
--- binutils/readelf.c	29 Oct 2010 16:47:52 -0000	1.521
+++ binutils/readelf.c	2 Nov 2010 14:25:00 -0000
@@ -10804,6 +10804,63 @@ display_tic6x_attribute (unsigned char *
 	}
       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 *
 	}
       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 *
       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;
 }
Index: gas/config/tc-tic6x.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-tic6x.c,v
retrieving revision 1.10
diff -u -p -r1.10 tc-tic6x.c
--- gas/config/tc-tic6x.c	29 Oct 2010 00:15:53 -0000	1.10
+++ gas/config/tc-tic6x.c	2 Nov 2010 14:25:00 -0000
@@ -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 =
 /* 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_UN
   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
Index: gas/doc/as.texinfo
===================================================================
RCS file: /cvs/src/src/gas/doc/as.texinfo,v
retrieving revision 1.224
diff -u -p -r1.224 as.texinfo
--- gas/doc/as.texinfo	29 Oct 2010 00:15:53 -0000	1.224
+++ gas/doc/as.texinfo	2 Nov 2010 14:25:01 -0000
@@ -477,6 +477,7 @@ gcc(1), ld(1), and the Info entries for 
 @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 
 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
Index: gas/doc/c-tic6x.texi
===================================================================
RCS file: /cvs/src/src/gas/doc/c-tic6x.texi,v
retrieving revision 1.5
diff -u -p -r1.5 c-tic6x.texi
--- gas/doc/c-tic6x.texi	29 Oct 2010 16:47:53 -0000	1.5
+++ gas/doc/c-tic6x.texi	2 Nov 2010 14:25:01 -0000
@@ -59,6 +59,32 @@ default, causes the tag to have a value 
 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{-
 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.
 
Index: gas/testsuite/gas/tic6x/attr-array-directive-1.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-array-directive-1.d
diff -N gas/testsuite/gas/tic6x/attr-array-directive-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-array-directive-1.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-array-directive-1.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-array-directive-1.s
diff -N gas/testsuite/gas/tic6x/attr-array-directive-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-array-directive-1.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_array_object_alignment, 1
Index: gas/testsuite/gas/tic6x/attr-array-directive-2.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-array-directive-2.d
diff -N gas/testsuite/gas/tic6x/attr-array-directive-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-array-directive-2.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-array-directive-2.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-array-directive-2.s
diff -N gas/testsuite/gas/tic6x/attr-array-directive-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-array-directive-2.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute 18, 2
Index: gas/testsuite/gas/tic6x/attr-array-directive-3.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-array-directive-3.d
diff -N gas/testsuite/gas/tic6x/attr-array-directive-3.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-array-directive-3.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-array-directive-3.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-array-directive-3.s
diff -N gas/testsuite/gas/tic6x/attr-array-directive-3.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-array-directive-3.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
Index: gas/testsuite/gas/tic6x/attr-array-directive-4.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-array-directive-4.d
diff -N gas/testsuite/gas/tic6x/attr-array-directive-4.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-array-directive-4.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-array-directive-4.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-array-directive-4.s
diff -N gas/testsuite/gas/tic6x/attr-array-directive-4.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-array-directive-4.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute 20, 2
Index: gas/testsuite/gas/tic6x/attr-conformance-directive-1.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-conformance-directive-1.d
diff -N gas/testsuite/gas/tic6x/attr-conformance-directive-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-conformance-directive-1.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-conformance-directive-1.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-conformance-directive-1.s
diff -N gas/testsuite/gas/tic6x/attr-conformance-directive-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-conformance-directive-1.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_conformance, "1.0"
Index: gas/testsuite/gas/tic6x/attr-conformance-directive-2.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-conformance-directive-2.d
diff -N gas/testsuite/gas/tic6x/attr-conformance-directive-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-conformance-directive-2.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-conformance-directive-2.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-conformance-directive-2.s
diff -N gas/testsuite/gas/tic6x/attr-conformance-directive-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-conformance-directive-2.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute 67, "1.0"
Index: gas/testsuite/gas/tic6x/attr-pic-directive-1.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pic-directive-1.d
diff -N gas/testsuite/gas/tic6x/attr-pic-directive-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pic-directive-1.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-pic-directive-1.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pic-directive-1.s
diff -N gas/testsuite/gas/tic6x/attr-pic-directive-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pic-directive-1.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PIC, 1
Index: gas/testsuite/gas/tic6x/attr-pic-directive-2.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pic-directive-2.d
diff -N gas/testsuite/gas/tic6x/attr-pic-directive-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pic-directive-2.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-pic-directive-2.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pic-directive-2.s
diff -N gas/testsuite/gas/tic6x/attr-pic-directive-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pic-directive-2.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute 16, 1
Index: gas/testsuite/gas/tic6x/attr-pic-opts-mno-pic.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pic-opts-mno-pic.d
diff -N gas/testsuite/gas/tic6x/attr-pic-opts-mno-pic.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pic-opts-mno-pic.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-pic-opts-mpic.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pic-opts-mpic.d
diff -N gas/testsuite/gas/tic6x/attr-pic-opts-mpic.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pic-opts-mpic.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-pid-directive-1.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pid-directive-1.d
diff -N gas/testsuite/gas/tic6x/attr-pid-directive-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pid-directive-1.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-pid-directive-1.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pid-directive-1.s
diff -N gas/testsuite/gas/tic6x/attr-pid-directive-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pid-directive-1.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PID, 1
Index: gas/testsuite/gas/tic6x/attr-pid-directive-2.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pid-directive-2.d
diff -N gas/testsuite/gas/tic6x/attr-pid-directive-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pid-directive-2.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-pid-directive-2.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pid-directive-2.s
diff -N gas/testsuite/gas/tic6x/attr-pid-directive-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pid-directive-2.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute 14, 2
Index: gas/testsuite/gas/tic6x/attr-pid-opts-mpid-far.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pid-opts-mpid-far.d
diff -N gas/testsuite/gas/tic6x/attr-pid-opts-mpid-far.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pid-opts-mpid-far.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-pid-opts-mpid-near.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pid-opts-mpid-near.d
diff -N gas/testsuite/gas/tic6x/attr-pid-opts-mpid-near.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pid-opts-mpid-near.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-pid-opts-mpid-no.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-pid-opts-mpid-no.d
diff -N gas/testsuite/gas/tic6x/attr-pid-opts-mpid-no.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-pid-opts-mpid-no.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-stack-directive-1.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-stack-directive-1.d
diff -N gas/testsuite/gas/tic6x/attr-stack-directive-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-stack-directive-1.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-stack-directive-1.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-stack-directive-1.s
diff -N gas/testsuite/gas/tic6x/attr-stack-directive-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-stack-directive-1.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_stack_align_needed, 0
+.c6xabi_attribute Tag_ABI_stack_align_preserved, 1
Index: gas/testsuite/gas/tic6x/attr-stack-directive-2.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-stack-directive-2.d
diff -N gas/testsuite/gas/tic6x/attr-stack-directive-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-stack-directive-2.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-stack-directive-2.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-stack-directive-2.s
diff -N gas/testsuite/gas/tic6x/attr-stack-directive-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-stack-directive-2.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute 8, 1
+.c6xabi_attribute 10, 1
Index: gas/testsuite/gas/tic6x/attr-wchar-directive-1.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-wchar-directive-1.d
diff -N gas/testsuite/gas/tic6x/attr-wchar-directive-1.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-wchar-directive-1.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-wchar-directive-1.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-wchar-directive-1.s
diff -N gas/testsuite/gas/tic6x/attr-wchar-directive-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-wchar-directive-1.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_wchar_t, 1
Index: gas/testsuite/gas/tic6x/attr-wchar-directive-2.d
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-wchar-directive-2.d
diff -N gas/testsuite/gas/tic6x/attr-wchar-directive-2.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-wchar-directive-2.d	2 Nov 2010 14:25:01 -0000
@@ -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
Index: gas/testsuite/gas/tic6x/attr-wchar-directive-2.s
===================================================================
RCS file: gas/testsuite/gas/tic6x/attr-wchar-directive-2.s
diff -N gas/testsuite/gas/tic6x/attr-wchar-directive-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/tic6x/attr-wchar-directive-2.s	2 Nov 2010 14:25:01 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute 6, 2
Index: include/elf/tic6x-attrs.h
===================================================================
RCS file: /cvs/src/src/include/elf/tic6x-attrs.h,v
retrieving revision 1.4
diff -u -p -r1.4 tic6x-attrs.h
--- include/elf/tic6x-attrs.h	29 Oct 2010 16:47:54 -0000	1.4
+++ include/elf/tic6x-attrs.h	2 Nov 2010 14:25:02 -0000
@@ -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)
Index: ld/testsuite/ld-tic6x/attr-array-16-16.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-16-16.d
diff -N ld/testsuite/ld-tic6x/attr-array-16-16.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-16-16.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-16-4.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-16-4.d
diff -N ld/testsuite/ld-tic6x/attr-array-16-4.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-16-4.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-16-416.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-16-416.d
diff -N ld/testsuite/ld-tic6x/attr-array-16-416.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-16-416.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-16-48.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-16-48.d
diff -N ld/testsuite/ld-tic6x/attr-array-16-48.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-16-48.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-16-8.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-16-8.d
diff -N ld/testsuite/ld-tic6x/attr-array-16-8.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-16-8.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-16-816.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-16-816.d
diff -N ld/testsuite/ld-tic6x/attr-array-16-816.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-16-816.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-16.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-16.s
diff -N ld/testsuite/ld-tic6x/attr-array-16.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-16.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 2
+.c6xabi_attribute Tag_ABI_array_object_alignment, 2
Index: ld/testsuite/ld-tic6x/attr-array-4-16.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-4-16.d
diff -N ld/testsuite/ld-tic6x/attr-array-4-16.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-4-16.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-4-4.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-4-4.d
diff -N ld/testsuite/ld-tic6x/attr-array-4-4.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-4-4.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-4-416.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-4-416.d
diff -N ld/testsuite/ld-tic6x/attr-array-4-416.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-4-416.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-4-48.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-4-48.d
diff -N ld/testsuite/ld-tic6x/attr-array-4-48.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-4-48.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-4-8.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-4-8.d
diff -N ld/testsuite/ld-tic6x/attr-array-4-8.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-4-8.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-4-816.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-4-816.d
diff -N ld/testsuite/ld-tic6x/attr-array-4-816.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-4-816.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-4.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-4.s
diff -N ld/testsuite/ld-tic6x/attr-array-4.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-4.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
+.c6xabi_attribute Tag_ABI_array_object_alignment, 1
Index: ld/testsuite/ld-tic6x/attr-array-416-16.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-416-16.d
diff -N ld/testsuite/ld-tic6x/attr-array-416-16.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-416-16.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-416-4.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-416-4.d
diff -N ld/testsuite/ld-tic6x/attr-array-416-4.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-416-4.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-416-416.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-416-416.d
diff -N ld/testsuite/ld-tic6x/attr-array-416-416.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-416-416.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-416-48.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-416-48.d
diff -N ld/testsuite/ld-tic6x/attr-array-416-48.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-416-48.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-416-8.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-416-8.d
diff -N ld/testsuite/ld-tic6x/attr-array-416-8.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-416-8.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-416-816.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-416-816.d
diff -N ld/testsuite/ld-tic6x/attr-array-416-816.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-416-816.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-416.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-416.s
diff -N ld/testsuite/ld-tic6x/attr-array-416.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-416.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
+.c6xabi_attribute Tag_ABI_array_object_alignment, 2
Index: ld/testsuite/ld-tic6x/attr-array-48-16.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-48-16.d
diff -N ld/testsuite/ld-tic6x/attr-array-48-16.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-48-16.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-48-4.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-48-4.d
diff -N ld/testsuite/ld-tic6x/attr-array-48-4.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-48-4.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-48-416.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-48-416.d
diff -N ld/testsuite/ld-tic6x/attr-array-48-416.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-48-416.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-48-48.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-48-48.d
diff -N ld/testsuite/ld-tic6x/attr-array-48-48.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-48-48.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-48-8.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-48-8.d
diff -N ld/testsuite/ld-tic6x/attr-array-48-8.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-48-8.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-48-816.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-48-816.d
diff -N ld/testsuite/ld-tic6x/attr-array-48-816.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-48-816.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-48.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-48.s
diff -N ld/testsuite/ld-tic6x/attr-array-48.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-48.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
+.c6xabi_attribute Tag_ABI_array_object_alignment, 0
Index: ld/testsuite/ld-tic6x/attr-array-8-16.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-8-16.d
diff -N ld/testsuite/ld-tic6x/attr-array-8-16.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-8-16.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-8-4.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-8-4.d
diff -N ld/testsuite/ld-tic6x/attr-array-8-4.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-8-4.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-8-416.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-8-416.d
diff -N ld/testsuite/ld-tic6x/attr-array-8-416.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-8-416.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-8-48.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-8-48.d
diff -N ld/testsuite/ld-tic6x/attr-array-8-48.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-8-48.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-8-8.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-8-8.d
diff -N ld/testsuite/ld-tic6x/attr-array-8-8.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-8-8.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-8-816.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-8-816.d
diff -N ld/testsuite/ld-tic6x/attr-array-8-816.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-8-816.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-8.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-8.s
diff -N ld/testsuite/ld-tic6x/attr-array-8.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-8.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 0
+.c6xabi_attribute Tag_ABI_array_object_alignment, 0
Index: ld/testsuite/ld-tic6x/attr-array-816-16.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-816-16.d
diff -N ld/testsuite/ld-tic6x/attr-array-816-16.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-816-16.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-816-4.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-816-4.d
diff -N ld/testsuite/ld-tic6x/attr-array-816-4.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-816-4.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-816-416.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-816-416.d
diff -N ld/testsuite/ld-tic6x/attr-array-816-416.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-816-416.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-816-48.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-816-48.d
diff -N ld/testsuite/ld-tic6x/attr-array-816-48.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-816-48.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-816-8.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-816-8.d
diff -N ld/testsuite/ld-tic6x/attr-array-816-8.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-816-8.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-816-816.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-816-816.d
diff -N ld/testsuite/ld-tic6x/attr-array-816-816.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-816-816.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-array-816.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-array-816.s
diff -N ld/testsuite/ld-tic6x/attr-array-816.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-array-816.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 0
+.c6xabi_attribute Tag_ABI_array_object_alignment, 2
Index: ld/testsuite/ld-tic6x/attr-conformance-10-10.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-10-10.d
diff -N ld/testsuite/ld-tic6x/attr-conformance-10-10.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-10-10.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-conformance-10-11.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-10-11.d
diff -N ld/testsuite/ld-tic6x/attr-conformance-10-11.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-10-11.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-conformance-10-none.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-10-none.d
diff -N ld/testsuite/ld-tic6x/attr-conformance-10-none.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-10-none.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-conformance-10.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-10.s
diff -N ld/testsuite/ld-tic6x/attr-conformance-10.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-10.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_conformance, "1.0"
Index: ld/testsuite/ld-tic6x/attr-conformance-11-10.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-11-10.d
diff -N ld/testsuite/ld-tic6x/attr-conformance-11-10.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-11-10.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-conformance-11-11.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-11-11.d
diff -N ld/testsuite/ld-tic6x/attr-conformance-11-11.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-11-11.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-conformance-11-none.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-11-none.d
diff -N ld/testsuite/ld-tic6x/attr-conformance-11-none.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-11-none.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-conformance-11.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-11.s
diff -N ld/testsuite/ld-tic6x/attr-conformance-11.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-11.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_conformance, "1.1"
Index: ld/testsuite/ld-tic6x/attr-conformance-none-10.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-none-10.d
diff -N ld/testsuite/ld-tic6x/attr-conformance-none-10.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-none-10.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-conformance-none-11.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-none-11.d
diff -N ld/testsuite/ld-tic6x/attr-conformance-none-11.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-none-11.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-conformance-none-none.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-none-none.d
diff -N ld/testsuite/ld-tic6x/attr-conformance-none-none.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-none-none.d	2 Nov 2010 14:25:02 -0000
@@ -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
Index: ld/testsuite/ld-tic6x/attr-conformance-none.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-conformance-none.s
diff -N ld/testsuite/ld-tic6x/attr-conformance-none.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-conformance-none.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+# No conformance attribute.
Index: ld/testsuite/ld-tic6x/attr-pic-0.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pic-0.s
diff -N ld/testsuite/ld-tic6x/attr-pic-0.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pic-0.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PIC, 0
Index: ld/testsuite/ld-tic6x/attr-pic-00.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pic-00.d
diff -N ld/testsuite/ld-tic6x/attr-pic-00.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pic-00.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,10 @@
+#name: C6X PIC attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-0.s
+#source: attr-pic-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
Index: ld/testsuite/ld-tic6x/attr-pic-01.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pic-01.d
diff -N ld/testsuite/ld-tic6x/attr-pic-01.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pic-01.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X PIC attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-0.s
+#source: attr-pic-1.s
+#warning: .*differ in position-dependence of code addressing
Index: ld/testsuite/ld-tic6x/attr-pic-1.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pic-1.s
diff -N ld/testsuite/ld-tic6x/attr-pic-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pic-1.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PIC, 1
Index: ld/testsuite/ld-tic6x/attr-pic-10.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pic-10.d
diff -N ld/testsuite/ld-tic6x/attr-pic-10.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pic-10.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X PIC attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-1.s
+#source: attr-pic-0.s
+#warning: .*differ in position-dependence of code addressing
Index: ld/testsuite/ld-tic6x/attr-pic-11.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pic-11.d
diff -N ld/testsuite/ld-tic6x/attr-pic-11.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pic-11.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,11 @@
+#name: C6X PIC attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-1.s
+#source: attr-pic-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_PIC: Code addressing position-independent
Index: ld/testsuite/ld-tic6x/attr-pid-0.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-0.s
diff -N ld/testsuite/ld-tic6x/attr-pid-0.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-0.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PID, 0
Index: ld/testsuite/ld-tic6x/attr-pid-00.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-00.d
diff -N ld/testsuite/ld-tic6x/attr-pid-00.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-00.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,10 @@
+#name: C6X PID attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-0.s
+#source: attr-pid-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
Index: ld/testsuite/ld-tic6x/attr-pid-01.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-01.d
diff -N ld/testsuite/ld-tic6x/attr-pid-01.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-01.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-0.s
+#source: attr-pid-1.s
+#warning: .*differ in position-dependence of data addressing
Index: ld/testsuite/ld-tic6x/attr-pid-02.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-02.d
diff -N ld/testsuite/ld-tic6x/attr-pid-02.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-02.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 0 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-0.s
+#source: attr-pid-2.s
+#warning: .*differ in position-dependence of data addressing
Index: ld/testsuite/ld-tic6x/attr-pid-1.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-1.s
diff -N ld/testsuite/ld-tic6x/attr-pid-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-1.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PID, 1
Index: ld/testsuite/ld-tic6x/attr-pid-10.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-10.d
diff -N ld/testsuite/ld-tic6x/attr-pid-10.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-10.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-1.s
+#source: attr-pid-0.s
+#warning: .*differ in position-dependence of data addressing
Index: ld/testsuite/ld-tic6x/attr-pid-11.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-11.d
diff -N ld/testsuite/ld-tic6x/attr-pid-11.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-11.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,11 @@
+#name: C6X PID attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-1.s
+#source: attr-pid-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_PID: Data addressing position-independent, GOT near DP
Index: ld/testsuite/ld-tic6x/attr-pid-12.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-12.d
diff -N ld/testsuite/ld-tic6x/attr-pid-12.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-12.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 1 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-1.s
+#source: attr-pid-2.s
+#warning: .*differ in position-dependence of data addressing
Index: ld/testsuite/ld-tic6x/attr-pid-2.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-2.s
diff -N ld/testsuite/ld-tic6x/attr-pid-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-2.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PID, 2
Index: ld/testsuite/ld-tic6x/attr-pid-20.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-20.d
diff -N ld/testsuite/ld-tic6x/attr-pid-20.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-20.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 2 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-2.s
+#source: attr-pid-0.s
+#warning: .*differ in position-dependence of data addressing
Index: ld/testsuite/ld-tic6x/attr-pid-21.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-21.d
diff -N ld/testsuite/ld-tic6x/attr-pid-21.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-21.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 2 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-2.s
+#source: attr-pid-1.s
+#warning: .*differ in position-dependence of data addressing
Index: ld/testsuite/ld-tic6x/attr-pid-22.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-pid-22.d
diff -N ld/testsuite/ld-tic6x/attr-pid-22.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-pid-22.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,11 @@
+#name: C6X PID attribute merging, 2 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-2.s
+#source: attr-pid-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_PID: Data addressing position-independent, GOT far from DP
Index: ld/testsuite/ld-tic6x/attr-stack-16-16.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-16-16.d
diff -N ld/testsuite/ld-tic6x/attr-stack-16-16.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-16-16.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,12 @@
+#name: C6X stack attribute merging, 16 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-16.s
+#source: attr-stack-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_stack_align_needed: 16-byte
+  Tag_ABI_stack_align_preserved: 16-byte
Index: ld/testsuite/ld-tic6x/attr-stack-16-8.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-16-8.d
diff -N ld/testsuite/ld-tic6x/attr-stack-16-8.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-16-8.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X stack attribute merging, 16 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-16.s
+#source: attr-stack-8.s
+#error: .*requires more stack alignment than .* preserves
Index: ld/testsuite/ld-tic6x/attr-stack-16-816.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-16-816.d
diff -N ld/testsuite/ld-tic6x/attr-stack-16-816.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-16-816.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,12 @@
+#name: C6X stack attribute merging, 16 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-16.s
+#source: attr-stack-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_stack_align_needed: 16-byte
+  Tag_ABI_stack_align_preserved: 16-byte
Index: ld/testsuite/ld-tic6x/attr-stack-16.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-16.s
diff -N ld/testsuite/ld-tic6x/attr-stack-16.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-16.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_stack_align_needed, 1
+.c6xabi_attribute Tag_ABI_stack_align_preserved, 1
Index: ld/testsuite/ld-tic6x/attr-stack-8-16.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-8-16.d
diff -N ld/testsuite/ld-tic6x/attr-stack-8-16.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-8-16.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X stack attribute merging, 8 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-8.s
+#source: attr-stack-16.s
+#error: .*requires more stack alignment than .* preserves
Index: ld/testsuite/ld-tic6x/attr-stack-8-8.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-8-8.d
diff -N ld/testsuite/ld-tic6x/attr-stack-8-8.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-8-8.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,10 @@
+#name: C6X stack attribute merging, 8 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-8.s
+#source: attr-stack-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
Index: ld/testsuite/ld-tic6x/attr-stack-8-816.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-8-816.d
diff -N ld/testsuite/ld-tic6x/attr-stack-8-816.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-8-816.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,10 @@
+#name: C6X stack attribute merging, 8 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-8.s
+#source: attr-stack-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
Index: ld/testsuite/ld-tic6x/attr-stack-8.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-8.s
diff -N ld/testsuite/ld-tic6x/attr-stack-8.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-8.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_stack_align_needed, 0
+.c6xabi_attribute Tag_ABI_stack_align_preserved, 0
Index: ld/testsuite/ld-tic6x/attr-stack-816-16.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-816-16.d
diff -N ld/testsuite/ld-tic6x/attr-stack-816-16.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-816-16.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,12 @@
+#name: C6X stack attribute merging, 816 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-816.s
+#source: attr-stack-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_stack_align_needed: 16-byte
+  Tag_ABI_stack_align_preserved: 16-byte
Index: ld/testsuite/ld-tic6x/attr-stack-816-8.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-816-8.d
diff -N ld/testsuite/ld-tic6x/attr-stack-816-8.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-816-8.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,10 @@
+#name: C6X stack attribute merging, 816 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-816.s
+#source: attr-stack-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
Index: ld/testsuite/ld-tic6x/attr-stack-816-816.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-816-816.d
diff -N ld/testsuite/ld-tic6x/attr-stack-816-816.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-816-816.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,11 @@
+#name: C6X stack attribute merging, 816 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-816.s
+#source: attr-stack-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_stack_align_preserved: 16-byte
Index: ld/testsuite/ld-tic6x/attr-stack-816.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-stack-816.s
diff -N ld/testsuite/ld-tic6x/attr-stack-816.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-stack-816.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_stack_align_needed, 0
+.c6xabi_attribute Tag_ABI_stack_align_preserved, 1
Index: ld/testsuite/ld-tic6x/attr-wchar-0.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-0.s
diff -N ld/testsuite/ld-tic6x/attr-wchar-0.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-0.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_wchar_t, 0
Index: ld/testsuite/ld-tic6x/attr-wchar-00.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-00.d
diff -N ld/testsuite/ld-tic6x/attr-wchar-00.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-00.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,10 @@
+#name: C6X wchar_t attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-0.s
+#source: attr-wchar-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
Index: ld/testsuite/ld-tic6x/attr-wchar-01.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-01.d
diff -N ld/testsuite/ld-tic6x/attr-wchar-01.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-01.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-0.s
+#source: attr-wchar-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_wchar_t: 2 bytes
Index: ld/testsuite/ld-tic6x/attr-wchar-02.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-02.d
diff -N ld/testsuite/ld-tic6x/attr-wchar-02.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-02.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 0 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-0.s
+#source: attr-wchar-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_wchar_t: 4 bytes
Index: ld/testsuite/ld-tic6x/attr-wchar-1.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-1.s
diff -N ld/testsuite/ld-tic6x/attr-wchar-1.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-1.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_wchar_t, 1
Index: ld/testsuite/ld-tic6x/attr-wchar-10.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-10.d
diff -N ld/testsuite/ld-tic6x/attr-wchar-10.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-10.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-1.s
+#source: attr-wchar-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_wchar_t: 2 bytes
Index: ld/testsuite/ld-tic6x/attr-wchar-11.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-11.d
diff -N ld/testsuite/ld-tic6x/attr-wchar-11.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-11.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-1.s
+#source: attr-wchar-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_wchar_t: 2 bytes
Index: ld/testsuite/ld-tic6x/attr-wchar-12.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-12.d
diff -N ld/testsuite/ld-tic6x/attr-wchar-12.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-12.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X wchar_t attribute merging, 1 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-1.s
+#source: attr-wchar-2.s
+#warning: .*differ in wchar_t size
Index: ld/testsuite/ld-tic6x/attr-wchar-2.s
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-2.s
diff -N ld/testsuite/ld-tic6x/attr-wchar-2.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-2.s	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_wchar_t, 2
Index: ld/testsuite/ld-tic6x/attr-wchar-20.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-20.d
diff -N ld/testsuite/ld-tic6x/attr-wchar-20.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-20.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 2 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-2.s
+#source: attr-wchar-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_wchar_t: 4 bytes
Index: ld/testsuite/ld-tic6x/attr-wchar-21.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-21.d
diff -N ld/testsuite/ld-tic6x/attr-wchar-21.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-21.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,6 @@
+#name: C6X wchar_t attribute merging, 2 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-2.s
+#source: attr-wchar-1.s
+#warning: .*differ in wchar_t size
Index: ld/testsuite/ld-tic6x/attr-wchar-22.d
===================================================================
RCS file: ld/testsuite/ld-tic6x/attr-wchar-22.d
diff -N ld/testsuite/ld-tic6x/attr-wchar-22.d
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ld/testsuite/ld-tic6x/attr-wchar-22.d	2 Nov 2010 14:25:02 -0000
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 2 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-2.s
+#source: attr-wchar-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+  Tag_ISA: C674x
+  Tag_ABI_wchar_t: 4 bytes

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]