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