aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorNathan Froyd <froydnj@codesourcery.com>2008-10-10 20:55:36 +0000
committerNathan Froyd <froydnj@codesourcery.com>2008-10-10 20:55:36 +0000
commitf82e0623e15e6331a6cb5e7a2c6334cf5ae75ec9 (patch)
tree826b65789b90c112eda67bd4eda2d22d1c6eeb57 /binutils
parentc764a876984ebfc21f3635693aebeee4e8d9d0f3 (diff)
downloadgdb-f82e0623e15e6331a6cb5e7a2c6334cf5ae75ec9.zip
gdb-f82e0623e15e6331a6cb5e7a2c6334cf5ae75ec9.tar.gz
gdb-f82e0623e15e6331a6cb5e7a2c6334cf5ae75ec9.tar.bz2
include/elf/
* ppc.h: Add Tag_GNU_Power_ABI_Struct_Return. bfd/ * elf32-ppc.c (ppc_elf_merge_obj_attributes): Merge Tag_GNU_Power_ABI_Struct_Return. binutils/ * readelf.c (display_power_gnu_attribute): Decode Tag_GNU_Power_ABI_Struct_Return. ld/testsuite/ * ld-powerpc/gnu-attr-12-1.s: New file. * ld-powerpc/gnu-attr-12-2.s: New file. * ld-powerpc/gnu-attr-12-11.d: New file. * ld-powerpc/gnu-attr-12-21.d: New file. * ld-powerpc/powerpc.exp: Run new dump tests.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/readelf.c23
2 files changed, 28 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index bc97118..a67c2e1 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2008-10-10 Nathan Froyd <froydnj@codesourcery.com>
+
+ * readelf.c (display_power_gnu_attribute): Decode
+ Tag_GNU_Power_ABI_Struct_Return.
+
2008-10-10 Alan Modra <amodra@bigpond.net.au>
* embedspu.sh: Pass -Wa,-noexecstack to $CC.
diff --git a/binutils/readelf.c b/binutils/readelf.c
index c4bdc1d..51f5ffa 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -9063,6 +9063,29 @@ display_power_gnu_attribute (unsigned char *p, int tag)
return p;
}
+ if (tag == Tag_GNU_Power_ABI_Struct_Return)
+ {
+ val = read_uleb128 (p, &len);
+ p += len;
+ printf (" Tag_GNU_Power_ABI_Struct_Return: ");
+ switch (val)
+ {
+ case 0:
+ printf ("Any\n");
+ break;
+ case 1:
+ printf ("r3/r4\n");
+ break;
+ case 2:
+ printf ("Memory\n");
+ break;
+ default:
+ printf ("??? (%d)\n", val);
+ break;
+ }
+ return p;
+ }
+
if (tag & 1)
type = 1; /* String. */
else