12159047fSniklas /* BFD support for the SPARC architecture. 2*c074d1c9Sdrahn Copyright 1992, 1995, 1996, 1998, 2000, 2002 3*c074d1c9Sdrahn Free Software Foundation, Inc. 42159047fSniklas 52159047fSniklas This file is part of BFD, the Binary File Descriptor library. 62159047fSniklas 72159047fSniklas This program is free software; you can redistribute it and/or modify 82159047fSniklas it under the terms of the GNU General Public License as published by 92159047fSniklas the Free Software Foundation; either version 2 of the License, or 102159047fSniklas (at your option) any later version. 112159047fSniklas 122159047fSniklas This program is distributed in the hope that it will be useful, 132159047fSniklas but WITHOUT ANY WARRANTY; without even the implied warranty of 142159047fSniklas MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 152159047fSniklas GNU General Public License for more details. 162159047fSniklas 172159047fSniklas You should have received a copy of the GNU General Public License 182159047fSniklas along with this program; if not, write to the Free Software 192159047fSniklas Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 202159047fSniklas 212159047fSniklas #include "bfd.h" 222159047fSniklas #include "sysdep.h" 232159047fSniklas #include "libbfd.h" 242159047fSniklas 25c88b1d6cSniklas static const bfd_arch_info_type arch_info_struct[] = 26c88b1d6cSniklas { 27c88b1d6cSniklas { 28c88b1d6cSniklas 32, /* bits in a word */ 29c88b1d6cSniklas 32, /* bits in an address */ 30c88b1d6cSniklas 8, /* bits in a byte */ 31c88b1d6cSniklas bfd_arch_sparc, 32c88b1d6cSniklas bfd_mach_sparc_sparclet, 33c88b1d6cSniklas "sparc", 34c88b1d6cSniklas "sparc:sparclet", 35c88b1d6cSniklas 3, 36*c074d1c9Sdrahn FALSE, 37*c074d1c9Sdrahn bfd_default_compatible, 38c88b1d6cSniklas bfd_default_scan, 39c88b1d6cSniklas &arch_info_struct[1], 40c88b1d6cSniklas }, 41c88b1d6cSniklas { 42c88b1d6cSniklas 32, /* bits in a word */ 43c88b1d6cSniklas 32, /* bits in an address */ 44c88b1d6cSniklas 8, /* bits in a byte */ 45c88b1d6cSniklas bfd_arch_sparc, 46c88b1d6cSniklas bfd_mach_sparc_sparclite, 47c88b1d6cSniklas "sparc", 48c88b1d6cSniklas "sparc:sparclite", 49c88b1d6cSniklas 3, 50*c074d1c9Sdrahn FALSE, 51*c074d1c9Sdrahn bfd_default_compatible, 52c88b1d6cSniklas bfd_default_scan, 53c88b1d6cSniklas &arch_info_struct[2], 54c88b1d6cSniklas }, 55c88b1d6cSniklas { 56c88b1d6cSniklas 32, /* bits in a word */ 57c88b1d6cSniklas 32, /* bits in an address */ 58c88b1d6cSniklas 8, /* bits in a byte */ 59c88b1d6cSniklas bfd_arch_sparc, 60c88b1d6cSniklas bfd_mach_sparc_v8plus, 61c88b1d6cSniklas "sparc", 62c88b1d6cSniklas "sparc:v8plus", 63c88b1d6cSniklas 3, 64*c074d1c9Sdrahn FALSE, 65*c074d1c9Sdrahn bfd_default_compatible, 66c88b1d6cSniklas bfd_default_scan, 67c88b1d6cSniklas &arch_info_struct[3], 68c88b1d6cSniklas }, 69c88b1d6cSniklas { 70c88b1d6cSniklas 32, /* bits in a word */ 71c88b1d6cSniklas 32, /* bits in an address */ 72c88b1d6cSniklas 8, /* bits in a byte */ 73c88b1d6cSniklas bfd_arch_sparc, 74c88b1d6cSniklas bfd_mach_sparc_v8plusa, 75c88b1d6cSniklas "sparc", 76c88b1d6cSniklas "sparc:v8plusa", 77c88b1d6cSniklas 3, 78*c074d1c9Sdrahn FALSE, 79*c074d1c9Sdrahn bfd_default_compatible, 80c88b1d6cSniklas bfd_default_scan, 81c88b1d6cSniklas &arch_info_struct[4], 82c88b1d6cSniklas }, 83c88b1d6cSniklas { 84b305b0f1Sespie 32, /* bits in a word */ 85b305b0f1Sespie 32, /* bits in an address */ 86b305b0f1Sespie 8, /* bits in a byte */ 87b305b0f1Sespie bfd_arch_sparc, 88b305b0f1Sespie bfd_mach_sparc_sparclite_le, 89b305b0f1Sespie "sparc", 90b305b0f1Sespie "sparc:sparclite_le", 91b305b0f1Sespie 3, 92*c074d1c9Sdrahn FALSE, 93*c074d1c9Sdrahn bfd_default_compatible, 94b305b0f1Sespie bfd_default_scan, 95b305b0f1Sespie &arch_info_struct[5], 96b305b0f1Sespie }, 97b305b0f1Sespie { 98c88b1d6cSniklas 64, /* bits in a word */ 99c88b1d6cSniklas 64, /* bits in an address */ 100c88b1d6cSniklas 8, /* bits in a byte */ 101c88b1d6cSniklas bfd_arch_sparc, 102c88b1d6cSniklas bfd_mach_sparc_v9, 103c88b1d6cSniklas "sparc", 104c88b1d6cSniklas "sparc:v9", 105c88b1d6cSniklas 3, 106*c074d1c9Sdrahn FALSE, 107*c074d1c9Sdrahn bfd_default_compatible, 108c88b1d6cSniklas bfd_default_scan, 109b305b0f1Sespie &arch_info_struct[6], 110c88b1d6cSniklas }, 111c88b1d6cSniklas { 112c88b1d6cSniklas 64, /* bits in a word */ 113c88b1d6cSniklas 64, /* bits in an address */ 114c88b1d6cSniklas 8, /* bits in a byte */ 115c88b1d6cSniklas bfd_arch_sparc, 116c88b1d6cSniklas bfd_mach_sparc_v9a, 117c88b1d6cSniklas "sparc", 118c88b1d6cSniklas "sparc:v9a", 119c88b1d6cSniklas 3, 120*c074d1c9Sdrahn FALSE, 121*c074d1c9Sdrahn bfd_default_compatible, 122c88b1d6cSniklas bfd_default_scan, 123b55d4692Sfgsch &arch_info_struct[7], 124b55d4692Sfgsch }, 125b55d4692Sfgsch { 126b55d4692Sfgsch 32, /* bits in a word */ 127b55d4692Sfgsch 32, /* bits in an address */ 128b55d4692Sfgsch 8, /* bits in a byte */ 129b55d4692Sfgsch bfd_arch_sparc, 130b55d4692Sfgsch bfd_mach_sparc_v8plusb, 131b55d4692Sfgsch "sparc", 132b55d4692Sfgsch "sparc:v8plusb", 133b55d4692Sfgsch 3, 134*c074d1c9Sdrahn FALSE, 135*c074d1c9Sdrahn bfd_default_compatible, 136b55d4692Sfgsch bfd_default_scan, 137b55d4692Sfgsch &arch_info_struct[8], 138b55d4692Sfgsch }, 139b55d4692Sfgsch { 140b55d4692Sfgsch 64, /* bits in a word */ 141b55d4692Sfgsch 64, /* bits in an address */ 142b55d4692Sfgsch 8, /* bits in a byte */ 143b55d4692Sfgsch bfd_arch_sparc, 144b55d4692Sfgsch bfd_mach_sparc_v9b, 145b55d4692Sfgsch "sparc", 146b55d4692Sfgsch "sparc:v9b", 147b55d4692Sfgsch 3, 148*c074d1c9Sdrahn FALSE, 149*c074d1c9Sdrahn bfd_default_compatible, 150b55d4692Sfgsch bfd_default_scan, 151c88b1d6cSniklas 0, 152c88b1d6cSniklas } 153c88b1d6cSniklas }; 154c88b1d6cSniklas 155c88b1d6cSniklas const bfd_arch_info_type bfd_sparc_arch = 1562159047fSniklas { 1572159047fSniklas 32, /* bits in a word */ 1582159047fSniklas 32, /* bits in an address */ 1592159047fSniklas 8, /* bits in a byte */ 1602159047fSniklas bfd_arch_sparc, 1612159047fSniklas bfd_mach_sparc, 1622159047fSniklas "sparc", 1632159047fSniklas "sparc", 1642159047fSniklas 3, 165*c074d1c9Sdrahn TRUE, /* the default */ 166*c074d1c9Sdrahn bfd_default_compatible, 1672159047fSniklas bfd_default_scan, 168c88b1d6cSniklas &arch_info_struct[0], 1692159047fSniklas }; 170