1/* KVX ELF support for BFD.
2
3   Copyright (C) 2009-2024 Free Software Foundation, Inc.
4   Contributed by Kalray SA.
5
6   This file is part of GNU Binutils.
7
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
10   the Free Software Foundation; either version 3 of the license, or
11   (at your option) any later version.
12
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.
17
18   You should have received a copy of the GNU General Public License
19   along with this program; see the file COPYING3. If not,
20   see <http://www.gnu.org/licenses/>.  */
21
22#ifndef _ELF_KVX_H
23#define _ELF_KVX_H
24
25#include "elf/reloc-macros.h"
26
27START_RELOC_NUMBERS (elf_kvx_reloc_type)
28    RELOC_NUMBER (R_KVX_NONE,                                  0)
29    RELOC_NUMBER (R_KVX_16,                                    1)
30    RELOC_NUMBER (R_KVX_32,                                    2)
31    RELOC_NUMBER (R_KVX_64,                                    3)
32    RELOC_NUMBER (R_KVX_S16_PCREL,                             4)
33    RELOC_NUMBER (R_KVX_PCREL17,                               5)
34    RELOC_NUMBER (R_KVX_PCREL27,                               6)
35    RELOC_NUMBER (R_KVX_32_PCREL,                              7)
36    RELOC_NUMBER (R_KVX_S37_PCREL_LO10,                        8)
37    RELOC_NUMBER (R_KVX_S37_PCREL_UP27,                        9)
38    RELOC_NUMBER (R_KVX_S43_PCREL_LO10,                       10)
39    RELOC_NUMBER (R_KVX_S43_PCREL_UP27,                       11)
40    RELOC_NUMBER (R_KVX_S43_PCREL_EX6,                        12)
41    RELOC_NUMBER (R_KVX_S64_PCREL_LO10,                       13)
42    RELOC_NUMBER (R_KVX_S64_PCREL_UP27,                       14)
43    RELOC_NUMBER (R_KVX_S64_PCREL_EX27,                       15)
44    RELOC_NUMBER (R_KVX_64_PCREL,                             16)
45    RELOC_NUMBER (R_KVX_S16,                                  17)
46    RELOC_NUMBER (R_KVX_S32_LO5,                              18)
47    RELOC_NUMBER (R_KVX_S32_UP27,                             19)
48    RELOC_NUMBER (R_KVX_S37_LO10,                             20)
49    RELOC_NUMBER (R_KVX_S37_UP27,                             21)
50    RELOC_NUMBER (R_KVX_S37_GOTOFF_LO10,                      22)
51    RELOC_NUMBER (R_KVX_S37_GOTOFF_UP27,                      23)
52    RELOC_NUMBER (R_KVX_S43_GOTOFF_LO10,                      24)
53    RELOC_NUMBER (R_KVX_S43_GOTOFF_UP27,                      25)
54    RELOC_NUMBER (R_KVX_S43_GOTOFF_EX6,                       26)
55    RELOC_NUMBER (R_KVX_32_GOTOFF,                            27)
56    RELOC_NUMBER (R_KVX_64_GOTOFF,                            28)
57    RELOC_NUMBER (R_KVX_32_GOT,                               29)
58    RELOC_NUMBER (R_KVX_S37_GOT_LO10,                         30)
59    RELOC_NUMBER (R_KVX_S37_GOT_UP27,                         31)
60    RELOC_NUMBER (R_KVX_S43_GOT_LO10,                         32)
61    RELOC_NUMBER (R_KVX_S43_GOT_UP27,                         33)
62    RELOC_NUMBER (R_KVX_S43_GOT_EX6,                          34)
63    RELOC_NUMBER (R_KVX_64_GOT,                               35)
64    RELOC_NUMBER (R_KVX_GLOB_DAT,                             36)
65    RELOC_NUMBER (R_KVX_COPY,                                 37)
66    RELOC_NUMBER (R_KVX_JMP_SLOT,                             38)
67    RELOC_NUMBER (R_KVX_RELATIVE,                             39)
68    RELOC_NUMBER (R_KVX_S43_LO10,                             40)
69    RELOC_NUMBER (R_KVX_S43_UP27,                             41)
70    RELOC_NUMBER (R_KVX_S43_EX6,                              42)
71    RELOC_NUMBER (R_KVX_S64_LO10,                             43)
72    RELOC_NUMBER (R_KVX_S64_UP27,                             44)
73    RELOC_NUMBER (R_KVX_S64_EX27,                             45)
74    RELOC_NUMBER (R_KVX_S37_GOTADDR_LO10,                     46)
75    RELOC_NUMBER (R_KVX_S37_GOTADDR_UP27,                     47)
76    RELOC_NUMBER (R_KVX_S43_GOTADDR_LO10,                     48)
77    RELOC_NUMBER (R_KVX_S43_GOTADDR_UP27,                     49)
78    RELOC_NUMBER (R_KVX_S43_GOTADDR_EX6,                      50)
79    RELOC_NUMBER (R_KVX_S64_GOTADDR_LO10,                     51)
80    RELOC_NUMBER (R_KVX_S64_GOTADDR_UP27,                     52)
81    RELOC_NUMBER (R_KVX_S64_GOTADDR_EX27,                     53)
82    RELOC_NUMBER (R_KVX_64_DTPMOD,                            54)
83    RELOC_NUMBER (R_KVX_64_DTPOFF,                            55)
84    RELOC_NUMBER (R_KVX_S37_TLS_DTPOFF_LO10,                  56)
85    RELOC_NUMBER (R_KVX_S37_TLS_DTPOFF_UP27,                  57)
86    RELOC_NUMBER (R_KVX_S43_TLS_DTPOFF_LO10,                  58)
87    RELOC_NUMBER (R_KVX_S43_TLS_DTPOFF_UP27,                  59)
88    RELOC_NUMBER (R_KVX_S43_TLS_DTPOFF_EX6,                   60)
89    RELOC_NUMBER (R_KVX_S37_TLS_GD_LO10,                      61)
90    RELOC_NUMBER (R_KVX_S37_TLS_GD_UP27,                      62)
91    RELOC_NUMBER (R_KVX_S43_TLS_GD_LO10,                      63)
92    RELOC_NUMBER (R_KVX_S43_TLS_GD_UP27,                      64)
93    RELOC_NUMBER (R_KVX_S43_TLS_GD_EX6,                       65)
94    RELOC_NUMBER (R_KVX_S37_TLS_LD_LO10,                      66)
95    RELOC_NUMBER (R_KVX_S37_TLS_LD_UP27,                      67)
96    RELOC_NUMBER (R_KVX_S43_TLS_LD_LO10,                      68)
97    RELOC_NUMBER (R_KVX_S43_TLS_LD_UP27,                      69)
98    RELOC_NUMBER (R_KVX_S43_TLS_LD_EX6,                       70)
99    RELOC_NUMBER (R_KVX_64_TPOFF,                             71)
100    RELOC_NUMBER (R_KVX_S37_TLS_IE_LO10,                      72)
101    RELOC_NUMBER (R_KVX_S37_TLS_IE_UP27,                      73)
102    RELOC_NUMBER (R_KVX_S43_TLS_IE_LO10,                      74)
103    RELOC_NUMBER (R_KVX_S43_TLS_IE_UP27,                      75)
104    RELOC_NUMBER (R_KVX_S43_TLS_IE_EX6,                       76)
105    RELOC_NUMBER (R_KVX_S37_TLS_LE_LO10,                      77)
106    RELOC_NUMBER (R_KVX_S37_TLS_LE_UP27,                      78)
107    RELOC_NUMBER (R_KVX_S43_TLS_LE_LO10,                      79)
108    RELOC_NUMBER (R_KVX_S43_TLS_LE_UP27,                      80)
109    RELOC_NUMBER (R_KVX_S43_TLS_LE_EX6,                       81)
110    RELOC_NUMBER (R_KVX_8,                                    82)
111END_RELOC_NUMBERS (R_KVX_end)
112
113#include "kvx_elfids.h"
114
115#endif
116