(root)/
binutils-2.41/
bfd/
cpu-sparc.c
       1  /* BFD support for the SPARC architecture.
       2     Copyright (C) 1992-2023 Free Software Foundation, Inc.
       3  
       4     This file is part of BFD, the Binary File Descriptor library.
       5  
       6     This program is free software; you can redistribute it and/or modify
       7     it under the terms of the GNU General Public License as published by
       8     the Free Software Foundation; either version 3 of the License, or
       9     (at your option) any later version.
      10  
      11     This program is distributed in the hope that it will be useful,
      12     but WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14     GNU General Public License for more details.
      15  
      16     You should have received a copy of the GNU General Public License
      17     along with this program; if not, write to the Free Software
      18     Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
      19     MA 02110-1301, USA.  */
      20  
      21  #include "sysdep.h"
      22  #include "bfd.h"
      23  #include "libbfd.h"
      24  
      25  #define N(BITS, NUMBER, PRINT, DEFAULT, NEXT) \
      26    {							\
      27      BITS,      /* Bits in a word.  */			\
      28      BITS,      /* Bits in an address.  */		\
      29      8,	       /* Bits in a byte.  */			\
      30      bfd_arch_sparc,					\
      31      NUMBER,						\
      32      "sparc",						\
      33      PRINT,						\
      34      3,		/* Section alignment power.  */		\
      35      DEFAULT,						\
      36      bfd_default_compatible,				\
      37      bfd_default_scan,					\
      38      bfd_arch_default_fill,				\
      39      NEXT,						\
      40      0 /* Maximum offset of a reloc from the start of an insn.  */ \
      41    }
      42  
      43  static const bfd_arch_info_type arch_info_struct[] =
      44  {
      45    N (32, bfd_mach_sparc_sparclet,     "sparc:sparclet",     false, arch_info_struct + 1),
      46    N (32, bfd_mach_sparc_sparclite,    "sparc:sparclite",    false, arch_info_struct + 2),
      47    N (32, bfd_mach_sparc_v8plus,       "sparc:v8plus",       false, arch_info_struct + 3),
      48    N (32, bfd_mach_sparc_v8plusa,      "sparc:v8plusa",      false, arch_info_struct + 4),
      49    N (32, bfd_mach_sparc_sparclite_le, "sparc:sparclite_le", false, arch_info_struct + 5),
      50    N (64, bfd_mach_sparc_v9,           "sparc:v9",           false, arch_info_struct + 6),
      51    N (64, bfd_mach_sparc_v9a,          "sparc:v9a",          false, arch_info_struct + 7),
      52    N (32, bfd_mach_sparc_v8plusb,      "sparc:v8plusb",      false, arch_info_struct + 8),
      53    N (64, bfd_mach_sparc_v9b,          "sparc:v9b",          false, arch_info_struct + 9),
      54    N (32, bfd_mach_sparc_v8plusc,      "sparc:v8plusc",      false, arch_info_struct + 10),
      55    N (64, bfd_mach_sparc_v9c,          "sparc:v9c",          false, arch_info_struct + 11),
      56    N (32, bfd_mach_sparc_v8plusd,      "sparc:v8plusd",      false, arch_info_struct + 12),
      57    N (64, bfd_mach_sparc_v9d,          "sparc:v9d",          false, arch_info_struct + 13),
      58    N (32, bfd_mach_sparc_v8pluse,      "sparc:v8pluse",      false, arch_info_struct + 14),
      59    N (64, bfd_mach_sparc_v9e,          "sparc:v9e",          false, arch_info_struct + 15),
      60    N (32, bfd_mach_sparc_v8plusv,      "sparc:v8plusv",      false, arch_info_struct + 16),
      61    N (64, bfd_mach_sparc_v9v,          "sparc:v9v",          false, arch_info_struct + 17),
      62    N (32, bfd_mach_sparc_v8plusm,      "sparc:v8plusm",      false, arch_info_struct + 18),
      63    N (64, bfd_mach_sparc_v9m,          "sparc:v9m",          false, arch_info_struct + 19),
      64    N (32, bfd_mach_sparc_v8plusm8,     "sparc:v8plusm8",     false, arch_info_struct + 20),
      65    N (64, bfd_mach_sparc_v9m8,         "sparc:v9m8",         false, NULL)
      66  };
      67  
      68  const bfd_arch_info_type bfd_sparc_arch =
      69    N (32, bfd_mach_sparc, "sparc", true, arch_info_struct);