Home | History | Annotate | Download | only in bfd
      1 /* BFD support for the SPARC architecture.
      2    Copyright (C) 1992-2016 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 static const bfd_arch_info_type arch_info_struct[] =
     26 {
     27   {
     28     32,	/* bits in a word */
     29     32,	/* bits in an address */
     30     8,	/* bits in a byte */
     31     bfd_arch_sparc,
     32     bfd_mach_sparc_sparclet,
     33     "sparc",
     34     "sparc:sparclet",
     35     3,
     36     FALSE,
     37     bfd_default_compatible,
     38     bfd_default_scan,
     39     bfd_arch_default_fill,
     40     &arch_info_struct[1],
     41   },
     42   {
     43     32,	/* bits in a word */
     44     32,	/* bits in an address */
     45     8,	/* bits in a byte */
     46     bfd_arch_sparc,
     47     bfd_mach_sparc_sparclite,
     48     "sparc",
     49     "sparc:sparclite",
     50     3,
     51     FALSE,
     52     bfd_default_compatible,
     53     bfd_default_scan,
     54     bfd_arch_default_fill,
     55     &arch_info_struct[2],
     56   },
     57   {
     58     32,	/* bits in a word */
     59     32,	/* bits in an address */
     60     8,	/* bits in a byte */
     61     bfd_arch_sparc,
     62     bfd_mach_sparc_v8plus,
     63     "sparc",
     64     "sparc:v8plus",
     65     3,
     66     FALSE,
     67     bfd_default_compatible,
     68     bfd_default_scan,
     69     bfd_arch_default_fill,
     70     &arch_info_struct[3],
     71   },
     72   {
     73     32,	/* bits in a word */
     74     32,	/* bits in an address */
     75     8,	/* bits in a byte */
     76     bfd_arch_sparc,
     77     bfd_mach_sparc_v8plusa,
     78     "sparc",
     79     "sparc:v8plusa",
     80     3,
     81     FALSE,
     82     bfd_default_compatible,
     83     bfd_default_scan,
     84     bfd_arch_default_fill,
     85     &arch_info_struct[4],
     86   },
     87   {
     88     32,	/* bits in a word */
     89     32,	/* bits in an address */
     90     8,	/* bits in a byte */
     91     bfd_arch_sparc,
     92     bfd_mach_sparc_sparclite_le,
     93     "sparc",
     94     "sparc:sparclite_le",
     95     3,
     96     FALSE,
     97     bfd_default_compatible,
     98     bfd_default_scan,
     99     bfd_arch_default_fill,
    100     &arch_info_struct[5],
    101   },
    102   {
    103     64,	/* bits in a word */
    104     64,	/* bits in an address */
    105     8,	/* bits in a byte */
    106     bfd_arch_sparc,
    107     bfd_mach_sparc_v9,
    108     "sparc",
    109     "sparc:v9",
    110     3,
    111     FALSE,
    112     bfd_default_compatible,
    113     bfd_default_scan,
    114     bfd_arch_default_fill,
    115     &arch_info_struct[6],
    116   },
    117   {
    118     64,	/* bits in a word */
    119     64,	/* bits in an address */
    120     8,	/* bits in a byte */
    121     bfd_arch_sparc,
    122     bfd_mach_sparc_v9a,
    123     "sparc",
    124     "sparc:v9a",
    125     3,
    126     FALSE,
    127     bfd_default_compatible,
    128     bfd_default_scan,
    129     bfd_arch_default_fill,
    130     &arch_info_struct[7],
    131   },
    132   {
    133     32,	/* bits in a word */
    134     32,	/* bits in an address */
    135     8,	/* bits in a byte */
    136     bfd_arch_sparc,
    137     bfd_mach_sparc_v8plusb,
    138     "sparc",
    139     "sparc:v8plusb",
    140     3,
    141     FALSE,
    142     bfd_default_compatible,
    143     bfd_default_scan,
    144     bfd_arch_default_fill,
    145     &arch_info_struct[8],
    146   },
    147   {
    148     64,	/* bits in a word */
    149     64,	/* bits in an address */
    150     8,	/* bits in a byte */
    151     bfd_arch_sparc,
    152     bfd_mach_sparc_v9b,
    153     "sparc",
    154     "sparc:v9b",
    155     3,
    156     FALSE,
    157     bfd_default_compatible,
    158     bfd_default_scan,
    159     bfd_arch_default_fill,
    160     &arch_info_struct[9],
    161   },
    162   {
    163     32,	/* bits in a word */
    164     32,	/* bits in an address */
    165     8,	/* bits in a byte */
    166     bfd_arch_sparc,
    167     bfd_mach_sparc_v8plusc,
    168     "sparc",
    169     "sparc:v8plusc",
    170     3,
    171     FALSE,
    172     bfd_default_compatible,
    173     bfd_default_scan,
    174     bfd_arch_default_fill,
    175     &arch_info_struct[10],
    176   },
    177   {
    178     64,	/* bits in a word */
    179     64,	/* bits in an address */
    180     8,	/* bits in a byte */
    181     bfd_arch_sparc,
    182     bfd_mach_sparc_v9c,
    183     "sparc",
    184     "sparc:v9c",
    185     3,
    186     FALSE,
    187     bfd_default_compatible,
    188     bfd_default_scan,
    189     bfd_arch_default_fill,
    190     &arch_info_struct[11],
    191   },
    192   {
    193     32,	/* bits in a word */
    194     32,	/* bits in an address */
    195     8,	/* bits in a byte */
    196     bfd_arch_sparc,
    197     bfd_mach_sparc_v8plusd,
    198     "sparc",
    199     "sparc:v8plusd",
    200     3,
    201     FALSE,
    202     bfd_default_compatible,
    203     bfd_default_scan,
    204     bfd_arch_default_fill,
    205     &arch_info_struct[12],
    206   },
    207   {
    208     64,	/* bits in a word */
    209     64,	/* bits in an address */
    210     8,	/* bits in a byte */
    211     bfd_arch_sparc,
    212     bfd_mach_sparc_v9d,
    213     "sparc",
    214     "sparc:v9d",
    215     3,
    216     FALSE,
    217     bfd_default_compatible,
    218     bfd_default_scan,
    219     bfd_arch_default_fill,
    220     &arch_info_struct[13],
    221   },
    222   {
    223     32,	/* bits in a word */
    224     32,	/* bits in an address */
    225     8,	/* bits in a byte */
    226     bfd_arch_sparc,
    227     bfd_mach_sparc_v8pluse,
    228     "sparc",
    229     "sparc:v8pluse",
    230     3,
    231     FALSE,
    232     bfd_default_compatible,
    233     bfd_default_scan,
    234     bfd_arch_default_fill,
    235     &arch_info_struct[14],
    236   },
    237   {
    238     64,	/* bits in a word */
    239     64,	/* bits in an address */
    240     8,	/* bits in a byte */
    241     bfd_arch_sparc,
    242     bfd_mach_sparc_v9e,
    243     "sparc",
    244     "sparc:v9e",
    245     3,
    246     FALSE,
    247     bfd_default_compatible,
    248     bfd_default_scan,
    249     bfd_arch_default_fill,
    250     &arch_info_struct[15],
    251   },
    252   {
    253     32,	/* bits in a word */
    254     32,	/* bits in an address */
    255     8,	/* bits in a byte */
    256     bfd_arch_sparc,
    257     bfd_mach_sparc_v8plusv,
    258     "sparc",
    259     "sparc:v8plusv",
    260     3,
    261     FALSE,
    262     bfd_default_compatible,
    263     bfd_default_scan,
    264     bfd_arch_default_fill,
    265     &arch_info_struct[16],
    266   },
    267   {
    268     64,	/* bits in a word */
    269     64,	/* bits in an address */
    270     8,	/* bits in a byte */
    271     bfd_arch_sparc,
    272     bfd_mach_sparc_v9v,
    273     "sparc",
    274     "sparc:v9v",
    275     3,
    276     FALSE,
    277     bfd_default_compatible,
    278     bfd_default_scan,
    279     bfd_arch_default_fill,
    280     &arch_info_struct[17],
    281   },
    282   {
    283     32,	/* bits in a word */
    284     32,	/* bits in an address */
    285     8,	/* bits in a byte */
    286     bfd_arch_sparc,
    287     bfd_mach_sparc_v8plusm,
    288     "sparc",
    289     "sparc:v8plusm",
    290     3,
    291     FALSE,
    292     bfd_default_compatible,
    293     bfd_default_scan,
    294     bfd_arch_default_fill,
    295     &arch_info_struct[18],
    296   },
    297   {
    298     64,	/* bits in a word */
    299     64,	/* bits in an address */
    300     8,	/* bits in a byte */
    301     bfd_arch_sparc,
    302     bfd_mach_sparc_v9m,
    303     "sparc",
    304     "sparc:v9m",
    305     3,
    306     FALSE,
    307     bfd_default_compatible,
    308     bfd_default_scan,
    309     bfd_arch_default_fill,
    310     0,
    311   }
    312 };
    313 
    314 const bfd_arch_info_type bfd_sparc_arch =
    315   {
    316     32,	/* bits in a word */
    317     32,	/* bits in an address */
    318     8,	/* bits in a byte */
    319     bfd_arch_sparc,
    320     bfd_mach_sparc,
    321     "sparc",
    322     "sparc",
    323     3,
    324     TRUE, /* the default */
    325     bfd_default_compatible,
    326     bfd_default_scan,
    327     bfd_arch_default_fill,
    328     &arch_info_struct[0],
    329   };
    330