xref: /netbsd-src/external/gpl3/binutils.old/dist/elfcpp/tilegx.h (revision e992f068c547fd6e84b3f104dc2340adcc955732)
175fd0b74Schristos // tilegx.h -- ELF definitions specific to EM_TILEGX  -*- C++ -*-
275fd0b74Schristos 
3*e992f068Schristos // Copyright (C) 2012-2022 Free Software Foundation, Inc.
475fd0b74Schristos // Written by Jiong Wang (jiwang@tilera.com)
575fd0b74Schristos 
675fd0b74Schristos // This file is part of elfcpp.
775fd0b74Schristos 
875fd0b74Schristos // This program is free software; you can redistribute it and/or
975fd0b74Schristos // modify it under the terms of the GNU Library General Public License
1075fd0b74Schristos // as published by the Free Software Foundation; either version 2, or
1175fd0b74Schristos // (at your option) any later version.
1275fd0b74Schristos 
1375fd0b74Schristos // In addition to the permissions in the GNU Library General Public
1475fd0b74Schristos // License, the Free Software Foundation gives you unlimited
1575fd0b74Schristos // permission to link the compiled version of this file into
1675fd0b74Schristos // combinations with other programs, and to distribute those
1775fd0b74Schristos // combinations without any restriction coming from the use of this
1875fd0b74Schristos // file.  (The Library Public License restrictions do apply in other
1975fd0b74Schristos // respects; for example, they cover modification of the file, and
2075fd0b74Schristos /// distribution when not linked into a combined executable.)
2175fd0b74Schristos 
2275fd0b74Schristos // This program is distributed in the hope that it will be useful, but
2375fd0b74Schristos // WITHOUT ANY WARRANTY; without even the implied warranty of
2475fd0b74Schristos // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
2575fd0b74Schristos // Library General Public License for more details.
2675fd0b74Schristos 
2775fd0b74Schristos // You should have received a copy of the GNU Library General Public
2875fd0b74Schristos // License along with this program; if not, write to the Free Software
2975fd0b74Schristos // Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
3075fd0b74Schristos // 02110-1301, USA.
3175fd0b74Schristos 
3275fd0b74Schristos #ifndef ELFCPP_TILEGX_H
3375fd0b74Schristos #define ELFCPP_TILEGX_H
3475fd0b74Schristos 
3575fd0b74Schristos namespace elfcpp
3675fd0b74Schristos {
3775fd0b74Schristos 
3875fd0b74Schristos // Documentation is taken from
3975fd0b74Schristos //   http://www.tilera.com/scm/docs/index.html
4075fd0b74Schristos 
4175fd0b74Schristos enum
4275fd0b74Schristos {
4375fd0b74Schristos   R_TILEGX_NONE = 0,
4475fd0b74Schristos   R_TILEGX_64 = 1,
4575fd0b74Schristos   R_TILEGX_32 = 2,
4675fd0b74Schristos   R_TILEGX_16 = 3,
4775fd0b74Schristos   R_TILEGX_8 = 4,
4875fd0b74Schristos   R_TILEGX_64_PCREL = 5,
4975fd0b74Schristos   R_TILEGX_32_PCREL = 6,
5075fd0b74Schristos   R_TILEGX_16_PCREL = 7,
5175fd0b74Schristos   R_TILEGX_8_PCREL = 8,
5275fd0b74Schristos   R_TILEGX_HW0 = 9,
5375fd0b74Schristos   R_TILEGX_HW1 = 10,
5475fd0b74Schristos   R_TILEGX_HW2 = 11,
5575fd0b74Schristos   R_TILEGX_HW3 = 12,
5675fd0b74Schristos   R_TILEGX_HW0_LAST = 13,
5775fd0b74Schristos   R_TILEGX_HW1_LAST = 14,
5875fd0b74Schristos   R_TILEGX_HW2_LAST = 15,
5975fd0b74Schristos   R_TILEGX_COPY = 16,
6075fd0b74Schristos   R_TILEGX_GLOB_DAT = 17,
6175fd0b74Schristos   R_TILEGX_JMP_SLOT = 18,
6275fd0b74Schristos   R_TILEGX_RELATIVE = 19,
6375fd0b74Schristos   R_TILEGX_BROFF_X1 = 20,
6475fd0b74Schristos   R_TILEGX_JUMPOFF_X1 = 21,
6575fd0b74Schristos   R_TILEGX_JUMPOFF_X1_PLT = 22,
6675fd0b74Schristos   R_TILEGX_IMM8_X0 = 23,
6775fd0b74Schristos   R_TILEGX_IMM8_Y0 = 24,
6875fd0b74Schristos   R_TILEGX_IMM8_X1 = 25,
6975fd0b74Schristos   R_TILEGX_IMM8_Y1 = 26,
7075fd0b74Schristos   R_TILEGX_DEST_IMM8_X1 = 27,
7175fd0b74Schristos   R_TILEGX_MT_IMM14_X1 = 28,
7275fd0b74Schristos   R_TILEGX_MF_IMM14_X1 = 29,
7375fd0b74Schristos   R_TILEGX_MMSTART_X0 = 30,
7475fd0b74Schristos   R_TILEGX_MMEND_X0 = 31,
7575fd0b74Schristos   R_TILEGX_SHAMT_X0 = 32,
7675fd0b74Schristos   R_TILEGX_SHAMT_X1 = 33,
7775fd0b74Schristos   R_TILEGX_SHAMT_Y0 = 34,
7875fd0b74Schristos   R_TILEGX_SHAMT_Y1 = 35,
7975fd0b74Schristos   R_TILEGX_IMM16_X0_HW0 = 36,
8075fd0b74Schristos   R_TILEGX_IMM16_X1_HW0 = 37,
8175fd0b74Schristos   R_TILEGX_IMM16_X0_HW1 = 38,
8275fd0b74Schristos   R_TILEGX_IMM16_X1_HW1 = 39,
8375fd0b74Schristos   R_TILEGX_IMM16_X0_HW2 = 40,
8475fd0b74Schristos   R_TILEGX_IMM16_X1_HW2 = 41,
8575fd0b74Schristos   R_TILEGX_IMM16_X0_HW3 = 42,
8675fd0b74Schristos   R_TILEGX_IMM16_X1_HW3 = 43,
8775fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_LAST = 44,
8875fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_LAST = 45,
8975fd0b74Schristos   R_TILEGX_IMM16_X0_HW1_LAST = 46,
9075fd0b74Schristos   R_TILEGX_IMM16_X1_HW1_LAST = 47,
9175fd0b74Schristos   R_TILEGX_IMM16_X0_HW2_LAST = 48,
9275fd0b74Schristos   R_TILEGX_IMM16_X1_HW2_LAST = 49,
9375fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_PCREL = 50,
9475fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_PCREL = 51,
9575fd0b74Schristos   R_TILEGX_IMM16_X0_HW1_PCREL = 52,
9675fd0b74Schristos   R_TILEGX_IMM16_X1_HW1_PCREL = 53,
9775fd0b74Schristos   R_TILEGX_IMM16_X0_HW2_PCREL = 54,
9875fd0b74Schristos   R_TILEGX_IMM16_X1_HW2_PCREL = 55,
9975fd0b74Schristos   R_TILEGX_IMM16_X0_HW3_PCREL = 56,
10075fd0b74Schristos   R_TILEGX_IMM16_X1_HW3_PCREL = 57,
10175fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_LAST_PCREL = 58,
10275fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_LAST_PCREL = 59,
10375fd0b74Schristos   R_TILEGX_IMM16_X0_HW1_LAST_PCREL = 60,
10475fd0b74Schristos   R_TILEGX_IMM16_X1_HW1_LAST_PCREL = 61,
10575fd0b74Schristos   R_TILEGX_IMM16_X0_HW2_LAST_PCREL = 62,
10675fd0b74Schristos   R_TILEGX_IMM16_X1_HW2_LAST_PCREL = 63,
10775fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_GOT = 64,
10875fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_GOT = 65,
10975fd0b74Schristos 
11075fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_PLT_PCREL = 66,
11175fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_PLT_PCREL = 67,
11275fd0b74Schristos   R_TILEGX_IMM16_X0_HW1_PLT_PCREL = 68,
11375fd0b74Schristos   R_TILEGX_IMM16_X1_HW1_PLT_PCREL = 69,
11475fd0b74Schristos   R_TILEGX_IMM16_X0_HW2_PLT_PCREL = 70,
11575fd0b74Schristos   R_TILEGX_IMM16_X1_HW2_PLT_PCREL = 71,
11675fd0b74Schristos 
11775fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_LAST_GOT = 72,
11875fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_LAST_GOT = 73,
11975fd0b74Schristos   R_TILEGX_IMM16_X0_HW1_LAST_GOT = 74,
12075fd0b74Schristos   R_TILEGX_IMM16_X1_HW1_LAST_GOT = 75,
12175fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_TLS_GD = 78,
12275fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_TLS_GD = 79,
12375fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_TLS_LE = 80,
12475fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_TLS_LE = 81,
12575fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE = 82,
12675fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE = 83,
12775fd0b74Schristos   R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE = 84,
12875fd0b74Schristos   R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE = 85,
12975fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD = 86,
13075fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD = 87,
13175fd0b74Schristos   R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD = 88,
13275fd0b74Schristos   R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD = 89,
13375fd0b74Schristos   R_TILEGX_IRELATIVE = 90,
13475fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_TLS_IE = 92,
13575fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_TLS_IE = 93,
13675fd0b74Schristos 
13775fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL = 94,
13875fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL = 95,
13975fd0b74Schristos   R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL = 96,
14075fd0b74Schristos   R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL = 97,
14175fd0b74Schristos   R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL = 98,
14275fd0b74Schristos   R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL = 99,
14375fd0b74Schristos 
14475fd0b74Schristos   R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE = 100,
14575fd0b74Schristos   R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE = 101,
14675fd0b74Schristos   R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE = 102,
14775fd0b74Schristos   R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE = 103,
14875fd0b74Schristos   R_TILEGX_TLS_DTPMOD64 = 106,
14975fd0b74Schristos   R_TILEGX_TLS_DTPOFF64 = 107,
15075fd0b74Schristos   R_TILEGX_TLS_TPOFF64 = 108,
15175fd0b74Schristos   R_TILEGX_TLS_DTPMOD32 = 109,
15275fd0b74Schristos   R_TILEGX_TLS_DTPOFF32 = 110,
15375fd0b74Schristos   R_TILEGX_TLS_TPOFF32 = 111,
15475fd0b74Schristos   R_TILEGX_TLS_GD_CALL = 112,
15575fd0b74Schristos   R_TILEGX_IMM8_X0_TLS_GD_ADD = 113,
15675fd0b74Schristos   R_TILEGX_IMM8_X1_TLS_GD_ADD = 114,
15775fd0b74Schristos   R_TILEGX_IMM8_Y0_TLS_GD_ADD = 115,
15875fd0b74Schristos   R_TILEGX_IMM8_Y1_TLS_GD_ADD = 116,
15975fd0b74Schristos   R_TILEGX_TLS_IE_LOAD = 117,
16075fd0b74Schristos   R_TILEGX_IMM8_X0_TLS_ADD = 118,
16175fd0b74Schristos   R_TILEGX_IMM8_X1_TLS_ADD = 119,
16275fd0b74Schristos   R_TILEGX_IMM8_Y0_TLS_ADD = 120,
16375fd0b74Schristos   R_TILEGX_IMM8_Y1_TLS_ADD = 121,
16475fd0b74Schristos   R_TILEGX_GNU_VTINHERIT = 128,
16575fd0b74Schristos   R_TILEGX_GNU_VTENTRY = 129,
16675fd0b74Schristos   R_TILEGX_NUM = 130
16775fd0b74Schristos };
16875fd0b74Schristos 
16975fd0b74Schristos } // End namespace elfcpp.
17075fd0b74Schristos 
17175fd0b74Schristos #endif // !defined(ELFCPP_TILEGX_H)
172