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