1214501Srpaulo/* BFD support for the SPARC architecture. 2214501Srpaulo Copyright 1992, 1995, 1996, 1998, 2000, 2002 3214501Srpaulo Free Software Foundation, Inc. 4214501Srpaulo 5252726SrpauloThis file is part of BFD, the Binary File Descriptor library. 6252726Srpaulo 7214501SrpauloThis program is free software; you can redistribute it and/or modify 8214501Srpauloit under the terms of the GNU General Public License as published by 9214501Srpaulothe Free Software Foundation; either version 2 of the License, or 10214501Srpaulo(at your option) any later version. 11214501Srpaulo 12214501SrpauloThis program is distributed in the hope that it will be useful, 13214501Srpaulobut WITHOUT ANY WARRANTY; without even the implied warranty of 14214501SrpauloMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15214501SrpauloGNU General Public License for more details. 16214501Srpaulo 17214501SrpauloYou should have received a copy of the GNU General Public License 18214501Srpauloalong with this program; if not, write to the Free Software 19214501SrpauloFoundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 20214501Srpaulo 21214501Srpaulo#include "bfd.h" 22214501Srpaulo#include "sysdep.h" 23214501Srpaulo#include "libbfd.h" 24214501Srpaulo 25214501Srpaulostatic const bfd_arch_info_type arch_info_struct[] = 26214501Srpaulo{ 27214501Srpaulo { 28214501Srpaulo 32, /* bits in a word */ 29214501Srpaulo 32, /* bits in an address */ 30214501Srpaulo 8, /* bits in a byte */ 31214501Srpaulo bfd_arch_sparc, 32214501Srpaulo bfd_mach_sparc_sparclet, 33214501Srpaulo "sparc", 34214501Srpaulo "sparc:sparclet", 35214501Srpaulo 3, 36214501Srpaulo FALSE, 37214501Srpaulo bfd_default_compatible, 38214501Srpaulo bfd_default_scan, 39214501Srpaulo &arch_info_struct[1], 40214501Srpaulo }, 41214501Srpaulo { 42214501Srpaulo 32, /* bits in a word */ 43214501Srpaulo 32, /* bits in an address */ 44214501Srpaulo 8, /* bits in a byte */ 45214501Srpaulo bfd_arch_sparc, 46214501Srpaulo bfd_mach_sparc_sparclite, 47214501Srpaulo "sparc", 48214501Srpaulo "sparc:sparclite", 49214501Srpaulo 3, 50214501Srpaulo FALSE, 51214501Srpaulo bfd_default_compatible, 52214501Srpaulo bfd_default_scan, 53214501Srpaulo &arch_info_struct[2], 54214501Srpaulo }, 55214501Srpaulo { 56214501Srpaulo 32, /* bits in a word */ 57214501Srpaulo 32, /* bits in an address */ 58214501Srpaulo 8, /* bits in a byte */ 59214501Srpaulo bfd_arch_sparc, 60214501Srpaulo bfd_mach_sparc_v8plus, 61214501Srpaulo "sparc", 62214501Srpaulo "sparc:v8plus", 63214501Srpaulo 3, 64214501Srpaulo FALSE, 65214501Srpaulo bfd_default_compatible, 66214501Srpaulo bfd_default_scan, 67214501Srpaulo &arch_info_struct[3], 68214501Srpaulo }, 69214501Srpaulo { 70214501Srpaulo 32, /* bits in a word */ 71214501Srpaulo 32, /* bits in an address */ 72214501Srpaulo 8, /* bits in a byte */ 73214501Srpaulo bfd_arch_sparc, 74214501Srpaulo bfd_mach_sparc_v8plusa, 75214501Srpaulo "sparc", 76214501Srpaulo "sparc:v8plusa", 77214501Srpaulo 3, 78214501Srpaulo FALSE, 79214501Srpaulo bfd_default_compatible, 80214501Srpaulo bfd_default_scan, 81214501Srpaulo &arch_info_struct[4], 82214501Srpaulo }, 83214501Srpaulo { 84214501Srpaulo 32, /* bits in a word */ 85214501Srpaulo 32, /* bits in an address */ 86214501Srpaulo 8, /* bits in a byte */ 87214501Srpaulo bfd_arch_sparc, 88214501Srpaulo bfd_mach_sparc_sparclite_le, 89214501Srpaulo "sparc", 90214501Srpaulo "sparc:sparclite_le", 91214501Srpaulo 3, 92214501Srpaulo FALSE, 93214501Srpaulo bfd_default_compatible, 94214501Srpaulo bfd_default_scan, 95214501Srpaulo &arch_info_struct[5], 96214501Srpaulo }, 97214501Srpaulo { 98214501Srpaulo 64, /* bits in a word */ 99214501Srpaulo 64, /* bits in an address */ 100214501Srpaulo 8, /* bits in a byte */ 101214501Srpaulo bfd_arch_sparc, 102214501Srpaulo bfd_mach_sparc_v9, 103214501Srpaulo "sparc", 104214501Srpaulo "sparc:v9", 105214501Srpaulo 3, 106214501Srpaulo FALSE, 107214501Srpaulo bfd_default_compatible, 108214501Srpaulo bfd_default_scan, 109214501Srpaulo &arch_info_struct[6], 110214501Srpaulo }, 111214501Srpaulo { 112214501Srpaulo 64, /* bits in a word */ 113214501Srpaulo 64, /* bits in an address */ 114214501Srpaulo 8, /* bits in a byte */ 115214501Srpaulo bfd_arch_sparc, 116214501Srpaulo bfd_mach_sparc_v9a, 117214501Srpaulo "sparc", 118214501Srpaulo "sparc:v9a", 119214501Srpaulo 3, 120214501Srpaulo FALSE, 121214501Srpaulo bfd_default_compatible, 122214501Srpaulo bfd_default_scan, 123214501Srpaulo &arch_info_struct[7], 124214501Srpaulo }, 125214501Srpaulo { 126214501Srpaulo 32, /* bits in a word */ 127214501Srpaulo 32, /* bits in an address */ 128214501Srpaulo 8, /* bits in a byte */ 129214501Srpaulo bfd_arch_sparc, 130214501Srpaulo bfd_mach_sparc_v8plusb, 131214501Srpaulo "sparc", 132214501Srpaulo "sparc:v8plusb", 133214501Srpaulo 3, 134214501Srpaulo FALSE, 135214501Srpaulo bfd_default_compatible, 136214501Srpaulo bfd_default_scan, 137214501Srpaulo &arch_info_struct[8], 138214501Srpaulo }, 139214501Srpaulo { 140214501Srpaulo 64, /* bits in a word */ 141214501Srpaulo 64, /* bits in an address */ 142214501Srpaulo 8, /* bits in a byte */ 143214501Srpaulo bfd_arch_sparc, 144214501Srpaulo bfd_mach_sparc_v9b, 145214501Srpaulo "sparc", 146214501Srpaulo "sparc:v9b", 147214501Srpaulo 3, 148214501Srpaulo FALSE, 149214501Srpaulo bfd_default_compatible, 150214501Srpaulo bfd_default_scan, 151214501Srpaulo 0, 152214501Srpaulo } 153214501Srpaulo}; 154214501Srpaulo 155214501Srpauloconst bfd_arch_info_type bfd_sparc_arch = 156214501Srpaulo { 157214501Srpaulo 32, /* bits in a word */ 158214501Srpaulo 32, /* bits in an address */ 159214501Srpaulo 8, /* bits in a byte */ 160214501Srpaulo bfd_arch_sparc, 161214501Srpaulo bfd_mach_sparc, 162214501Srpaulo "sparc", 163214501Srpaulo "sparc", 164214501Srpaulo 3, 165214501Srpaulo TRUE, /* the default */ 166214501Srpaulo bfd_default_compatible, 167214501Srpaulo bfd_default_scan, 168214501Srpaulo &arch_info_struct[0], 169214501Srpaulo }; 170214501Srpaulo