Fix all unexpected failures in gas testsuite for pdp11-aout.
[deliverable/binutils-gdb.git] / bfd / cpu-score.c
index 90d3113bd66bf7e04b0e4c5e4bee6f5677da5066..58c8340021260eabe556c9f695856b61cfd6f1bf 100644 (file)
@@ -1,14 +1,15 @@
 /* BFD support for the score processor
 /* BFD support for the score processor
-   Copyright 2006, 2007 Free Software Foundation, Inc.   
+   Copyright (C) 2006-2020 Free Software Foundation, Inc.
    Contributed by
    Contributed by
+   Brain.lin (brain.lin@sunplusct.com)
    Mei Ligang (ligang@sunnorth.com.cn)
    Mei Ligang (ligang@sunnorth.com.cn)
-   Pei-Lin Tsai (pltsai@sunplus.com)  
+   Pei-Lin Tsai (pltsai@sunplus.com)
 
    This file is part of BFD, the Binary File Descriptor library.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This file is part of BFD, the Binary File Descriptor library.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 #include "sysdep.h"
 #include "bfd.h"
 #include "libbfd.h"
 
 
 #include "sysdep.h"
 #include "bfd.h"
 #include "libbfd.h"
 
-const bfd_arch_info_type
-bfd_score_arch =
+/* This routine is provided two arch_infos and works out which Score
+   machine which would be compatible with both and returns a pointer
+   to its info structure.  */
+
+static const bfd_arch_info_type *
+compatible (const bfd_arch_info_type * a, const bfd_arch_info_type * b)
 {
 {
-  32,                          /* There's 32 bits_per_word.  */
-  32,                          /* There's 32 bits_per_address.  */
-  8,                           /* There's 8 bits_per_byte.  */
-  bfd_arch_score,              /* One of enum bfd_architecture, defined
-                                  in archures.c and provided in
-                                  generated header files.  */
-  0,                           /* Only 1 machine, but #255 for
-                                  historical reasons.  */
-  "score",                     /* The arch_name.  */
-  "score",                     /* The printable name is the same.  */
-  4,                           /* Section alignment power; each section
-                                  is aligned to (only) 2^4 bytes.  */
-  TRUE,                                /* This is the default "machine", since
-                                  there's only one.  */
-  bfd_default_compatible,      /* A default function for testing
-                                  "machine" compatibility of two
-                                  bfd_arch_info_type.  */
-  bfd_default_scan,            /* Check if an bfd_arch_info_type is a
-                                  match.  */
-  NULL                         /* Pointer to next bfd_arch_info_type in
-                                  the same family.  */
+  /* If a & b are for different architectures we can do nothing.  */
+  if (a->arch != b->arch)
+    return NULL;
+
+  if (a->mach != b->mach)
+    return NULL;
+
+  return a;
+}
+
+#define N(machine, print, default, next)                       \
+{                                                              \
+  32,                          /* Bits in a word.  */          \
+  32,                          /* Bits in an address.  */      \
+  8,                           /* Bits in a byte.  */          \
+  bfd_arch_score,                                              \
+  machine,                     /* Machine number.  */          \
+  "score",                     /* Architecture name.   */      \
+  print,                       /* Printable name.  */          \
+  4,                           /* Section align power.  */     \
+  default,                     /* The default machine.  */     \
+  compatible,                                                  \
+  bfd_default_scan,                                            \
+  bfd_arch_default_fill,                                       \
+  next,                                                                \
+  0 /* Maximum offset of a reloc from the start of an insn.  */ \
+}
+
+static const bfd_arch_info_type arch_info_struct[] =
+{
+  N (bfd_mach_score3, "score3", FALSE, NULL),
 };
 };
+
+const bfd_arch_info_type bfd_score_arch =
+  N (bfd_mach_score7, "score7", TRUE, & arch_info_struct[0]);
This page took 0.025471 seconds and 4 git commands to generate.