159024Sobrien/* BFD support for the SPARC architecture.
2218822Sdim   Copyright 1992, 1995, 1996, 1998, 2000, 2002, 2007
394536Sobrien   Free Software Foundation, Inc.
459024Sobrien
559024SobrienThis file is part of BFD, the Binary File Descriptor library.
659024Sobrien
759024SobrienThis program is free software; you can redistribute it and/or modify
859024Sobrienit under the terms of the GNU General Public License as published by
959024Sobrienthe Free Software Foundation; either version 2 of the License, or
1059024Sobrien(at your option) any later version.
1159024Sobrien
1259024SobrienThis program is distributed in the hope that it will be useful,
1359024Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of
1459024SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1559024SobrienGNU General Public License for more details.
1659024Sobrien
1759024SobrienYou should have received a copy of the GNU General Public License
1859024Sobrienalong with this program; if not, write to the Free Software
19218822SdimFoundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
2059024Sobrien
21218822Sdim#include "sysdep.h"
2259024Sobrien#include "bfd.h"
2359024Sobrien#include "libbfd.h"
2459024Sobrien
2559024Sobrienstatic const bfd_arch_info_type arch_info_struct[] =
2659024Sobrien{
2759024Sobrien  {
2859024Sobrien    32,	/* bits in a word */
2959024Sobrien    32,	/* bits in an address */
3059024Sobrien    8,	/* bits in a byte */
3159024Sobrien    bfd_arch_sparc,
3259024Sobrien    bfd_mach_sparc_sparclet,
3359024Sobrien    "sparc",
3459024Sobrien    "sparc:sparclet",
3559024Sobrien    3,
36130561Sobrien    FALSE,
3794536Sobrien    bfd_default_compatible,
3859024Sobrien    bfd_default_scan,
3959024Sobrien    &arch_info_struct[1],
4059024Sobrien  },
4159024Sobrien  {
4259024Sobrien    32,	/* bits in a word */
4359024Sobrien    32,	/* bits in an address */
4459024Sobrien    8,	/* bits in a byte */
4559024Sobrien    bfd_arch_sparc,
4659024Sobrien    bfd_mach_sparc_sparclite,
4759024Sobrien    "sparc",
4859024Sobrien    "sparc:sparclite",
4959024Sobrien    3,
50130561Sobrien    FALSE,
5194536Sobrien    bfd_default_compatible,
5259024Sobrien    bfd_default_scan,
5359024Sobrien    &arch_info_struct[2],
5459024Sobrien  },
5559024Sobrien  {
5659024Sobrien    32,	/* bits in a word */
5759024Sobrien    32,	/* bits in an address */
5859024Sobrien    8,	/* bits in a byte */
5959024Sobrien    bfd_arch_sparc,
6059024Sobrien    bfd_mach_sparc_v8plus,
6159024Sobrien    "sparc",
6259024Sobrien    "sparc:v8plus",
6359024Sobrien    3,
64130561Sobrien    FALSE,
6594536Sobrien    bfd_default_compatible,
6659024Sobrien    bfd_default_scan,
6759024Sobrien    &arch_info_struct[3],
6859024Sobrien  },
6959024Sobrien  {
7059024Sobrien    32,	/* bits in a word */
7159024Sobrien    32,	/* bits in an address */
7259024Sobrien    8,	/* bits in a byte */
7359024Sobrien    bfd_arch_sparc,
7459024Sobrien    bfd_mach_sparc_v8plusa,
7559024Sobrien    "sparc",
7659024Sobrien    "sparc:v8plusa",
7759024Sobrien    3,
78130561Sobrien    FALSE,
7994536Sobrien    bfd_default_compatible,
8059024Sobrien    bfd_default_scan,
8159024Sobrien    &arch_info_struct[4],
8259024Sobrien  },
8359024Sobrien  {
8460484Sobrien    32,	/* bits in a word */
8560484Sobrien    32,	/* bits in an address */
8660484Sobrien    8,	/* bits in a byte */
8760484Sobrien    bfd_arch_sparc,
8860484Sobrien    bfd_mach_sparc_sparclite_le,
8960484Sobrien    "sparc",
9060484Sobrien    "sparc:sparclite_le",
9160484Sobrien    3,
92130561Sobrien    FALSE,
9394536Sobrien    bfd_default_compatible,
9460484Sobrien    bfd_default_scan,
9560484Sobrien    &arch_info_struct[5],
9660484Sobrien  },
9760484Sobrien  {
9859024Sobrien    64,	/* bits in a word */
9959024Sobrien    64,	/* bits in an address */
10059024Sobrien    8,	/* bits in a byte */
10159024Sobrien    bfd_arch_sparc,
10259024Sobrien    bfd_mach_sparc_v9,
10359024Sobrien    "sparc",
10459024Sobrien    "sparc:v9",
10559024Sobrien    3,
106130561Sobrien    FALSE,
10794536Sobrien    bfd_default_compatible,
10859024Sobrien    bfd_default_scan,
10960484Sobrien    &arch_info_struct[6],
11059024Sobrien  },
11159024Sobrien  {
11259024Sobrien    64,	/* bits in a word */
11359024Sobrien    64,	/* bits in an address */
11459024Sobrien    8,	/* bits in a byte */
11559024Sobrien    bfd_arch_sparc,
11659024Sobrien    bfd_mach_sparc_v9a,
11759024Sobrien    "sparc",
11859024Sobrien    "sparc:v9a",
11959024Sobrien    3,
120130561Sobrien    FALSE,
12194536Sobrien    bfd_default_compatible,
12259024Sobrien    bfd_default_scan,
12377298Sobrien    &arch_info_struct[7],
12477298Sobrien  },
12577298Sobrien  {
12677298Sobrien    32,	/* bits in a word */
12777298Sobrien    32,	/* bits in an address */
12877298Sobrien    8,	/* bits in a byte */
12977298Sobrien    bfd_arch_sparc,
13077298Sobrien    bfd_mach_sparc_v8plusb,
13177298Sobrien    "sparc",
13277298Sobrien    "sparc:v8plusb",
13377298Sobrien    3,
134130561Sobrien    FALSE,
13594536Sobrien    bfd_default_compatible,
13677298Sobrien    bfd_default_scan,
13777298Sobrien    &arch_info_struct[8],
13877298Sobrien  },
13977298Sobrien  {
14077298Sobrien    64,	/* bits in a word */
14177298Sobrien    64,	/* bits in an address */
14277298Sobrien    8,	/* bits in a byte */
14377298Sobrien    bfd_arch_sparc,
14477298Sobrien    bfd_mach_sparc_v9b,
14577298Sobrien    "sparc",
14677298Sobrien    "sparc:v9b",
14777298Sobrien    3,
148130561Sobrien    FALSE,
14994536Sobrien    bfd_default_compatible,
15077298Sobrien    bfd_default_scan,
15159024Sobrien    0,
15259024Sobrien  }
15359024Sobrien};
15459024Sobrien
15559024Sobrienconst bfd_arch_info_type bfd_sparc_arch =
15659024Sobrien  {
15759024Sobrien    32,	/* bits in a word */
15859024Sobrien    32,	/* bits in an address */
15959024Sobrien    8,	/* bits in a byte */
16059024Sobrien    bfd_arch_sparc,
16159024Sobrien    bfd_mach_sparc,
16259024Sobrien    "sparc",
16359024Sobrien    "sparc",
16459024Sobrien    3,
165130561Sobrien    TRUE, /* the default */
16694536Sobrien    bfd_default_compatible,
16759024Sobrien    bfd_default_scan,
16859024Sobrien    &arch_info_struct[0],
16959024Sobrien  };
170