* language.h (struct language_defn) <la_iterate_over_symbols>: Fix
[deliverable/binutils-gdb.git] / include / elf / v850.h
CommitLineData
252b5132 1/* V850 ELF support for BFD.
e4e42b45 2 Copyright 1997, 1998, 2000, 2002, 2003, 2004, 2007, 2008, 2010
c3aa17e9 3 Free Software Foundation, Inc.
252b5132
RH
4 Created by Michael Meissner, Cygnus Support <meissner@cygnus.com>
5
86aba9db 6 This file is part of BFD, the Binary File Descriptor library.
252b5132 7
86aba9db
NC
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
e4e42b45 10 the Free Software Foundation; either version 3 of the License, or
86aba9db 11 (at your option) any later version.
252b5132 12
86aba9db
NC
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
252b5132 17
86aba9db
NC
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
e4e42b45
NC
20 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
21 MA 02110-1301, USA. */
252b5132
RH
22
23/* This file holds definitions specific to the MIPS ELF ABI. Note
24 that most of this is not actually implemented by BFD. */
25
26#ifndef _ELF_V850_H
27#define _ELF_V850_H
28
29/* Processor specific flags for the ELF header e_flags field. */
30
31/* Four bit V850 architecture field. */
32#define EF_V850_ARCH 0xf0000000
33
34/* v850 code. */
35#define E_V850_ARCH 0x00000000
36
37/* v850e code. */
38#define E_V850E_ARCH 0x10000000
39
8ad30312
NC
40/* v850e1 code. */
41#define E_V850E1_ARCH 0x20000000
42
1cd986c5
NC
43/* v850e2 code. */
44#define E_V850E2_ARCH 0x30000000
45
46/* v850e2v3 code. */
47#define E_V850E2V3_ARCH 0x40000000
252b5132 48
86aba9db 49/* Flags for the st_other field. */
d4c87fc1
AM
50#define V850_OTHER_SDA 0x10 /* Symbol had SDA relocations. */
51#define V850_OTHER_ZDA 0x20 /* Symbol had ZDA relocations. */
52#define V850_OTHER_TDA 0x40 /* Symbol had TDA relocations. */
86aba9db 53#define V850_OTHER_ERROR 0x80 /* Symbol had an error reported. */
252b5132 54
86aba9db 55/* V850 relocations. */
252b5132
RH
56#include "elf/reloc-macros.h"
57
58START_RELOC_NUMBERS (v850_reloc_type)
59 RELOC_NUMBER (R_V850_NONE, 0)
60 RELOC_NUMBER (R_V850_9_PCREL, 1)
61 RELOC_NUMBER (R_V850_22_PCREL, 2)
62 RELOC_NUMBER (R_V850_HI16_S, 3)
63 RELOC_NUMBER (R_V850_HI16, 4)
64 RELOC_NUMBER (R_V850_LO16, 5)
e30ddb24 65 RELOC_NUMBER (R_V850_ABS32, 6)
252b5132
RH
66 RELOC_NUMBER (R_V850_16, 7)
67 RELOC_NUMBER (R_V850_8, 8)
68 RELOC_NUMBER( R_V850_SDA_16_16_OFFSET, 9) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
69 RELOC_NUMBER( R_V850_SDA_15_16_OFFSET, 10) /* For ld.w, ld.h, ld.hu, st.w, st.h */
70 RELOC_NUMBER( R_V850_ZDA_16_16_OFFSET, 11) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
71 RELOC_NUMBER( R_V850_ZDA_15_16_OFFSET, 12) /* For ld.w, ld.h, ld.hu, st.w, st.h */
72 RELOC_NUMBER( R_V850_TDA_6_8_OFFSET, 13) /* For sst.w, sld.w */
73 RELOC_NUMBER( R_V850_TDA_7_8_OFFSET, 14) /* For sst.h, sld.h */
74 RELOC_NUMBER( R_V850_TDA_7_7_OFFSET, 15) /* For sst.b, sld.b */
75 RELOC_NUMBER( R_V850_TDA_16_16_OFFSET, 16) /* For set1, clr1, not1, tst1, movea, movhi */
252b5132
RH
76 RELOC_NUMBER( R_V850_TDA_4_5_OFFSET, 17) /* For sld.hu */
77 RELOC_NUMBER( R_V850_TDA_4_4_OFFSET, 18) /* For sld.bu */
78 RELOC_NUMBER( R_V850_SDA_16_16_SPLIT_OFFSET, 19) /* For ld.bu */
79 RELOC_NUMBER( R_V850_ZDA_16_16_SPLIT_OFFSET, 20) /* For ld.bu */
80 RELOC_NUMBER( R_V850_CALLT_6_7_OFFSET, 21) /* For callt */
81 RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22) /* For callt */
252b5132
RH
82 RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23)
83 RELOC_NUMBER (R_V850_GNU_VTENTRY, 24)
86aba9db
NC
84 RELOC_NUMBER (R_V850_LONGCALL, 25)
85 RELOC_NUMBER (R_V850_LONGJUMP, 26)
86 RELOC_NUMBER (R_V850_ALIGN, 27)
e30ddb24 87 RELOC_NUMBER (R_V850_REL32, 28)
1e50d24d 88 RELOC_NUMBER (R_V850_LO16_SPLIT_OFFSET, 29) /* For ld.bu */
1cd986c5
NC
89 RELOC_NUMBER (R_V850_16_PCREL, 30) /* For loop */
90 RELOC_NUMBER (R_V850_17_PCREL, 31) /* For br */
91 RELOC_NUMBER (R_V850_23, 32) /* For 23bit ld.[w,h,hu,b,bu],st.[w,h,b] */
92 RELOC_NUMBER (R_V850_32_PCREL, 33) /* For jr32, jarl32 */
93 RELOC_NUMBER (R_V850_32_ABS, 34) /* For jmp32 */
94 RELOC_NUMBER (R_V850_16_SPLIT_OFFSET, 35) /* For ld.bu */
95 RELOC_NUMBER (R_V850_16_S1, 36) /* For ld.w, ld.h st.w st.h */
96 RELOC_NUMBER (R_V850_LO16_S1, 37) /* For ld.w, ld.h st.w st.h */
97 RELOC_NUMBER (R_V850_CALLT_15_16_OFFSET, 38) /* For ld.w, ld.h, ld.hu, st.w, st.h */
98 RELOC_NUMBER (R_V850_32_GOTPCREL, 39) /* GLOBAL_OFFSET_TABLE from pc */
99 RELOC_NUMBER (R_V850_16_GOT, 40) /* GOT ENTRY from gp */
100 RELOC_NUMBER (R_V850_32_GOT, 41)
101 RELOC_NUMBER (R_V850_22_PLT, 42) /* For jr */
102 RELOC_NUMBER (R_V850_32_PLT, 43) /* For jr32 */
103 RELOC_NUMBER (R_V850_COPY, 44)
104 RELOC_NUMBER (R_V850_GLOB_DAT, 45)
105 RELOC_NUMBER (R_V850_JMP_SLOT, 46)
106 RELOC_NUMBER (R_V850_RELATIVE, 47)
107 RELOC_NUMBER (R_V850_16_GOTOFF, 48) /* From gp */
108 RELOC_NUMBER (R_V850_32_GOTOFF, 49)
109 RELOC_NUMBER (R_V850_CODE, 50)
110 RELOC_NUMBER (R_V850_DATA, 51) /* For loop */
111
1b452ec6 112END_RELOC_NUMBERS (R_V850_max)
252b5132
RH
113
114\f
115/* Processor specific section indices. These sections do not actually
116 exist. Symbols with a st_shndx field corresponding to one of these
117 values have a special meaning. */
118
119/* Small data area common symbol. */
1bce5d2c 120#define SHN_V850_SCOMMON SHN_LORESERVE
252b5132
RH
121
122/* Tiny data area common symbol. */
1bce5d2c 123#define SHN_V850_TCOMMON (SHN_LORESERVE + 1)
252b5132
RH
124
125/* Zero data area common symbol. */
1bce5d2c 126#define SHN_V850_ZCOMMON (SHN_LORESERVE + 2)
252b5132
RH
127
128\f
129/* Processor specific section types. */
130
131/* Section contains the .scommon data. */
132#define SHT_V850_SCOMMON 0x70000000
133
134/* Section contains the .scommon data. */
135#define SHT_V850_TCOMMON 0x70000001
136
137/* Section contains the .scommon data. */
138#define SHT_V850_ZCOMMON 0x70000002
139
2f89ff8d
L
140/* Processor specific section flags. */
141
142/* This section must be in the small data area (pointed to by GP). */
143#define SHF_V850_GPREL 0x10000000
144
145/* This section must be in the tiny data area (pointed to by EP). */
146#define SHF_V850_EPREL 0x20000000
147
148/* This section must be in the zero data area (pointed to by R0). */
149#define SHF_V850_R0REL 0x40000000
150
252b5132 151#endif /* _ELF_V850_H */
This page took 0.469315 seconds and 4 git commands to generate.