xref: /dflybsd-src/contrib/binutils-2.27/elfcpp/tilegx.h (revision e656dc90e3d65d744d534af2f5ea88cf8101ebcf)
1*a9fa9459Szrj // tilegx.h -- ELF definitions specific to EM_TILEGX  -*- C++ -*-
2*a9fa9459Szrj 
3*a9fa9459Szrj // Copyright (C) 2012-2016 Free Software Foundation, Inc.
4*a9fa9459Szrj // Written by Jiong Wang (jiwang@tilera.com)
5*a9fa9459Szrj 
6*a9fa9459Szrj // This file is part of elfcpp.
7*a9fa9459Szrj 
8*a9fa9459Szrj // This program is free software; you can redistribute it and/or
9*a9fa9459Szrj // modify it under the terms of the GNU Library General Public License
10*a9fa9459Szrj // as published by the Free Software Foundation; either version 2, or
11*a9fa9459Szrj // (at your option) any later version.
12*a9fa9459Szrj 
13*a9fa9459Szrj // In addition to the permissions in the GNU Library General Public
14*a9fa9459Szrj // License, the Free Software Foundation gives you unlimited
15*a9fa9459Szrj // permission to link the compiled version of this file into
16*a9fa9459Szrj // combinations with other programs, and to distribute those
17*a9fa9459Szrj // combinations without any restriction coming from the use of this
18*a9fa9459Szrj // file.  (The Library Public License restrictions do apply in other
19*a9fa9459Szrj // respects; for example, they cover modification of the file, and
20*a9fa9459Szrj /// distribution when not linked into a combined executable.)
21*a9fa9459Szrj 
22*a9fa9459Szrj // This program is distributed in the hope that it will be useful, but
23*a9fa9459Szrj // WITHOUT ANY WARRANTY; without even the implied warranty of
24*a9fa9459Szrj // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
25*a9fa9459Szrj // Library General Public License for more details.
26*a9fa9459Szrj 
27*a9fa9459Szrj // You should have received a copy of the GNU Library General Public
28*a9fa9459Szrj // License along with this program; if not, write to the Free Software
29*a9fa9459Szrj // Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
30*a9fa9459Szrj // 02110-1301, USA.
31*a9fa9459Szrj 
32*a9fa9459Szrj #ifndef ELFCPP_TILEGX_H
33*a9fa9459Szrj #define ELFCPP_TILEGX_H
34*a9fa9459Szrj 
35*a9fa9459Szrj namespace elfcpp
36*a9fa9459Szrj {
37*a9fa9459Szrj 
38*a9fa9459Szrj // Documentation is taken from
39*a9fa9459Szrj //   http://www.tilera.com/scm/docs/index.html
40*a9fa9459Szrj 
41*a9fa9459Szrj enum
42*a9fa9459Szrj {
43*a9fa9459Szrj   R_TILEGX_NONE = 0,
44*a9fa9459Szrj   R_TILEGX_64 = 1,
45*a9fa9459Szrj   R_TILEGX_32 = 2,
46*a9fa9459Szrj   R_TILEGX_16 = 3,
47*a9fa9459Szrj   R_TILEGX_8 = 4,
48*a9fa9459Szrj   R_TILEGX_64_PCREL = 5,
49*a9fa9459Szrj   R_TILEGX_32_PCREL = 6,
50*a9fa9459Szrj   R_TILEGX_16_PCREL = 7,
51*a9fa9459Szrj   R_TILEGX_8_PCREL = 8,
52*a9fa9459Szrj   R_TILEGX_HW0 = 9,
53*a9fa9459Szrj   R_TILEGX_HW1 = 10,
54*a9fa9459Szrj   R_TILEGX_HW2 = 11,
55*a9fa9459Szrj   R_TILEGX_HW3 = 12,
56*a9fa9459Szrj   R_TILEGX_HW0_LAST = 13,
57*a9fa9459Szrj   R_TILEGX_HW1_LAST = 14,
58*a9fa9459Szrj   R_TILEGX_HW2_LAST = 15,
59*a9fa9459Szrj   R_TILEGX_COPY = 16,
60*a9fa9459Szrj   R_TILEGX_GLOB_DAT = 17,
61*a9fa9459Szrj   R_TILEGX_JMP_SLOT = 18,
62*a9fa9459Szrj   R_TILEGX_RELATIVE = 19,
63*a9fa9459Szrj   R_TILEGX_BROFF_X1 = 20,
64*a9fa9459Szrj   R_TILEGX_JUMPOFF_X1 = 21,
65*a9fa9459Szrj   R_TILEGX_JUMPOFF_X1_PLT = 22,
66*a9fa9459Szrj   R_TILEGX_IMM8_X0 = 23,
67*a9fa9459Szrj   R_TILEGX_IMM8_Y0 = 24,
68*a9fa9459Szrj   R_TILEGX_IMM8_X1 = 25,
69*a9fa9459Szrj   R_TILEGX_IMM8_Y1 = 26,
70*a9fa9459Szrj   R_TILEGX_DEST_IMM8_X1 = 27,
71*a9fa9459Szrj   R_TILEGX_MT_IMM14_X1 = 28,
72*a9fa9459Szrj   R_TILEGX_MF_IMM14_X1 = 29,
73*a9fa9459Szrj   R_TILEGX_MMSTART_X0 = 30,
74*a9fa9459Szrj   R_TILEGX_MMEND_X0 = 31,
75*a9fa9459Szrj   R_TILEGX_SHAMT_X0 = 32,
76*a9fa9459Szrj   R_TILEGX_SHAMT_X1 = 33,
77*a9fa9459Szrj   R_TILEGX_SHAMT_Y0 = 34,
78*a9fa9459Szrj   R_TILEGX_SHAMT_Y1 = 35,
79*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0 = 36,
80*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0 = 37,
81*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW1 = 38,
82*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW1 = 39,
83*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW2 = 40,
84*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW2 = 41,
85*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW3 = 42,
86*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW3 = 43,
87*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_LAST = 44,
88*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_LAST = 45,
89*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW1_LAST = 46,
90*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW1_LAST = 47,
91*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW2_LAST = 48,
92*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW2_LAST = 49,
93*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_PCREL = 50,
94*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_PCREL = 51,
95*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW1_PCREL = 52,
96*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW1_PCREL = 53,
97*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW2_PCREL = 54,
98*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW2_PCREL = 55,
99*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW3_PCREL = 56,
100*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW3_PCREL = 57,
101*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_LAST_PCREL = 58,
102*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_LAST_PCREL = 59,
103*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW1_LAST_PCREL = 60,
104*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW1_LAST_PCREL = 61,
105*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW2_LAST_PCREL = 62,
106*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW2_LAST_PCREL = 63,
107*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_GOT = 64,
108*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_GOT = 65,
109*a9fa9459Szrj 
110*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_PLT_PCREL = 66,
111*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_PLT_PCREL = 67,
112*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW1_PLT_PCREL = 68,
113*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW1_PLT_PCREL = 69,
114*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW2_PLT_PCREL = 70,
115*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW2_PLT_PCREL = 71,
116*a9fa9459Szrj 
117*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_LAST_GOT = 72,
118*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_LAST_GOT = 73,
119*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW1_LAST_GOT = 74,
120*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW1_LAST_GOT = 75,
121*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_TLS_GD = 78,
122*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_TLS_GD = 79,
123*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_TLS_LE = 80,
124*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_TLS_LE = 81,
125*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE = 82,
126*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE = 83,
127*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE = 84,
128*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE = 85,
129*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD = 86,
130*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD = 87,
131*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD = 88,
132*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD = 89,
133*a9fa9459Szrj   R_TILEGX_IRELATIVE = 90,
134*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_TLS_IE = 92,
135*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_TLS_IE = 93,
136*a9fa9459Szrj 
137*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL = 94,
138*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL = 95,
139*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL = 96,
140*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL = 97,
141*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL = 98,
142*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL = 99,
143*a9fa9459Szrj 
144*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE = 100,
145*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE = 101,
146*a9fa9459Szrj   R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE = 102,
147*a9fa9459Szrj   R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE = 103,
148*a9fa9459Szrj   R_TILEGX_TLS_DTPMOD64 = 106,
149*a9fa9459Szrj   R_TILEGX_TLS_DTPOFF64 = 107,
150*a9fa9459Szrj   R_TILEGX_TLS_TPOFF64 = 108,
151*a9fa9459Szrj   R_TILEGX_TLS_DTPMOD32 = 109,
152*a9fa9459Szrj   R_TILEGX_TLS_DTPOFF32 = 110,
153*a9fa9459Szrj   R_TILEGX_TLS_TPOFF32 = 111,
154*a9fa9459Szrj   R_TILEGX_TLS_GD_CALL = 112,
155*a9fa9459Szrj   R_TILEGX_IMM8_X0_TLS_GD_ADD = 113,
156*a9fa9459Szrj   R_TILEGX_IMM8_X1_TLS_GD_ADD = 114,
157*a9fa9459Szrj   R_TILEGX_IMM8_Y0_TLS_GD_ADD = 115,
158*a9fa9459Szrj   R_TILEGX_IMM8_Y1_TLS_GD_ADD = 116,
159*a9fa9459Szrj   R_TILEGX_TLS_IE_LOAD = 117,
160*a9fa9459Szrj   R_TILEGX_IMM8_X0_TLS_ADD = 118,
161*a9fa9459Szrj   R_TILEGX_IMM8_X1_TLS_ADD = 119,
162*a9fa9459Szrj   R_TILEGX_IMM8_Y0_TLS_ADD = 120,
163*a9fa9459Szrj   R_TILEGX_IMM8_Y1_TLS_ADD = 121,
164*a9fa9459Szrj   R_TILEGX_GNU_VTINHERIT = 128,
165*a9fa9459Szrj   R_TILEGX_GNU_VTENTRY = 129,
166*a9fa9459Szrj   R_TILEGX_NUM = 130
167*a9fa9459Szrj };
168*a9fa9459Szrj 
169*a9fa9459Szrj } // End namespace elfcpp.
170*a9fa9459Szrj 
171*a9fa9459Szrj #endif // !defined(ELFCPP_TILEGX_H)
172