This is the mail archive of the binutils-cvs@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]

[binutils-gdb] S390: Place "s390:31-bit" after default arch in 64-bit arch list


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=df88b70224175011abf2cd599d5eec6fb81a90b7

commit df88b70224175011abf2cd599d5eec6fb81a90b7
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date:   Wed Mar 4 10:40:39 2015 +0100

    S390: Place "s390:31-bit" after default arch in 64-bit arch list
    
    On 64-bit platforms GDB did not include "s390:31-bit" in its list of
    architecture names.  This patch fixes that.
    
    To determine the list of architecture names for S390,
    gdbarch_printable_names() walks through the linked list of BFD arches
    starting with the default S390 arch, which is "s390:64-bit" on 64-bit
    platforms.  But since "s390:64-bit" was at the end of that list, the
    31-bit architecture was not reached.  The patch swaps the elements of
    that list on 64-bit platforms.
    
    bfd/ChangeLog:
    
    	* cpu-s390.c (N): New macro.
    	(bfd_s390_31_arch): New.  Define only if default target word size
    	is 64 bits.  Otherwise define...
    	(bfd_390_64_arch): ...this.  Make static.
    	(bfd_s390_arch): Define according to the default target word size.
    	Let the 'next' field point to the alternate arch.

Diff:
---
 bfd/ChangeLog  |  9 +++++++++
 bfd/cpu-s390.c | 61 +++++++++++++++++++++++-----------------------------------
 2 files changed, 33 insertions(+), 37 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ee6adb8..d115513 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2015-03-04  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* cpu-s390.c (N): New macro.
+	(bfd_s390_31_arch): New.  Define only if default target word size
+	is 64 bits.  Otherwise define...
+	(bfd_390_64_arch): ...this.  Make static.
+	(bfd_s390_arch): Define according to the default target word size.
+	Let the 'next' field point to the alternate arch.
+
 2015-03-04  Richard Sandiford  <richard.sandiford@arm.com>
 
 	PR gas/17843
diff --git a/bfd/cpu-s390.c b/bfd/cpu-s390.c
index 5fd3271..dbdec4a 100644
--- a/bfd/cpu-s390.c
+++ b/bfd/cpu-s390.c
@@ -23,44 +23,31 @@
 #include "bfd.h"
 #include "libbfd.h"
 
-const bfd_arch_info_type bfd_s390_64_arch =
-{
-    64,        /* bits in a word */
-    64,        /* bits in an address */
-    8, /* bits in a byte */
-    bfd_arch_s390,
-    bfd_mach_s390_64,
-    "s390",
-    "s390:64-bit",
-    3, /* section alignment power */
-#if BFD_DEFAULT_TARGET_SIZE == 64
-    TRUE, /* the default */
-#else
-    FALSE, /* the default */
-#endif
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    NULL
-};
+#define N(bits, number, print, is_default, next)	\
+  {							\
+    bits,	       /* bits in a word */		\
+    bits,	       /* bits in an address */		\
+    8,		       /* bits in a byte */		\
+    bfd_arch_s390,					\
+    number,						\
+    "s390",						\
+    print,						\
+    3,		       /* section alignment power */	\
+    is_default,						\
+    bfd_default_compatible,				\
+    bfd_default_scan,					\
+    bfd_arch_default_fill,				\
+    next						\
+  }
 
-const bfd_arch_info_type bfd_s390_arch =
-{
-    32,	/* bits in a word */
-    32,	/* bits in an address */
-    8,	/* bits in a byte */
-    bfd_arch_s390,
-    bfd_mach_s390_31,
-    "s390",
-    "s390:31-bit",
-    3, /* section alignment power */
 #if BFD_DEFAULT_TARGET_SIZE == 64
-    FALSE, /* the default */
+static const bfd_arch_info_type bfd_s390_31_arch =
+  N (32, bfd_mach_s390_31, "s390:31-bit", FALSE, NULL);
+const bfd_arch_info_type bfd_s390_arch =
+  N (64, bfd_mach_s390_64, "s390:64-bit", TRUE, &bfd_s390_31_arch);
 #else
-    TRUE, /* the default */
+static const bfd_arch_info_type bfd_s390_64_arch =
+  N (64, bfd_mach_s390_64, "s390:64-bit", FALSE, NULL);
+const bfd_arch_info_type bfd_s390_arch =
+  N (32, bfd_mach_s390_31, "s390:31-bit", TRUE, &bfd_s390_64_arch);
 #endif
-    bfd_default_compatible,
-    bfd_default_scan,
-    bfd_arch_default_fill,
-    &bfd_s390_64_arch
-};


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