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