1 |
/* V850 ELF support for BFD. |
/* V850 ELF support for BFD. |
2 |
Copyright 1997, 1998, 2000 Free Software Foundation, Inc. |
Copyright 1997, 1998, 2000, 2002, 2003, 2004 |
3 |
|
Free Software Foundation, Inc. |
4 |
Created by Michael Meissner, Cygnus Support <meissner@cygnus.com> |
Created by Michael Meissner, Cygnus Support <meissner@cygnus.com> |
5 |
|
|
6 |
This file is part of BFD, the Binary File Descriptor library. |
This file is part of BFD, the Binary File Descriptor library. |
7 |
|
|
8 |
This program is free software; you can redistribute it and/or modify |
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 |
it under the terms of the GNU General Public License as published by |
10 |
the Free Software Foundation; either version 2 of the License, or |
the Free Software Foundation; either version 2 of the License, or |
11 |
(at your option) any later version. |
(at your option) any later version. |
12 |
|
|
13 |
This program is distributed in the hope that it will be useful, |
This program is distributed in the hope that it will be useful, |
14 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 |
GNU General Public License for more details. |
GNU General Public License for more details. |
17 |
|
|
18 |
You should have received a copy of the GNU General Public License |
You should have received a copy of the GNU General Public License |
19 |
along with this program; if not, write to the Free Software |
along with this program; if not, write to the Free Software |
20 |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ |
21 |
|
|
22 |
/* This file holds definitions specific to the MIPS ELF ABI. Note |
/* This file holds definitions specific to the MIPS ELF ABI. Note |
23 |
that most of this is not actually implemented by BFD. */ |
that most of this is not actually implemented by BFD. */ |
36 |
/* v850e code. */ |
/* v850e code. */ |
37 |
#define E_V850E_ARCH 0x10000000 |
#define E_V850E_ARCH 0x10000000 |
38 |
|
|
39 |
/* v850ea code. */ |
/* v850e1 code. */ |
40 |
#define E_V850EA_ARCH 0x20000000 |
#define E_V850E1_ARCH 0x20000000 |
41 |
|
|
42 |
|
|
43 |
/* Flags for the st_other field */ |
/* Flags for the st_other field. */ |
44 |
#define V850_OTHER_SDA 0x01 /* symbol had SDA relocations */ |
#define V850_OTHER_SDA 0x01 /* Symbol had SDA relocations. */ |
45 |
#define V850_OTHER_ZDA 0x02 /* symbol had ZDA relocations */ |
#define V850_OTHER_ZDA 0x02 /* Symbol had ZDA relocations. */ |
46 |
#define V850_OTHER_TDA 0x04 /* symbol had TDA relocations */ |
#define V850_OTHER_TDA 0x04 /* Symbol had TDA relocations. */ |
47 |
#define V850_OTHER_TDA_BYTE 0x08 /* symbol had TDA byte relocations */ |
#define V850_OTHER_TDA_BYTE 0x08 /* Symbol had TDA byte relocations. */ |
48 |
#define V850_OTHER_ERROR 0x80 /* symbol had an error reported */ |
#define V850_OTHER_ERROR 0x80 /* Symbol had an error reported. */ |
49 |
|
|
50 |
/* V850 relocations */ |
/* V850 relocations. */ |
51 |
#include "elf/reloc-macros.h" |
#include "elf/reloc-macros.h" |
52 |
|
|
53 |
START_RELOC_NUMBERS (v850_reloc_type) |
START_RELOC_NUMBERS (v850_reloc_type) |
57 |
RELOC_NUMBER (R_V850_HI16_S, 3) |
RELOC_NUMBER (R_V850_HI16_S, 3) |
58 |
RELOC_NUMBER (R_V850_HI16, 4) |
RELOC_NUMBER (R_V850_HI16, 4) |
59 |
RELOC_NUMBER (R_V850_LO16, 5) |
RELOC_NUMBER (R_V850_LO16, 5) |
60 |
RELOC_NUMBER (R_V850_32, 6) |
RELOC_NUMBER (R_V850_ABS32, 6) |
61 |
RELOC_NUMBER (R_V850_16, 7) |
RELOC_NUMBER (R_V850_16, 7) |
62 |
RELOC_NUMBER (R_V850_8, 8) |
RELOC_NUMBER (R_V850_8, 8) |
63 |
RELOC_NUMBER( R_V850_SDA_16_16_OFFSET, 9) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */ |
RELOC_NUMBER( R_V850_SDA_16_16_OFFSET, 9) /* For ld.b, st.b, set1, clr1, not1, tst1, movea, movhi */ |
76 |
RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22) /* For callt */ |
RELOC_NUMBER( R_V850_CALLT_16_16_OFFSET, 22) /* For callt */ |
77 |
RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23) |
RELOC_NUMBER (R_V850_GNU_VTINHERIT, 23) |
78 |
RELOC_NUMBER (R_V850_GNU_VTENTRY, 24) |
RELOC_NUMBER (R_V850_GNU_VTENTRY, 24) |
79 |
|
RELOC_NUMBER (R_V850_LONGCALL, 25) |
80 |
|
RELOC_NUMBER (R_V850_LONGJUMP, 26) |
81 |
|
RELOC_NUMBER (R_V850_ALIGN, 27) |
82 |
|
RELOC_NUMBER (R_V850_REL32, 28) |
83 |
|
RELOC_NUMBER (R_V850_LO16_SPLIT_OFFSET, 29) /* For ld.bu */ |
84 |
END_RELOC_NUMBERS (R_V850_max) |
END_RELOC_NUMBERS (R_V850_max) |
85 |
|
|
86 |
|
|
109 |
/* Section contains the .scommon data. */ |
/* Section contains the .scommon data. */ |
110 |
#define SHT_V850_ZCOMMON 0x70000002 |
#define SHT_V850_ZCOMMON 0x70000002 |
111 |
|
|
112 |
|
/* Processor specific section flags. */ |
113 |
|
|
114 |
|
/* This section must be in the small data area (pointed to by GP). */ |
115 |
|
#define SHF_V850_GPREL 0x10000000 |
116 |
|
|
117 |
|
/* This section must be in the tiny data area (pointed to by EP). */ |
118 |
|
#define SHF_V850_EPREL 0x20000000 |
119 |
|
|
120 |
|
/* This section must be in the zero data area (pointed to by R0). */ |
121 |
|
#define SHF_V850_R0REL 0x40000000 |
122 |
|
|
123 |
#endif /* _ELF_V850_H */ |
#endif /* _ELF_V850_H */ |