12a6b7db3Sskrll /* BFD support for the s390 processor. 2*cb63e24eSchristos Copyright (C) 2000-2024 Free Software Foundation, Inc. 32a6b7db3Sskrll Contributed by Carl B. Pedersen and Martin Schwidefsky. 42a6b7db3Sskrll 52a6b7db3Sskrll This file is part of BFD, the Binary File Descriptor library. 62a6b7db3Sskrll 72a6b7db3Sskrll This program is free software; you can redistribute it and/or modify 82a6b7db3Sskrll it under the terms of the GNU General Public License as published by 92a6b7db3Sskrll the Free Software Foundation; either version 3 of the License, or 102a6b7db3Sskrll (at your option) any later version. 112a6b7db3Sskrll 122a6b7db3Sskrll This program is distributed in the hope that it will be useful, 132a6b7db3Sskrll but WITHOUT ANY WARRANTY; without even the implied warranty of 142a6b7db3Sskrll MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 152a6b7db3Sskrll GNU General Public License for more details. 162a6b7db3Sskrll 172a6b7db3Sskrll You should have received a copy of the GNU General Public License 182a6b7db3Sskrll along with this program; if not, write to the Free Software 192a6b7db3Sskrll Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 202a6b7db3Sskrll 02110-1301, USA. */ 212a6b7db3Sskrll 222a6b7db3Sskrll #include "sysdep.h" 232a6b7db3Sskrll #include "bfd.h" 242a6b7db3Sskrll #include "libbfd.h" 252a6b7db3Sskrll 269573673dSchristos #define N(bits, number, print, is_default, next) \ 279573673dSchristos { \ 286f4ced0bSchristos bits, /* Bits in a word. */ \ 296f4ced0bSchristos bits, /* Bits in an address. */ \ 306f4ced0bSchristos 8, /* Bits in a byte. */ \ 319573673dSchristos bfd_arch_s390, \ 329573673dSchristos number, \ 339573673dSchristos "s390", \ 349573673dSchristos print, \ 356f4ced0bSchristos 3, /* Section alignment power */ \ 369573673dSchristos is_default, \ 379573673dSchristos bfd_default_compatible, \ 389573673dSchristos bfd_default_scan, \ 399573673dSchristos bfd_arch_default_fill, \ 406f4ced0bSchristos next, \ 416f4ced0bSchristos 0 /* Maximum offset of a reloc from the start of an insn. */ \ 429573673dSchristos } 432a6b7db3Sskrll 449573673dSchristos #if BFD_DEFAULT_TARGET_SIZE == 64 459573673dSchristos static const bfd_arch_info_type bfd_s390_31_arch = 464f645668Schristos N (32, bfd_mach_s390_31, "s390:31-bit", false, NULL); 472a6b7db3Sskrll const bfd_arch_info_type bfd_s390_arch = 484f645668Schristos N (64, bfd_mach_s390_64, "s390:64-bit", true, &bfd_s390_31_arch); 499573673dSchristos #else 509573673dSchristos static const bfd_arch_info_type bfd_s390_64_arch = 514f645668Schristos N (64, bfd_mach_s390_64, "s390:64-bit", false, NULL); 529573673dSchristos const bfd_arch_info_type bfd_s390_arch = 534f645668Schristos N (32, bfd_mach_s390_31, "s390:31-bit", true, &bfd_s390_64_arch); 549573673dSchristos #endif 55