[PATCH 4/5] RX: bfd - Add RXv3 support.

Yoshinori Sato ysato@users.sourceforge.jp
Tue Dec 25 12:17:00 GMT 2018


        * bfd/archures.c: Add bfd_mach_rx_v2 and bfd_mach_rx_v3.
        * bfd/bfd-in2.h: Regenerate.
        * bfd/cpu-rx.c (arch_info_struct): Add RXv2 and RXv3 entry.
        * bfd/elf32-rx.c (elf32_rx_machine): Add RXv2 and RXv3 support.
---
 bfd/ChangeLog  |  7 +++++++
 bfd/archures.c |  2 ++
 bfd/bfd-in2.h  |  2 ++
 bfd/cpu-rx.c   | 30 ++++++++++++++++++++++++++++++
 bfd/elf32-rx.c |  7 ++++++-
 5 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 84be63b52f..e2c0397074 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2018-12-25  Yoshinori Sato <ysato@users.sourceforge.jp>
+
+	* bfd/archures.c: Add bfd_mach_rx_v2 and bfd_mach_rx_v3.
+	* bfd/bfd-in2.h: Regenerate.
+	* bfd/cpu-rx.c (arch_info_struct): Add RXv2 and RXv3 entry.
+	* bfd/elf32-rx.c (elf32_rx_machine): Add RXv2 and RXv3 support.
+
 2018-12-23  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* elf32-i386.c (elf_i386_rtype_to_howto): Remove the unused bfd
diff --git a/bfd/archures.c b/bfd/archures.c
index 82b6741d2e..cbe72cf230 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -460,6 +460,8 @@ DESCRIPTION
 .#define bfd_mach_rl78		0x75
 .  bfd_arch_rx,	       {* Renesas RX.  *}
 .#define bfd_mach_rx		0x75
+.#define bfd_mach_rx_v2		0x76
+.#define bfd_mach_rx_v3		0x77
 .  bfd_arch_s390,      {* IBM s390.  *}
 .#define bfd_mach_s390_31	31
 .#define bfd_mach_s390_64	64
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index ab71c350f7..34514b3c90 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2359,6 +2359,8 @@ enum bfd_architecture
 #define bfd_mach_rl78          0x75
   bfd_arch_rx,        /* Renesas RX.  */
 #define bfd_mach_rx            0x75
+#define bfd_mach_rx_v2         0x76
+#define bfd_mach_rx_v3         0x77
   bfd_arch_s390,      /* IBM s390.  */
 #define bfd_mach_s390_31       31
 #define bfd_mach_s390_64       64
diff --git a/bfd/cpu-rx.c b/bfd/cpu-rx.c
index 217772d028..f3c1f857d6 100644
--- a/bfd/cpu-rx.c
+++ b/bfd/cpu-rx.c
@@ -37,6 +37,36 @@ static const bfd_arch_info_type arch_info_struct[] =
     bfd_default_compatible,	/* Architecture comparison fn.  */
     bfd_default_scan,		/* String to architecture convert fn.  */
     bfd_arch_default_fill,	/* Default fill.  */
+    &arch_info_struct[1]	/* Next in list.  */
+  },
+  {
+    32,				/* Bits per word.  */
+    32,				/* Bits per address.  */
+    8,				/* Bits per byte.  */
+    bfd_arch_rx,		/* Architecture.  */
+    bfd_mach_rx_v2,		/* Machine.  */
+    "rx:v2",			/* Architecture name.  */
+    "rx:v2",			/* Printable name.  */
+    3,				/* Section align power.  */
+    FALSE,			/* The default ?  */
+    bfd_default_compatible,	/* Architecture comparison fn.  */
+    bfd_default_scan,		/* String to architecture convert fn.  */
+    bfd_arch_default_fill,	/* Default fill.  */
+    &arch_info_struct[2]	/* Next in list.  */
+  },
+  {
+    32,				/* Bits per word.  */
+    32,				/* Bits per address.  */
+    8,				/* Bits per byte.  */
+    bfd_arch_rx,		/* Architecture.  */
+    bfd_mach_rx_v3,		/* Machine.  */
+    "rx:v3",			/* Architecture name.  */
+    "rx:v3",			/* Printable name.  */
+    3,				/* Section align power.  */
+    FALSE,			/* The default ?  */
+    bfd_default_compatible,	/* Architecture comparison fn.  */
+    bfd_default_scan,		/* String to architecture convert fn.  */
+    bfd_arch_default_fill,	/* Default fill.  */
     NULL			/* Next in list.  */
   },
 };
diff --git a/bfd/elf32-rx.c b/bfd/elf32-rx.c
index 68fac291b8..9b4ce8ea4b 100644
--- a/bfd/elf32-rx.c
+++ b/bfd/elf32-rx.c
@@ -3212,7 +3212,12 @@ elf32_rx_machine (bfd * abfd ATTRIBUTE_UNUSED)
 	 For now we assume that the flags are OK.  */
   if ((elf_elfheader (abfd)->e_flags & EF_RX_CPU_MASK) == EF_RX_CPU_RX)
 #endif
-    return bfd_mach_rx;
+    if ((elf_elfheader (abfd)->e_flags & E_FLAG_RX_V2))
+      return bfd_mach_rx_v2;
+    else if ((elf_elfheader (abfd)->e_flags & E_FLAG_RX_V3))
+      return bfd_mach_rx_v3;
+    else
+      return bfd_mach_rx;
 
   return 0;
 }
-- 
2.11.0



More information about the Binutils mailing list