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