/src/binutils-gdb/include/elf/tilepro.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* TILEPro ELF support for BFD. |
2 | | Copyright (C) 2011-2025 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 3 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 |
18 | | Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, |
19 | | MA 02110-1301, USA. */ |
20 | | |
21 | | #ifndef _ELF_TILEPRO_H |
22 | | #define _ELF_TILEPRO_H |
23 | | |
24 | | #include "elf/reloc-macros.h" |
25 | | |
26 | | /* Relocations. */ |
27 | 100k | START_RELOC_NUMBERS (elf_tilepro_reloc_type) |
28 | 100k | RELOC_NUMBER (R_TILEPRO_NONE, 0) |
29 | | |
30 | | /* Standard relocations */ |
31 | 1.39k | RELOC_NUMBER (R_TILEPRO_32, 1) |
32 | 1.89k | RELOC_NUMBER (R_TILEPRO_16, 2) |
33 | 949 | RELOC_NUMBER (R_TILEPRO_8, 3) |
34 | 1.24k | RELOC_NUMBER (R_TILEPRO_32_PCREL, 4) |
35 | 795 | RELOC_NUMBER (R_TILEPRO_16_PCREL, 5) |
36 | 766 | RELOC_NUMBER (R_TILEPRO_8_PCREL, 6) |
37 | | |
38 | 603 | RELOC_NUMBER (R_TILEPRO_LO16, 7) |
39 | 788 | RELOC_NUMBER (R_TILEPRO_HI16, 8) |
40 | 1.73k | RELOC_NUMBER (R_TILEPRO_HA16, 9) |
41 | | |
42 | 736 | RELOC_NUMBER (R_TILEPRO_COPY, 10) |
43 | 203 | RELOC_NUMBER (R_TILEPRO_GLOB_DAT, 11) |
44 | 230 | RELOC_NUMBER (R_TILEPRO_JMP_SLOT, 12) |
45 | 66 | RELOC_NUMBER (R_TILEPRO_RELATIVE, 13) |
46 | | |
47 | | /* Branch/jump offsets */ |
48 | 71 | RELOC_NUMBER (R_TILEPRO_BROFF_X1, 14) |
49 | 136 | RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1, 15) |
50 | 774 | RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1_PLT, 16) |
51 | | |
52 | | /* Immediate operands. */ |
53 | 607 | RELOC_NUMBER (R_TILEPRO_IMM8_X0, 17) |
54 | 172 | RELOC_NUMBER (R_TILEPRO_IMM8_Y0, 18) |
55 | 38 | RELOC_NUMBER (R_TILEPRO_IMM8_X1, 19) |
56 | 200 | RELOC_NUMBER (R_TILEPRO_IMM8_Y1, 20) |
57 | 66 | RELOC_NUMBER (R_TILEPRO_MT_IMM15_X1, 21) |
58 | 70 | RELOC_NUMBER (R_TILEPRO_MF_IMM15_X1, 22) |
59 | | |
60 | 205 | RELOC_NUMBER (R_TILEPRO_IMM16_X0, 23) |
61 | 561 | RELOC_NUMBER (R_TILEPRO_IMM16_X1, 24) |
62 | 79 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO, 25) |
63 | 134 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO, 26) |
64 | 44 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI, 27) |
65 | 261 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI, 28) |
66 | 73 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA, 29) |
67 | 99 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA, 30) |
68 | | |
69 | 23 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_PCREL, 31) |
70 | 2.82k | RELOC_NUMBER (R_TILEPRO_IMM16_X1_PCREL, 32) |
71 | 1.29k | RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO_PCREL, 33) |
72 | 315 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO_PCREL, 34) |
73 | 98 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI_PCREL, 35) |
74 | 440 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI_PCREL, 36) |
75 | 118 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA_PCREL, 37) |
76 | 437 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA_PCREL, 38) |
77 | | |
78 | 287 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT, 39) |
79 | 678 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT, 40) |
80 | 53 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_LO, 41) |
81 | 185 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_LO, 42) |
82 | 270 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HI, 43) |
83 | 168 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HI, 44) |
84 | 342 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HA, 45) |
85 | 1.61k | RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HA, 46) |
86 | | |
87 | 171 | RELOC_NUMBER (R_TILEPRO_MMSTART_X0, 47) |
88 | 666 | RELOC_NUMBER (R_TILEPRO_MMEND_X0, 48) |
89 | 122 | RELOC_NUMBER (R_TILEPRO_MMSTART_X1, 49) |
90 | 235 | RELOC_NUMBER (R_TILEPRO_MMEND_X1, 50) |
91 | | |
92 | 438 | RELOC_NUMBER (R_TILEPRO_SHAMT_X0, 51) |
93 | 216 | RELOC_NUMBER (R_TILEPRO_SHAMT_X1, 52) |
94 | 86 | RELOC_NUMBER (R_TILEPRO_SHAMT_Y0, 53) |
95 | 211 | RELOC_NUMBER (R_TILEPRO_SHAMT_Y1, 54) |
96 | | |
97 | 160 | RELOC_NUMBER (R_TILEPRO_DEST_IMM8_X1, 55) |
98 | | |
99 | | /* Relocs 56-59 are currently not defined. */ |
100 | | |
101 | 135 | RELOC_NUMBER (R_TILEPRO_TLS_GD_CALL, 60) |
102 | 40 | RELOC_NUMBER (R_TILEPRO_IMM8_X0_TLS_GD_ADD, 61) |
103 | 81 | RELOC_NUMBER (R_TILEPRO_IMM8_X1_TLS_GD_ADD, 62) |
104 | 174 | RELOC_NUMBER (R_TILEPRO_IMM8_Y0_TLS_GD_ADD, 63) |
105 | 717 | RELOC_NUMBER (R_TILEPRO_IMM8_Y1_TLS_GD_ADD, 64) |
106 | 458 | RELOC_NUMBER (R_TILEPRO_TLS_IE_LOAD, 65) |
107 | | |
108 | 143 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD, 66) |
109 | 694 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD, 67) |
110 | 103 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_LO, 68) |
111 | 503 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_LO, 69) |
112 | 623 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HI, 70) |
113 | 104 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HI, 71) |
114 | 296 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HA, 72) |
115 | 134 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HA, 73) |
116 | | |
117 | 11 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE, 74) |
118 | 24 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE, 75) |
119 | 624 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_LO, 76) |
120 | 180 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_LO, 77) |
121 | 70 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HI, 78) |
122 | 106 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HI, 79) |
123 | 198 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HA, 80) |
124 | 43 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HA, 81) |
125 | | |
126 | 547 | RELOC_NUMBER (R_TILEPRO_TLS_DTPMOD32, 82) |
127 | 95 | RELOC_NUMBER (R_TILEPRO_TLS_DTPOFF32, 83) |
128 | 218 | RELOC_NUMBER (R_TILEPRO_TLS_TPOFF32, 84) |
129 | | |
130 | 447 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE, 85) |
131 | 20 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE, 86) |
132 | 48 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_LO, 87) |
133 | 114 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_LO, 88) |
134 | 61 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HI, 89) |
135 | 10 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HI, 90) |
136 | 44 | RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HA, 91) |
137 | 196 | RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HA, 92) |
138 | | |
139 | | /* These are GNU extensions to enable C++ vtable garbage collection. */ |
140 | 407 | RELOC_NUMBER (R_TILEPRO_GNU_VTINHERIT, 128) |
141 | 36 | RELOC_NUMBER (R_TILEPRO_GNU_VTENTRY, 129) |
142 | 28.3k | END_RELOC_NUMBERS (R_TILEPRO_max) |
143 | | |
144 | | #endif /* _ELF_TILEPRO_H */ |