1 1.1 christos /* BFD support for the s390 processor. 2 1.1.1.11 christos Copyright (C) 2000-2025 Free Software Foundation, Inc. 3 1.1 christos Contributed by Carl B. Pedersen and Martin Schwidefsky. 4 1.1 christos 5 1.1 christos This file is part of BFD, the Binary File Descriptor library. 6 1.1 christos 7 1.1 christos This program is free software; you can redistribute it and/or modify 8 1.1 christos it under the terms of the GNU General Public License as published by 9 1.1 christos the Free Software Foundation; either version 3 of the License, or 10 1.1 christos (at your option) any later version. 11 1.1 christos 12 1.1 christos This program is distributed in the hope that it will be useful, 13 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of 14 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 1.1 christos GNU General Public License for more details. 16 1.1 christos 17 1.1 christos You should have received a copy of the GNU General Public License 18 1.1 christos along with this program; if not, write to the Free Software 19 1.1 christos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 20 1.1 christos 02110-1301, USA. */ 21 1.1 christos 22 1.1 christos #include "sysdep.h" 23 1.1 christos #include "bfd.h" 24 1.1 christos #include "libbfd.h" 25 1.1 christos 26 1.1.1.4 christos #define N(bits, number, print, is_default, next) \ 27 1.1.1.4 christos { \ 28 1.1.1.8 christos bits, /* Bits in a word. */ \ 29 1.1.1.8 christos bits, /* Bits in an address. */ \ 30 1.1.1.8 christos 8, /* Bits in a byte. */ \ 31 1.1.1.4 christos bfd_arch_s390, \ 32 1.1.1.4 christos number, \ 33 1.1.1.4 christos "s390", \ 34 1.1.1.4 christos print, \ 35 1.1.1.8 christos 3, /* Section alignment power */ \ 36 1.1.1.4 christos is_default, \ 37 1.1.1.4 christos bfd_default_compatible, \ 38 1.1.1.4 christos bfd_default_scan, \ 39 1.1.1.4 christos bfd_arch_default_fill, \ 40 1.1.1.8 christos next, \ 41 1.1.1.8 christos 0 /* Maximum offset of a reloc from the start of an insn. */ \ 42 1.1.1.4 christos } 43 1.1 christos 44 1.1.1.2 christos #if BFD_DEFAULT_TARGET_SIZE == 64 45 1.1.1.4 christos static const bfd_arch_info_type bfd_s390_31_arch = 46 1.1.1.9 christos N (32, bfd_mach_s390_31, "s390:31-bit", false, NULL); 47 1.1.1.4 christos const bfd_arch_info_type bfd_s390_arch = 48 1.1.1.9 christos N (64, bfd_mach_s390_64, "s390:64-bit", true, &bfd_s390_31_arch); 49 1.1.1.2 christos #else 50 1.1.1.4 christos static const bfd_arch_info_type bfd_s390_64_arch = 51 1.1.1.9 christos N (64, bfd_mach_s390_64, "s390:64-bit", false, NULL); 52 1.1.1.4 christos const bfd_arch_info_type bfd_s390_arch = 53 1.1.1.9 christos N (32, bfd_mach_s390_31, "s390:31-bit", true, &bfd_s390_64_arch); 54 1.1.1.2 christos #endif 55