i386.h revision 104835
1178476Sjb/* ix86 ELF support for BFD.
2178476Sjb   Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
3178476Sjb
4178476Sjb   This file is part of BFD, the Binary File Descriptor library.
5178476Sjb
6178476Sjb   This program is free software; you can redistribute it and/or modify
7178476Sjb   it under the terms of the GNU General Public License as published by
8178476Sjb   the Free Software Foundation; either version 2 of the License, or
9178476Sjb   (at your option) any later version.
10178476Sjb
11178476Sjb   This program is distributed in the hope that it will be useful,
12178476Sjb   but WITHOUT ANY WARRANTY; without even the implied warranty of
13178476Sjb   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14178476Sjb   GNU General Public License for more details.
15178476Sjb
16178476Sjb   You should have received a copy of the GNU General Public License
17178476Sjb   along with this program; if not, write to the Free Software Foundation,
18178476Sjb   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
19178476Sjb
20178476Sjb#ifndef _ELF_I386_H
21178476Sjb#define _ELF_I386_H
22178476Sjb
23178476Sjb#include "elf/reloc-macros.h"
24178476Sjb
25178476SjbSTART_RELOC_NUMBERS (elf_i386_reloc_type)
26178476Sjb     RELOC_NUMBER (R_386_NONE,      0)	/* No reloc */
27178476Sjb     RELOC_NUMBER (R_386_32,        1)	/* Direct 32 bit  */
28178476Sjb     RELOC_NUMBER (R_386_PC32,      2)	/* PC relative 32 bit */
29178476Sjb     RELOC_NUMBER (R_386_GOT32,     3)	/* 32 bit GOT entry */
30178476Sjb     RELOC_NUMBER (R_386_PLT32,	    4)	/* 32 bit PLT address */
31178476Sjb     RELOC_NUMBER (R_386_COPY,	    5)	/* Copy symbol at runtime */
32178476Sjb     RELOC_NUMBER (R_386_GLOB_DAT,  6)	/* Create GOT entry */
33178476Sjb     RELOC_NUMBER (R_386_JUMP_SLOT, 7)	/* Create PLT entry */
34178476Sjb     RELOC_NUMBER (R_386_RELATIVE,  8)	/* Adjust by program base */
35178476Sjb     RELOC_NUMBER (R_386_GOTOFF,    9)	/* 32 bit offset to GOT */
36178476Sjb     RELOC_NUMBER (R_386_GOTPC,    10)	/* 32 bit PC relative offset to GOT */
37178476Sjb     RELOC_NUMBER (R_386_32PLT,    11)	/* Used by Sun */
38178476Sjb     FAKE_RELOC   (FIRST_INVALID_RELOC, 12)
39178476Sjb     FAKE_RELOC   (LAST_INVALID_RELOC,  13)
40178476Sjb     RELOC_NUMBER (R_386_TLS_TPOFF,14)
41178476Sjb     RELOC_NUMBER (R_386_TLS_IE,   15)
42178476Sjb     RELOC_NUMBER (R_386_TLS_GOTIE,16)
43178476Sjb     RELOC_NUMBER (R_386_TLS_LE,   17)
44178476Sjb     RELOC_NUMBER (R_386_TLS_GD,   18)
45178476Sjb     RELOC_NUMBER (R_386_TLS_LDM,  19)
46178476Sjb     RELOC_NUMBER (R_386_16,       20)
47178476Sjb     RELOC_NUMBER (R_386_PC16,     21)
48178476Sjb     RELOC_NUMBER (R_386_8,	   22)
49178476Sjb     RELOC_NUMBER (R_386_PC8,      23)
50178476Sjb     RELOC_NUMBER (R_386_TLS_GD_32,    24)
51     RELOC_NUMBER (R_386_TLS_GD_PUSH,  25)
52     RELOC_NUMBER (R_386_TLS_GD_CALL,  26)
53     RELOC_NUMBER (R_386_TLS_GD_POP,   27)
54     RELOC_NUMBER (R_386_TLS_LDM_32,   28)
55     RELOC_NUMBER (R_386_TLS_LDM_PUSH, 29)
56     RELOC_NUMBER (R_386_TLS_LDM_CALL, 30)
57     RELOC_NUMBER (R_386_TLS_LDM_POP,  31)
58     RELOC_NUMBER (R_386_TLS_LDO_32,   32)
59     RELOC_NUMBER (R_386_TLS_IE_32,    33)
60     RELOC_NUMBER (R_386_TLS_LE_32,    34)
61     RELOC_NUMBER (R_386_TLS_DTPMOD32, 35)
62     RELOC_NUMBER (R_386_TLS_DTPOFF32, 36)
63     RELOC_NUMBER (R_386_TLS_TPOFF32,  37)
64
65     /* These are GNU extensions to enable C++ vtable garbage collection.  */
66     RELOC_NUMBER (R_386_GNU_VTINHERIT, 250)
67     RELOC_NUMBER (R_386_GNU_VTENTRY, 251)
68END_RELOC_NUMBERS (R_386_max)
69
70#endif
71