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