xref: /openbsd/gnu/usr.bin/binutils/include/elf/m88k.h (revision 09467b48)
1 /* MC88k ELF support for BFD.
2    Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
3 
4    This file is part of BFD, the Binary File Descriptor library.
5 
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2 of the License, or
9    (at your option) any later version.
10 
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15 
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software Foundation,
18    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
19 
20 #ifndef _ELF_M88K_H
21 #define _ELF_M88K_H
22 
23 #include "elf/reloc-macros.h"
24 
25 /* Relocation types.  */
26 START_RELOC_NUMBERS (elf_m88k_reloc_type)
27   RELOC_NUMBER (R_88K_NONE, 0)
28   RELOC_NUMBER (R_88K_COPY, 1)
29   RELOC_NUMBER (R_88K_GOTP_ENT, 2)
30   RELOC_NUMBER (R_88K_8, 4)
31   RELOC_NUMBER (R_88K_8S, 5)
32   RELOC_NUMBER (R_88K_16S, 7)
33   RELOC_NUMBER (R_88K_DISP16, 8)
34   RELOC_NUMBER (R_88K_DISP26, 10)
35   RELOC_NUMBER (R_88K_PLT_DISP26, 14)
36   RELOC_NUMBER (R_88K_BBASED_32, 16)
37   RELOC_NUMBER (R_88K_BBASED_32UA, 17)
38   RELOC_NUMBER (R_88K_BBASED_16H, 18)
39   RELOC_NUMBER (R_88K_BBASED_16L, 19)
40   RELOC_NUMBER (R_88K_ABDIFF_32, 24)
41   RELOC_NUMBER (R_88K_ABDIFF_32UA, 25)
42   RELOC_NUMBER (R_88K_ABDIFF_16H, 26)
43   RELOC_NUMBER (R_88K_ABDIFF_16L, 27)
44   RELOC_NUMBER (R_88K_ABDIFF_16, 28)
45   RELOC_NUMBER (R_88K_32, 32)
46   RELOC_NUMBER (R_88K_32UA, 33)
47   RELOC_NUMBER (R_88K_16H, 34)
48   RELOC_NUMBER (R_88K_16L, 35)
49   RELOC_NUMBER (R_88K_16, 36)
50   RELOC_NUMBER (R_88K_GOT_32, 40)
51   RELOC_NUMBER (R_88K_GOT_32UA, 41)
52   RELOC_NUMBER (R_88K_GOT_16H, 42)
53   RELOC_NUMBER (R_88K_GOT_16L, 43)
54   RELOC_NUMBER (R_88K_GOT_16, 44)
55   RELOC_NUMBER (R_88K_GOTP_32, 48)
56   RELOC_NUMBER (R_88K_GOTP_32UA, 49)
57   RELOC_NUMBER (R_88K_GOTP_16H, 50)
58   RELOC_NUMBER (R_88K_GOTP_16L, 51)
59   RELOC_NUMBER (R_88K_GOTP_16, 52)
60   RELOC_NUMBER (R_88K_PLT_32, 56)
61   RELOC_NUMBER (R_88K_PLT_32UA, 57)
62   RELOC_NUMBER (R_88K_PLT_16H, 58)
63   RELOC_NUMBER (R_88K_PLT_16L, 59)
64   RELOC_NUMBER (R_88K_PLT_16, 60)
65   RELOC_NUMBER (R_88K_ABREL_32, 64)
66   RELOC_NUMBER (R_88K_ABREL_32UA, 65)
67   RELOC_NUMBER (R_88K_ABREL_16H, 66)
68   RELOC_NUMBER (R_88K_ABREL_16L, 67)
69   RELOC_NUMBER (R_88K_ABREL_16, 68)
70   RELOC_NUMBER (R_88K_GOT_ABREL_32, 72)
71   RELOC_NUMBER (R_88K_GOT_ABREL_32UA, 73)
72   RELOC_NUMBER (R_88K_GOT_ABREL_16H, 74)
73   RELOC_NUMBER (R_88K_GOT_ABREL_16L, 75)
74   RELOC_NUMBER (R_88K_GOT_ABREL_16, 76)
75   RELOC_NUMBER (R_88K_GOTP_ABREL_32, 80)
76   RELOC_NUMBER (R_88K_GOTP_ABREL_32UA, 81)
77   RELOC_NUMBER (R_88K_GOTP_ABREL_16H, 82)
78   RELOC_NUMBER (R_88K_GOTP_ABREL_16L, 83)
79   RELOC_NUMBER (R_88K_GOTP_ABREL_16, 84)
80   RELOC_NUMBER (R_88K_PLT_ABREL_32, 88)
81   RELOC_NUMBER (R_88K_PLT_ABREL_32UA, 89)
82   RELOC_NUMBER (R_88K_PLT_ABREL_16H, 90)
83   RELOC_NUMBER (R_88K_PLT_ABREL_16L, 91)
84   RELOC_NUMBER (R_88K_PLT_ABREL_16, 92)
85   RELOC_NUMBER (R_88K_SREL_32, 96)
86   RELOC_NUMBER (R_88K_SREL_32UA, 97)
87   RELOC_NUMBER (R_88K_SREL_16H, 98)
88   RELOC_NUMBER (R_88K_SREL_16L, 99)
89   /* These are GNU extensions to enable C++ vtable garbage collection. */
90   RELOC_NUMBER (R_88K_GNU_VTINHERIT, 100)
91   RELOC_NUMBER (R_88K_GNU_VTENTRY, 101)
92 END_RELOC_NUMBERS (R_88K_UNIMPLEMENTED)
93 
94 /* Processor specific flags for the ELF header e_flags field.  */
95 
96 #define	EF_NABI     0x80000000	/* not ABI compliant */
97 #define EF_M88110   0x00000004	/* used 88110-specific features */
98 
99 /* Processor specific dynamic tag values.  */
100 
101 #define	DT_88K_ADDRBASE	0x70000001
102 #define	DT_88K_PLTSTART	0x70000002
103 #define	DT_88K_PLTEND	0x70000003
104 #define	DT_88K_TDESC	0x70000004
105 
106 #endif
107