Home | History | Annotate | Line # | Download | only in elf
      1      1.1  christos /* TILEPro ELF support for BFD.
      2  1.1.1.9  christos    Copyright (C) 2011-2026 Free Software Foundation, Inc.
      3      1.1  christos 
      4      1.1  christos    This file is part of BFD, the Binary File Descriptor library.
      5      1.1  christos 
      6      1.1  christos    This program is free software; you can redistribute it and/or modify
      7      1.1  christos    it under the terms of the GNU General Public License as published by
      8      1.1  christos    the Free Software Foundation; either version 3 of the License, or
      9      1.1  christos    (at your option) any later version.
     10      1.1  christos 
     11      1.1  christos    This program is distributed in the hope that it will be useful,
     12      1.1  christos    but WITHOUT ANY WARRANTY; without even the implied warranty of
     13      1.1  christos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14      1.1  christos    GNU General Public License for more details.
     15      1.1  christos 
     16      1.1  christos    You should have received a copy of the GNU General Public License
     17      1.1  christos    along with this program; if not, write to the Free Software
     18      1.1  christos    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
     19      1.1  christos    MA 02110-1301, USA.  */
     20      1.1  christos 
     21      1.1  christos #ifndef _ELF_TILEPRO_H
     22      1.1  christos #define _ELF_TILEPRO_H
     23      1.1  christos 
     24      1.1  christos #include "elf/reloc-macros.h"
     25      1.1  christos 
     26      1.1  christos /* Relocations.  */
     27      1.1  christos START_RELOC_NUMBERS (elf_tilepro_reloc_type)
     28      1.1  christos   RELOC_NUMBER (R_TILEPRO_NONE,        0)
     29      1.1  christos 
     30      1.1  christos   /* Standard relocations */
     31      1.1  christos   RELOC_NUMBER (R_TILEPRO_32,                  1)
     32      1.1  christos   RELOC_NUMBER (R_TILEPRO_16,                  2)
     33      1.1  christos   RELOC_NUMBER (R_TILEPRO_8,                   3)
     34      1.1  christos   RELOC_NUMBER (R_TILEPRO_32_PCREL,            4)
     35      1.1  christos   RELOC_NUMBER (R_TILEPRO_16_PCREL,            5)
     36      1.1  christos   RELOC_NUMBER (R_TILEPRO_8_PCREL,             6)
     37      1.1  christos 
     38      1.1  christos   RELOC_NUMBER (R_TILEPRO_LO16,                7)
     39      1.1  christos   RELOC_NUMBER (R_TILEPRO_HI16,                8)
     40      1.1  christos   RELOC_NUMBER (R_TILEPRO_HA16,                9)
     41      1.1  christos 
     42      1.1  christos   RELOC_NUMBER (R_TILEPRO_COPY,               10)
     43      1.1  christos   RELOC_NUMBER (R_TILEPRO_GLOB_DAT,           11)
     44      1.1  christos   RELOC_NUMBER (R_TILEPRO_JMP_SLOT,           12)
     45      1.1  christos   RELOC_NUMBER (R_TILEPRO_RELATIVE,           13)
     46      1.1  christos 
     47      1.1  christos   /* Branch/jump offsets */
     48      1.1  christos   RELOC_NUMBER (R_TILEPRO_BROFF_X1,           14)
     49      1.1  christos   RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1,        15)
     50      1.1  christos   RELOC_NUMBER (R_TILEPRO_JOFFLONG_X1_PLT,    16)
     51      1.1  christos 
     52      1.1  christos   /* Immediate operands. */
     53      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM8_X0,            17)
     54      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM8_Y0,            18)
     55      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM8_X1,            19)
     56      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM8_Y1,            20)
     57      1.1  christos   RELOC_NUMBER (R_TILEPRO_MT_IMM15_X1,        21)
     58      1.1  christos   RELOC_NUMBER (R_TILEPRO_MF_IMM15_X1,        22)
     59      1.1  christos 
     60      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0,           23)
     61      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1,           24)
     62      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO,        25)
     63      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO,        26)
     64      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI,        27)
     65      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI,        28)
     66      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA,        29)
     67      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA,        30)
     68      1.1  christos 
     69      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_PCREL,     31)
     70      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_PCREL,     32)
     71      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_LO_PCREL,  33)
     72      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_LO_PCREL,  34)
     73      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_HI_PCREL,  35)
     74      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_HI_PCREL,  36)
     75      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_HA_PCREL,  37)
     76      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_HA_PCREL,  38)
     77      1.1  christos 
     78      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT,       39)
     79      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT,       40)
     80      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_LO,    41)
     81      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_LO,    42)
     82      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HI,    43)
     83      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HI,    44)
     84      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_GOT_HA,    45)
     85      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_GOT_HA,    46)
     86      1.1  christos 
     87      1.1  christos   RELOC_NUMBER (R_TILEPRO_MMSTART_X0,         47)
     88      1.1  christos   RELOC_NUMBER (R_TILEPRO_MMEND_X0,           48)
     89      1.1  christos   RELOC_NUMBER (R_TILEPRO_MMSTART_X1,         49)
     90      1.1  christos   RELOC_NUMBER (R_TILEPRO_MMEND_X1,           50)
     91      1.1  christos 
     92      1.1  christos   RELOC_NUMBER (R_TILEPRO_SHAMT_X0,           51)
     93      1.1  christos   RELOC_NUMBER (R_TILEPRO_SHAMT_X1,           52)
     94      1.1  christos   RELOC_NUMBER (R_TILEPRO_SHAMT_Y0,           53)
     95      1.1  christos   RELOC_NUMBER (R_TILEPRO_SHAMT_Y1,           54)
     96      1.1  christos 
     97      1.1  christos   RELOC_NUMBER (R_TILEPRO_DEST_IMM8_X1,       55)
     98      1.1  christos 
     99      1.1  christos   /* Relocs 56-59 are currently not defined.  */
    100      1.1  christos 
    101      1.1  christos   RELOC_NUMBER (R_TILEPRO_TLS_GD_CALL,        60)
    102      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM8_X0_TLS_GD_ADD, 61)
    103      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM8_X1_TLS_GD_ADD, 62)
    104      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM8_Y0_TLS_GD_ADD, 63)
    105      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM8_Y1_TLS_GD_ADD, 64)
    106      1.1  christos   RELOC_NUMBER (R_TILEPRO_TLS_IE_LOAD,        65)
    107      1.1  christos 
    108      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD,    66)
    109      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD,    67)
    110      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_LO, 68)
    111      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_LO, 69)
    112      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HI, 70)
    113      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HI, 71)
    114      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_GD_HA, 72)
    115      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_GD_HA, 73)
    116      1.1  christos 
    117      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE,    74)
    118      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE,    75)
    119      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_LO, 76)
    120      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_LO, 77)
    121      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HI, 78)
    122      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HI, 79)
    123      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_IE_HA, 80)
    124      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_IE_HA, 81)
    125      1.1  christos 
    126      1.1  christos   RELOC_NUMBER (R_TILEPRO_TLS_DTPMOD32,       82)
    127      1.1  christos   RELOC_NUMBER (R_TILEPRO_TLS_DTPOFF32,       83)
    128      1.1  christos   RELOC_NUMBER (R_TILEPRO_TLS_TPOFF32,        84)
    129      1.1  christos 
    130      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE,    85)
    131      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE,    86)
    132      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_LO, 87)
    133      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_LO, 88)
    134      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HI, 89)
    135      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HI, 90)
    136      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X0_TLS_LE_HA, 91)
    137      1.1  christos   RELOC_NUMBER (R_TILEPRO_IMM16_X1_TLS_LE_HA, 92)
    138      1.1  christos 
    139      1.1  christos /* These are GNU extensions to enable C++ vtable garbage collection.  */
    140      1.1  christos   RELOC_NUMBER (R_TILEPRO_GNU_VTINHERIT, 128)
    141      1.1  christos   RELOC_NUMBER (R_TILEPRO_GNU_VTENTRY, 129)
    142      1.1  christos END_RELOC_NUMBERS (R_TILEPRO_max)
    143      1.1  christos 
    144      1.1  christos #endif /* _ELF_TILEPRO_H */
    145