cpu-sparc.c revision 130561
1184610Salfred/* BFD support for the SPARC architecture. 2184610Salfred Copyright 1992, 1995, 1996, 1998, 2000, 2002 3184610Salfred Free Software Foundation, Inc. 4184610Salfred 5184610SalfredThis file is part of BFD, the Binary File Descriptor library. 6184610Salfred 7184610SalfredThis program is free software; you can redistribute it and/or modify 8184610Salfredit under the terms of the GNU General Public License as published by 9184610Salfredthe Free Software Foundation; either version 2 of the License, or 10184610Salfred(at your option) any later version. 11184610Salfred 12184610SalfredThis program is distributed in the hope that it will be useful, 13184610Salfredbut WITHOUT ANY WARRANTY; without even the implied warranty of 14184610SalfredMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15184610SalfredGNU General Public License for more details. 16184610Salfred 17184610SalfredYou should have received a copy of the GNU General Public License 18184610Salfredalong with this program; if not, write to the Free Software 19184610SalfredFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 20184610Salfred 21184610Salfred#include "bfd.h" 22184610Salfred#include "sysdep.h" 23184610Salfred#include "libbfd.h" 24184610Salfred 25184610Salfredstatic const bfd_arch_info_type arch_info_struct[] = 26184610Salfred{ 27184610Salfred { 28184610Salfred 32, /* bits in a word */ 29184610Salfred 32, /* bits in an address */ 30184610Salfred 8, /* bits in a byte */ 31184610Salfred bfd_arch_sparc, 32184610Salfred bfd_mach_sparc_sparclet, 33184610Salfred "sparc", 34184610Salfred "sparc:sparclet", 35184610Salfred 3, 36184610Salfred FALSE, 37184610Salfred bfd_default_compatible, 38184610Salfred bfd_default_scan, 39184610Salfred &arch_info_struct[1], 40184610Salfred }, 41184610Salfred { 42184610Salfred 32, /* bits in a word */ 43184610Salfred 32, /* bits in an address */ 44184610Salfred 8, /* bits in a byte */ 45184610Salfred bfd_arch_sparc, 46184610Salfred bfd_mach_sparc_sparclite, 47184610Salfred "sparc", 48184610Salfred "sparc:sparclite", 49184610Salfred 3, 50184610Salfred FALSE, 51184610Salfred bfd_default_compatible, 52184610Salfred bfd_default_scan, 53184610Salfred &arch_info_struct[2], 54184610Salfred }, 55184610Salfred { 56184610Salfred 32, /* bits in a word */ 57184610Salfred 32, /* bits in an address */ 58184610Salfred 8, /* bits in a byte */ 59184610Salfred bfd_arch_sparc, 60194230Sthompsa bfd_mach_sparc_v8plus, 61194230Sthompsa "sparc", 62184610Salfred "sparc:v8plus", 63184610Salfred 3, 64184610Salfred FALSE, 65184610Salfred bfd_default_compatible, 66230204Shselasky bfd_default_scan, 67184610Salfred &arch_info_struct[3], 68184610Salfred }, 69184610Salfred { 70184610Salfred 32, /* bits in a word */ 71184610Salfred 32, /* bits in an address */ 72184610Salfred 8, /* bits in a byte */ 73184610Salfred bfd_arch_sparc, 74242619Shselasky bfd_mach_sparc_v8plusa, 75184610Salfred "sparc", 76192984Sthompsa "sparc:v8plusa", 77192984Sthompsa 3, 78192984Sthompsa FALSE, 79184610Salfred bfd_default_compatible, 80184610Salfred bfd_default_scan, 81188413Sthompsa &arch_info_struct[4], 82194228Sthompsa }, 83194228Sthompsa { 84184610Salfred 32, /* bits in a word */ 85184610Salfred 32, /* bits in an address */ 86192984Sthompsa 8, /* bits in a byte */ 87194228Sthompsa bfd_arch_sparc, 88194228Sthompsa bfd_mach_sparc_sparclite_le, 89194228Sthompsa "sparc", 90194228Sthompsa "sparc:sparclite_le", 91197570Sthompsa 3, 92194228Sthompsa FALSE, 93194228Sthompsa bfd_default_compatible, 94194228Sthompsa bfd_default_scan, 95194228Sthompsa &arch_info_struct[5], 96194228Sthompsa }, 97194228Sthompsa { 98194228Sthompsa 64, /* bits in a word */ 99194228Sthompsa 64, /* bits in an address */ 100194228Sthompsa 8, /* bits in a byte */ 101194228Sthompsa bfd_arch_sparc, 102214761Sn_hibma bfd_mach_sparc_v9, 103197570Sthompsa "sparc", 104239179Shselasky "sparc:v9", 105184610Salfred 3, 106184610Salfred FALSE, 107184610Salfred bfd_default_compatible, 108184610Salfred bfd_default_scan, 109184610Salfred &arch_info_struct[6], 110184610Salfred }, 111184610Salfred { 112184610Salfred 64, /* bits in a word */ 113184610Salfred 64, /* bits in an address */ 114184610Salfred 8, /* bits in a byte */ 115184610Salfred bfd_arch_sparc, 116184610Salfred bfd_mach_sparc_v9a, 117184610Salfred "sparc", 118192984Sthompsa "sparc:v9a", 119192984Sthompsa 3, 120192984Sthompsa FALSE, 121187176Sthompsa bfd_default_compatible, 122187176Sthompsa bfd_default_scan, 123192984Sthompsa &arch_info_struct[7], 124192984Sthompsa }, 125192984Sthompsa { 126188413Sthompsa 32, /* bits in a word */ 127187176Sthompsa 32, /* bits in an address */ 128187176Sthompsa 8, /* bits in a byte */ 129192984Sthompsa bfd_arch_sparc, 130192984Sthompsa bfd_mach_sparc_v8plusb, 131230204Shselasky "sparc", 132230204Shselasky "sparc:v8plusb", 133239179Shselasky 3, 134239299Shselasky FALSE, 135230209Shselasky bfd_default_compatible, 136230204Shselasky bfd_default_scan, 137230209Shselasky &arch_info_struct[8], 138184610Salfred }, 139184610Salfred { 140192984Sthompsa 64, /* bits in a word */ 141188413Sthompsa 64, /* bits in an address */ 142250576Seadler 8, /* bits in a byte */ 143188413Sthompsa bfd_arch_sparc, 144188413Sthompsa bfd_mach_sparc_v9b, 145188413Sthompsa "sparc", 146188413Sthompsa "sparc:v9b", 147188413Sthompsa 3, 148188413Sthompsa FALSE, 149188413Sthompsa bfd_default_compatible, 150188413Sthompsa bfd_default_scan, 151188413Sthompsa 0, 152192984Sthompsa } 153192984Sthompsa}; 154192984Sthompsa 155192984Sthompsaconst bfd_arch_info_type bfd_sparc_arch = 156192984Sthompsa { 157192984Sthompsa 32, /* bits in a word */ 158190742Sthompsa 32, /* bits in an address */ 159192984Sthompsa 8, /* bits in a byte */ 160192984Sthompsa bfd_arch_sparc, 161192984Sthompsa bfd_mach_sparc, 162184610Salfred "sparc", 163188413Sthompsa "sparc", 164184610Salfred 3, 165233774Shselasky TRUE, /* the default */ 166242619Shselasky bfd_default_compatible, 167242619Shselasky bfd_default_scan, 168184610Salfred &arch_info_struct[0], 169197570Sthompsa }; 170184610Salfred