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