i386.h revision 218822
160484Sobrien/* ix86 ELF support for BFD. 2218822Sdim Copyright 1998, 1999, 2000, 2002, 2004, 2005, 2006 3218822Sdim Free Software Foundation, Inc. 460484Sobrien 560484Sobrien This file is part of BFD, the Binary File Descriptor library. 660484Sobrien 760484Sobrien This program is free software; you can redistribute it and/or modify 860484Sobrien it under the terms of the GNU General Public License as published by 960484Sobrien the Free Software Foundation; either version 2 of the License, or 1060484Sobrien (at your option) any later version. 1160484Sobrien 1260484Sobrien This program is distributed in the hope that it will be useful, 1360484Sobrien but WITHOUT ANY WARRANTY; without even the implied warranty of 1460484Sobrien MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1560484Sobrien GNU General Public License for more details. 1660484Sobrien 1760484Sobrien You should have received a copy of the GNU General Public License 1860484Sobrien along with this program; if not, write to the Free Software Foundation, 19218822Sdim Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ 2060484Sobrien 2160484Sobrien#ifndef _ELF_I386_H 2260484Sobrien#define _ELF_I386_H 2360484Sobrien 2460484Sobrien#include "elf/reloc-macros.h" 2560484Sobrien 2660484SobrienSTART_RELOC_NUMBERS (elf_i386_reloc_type) 2760484Sobrien RELOC_NUMBER (R_386_NONE, 0) /* No reloc */ 2860484Sobrien RELOC_NUMBER (R_386_32, 1) /* Direct 32 bit */ 2960484Sobrien RELOC_NUMBER (R_386_PC32, 2) /* PC relative 32 bit */ 3060484Sobrien RELOC_NUMBER (R_386_GOT32, 3) /* 32 bit GOT entry */ 3160484Sobrien RELOC_NUMBER (R_386_PLT32, 4) /* 32 bit PLT address */ 3260484Sobrien RELOC_NUMBER (R_386_COPY, 5) /* Copy symbol at runtime */ 3360484Sobrien RELOC_NUMBER (R_386_GLOB_DAT, 6) /* Create GOT entry */ 3460484Sobrien RELOC_NUMBER (R_386_JUMP_SLOT, 7) /* Create PLT entry */ 3560484Sobrien RELOC_NUMBER (R_386_RELATIVE, 8) /* Adjust by program base */ 3660484Sobrien RELOC_NUMBER (R_386_GOTOFF, 9) /* 32 bit offset to GOT */ 3760484Sobrien RELOC_NUMBER (R_386_GOTPC, 10) /* 32 bit PC relative offset to GOT */ 38104834Sobrien RELOC_NUMBER (R_386_32PLT, 11) /* Used by Sun */ 39104834Sobrien FAKE_RELOC (FIRST_INVALID_RELOC, 12) 40104834Sobrien FAKE_RELOC (LAST_INVALID_RELOC, 13) 41104834Sobrien RELOC_NUMBER (R_386_TLS_TPOFF,14) 42104834Sobrien RELOC_NUMBER (R_386_TLS_IE, 15) 43104834Sobrien RELOC_NUMBER (R_386_TLS_GOTIE,16) 44104834Sobrien RELOC_NUMBER (R_386_TLS_LE, 17) 45104834Sobrien RELOC_NUMBER (R_386_TLS_GD, 18) 46104834Sobrien RELOC_NUMBER (R_386_TLS_LDM, 19) 4760484Sobrien RELOC_NUMBER (R_386_16, 20) 4860484Sobrien RELOC_NUMBER (R_386_PC16, 21) 4960484Sobrien RELOC_NUMBER (R_386_8, 22) 5060484Sobrien RELOC_NUMBER (R_386_PC8, 23) 51104834Sobrien RELOC_NUMBER (R_386_TLS_GD_32, 24) 52104834Sobrien RELOC_NUMBER (R_386_TLS_GD_PUSH, 25) 53104834Sobrien RELOC_NUMBER (R_386_TLS_GD_CALL, 26) 54104834Sobrien RELOC_NUMBER (R_386_TLS_GD_POP, 27) 55104834Sobrien RELOC_NUMBER (R_386_TLS_LDM_32, 28) 56104834Sobrien RELOC_NUMBER (R_386_TLS_LDM_PUSH, 29) 57104834Sobrien RELOC_NUMBER (R_386_TLS_LDM_CALL, 30) 58104834Sobrien RELOC_NUMBER (R_386_TLS_LDM_POP, 31) 59104834Sobrien RELOC_NUMBER (R_386_TLS_LDO_32, 32) 60104834Sobrien RELOC_NUMBER (R_386_TLS_IE_32, 33) 61104834Sobrien RELOC_NUMBER (R_386_TLS_LE_32, 34) 62104834Sobrien RELOC_NUMBER (R_386_TLS_DTPMOD32, 35) 63104834Sobrien RELOC_NUMBER (R_386_TLS_DTPOFF32, 36) 64104834Sobrien RELOC_NUMBER (R_386_TLS_TPOFF32, 37) 65218822Sdim/* 38 */ 66218822Sdim RELOC_NUMBER (R_386_TLS_GOTDESC, 39) 67218822Sdim RELOC_NUMBER (R_386_TLS_DESC_CALL,40) 68218822Sdim RELOC_NUMBER (R_386_TLS_DESC, 41) 69104834Sobrien 70218822Sdim /* Used by Intel. */ 71218822Sdim RELOC_NUMBER (R_386_USED_BY_INTEL_200, 200) 72218822Sdim 7360484Sobrien /* These are GNU extensions to enable C++ vtable garbage collection. */ 7460484Sobrien RELOC_NUMBER (R_386_GNU_VTINHERIT, 250) 7560484Sobrien RELOC_NUMBER (R_386_GNU_VTENTRY, 251) 7677298SobrienEND_RELOC_NUMBERS (R_386_max) 7760484Sobrien 7860484Sobrien#endif 79