s390.h revision 89857
189857Sobrien/* 390 ELF support for BFD. 289857Sobrien Copyright 2000, 2001 Free Software Foundation, Inc. 389857Sobrien Contributed by Carl B. Pedersen and Martin Schwidefsky. 489857Sobrien 589857Sobrien This file is part of BFD, the Binary File Descriptor library. 689857Sobrien 789857Sobrien This program is free software; you can redistribute it and/or modify 889857Sobrien it under the terms of the GNU General Public License as published by 989857Sobrien the Free Software Foundation; either version 2 of the License, or 1089857Sobrien (at your option) any later version. 1189857Sobrien 1289857Sobrien This program is distributed in the hope that it will be useful, 1389857Sobrien but WITHOUT ANY WARRANTY; without even the implied warranty of 1489857Sobrien MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1589857Sobrien GNU General Public License for more details. 1689857Sobrien 1789857Sobrien You should have received a copy of the GNU General Public License 1889857Sobrien along with this program; if not, write to the Free Software 1989857Sobrien Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 2089857Sobrien 02111-1307, USA. */ 2189857Sobrien 2289857Sobrien#ifndef _ELF_390_H 2389857Sobrien#define _ELF_390_H 2489857Sobrien 2589857Sobrien/* Processor specific flags for the ELF header e_flags field. */ 2689857Sobrien 2789857Sobrien/* Symbol types. */ 2889857Sobrien 2989857Sobrien#define STACK_REG 15 /* Global Stack reg */ 3089857Sobrien#define BACKL_REG 14 /* Global Backlink reg */ 3189857Sobrien#define BASE_REG 13 /* Global Base reg */ 3289857Sobrien#define GOT_REG 12 /* Holds addr of GOT */ 3389857Sobrien 3489857Sobrien#include "elf/reloc-macros.h" 3589857Sobrien 3689857Sobrien/* Relocation types. */ 3789857Sobrien 3889857SobrienSTART_RELOC_NUMBERS (elf_s390_reloc_type) 3989857Sobrien RELOC_NUMBER (R_390_NONE, 0) /* No reloc. */ 4089857Sobrien RELOC_NUMBER (R_390_8, 1) /* Direct 8 bit. */ 4189857Sobrien RELOC_NUMBER (R_390_12, 2) /* Direct 12 bit. */ 4289857Sobrien RELOC_NUMBER (R_390_16, 3) /* Direct 16 bit. */ 4389857Sobrien RELOC_NUMBER (R_390_32, 4) /* Direct 32 bit. */ 4489857Sobrien RELOC_NUMBER (R_390_PC32, 5) /* PC relative 32 bit. */ 4589857Sobrien RELOC_NUMBER (R_390_GOT12, 6) /* 12 bit GOT offset. */ 4689857Sobrien RELOC_NUMBER (R_390_GOT32, 7) /* 32 bit GOT offset. */ 4789857Sobrien RELOC_NUMBER (R_390_PLT32, 8) /* 32 bit PC relative PLT address. */ 4889857Sobrien RELOC_NUMBER (R_390_COPY, 9) /* Copy symbol at runtime. */ 4989857Sobrien RELOC_NUMBER (R_390_GLOB_DAT, 10) /* Create GOT entry. */ 5089857Sobrien RELOC_NUMBER (R_390_JMP_SLOT, 11) /* Create PLT entry. */ 5189857Sobrien RELOC_NUMBER (R_390_RELATIVE, 12) /* Adjust by program base. */ 5289857Sobrien RELOC_NUMBER (R_390_GOTOFF, 13) /* 32 bit offset to GOT. */ 5389857Sobrien RELOC_NUMBER (R_390_GOTPC, 14) /* 32 bit PC relative offset to GOT. */ 5489857Sobrien RELOC_NUMBER (R_390_GOT16, 15) /* 16 bit GOT offset. */ 5589857Sobrien RELOC_NUMBER (R_390_PC16, 16) /* PC relative 16 bit. */ 5689857Sobrien RELOC_NUMBER (R_390_PC16DBL, 17) /* PC relative 16 bit shifted by 1. */ 5789857Sobrien RELOC_NUMBER (R_390_PLT16DBL, 18) /* 16 bit PC rel. PLT shifted by 1. */ 5889857Sobrien RELOC_NUMBER (R_390_PC32DBL, 19) /* PC relative 32 bit shifted by 1. */ 5989857Sobrien RELOC_NUMBER (R_390_PLT32DBL, 20) /* 32 bit PC rel. PLT shifted by 1. */ 6089857Sobrien RELOC_NUMBER (R_390_GOTPCDBL, 21) /* 32 bit PC rel. GOT shifted by 1. */ 6189857Sobrien RELOC_NUMBER (R_390_64, 22) /* Direct 64 bit. */ 6289857Sobrien RELOC_NUMBER (R_390_PC64, 23) /* PC relative 64 bit. */ 6389857Sobrien RELOC_NUMBER (R_390_GOT64, 24) /* 64 bit GOT offset. */ 6489857Sobrien RELOC_NUMBER (R_390_PLT64, 25) /* 64 bit PC relative PLT address. */ 6589857Sobrien RELOC_NUMBER (R_390_GOTENT, 26) /* 32 bit PC rel. to GOT entry >> 1. */ 6689857Sobrien /* These are GNU extensions to enable C++ vtable garbage collection. */ 6789857Sobrien RELOC_NUMBER (R_390_GNU_VTINHERIT, 250) 6889857Sobrien RELOC_NUMBER (R_390_GNU_VTENTRY, 251) 6989857SobrienEND_RELOC_NUMBERS (R_390_max) 7089857Sobrien 7189857Sobrien#endif /* _ELF_390_H */ 7289857Sobrien 7389857Sobrien 74