Commit | Line | Data |
---|---|---|
cbc34241 MM |
1 | /* V850 ELF support for BFD. |
2 | Copyright (C) 1997 Free Software Foundation, Inc. | |
3 | Created by Michael Meissner, Cygnus Support <meissner@cygnus.com> | |
4 | ||
5 | This file is part of BFD, the Binary File Descriptor library. | |
6 | ||
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. | |
11 | ||
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. | |
16 | ||
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. */ | |
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 | ||
8ba8bbae NC |
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 | /* start-sanitize-v850e */ | |
36 | /* v850e code. */ | |
37 | #define E_V850E_ARCH 0x10000000 | |
38 | /* end-sanitize-v850e */ | |
39 | ||
40 | /* start-sanitize-v850eq */ | |
41 | /* v850eq code. */ | |
42 | #define E_V850EQ_ARCH 0x20000000 | |
43 | /* end-sanitize-v850eq */ | |
44 | ||
45 | ||
3b20886e | 46 | /* Flags for the st_other field */ |
cbc34241 MM |
47 | #define V850_OTHER_SDA 0x01 /* symbol had SDA relocations */ |
48 | #define V850_OTHER_ZDA 0x02 /* symbol had ZDA relocations */ | |
49 | #define V850_OTHER_TDA 0x04 /* symbol had TDA relocations */ | |
3b20886e MM |
50 | #define V850_OTHER_TDA_BYTE 0x08 /* symbol had TDA byte relocations */ |
51 | #define V850_OTHER_ERROR 0x80 /* symbol had an error reported */ | |
cbc34241 | 52 | |
8ba8bbae NC |
53 | /* V850 relocations */ |
54 | enum reloc_type | |
55 | { | |
56 | R_V850_NONE = 0, | |
57 | R_V850_9_PCREL, | |
8ba8bbae NC |
58 | R_V850_22_PCREL, |
59 | R_V850_HI16_S, | |
60 | R_V850_HI16, | |
61 | R_V850_LO16, | |
62 | R_V850_32, | |
63 | R_V850_16, | |
64 | R_V850_8, | |
65 | R_V850_SDA_16_16_OFFSET, /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */ | |
66 | R_V850_SDA_15_16_OFFSET, /* For ld.w, ld.h, ld.hu, st.w, st.h */ | |
67 | R_V850_ZDA_16_16_OFFSET, /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */ | |
68 | R_V850_ZDA_15_16_OFFSET, /* For ld.w, ld.h, ld.hu, st.w, st.h */ | |
69 | R_V850_TDA_6_8_OFFSET, /* For sst.w, sld.w */ | |
70 | R_V850_TDA_7_8_OFFSET, /* For sst.h, sld.h */ | |
71 | R_V850_TDA_7_7_OFFSET, /* For sst.b, sld.b */ | |
9f6badd0 | 72 | R_V850_TDA_16_16_OFFSET, /* For set1, clr1, not1, tst1, movea, movhi */ |
8ba8bbae NC |
73 | /* start-sanitize-v850e */ |
74 | R_V850_TDA_4_5_OFFSET, /* For sld.hu */ | |
75 | R_V850_TDA_4_4_OFFSET, /* For sld.bu */ | |
76 | R_V850_SDA_16_16_SPLIT_OFFSET, /* For ld.bu */ | |
77 | R_V850_ZDA_16_16_SPLIT_OFFSET, /* For ld.bu */ | |
78 | /* end-sanitize-v850e */ | |
79 | R_V850_max | |
80 | }; | |
81 | ||
cbc34241 | 82 | #endif /* _ELF_V850_H */ |