xref: /netbsd-src/external/gpl3/binutils/dist/elfcpp/tilegx.h (revision cb63e24e8d6aae7ddac1859a9015f48b1d8bd90e)
19573673dSchristos // tilegx.h -- ELF definitions specific to EM_TILEGX  -*- C++ -*-
29573673dSchristos 
3*cb63e24eSchristos // Copyright (C) 2012-2024 Free Software Foundation, Inc.
49573673dSchristos // Written by Jiong Wang (jiwang@tilera.com)
59573673dSchristos 
69573673dSchristos // This file is part of elfcpp.
79573673dSchristos 
89573673dSchristos // This program is free software; you can redistribute it and/or
99573673dSchristos // modify it under the terms of the GNU Library General Public License
109573673dSchristos // as published by the Free Software Foundation; either version 2, or
119573673dSchristos // (at your option) any later version.
129573673dSchristos 
139573673dSchristos // In addition to the permissions in the GNU Library General Public
149573673dSchristos // License, the Free Software Foundation gives you unlimited
159573673dSchristos // permission to link the compiled version of this file into
169573673dSchristos // combinations with other programs, and to distribute those
179573673dSchristos // combinations without any restriction coming from the use of this
189573673dSchristos // file.  (The Library Public License restrictions do apply in other
199573673dSchristos // respects; for example, they cover modification of the file, and
209573673dSchristos /// distribution when not linked into a combined executable.)
219573673dSchristos 
229573673dSchristos // This program is distributed in the hope that it will be useful, but
239573673dSchristos // WITHOUT ANY WARRANTY; without even the implied warranty of
249573673dSchristos // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
259573673dSchristos // Library General Public License for more details.
269573673dSchristos 
279573673dSchristos // You should have received a copy of the GNU Library General Public
289573673dSchristos // License along with this program; if not, write to the Free Software
299573673dSchristos // Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
309573673dSchristos // 02110-1301, USA.
319573673dSchristos 
329573673dSchristos #ifndef ELFCPP_TILEGX_H
339573673dSchristos #define ELFCPP_TILEGX_H
349573673dSchristos 
359573673dSchristos namespace elfcpp
369573673dSchristos {
379573673dSchristos 
389573673dSchristos // Documentation is taken from
399573673dSchristos //   http://www.tilera.com/scm/docs/index.html
409573673dSchristos 
419573673dSchristos enum
429573673dSchristos {
439573673dSchristos   R_TILEGX_NONE = 0,
449573673dSchristos   R_TILEGX_64 = 1,
459573673dSchristos   R_TILEGX_32 = 2,
469573673dSchristos   R_TILEGX_16 = 3,
479573673dSchristos   R_TILEGX_8 = 4,
489573673dSchristos   R_TILEGX_64_PCREL = 5,
499573673dSchristos   R_TILEGX_32_PCREL = 6,
509573673dSchristos   R_TILEGX_16_PCREL = 7,
519573673dSchristos   R_TILEGX_8_PCREL = 8,
529573673dSchristos   R_TILEGX_HW0 = 9,
539573673dSchristos   R_TILEGX_HW1 = 10,
549573673dSchristos   R_TILEGX_HW2 = 11,
559573673dSchristos   R_TILEGX_HW3 = 12,
569573673dSchristos   R_TILEGX_HW0_LAST = 13,
579573673dSchristos   R_TILEGX_HW1_LAST = 14,
589573673dSchristos   R_TILEGX_HW2_LAST = 15,
599573673dSchristos   R_TILEGX_COPY = 16,
609573673dSchristos   R_TILEGX_GLOB_DAT = 17,
619573673dSchristos   R_TILEGX_JMP_SLOT = 18,
629573673dSchristos   R_TILEGX_RELATIVE = 19,
639573673dSchristos   R_TILEGX_BROFF_X1 = 20,
649573673dSchristos   R_TILEGX_JUMPOFF_X1 = 21,
659573673dSchristos   R_TILEGX_JUMPOFF_X1_PLT = 22,
669573673dSchristos   R_TILEGX_IMM8_X0 = 23,
679573673dSchristos   R_TILEGX_IMM8_Y0 = 24,
689573673dSchristos   R_TILEGX_IMM8_X1 = 25,
699573673dSchristos   R_TILEGX_IMM8_Y1 = 26,
709573673dSchristos   R_TILEGX_DEST_IMM8_X1 = 27,
719573673dSchristos   R_TILEGX_MT_IMM14_X1 = 28,
729573673dSchristos   R_TILEGX_MF_IMM14_X1 = 29,
739573673dSchristos   R_TILEGX_MMSTART_X0 = 30,
749573673dSchristos   R_TILEGX_MMEND_X0 = 31,
759573673dSchristos   R_TILEGX_SHAMT_X0 = 32,
769573673dSchristos   R_TILEGX_SHAMT_X1 = 33,
779573673dSchristos   R_TILEGX_SHAMT_Y0 = 34,
789573673dSchristos   R_TILEGX_SHAMT_Y1 = 35,
799573673dSchristos   R_TILEGX_IMM16_X0_HW0 = 36,
809573673dSchristos   R_TILEGX_IMM16_X1_HW0 = 37,
819573673dSchristos   R_TILEGX_IMM16_X0_HW1 = 38,
829573673dSchristos   R_TILEGX_IMM16_X1_HW1 = 39,
839573673dSchristos   R_TILEGX_IMM16_X0_HW2 = 40,
849573673dSchristos   R_TILEGX_IMM16_X1_HW2 = 41,
859573673dSchristos   R_TILEGX_IMM16_X0_HW3 = 42,
869573673dSchristos   R_TILEGX_IMM16_X1_HW3 = 43,
879573673dSchristos   R_TILEGX_IMM16_X0_HW0_LAST = 44,
889573673dSchristos   R_TILEGX_IMM16_X1_HW0_LAST = 45,
899573673dSchristos   R_TILEGX_IMM16_X0_HW1_LAST = 46,
909573673dSchristos   R_TILEGX_IMM16_X1_HW1_LAST = 47,
919573673dSchristos   R_TILEGX_IMM16_X0_HW2_LAST = 48,
929573673dSchristos   R_TILEGX_IMM16_X1_HW2_LAST = 49,
939573673dSchristos   R_TILEGX_IMM16_X0_HW0_PCREL = 50,
949573673dSchristos   R_TILEGX_IMM16_X1_HW0_PCREL = 51,
959573673dSchristos   R_TILEGX_IMM16_X0_HW1_PCREL = 52,
969573673dSchristos   R_TILEGX_IMM16_X1_HW1_PCREL = 53,
979573673dSchristos   R_TILEGX_IMM16_X0_HW2_PCREL = 54,
989573673dSchristos   R_TILEGX_IMM16_X1_HW2_PCREL = 55,
999573673dSchristos   R_TILEGX_IMM16_X0_HW3_PCREL = 56,
1009573673dSchristos   R_TILEGX_IMM16_X1_HW3_PCREL = 57,
1019573673dSchristos   R_TILEGX_IMM16_X0_HW0_LAST_PCREL = 58,
1029573673dSchristos   R_TILEGX_IMM16_X1_HW0_LAST_PCREL = 59,
1039573673dSchristos   R_TILEGX_IMM16_X0_HW1_LAST_PCREL = 60,
1049573673dSchristos   R_TILEGX_IMM16_X1_HW1_LAST_PCREL = 61,
1059573673dSchristos   R_TILEGX_IMM16_X0_HW2_LAST_PCREL = 62,
1069573673dSchristos   R_TILEGX_IMM16_X1_HW2_LAST_PCREL = 63,
1079573673dSchristos   R_TILEGX_IMM16_X0_HW0_GOT = 64,
1089573673dSchristos   R_TILEGX_IMM16_X1_HW0_GOT = 65,
1099573673dSchristos 
1109573673dSchristos   R_TILEGX_IMM16_X0_HW0_PLT_PCREL = 66,
1119573673dSchristos   R_TILEGX_IMM16_X1_HW0_PLT_PCREL = 67,
1129573673dSchristos   R_TILEGX_IMM16_X0_HW1_PLT_PCREL = 68,
1139573673dSchristos   R_TILEGX_IMM16_X1_HW1_PLT_PCREL = 69,
1149573673dSchristos   R_TILEGX_IMM16_X0_HW2_PLT_PCREL = 70,
1159573673dSchristos   R_TILEGX_IMM16_X1_HW2_PLT_PCREL = 71,
1169573673dSchristos 
1179573673dSchristos   R_TILEGX_IMM16_X0_HW0_LAST_GOT = 72,
1189573673dSchristos   R_TILEGX_IMM16_X1_HW0_LAST_GOT = 73,
1199573673dSchristos   R_TILEGX_IMM16_X0_HW1_LAST_GOT = 74,
1209573673dSchristos   R_TILEGX_IMM16_X1_HW1_LAST_GOT = 75,
1219573673dSchristos   R_TILEGX_IMM16_X0_HW0_TLS_GD = 78,
1229573673dSchristos   R_TILEGX_IMM16_X1_HW0_TLS_GD = 79,
1239573673dSchristos   R_TILEGX_IMM16_X0_HW0_TLS_LE = 80,
1249573673dSchristos   R_TILEGX_IMM16_X1_HW0_TLS_LE = 81,
1259573673dSchristos   R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE = 82,
1269573673dSchristos   R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE = 83,
1279573673dSchristos   R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE = 84,
1289573673dSchristos   R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE = 85,
1299573673dSchristos   R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD = 86,
1309573673dSchristos   R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD = 87,
1319573673dSchristos   R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD = 88,
1329573673dSchristos   R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD = 89,
1339573673dSchristos   R_TILEGX_IRELATIVE = 90,
1349573673dSchristos   R_TILEGX_IMM16_X0_HW0_TLS_IE = 92,
1359573673dSchristos   R_TILEGX_IMM16_X1_HW0_TLS_IE = 93,
1369573673dSchristos 
1379573673dSchristos   R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL = 94,
1389573673dSchristos   R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL = 95,
1399573673dSchristos   R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL = 96,
1409573673dSchristos   R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL = 97,
1419573673dSchristos   R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL = 98,
1429573673dSchristos   R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL = 99,
1439573673dSchristos 
1449573673dSchristos   R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE = 100,
1459573673dSchristos   R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE = 101,
1469573673dSchristos   R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE = 102,
1479573673dSchristos   R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE = 103,
1489573673dSchristos   R_TILEGX_TLS_DTPMOD64 = 106,
1499573673dSchristos   R_TILEGX_TLS_DTPOFF64 = 107,
1509573673dSchristos   R_TILEGX_TLS_TPOFF64 = 108,
1519573673dSchristos   R_TILEGX_TLS_DTPMOD32 = 109,
1529573673dSchristos   R_TILEGX_TLS_DTPOFF32 = 110,
1539573673dSchristos   R_TILEGX_TLS_TPOFF32 = 111,
1549573673dSchristos   R_TILEGX_TLS_GD_CALL = 112,
1559573673dSchristos   R_TILEGX_IMM8_X0_TLS_GD_ADD = 113,
1569573673dSchristos   R_TILEGX_IMM8_X1_TLS_GD_ADD = 114,
1579573673dSchristos   R_TILEGX_IMM8_Y0_TLS_GD_ADD = 115,
1589573673dSchristos   R_TILEGX_IMM8_Y1_TLS_GD_ADD = 116,
1599573673dSchristos   R_TILEGX_TLS_IE_LOAD = 117,
1609573673dSchristos   R_TILEGX_IMM8_X0_TLS_ADD = 118,
1619573673dSchristos   R_TILEGX_IMM8_X1_TLS_ADD = 119,
1629573673dSchristos   R_TILEGX_IMM8_Y0_TLS_ADD = 120,
1639573673dSchristos   R_TILEGX_IMM8_Y1_TLS_ADD = 121,
1649573673dSchristos   R_TILEGX_GNU_VTINHERIT = 128,
1659573673dSchristos   R_TILEGX_GNU_VTENTRY = 129,
1669573673dSchristos   R_TILEGX_NUM = 130
1679573673dSchristos };
1689573673dSchristos 
1699573673dSchristos } // End namespace elfcpp.
1709573673dSchristos 
1719573673dSchristos #endif // !defined(ELFCPP_TILEGX_H)
172