aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2015-03-19 15:37:43 +0000
committerNick Clifton <nickc@redhat.com>2015-03-19 15:37:43 +0000
commit1740ba0cec44bdfe9cba586892a5953a4c602228 (patch)
tree26294748df3121fa55f1be80dce4027b1aff3f18 /binutils
parent8bf3b159e55b42bb084f9da1af400a285025618f (diff)
downloadgdb-1740ba0cec44bdfe9cba586892a5953a4c602228.zip
gdb-1740ba0cec44bdfe9cba586892a5953a4c602228.tar.gz
gdb-1740ba0cec44bdfe9cba586892a5953a4c602228.tar.bz2
Add support for G13 and G14 flag bits in RL78 ELF binaries.
inc * rl78.h (E_FLAG_RL78_G10): Redefine. (E_FLAG_RL78_CPU_MASK, E_FLAG_RL78_ANY_CPU, E_FLAG_RL78_G13 E_FLAG_RL78_G14): New flags. bin * readelf.c (get_machine_flags): Decode RL78's G13 and G14 flags. gas * config/tc-rl78.c (enum options): Add G13 and G14. (md_longopts): Add -mg13 and -mg14. (md_parse_option): Handle -mg13 and -mg14. (md_show_usage): List -mg13 and -mg14. * doc/c-rl78.texi: Add description of -mg13 and -mg14 options. bfd * elf32-rl78.c (rl78_cpu_name): New function. Prints the name of the RL78 core based upon the flags. (rl78_elf_merge_private_bfd_data): Handle merging of G13 and G14 flags. (rl78_elf_print_private_bfd_data): Use rl78_cpu_name. (elf32_rl78_machine): Always return bfd_mach_rl78.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/readelf.c9
2 files changed, 11 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 5c0efb1..a3249ad 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-19 Nick Clifton <nickc@redhat.com>
+
+ * readelf.c (get_machine_flags): Decode RL78's G13 and G14 flags.
+
2015-03-18 Jon Turney <jon.turney@dronecode.org.uk>
Nick Clifton <nickc@redhat.com>
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 20cfc47..adf2a91 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -3256,8 +3256,13 @@ get_machine_flags (unsigned e_flags, unsigned e_machine)
break;
case EM_RL78:
- if (e_flags & E_FLAG_RL78_G10)
- strcat (buf, ", G10");
+ switch (e_flags & E_FLAG_RL78_CPU_MASK)
+ {
+ case E_FLAG_RL78_ANY_CPU: break;
+ case E_FLAG_RL78_G10: strcat (buf, ", G10"); break;
+ case E_FLAG_RL78_G13: strcat (buf, ", G13"); break;
+ case E_FLAG_RL78_G14: strcat (buf, ", G14"); break;
+ }
if (e_flags & E_FLAG_RL78_64BIT_DOUBLES)
strcat (buf, ", 64-bit doubles");
break;