]> sourceware.org Git - newlib-cygwin.git/blame - include/elf/v850.h
Add binutils support for v850e1 processor
[newlib-cygwin.git] / include / elf / v850.h
CommitLineData
a3acbf46 1/* V850 ELF support for BFD.
99759ba1 2 Copyright 1997, 1998, 2000, 2002, 2003 Free Software Foundation, Inc.
a3acbf46
RH
3 Created by Michael Meissner, Cygnus Support <meissner@cygnus.com>
4
edb983c1 5 This file is part of BFD, the Binary File Descriptor library.
a3acbf46 6
edb983c1
NC
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
a3acbf46 11
edb983c1
NC
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
a3acbf46 16
edb983c1
NC
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
a3acbf46
RH
20
21/* This file holds definitions specific to the MIPS ELF ABI. Note
22 that most of this is not actually implemented by BFD. */
23
24#ifndef _ELF_V850_H
25#define _ELF_V850_H
26
27/* Processor specific flags for the ELF header e_flags field. */
28
29/* Four bit V850 architecture field. */
30#define EF_V850_ARCH 0xf0000000
31
32/* v850 code. */
33#define E_V850_ARCH 0x00000000
34
35/* v850e code. */
36#define E_V850E_ARCH 0x10000000
37
99759ba1
NC
38/* v850e1 code. */
39#define E_V850E1_ARCH 0x20000000
40
a3acbf46 41
edb983c1
NC
42/* Flags for the st_other field. */
43#define V850_OTHER_SDA 0x01 /* Symbol had SDA relocations. */
44#define V850_OTHER_ZDA 0x02 /* Symbol had ZDA relocations. */
45#define V850_OTHER_TDA 0x04 /* Symbol had TDA relocations. */
46#define V850_OTHER_TDA_BYTE 0x08 /* Symbol had TDA byte relocations. */
47#define V850_OTHER_ERROR 0x80 /* Symbol had an error reported. */
a3acbf46 48
edb983c1 49/* V850 relocations. */
a3acbf46
RH
50#include "elf/reloc-macros.h"
51
52START_RELOC_NUMBERS (v850_reloc_type)
53 RELOC_NUMBER (R_V850_NONE, 0)
54 RELOC_NUMBER (R_V850_9_PCREL, 1)
55 RELOC_NUMBER (R_V850_22_PCREL, 2)
56 RELOC_NUMBER (R_V850_HI16_S, 3)
57 RELOC_NUMBER (R_V850_HI16, 4)
58 RELOC_NUMBER (R_V850_LO16, 5)
283857c8 59 RELOC_NUMBER (R_V850_ABS32, 6)
a3acbf46
RH
60 RELOC_NUMBER (R_V850_16, 7)
61 RELOC_NUMBER (R_V850_8, 8)
62 RELOC_NUMBER( R_V850_SDA_16_16_OFFSET, 9) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
63 RELOC_NUMBER( R_V850_SDA_15_16_OFFSET, 10) /* For ld.w, ld.h, ld.hu, st.w, st.h */
64 RELOC_NUMBER( R_V850_ZDA_16_16_OFFSET, 11) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */
65 RELOC_NUMBER( R_V850_ZDA_15_16_OFFSET, 12) /* For ld.w, ld.h, ld.hu, st.w, st.h */
66 RELOC_NUMBER( R_V850_TDA_6_8_OFFSET, 13) /* For sst.w, sld.w */
67 RELOC_NUMBER( R_V850_TDA_7_8_OFFSET, 14) /* For sst.h, sld.h */
68 RELOC_NUMBER( R_V850_TDA_7_7_OFFSET, 15) /* For sst.b, sld.b */
69 RELOC_NUMBER( R_V850_TDA_16_16_OFFSET, 16) /* For set1, clr1, not1, tst1, movea, movhi */
a3acbf46
RH
70 RELOC_NUMBER( R_V850_TDA_4_5_OFFSET, 17) /* For sld.hu */
71 RELOC_NUMBER( R_V850_TDA_4_4_OFFSET, 18) /* For sld.bu */
72 RELOC_NUMBER( R_V850_SDA_16_16_SPLIT_OFFSET, 19) /* For ld.bu */
73 RELOC_NUMBER( R_V850_ZDA_16_16_SPLIT_OFFSET, 20) /* For ld.bu */
74 RELOC_NUMBER( R_V850_CALLT_6_7_OFFSET, 21) /* For callt */
75 RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22) /* For callt */
a3acbf46
RH
76 RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23)
77 RELOC_NUMBER (R_V850_GNU_VTENTRY, 24)
edb983c1
NC
78 RELOC_NUMBER (R_V850_LONGCALL, 25)
79 RELOC_NUMBER (R_V850_LONGJUMP, 26)
80 RELOC_NUMBER (R_V850_ALIGN, 27)
283857c8 81 RELOC_NUMBER (R_V850_REL32, 28)
47d87b8a 82END_RELOC_NUMBERS (R_V850_max)
a3acbf46
RH
83
84\f
85/* Processor specific section indices. These sections do not actually
86 exist. Symbols with a st_shndx field corresponding to one of these
87 values have a special meaning. */
88
89/* Small data area common symbol. */
90#define SHN_V850_SCOMMON 0xff00
91
92/* Tiny data area common symbol. */
93#define SHN_V850_TCOMMON 0xff01
94
95/* Zero data area common symbol. */
96#define SHN_V850_ZCOMMON 0xff02
97
98\f
99/* Processor specific section types. */
100
101/* Section contains the .scommon data. */
102#define SHT_V850_SCOMMON 0x70000000
103
104/* Section contains the .scommon data. */
105#define SHT_V850_TCOMMON 0x70000001
106
107/* Section contains the .scommon data. */
108#define SHT_V850_ZCOMMON 0x70000002
109
206ac174
L
110/* Processor specific section flags. */
111
112/* This section must be in the small data area (pointed to by GP). */
113#define SHF_V850_GPREL 0x10000000
114
115/* This section must be in the tiny data area (pointed to by EP). */
116#define SHF_V850_EPREL 0x20000000
117
118/* This section must be in the zero data area (pointed to by R0). */
119#define SHF_V850_R0REL 0x40000000
120
a3acbf46 121#endif /* _ELF_V850_H */
This page took 0.083002 seconds and 5 git commands to generate.