175fd0b74Schristos /* BFD support for the HP Precision Architecture architecture. 2*e992f068Schristos Copyright (C) 1992-2022 Free Software Foundation, Inc. 375fd0b74Schristos 475fd0b74Schristos This file is part of BFD, the Binary File Descriptor library. 575fd0b74Schristos 675fd0b74Schristos This program is free software; you can redistribute it and/or modify 775fd0b74Schristos it under the terms of the GNU General Public License as published by 875fd0b74Schristos the Free Software Foundation; either version 3 of the License, or 975fd0b74Schristos (at your option) any later version. 1075fd0b74Schristos 1175fd0b74Schristos This program is distributed in the hope that it will be useful, 1275fd0b74Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 1375fd0b74Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1475fd0b74Schristos GNU General Public License for more details. 1575fd0b74Schristos 1675fd0b74Schristos You should have received a copy of the GNU General Public License 1775fd0b74Schristos along with this program; if not, write to the Free Software 1875fd0b74Schristos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 1975fd0b74Schristos MA 02110-1301, USA. */ 2075fd0b74Schristos 2175fd0b74Schristos #include "sysdep.h" 2275fd0b74Schristos #include "bfd.h" 2375fd0b74Schristos #include "libbfd.h" 2475fd0b74Schristos 25012573ebSchristos #define N(BITS, NUMBER, PRINT, DEFAULT, NEXT) \ 26012573ebSchristos { \ 27012573ebSchristos BITS, /* Bits in a word. */ \ 28012573ebSchristos BITS, /* Bits in an address. */ \ 29012573ebSchristos 8, /* Bits in a byte. */ \ 30012573ebSchristos bfd_arch_hppa, \ 31012573ebSchristos NUMBER, \ 32012573ebSchristos "hppa", \ 33012573ebSchristos PRINT, \ 34012573ebSchristos 3, /* Section alignment power. */ \ 35012573ebSchristos DEFAULT, \ 36012573ebSchristos bfd_default_compatible, \ 37012573ebSchristos bfd_default_scan, \ 38012573ebSchristos bfd_arch_default_fill, \ 39012573ebSchristos NEXT, \ 40012573ebSchristos 0 /* Maximum offset of a reloc from the start of an insn. */ \ 41012573ebSchristos } 42012573ebSchristos 43012573ebSchristos 4475fd0b74Schristos static const bfd_arch_info_type bfd_hppa10_arch = 45*e992f068Schristos N (32, bfd_mach_hppa10, "hppa1.0", true, NULL); 4675fd0b74Schristos 47012573ebSchristos /* PA2.0 in narrow mode. */ 4875fd0b74Schristos static const bfd_arch_info_type bfd_hppa20_arch = 49*e992f068Schristos N (32, bfd_mach_hppa20, "hppa2.0", false, &bfd_hppa10_arch); 5075fd0b74Schristos 51012573ebSchristos /* PA2.0 in wide mode. */ 5275fd0b74Schristos static const bfd_arch_info_type bfd_hppa20w_arch = 53*e992f068Schristos N (64, bfd_mach_hppa20w, "hppa2.0w", false, &bfd_hppa20_arch); 5475fd0b74Schristos 5575fd0b74Schristos const bfd_arch_info_type bfd_hppa_arch = 56*e992f068Schristos N (32, bfd_mach_hppa11, "hppa1.1", false, &bfd_hppa20w_arch); 57