1 2 #ifndef ELF_RELOC 3 #error "ELF_RELOC must be defined" 4 #endif 5 6 // Based on ABI release 1.1-beta, dated 6 November 2013. NB: The cover page of 7 // this document, IHI0056C_beta_aaelf64.pdf, on infocenter.arm.com, still 8 // labels this as release 1.0. 9 ELF_RELOC(R_AARCH64_NONE, 0) 10 ELF_RELOC(R_AARCH64_ABS64, 0x101) 11 ELF_RELOC(R_AARCH64_ABS32, 0x102) 12 ELF_RELOC(R_AARCH64_ABS16, 0x103) 13 ELF_RELOC(R_AARCH64_PREL64, 0x104) 14 ELF_RELOC(R_AARCH64_PREL32, 0x105) 15 ELF_RELOC(R_AARCH64_PREL16, 0x106) 16 ELF_RELOC(R_AARCH64_MOVW_UABS_G0, 0x107) 17 ELF_RELOC(R_AARCH64_MOVW_UABS_G0_NC, 0x108) 18 ELF_RELOC(R_AARCH64_MOVW_UABS_G1, 0x109) 19 ELF_RELOC(R_AARCH64_MOVW_UABS_G1_NC, 0x10a) 20 ELF_RELOC(R_AARCH64_MOVW_UABS_G2, 0x10b) 21 ELF_RELOC(R_AARCH64_MOVW_UABS_G2_NC, 0x10c) 22 ELF_RELOC(R_AARCH64_MOVW_UABS_G3, 0x10d) 23 ELF_RELOC(R_AARCH64_MOVW_SABS_G0, 0x10e) 24 ELF_RELOC(R_AARCH64_MOVW_SABS_G1, 0x10f) 25 ELF_RELOC(R_AARCH64_MOVW_SABS_G2, 0x110) 26 ELF_RELOC(R_AARCH64_LD_PREL_LO19, 0x111) 27 ELF_RELOC(R_AARCH64_ADR_PREL_LO21, 0x112) 28 ELF_RELOC(R_AARCH64_ADR_PREL_PG_HI21, 0x113) 29 ELF_RELOC(R_AARCH64_ADR_PREL_PG_HI21_NC, 0x114) 30 ELF_RELOC(R_AARCH64_ADD_ABS_LO12_NC, 0x115) 31 ELF_RELOC(R_AARCH64_LDST8_ABS_LO12_NC, 0x116) 32 ELF_RELOC(R_AARCH64_TSTBR14, 0x117) 33 ELF_RELOC(R_AARCH64_CONDBR19, 0x118) 34 ELF_RELOC(R_AARCH64_JUMP26, 0x11a) 35 ELF_RELOC(R_AARCH64_CALL26, 0x11b) 36 ELF_RELOC(R_AARCH64_LDST16_ABS_LO12_NC, 0x11c) 37 ELF_RELOC(R_AARCH64_LDST32_ABS_LO12_NC, 0x11d) 38 ELF_RELOC(R_AARCH64_LDST64_ABS_LO12_NC, 0x11e) 39 ELF_RELOC(R_AARCH64_MOVW_PREL_G0, 0x11f) 40 ELF_RELOC(R_AARCH64_MOVW_PREL_G0_NC, 0x120) 41 ELF_RELOC(R_AARCH64_MOVW_PREL_G1, 0x121) 42 ELF_RELOC(R_AARCH64_MOVW_PREL_G1_NC, 0x122) 43 ELF_RELOC(R_AARCH64_MOVW_PREL_G2, 0x123) 44 ELF_RELOC(R_AARCH64_MOVW_PREL_G2_NC, 0x124) 45 ELF_RELOC(R_AARCH64_MOVW_PREL_G3, 0x125) 46 ELF_RELOC(R_AARCH64_LDST128_ABS_LO12_NC, 0x12b) 47 ELF_RELOC(R_AARCH64_MOVW_GOTOFF_G0, 0x12c) 48 ELF_RELOC(R_AARCH64_MOVW_GOTOFF_G0_NC, 0x12d) 49 ELF_RELOC(R_AARCH64_MOVW_GOTOFF_G1, 0x12e) 50 ELF_RELOC(R_AARCH64_MOVW_GOTOFF_G1_NC, 0x12f) 51 ELF_RELOC(R_AARCH64_MOVW_GOTOFF_G2, 0x130) 52 ELF_RELOC(R_AARCH64_MOVW_GOTOFF_G2_NC, 0x131) 53 ELF_RELOC(R_AARCH64_MOVW_GOTOFF_G3, 0x132) 54 ELF_RELOC(R_AARCH64_GOTREL64, 0x133) 55 ELF_RELOC(R_AARCH64_GOTREL32, 0x134) 56 ELF_RELOC(R_AARCH64_GOT_LD_PREL19, 0x135) 57 ELF_RELOC(R_AARCH64_LD64_GOTOFF_LO15, 0x136) 58 ELF_RELOC(R_AARCH64_ADR_GOT_PAGE, 0x137) 59 ELF_RELOC(R_AARCH64_LD64_GOT_LO12_NC, 0x138) 60 ELF_RELOC(R_AARCH64_LD64_GOTPAGE_LO15, 0x139) 61 ELF_RELOC(R_AARCH64_TLSGD_ADR_PREL21, 0x200) 62 ELF_RELOC(R_AARCH64_TLSGD_ADR_PAGE21, 0x201) 63 ELF_RELOC(R_AARCH64_TLSGD_ADD_LO12_NC, 0x202) 64 ELF_RELOC(R_AARCH64_TLSGD_MOVW_G1, 0x203) 65 ELF_RELOC(R_AARCH64_TLSGD_MOVW_G0_NC, 0x204) 66 ELF_RELOC(R_AARCH64_TLSLD_ADR_PREL21, 0x205) 67 ELF_RELOC(R_AARCH64_TLSLD_ADR_PAGE21, 0x206) 68 ELF_RELOC(R_AARCH64_TLSLD_ADD_LO12_NC, 0x207) 69 ELF_RELOC(R_AARCH64_TLSLD_MOVW_G1, 0x208) 70 ELF_RELOC(R_AARCH64_TLSLD_MOVW_G0_NC, 0x209) 71 ELF_RELOC(R_AARCH64_TLSLD_LD_PREL19, 0x20a) 72 ELF_RELOC(R_AARCH64_TLSLD_MOVW_DTPREL_G2, 0x20b) 73 ELF_RELOC(R_AARCH64_TLSLD_MOVW_DTPREL_G1, 0x20c) 74 ELF_RELOC(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC, 0x20d) 75 ELF_RELOC(R_AARCH64_TLSLD_MOVW_DTPREL_G0, 0x20e) 76 ELF_RELOC(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC, 0x20f) 77 ELF_RELOC(R_AARCH64_TLSLD_ADD_DTPREL_HI12, 0x210) 78 ELF_RELOC(R_AARCH64_TLSLD_ADD_DTPREL_LO12, 0x211) 79 ELF_RELOC(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC, 0x212) 80 ELF_RELOC(R_AARCH64_TLSLD_LDST8_DTPREL_LO12, 0x213) 81 ELF_RELOC(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC, 0x214) 82 ELF_RELOC(R_AARCH64_TLSLD_LDST16_DTPREL_LO12, 0x215) 83 ELF_RELOC(R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC, 0x216) 84 ELF_RELOC(R_AARCH64_TLSLD_LDST32_DTPREL_LO12, 0x217) 85 ELF_RELOC(R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC, 0x218) 86 ELF_RELOC(R_AARCH64_TLSLD_LDST64_DTPREL_LO12, 0x219) 87 ELF_RELOC(R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC, 0x21a) 88 ELF_RELOC(R_AARCH64_TLSIE_MOVW_GOTTPREL_G1, 0x21b) 89 ELF_RELOC(R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC, 0x21c) 90 ELF_RELOC(R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21, 0x21d) 91 ELF_RELOC(R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC, 0x21e) 92 ELF_RELOC(R_AARCH64_TLSIE_LD_GOTTPREL_PREL19, 0x21f) 93 ELF_RELOC(R_AARCH64_TLSLE_MOVW_TPREL_G2, 0x220) 94 ELF_RELOC(R_AARCH64_TLSLE_MOVW_TPREL_G1, 0x221) 95 ELF_RELOC(R_AARCH64_TLSLE_MOVW_TPREL_G1_NC, 0x222) 96 ELF_RELOC(R_AARCH64_TLSLE_MOVW_TPREL_G0, 0x223) 97 ELF_RELOC(R_AARCH64_TLSLE_MOVW_TPREL_G0_NC, 0x224) 98 ELF_RELOC(R_AARCH64_TLSLE_ADD_TPREL_HI12, 0x225) 99 ELF_RELOC(R_AARCH64_TLSLE_ADD_TPREL_LO12, 0x226) 100 ELF_RELOC(R_AARCH64_TLSLE_ADD_TPREL_LO12_NC, 0x227) 101 ELF_RELOC(R_AARCH64_TLSLE_LDST8_TPREL_LO12, 0x228) 102 ELF_RELOC(R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC, 0x229) 103 ELF_RELOC(R_AARCH64_TLSLE_LDST16_TPREL_LO12, 0x22a) 104 ELF_RELOC(R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC, 0x22b) 105 ELF_RELOC(R_AARCH64_TLSLE_LDST32_TPREL_LO12, 0x22c) 106 ELF_RELOC(R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC, 0x22d) 107 ELF_RELOC(R_AARCH64_TLSLE_LDST64_TPREL_LO12, 0x22e) 108 ELF_RELOC(R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC, 0x22f) 109 ELF_RELOC(R_AARCH64_TLSDESC_LD_PREL19, 0x230) 110 ELF_RELOC(R_AARCH64_TLSDESC_ADR_PREL21, 0x231) 111 ELF_RELOC(R_AARCH64_TLSDESC_ADR_PAGE21, 0x232) 112 ELF_RELOC(R_AARCH64_TLSDESC_LD64_LO12_NC, 0x233) 113 ELF_RELOC(R_AARCH64_TLSDESC_ADD_LO12_NC, 0x234) 114 ELF_RELOC(R_AARCH64_TLSDESC_OFF_G1, 0x235) 115 ELF_RELOC(R_AARCH64_TLSDESC_OFF_G0_NC, 0x236) 116 ELF_RELOC(R_AARCH64_TLSDESC_LDR, 0x237) 117 ELF_RELOC(R_AARCH64_TLSDESC_ADD, 0x238) 118 ELF_RELOC(R_AARCH64_TLSDESC_CALL, 0x239) 119 ELF_RELOC(R_AARCH64_TLSLE_LDST128_TPREL_LO12, 0x23a) 120 ELF_RELOC(R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC, 0x23b) 121 ELF_RELOC(R_AARCH64_TLSLD_LDST128_DTPREL_LO12, 0x23c) 122 ELF_RELOC(R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC, 0x23d) 123 ELF_RELOC(R_AARCH64_COPY, 0x400) 124 ELF_RELOC(R_AARCH64_GLOB_DAT, 0x401) 125 ELF_RELOC(R_AARCH64_JUMP_SLOT, 0x402) 126 ELF_RELOC(R_AARCH64_RELATIVE, 0x403) 127 ELF_RELOC(R_AARCH64_TLS_DTPREL64, 0x404) 128 ELF_RELOC(R_AARCH64_TLS_DTPMOD64, 0x405) 129 ELF_RELOC(R_AARCH64_TLS_TPREL64, 0x406) 130 ELF_RELOC(R_AARCH64_TLSDESC, 0x407) 131 ELF_RELOC(R_AARCH64_IRELATIVE, 0x408) 132 133 // ELF_RELOC(R_AARCH64_P32_NONE, 0) 134 ELF_RELOC(R_AARCH64_P32_ABS32, 0x001) 135 ELF_RELOC(R_AARCH64_P32_ABS16, 0x002) 136 ELF_RELOC(R_AARCH64_P32_PREL32, 0x003) 137 ELF_RELOC(R_AARCH64_P32_PREL16, 0x004) 138 ELF_RELOC(R_AARCH64_P32_MOVW_UABS_G0, 0x005) 139 ELF_RELOC(R_AARCH64_P32_MOVW_UABS_G0_NC, 0x006) 140 ELF_RELOC(R_AARCH64_P32_MOVW_UABS_G1, 0x007) 141 ELF_RELOC(R_AARCH64_P32_MOVW_SABS_G0, 0x008) 142 ELF_RELOC(R_AARCH64_P32_LD_PREL_LO19, 0x009) 143 ELF_RELOC(R_AARCH64_P32_ADR_PREL_LO21, 0x00a) 144 ELF_RELOC(R_AARCH64_P32_ADR_PREL_PG_HI21, 0x00b) 145 ELF_RELOC(R_AARCH64_P32_ADD_ABS_LO12_NC, 0x00c) 146 ELF_RELOC(R_AARCH64_P32_LDST8_ABS_LO12_NC, 0x00d) 147 ELF_RELOC(R_AARCH64_P32_TSTBR14, 0x012) 148 ELF_RELOC(R_AARCH64_P32_CONDBR19, 0x013) 149 ELF_RELOC(R_AARCH64_P32_JUMP26, 0x014) 150 ELF_RELOC(R_AARCH64_P32_CALL26, 0x015) 151 ELF_RELOC(R_AARCH64_P32_LDST16_ABS_LO12_NC, 0x00e) 152 ELF_RELOC(R_AARCH64_P32_LDST32_ABS_LO12_NC, 0x00f) 153 ELF_RELOC(R_AARCH64_P32_LDST64_ABS_LO12_NC, 0x010) 154 ELF_RELOC(R_AARCH64_P32_MOVW_PREL_G0, 0x016) 155 ELF_RELOC(R_AARCH64_P32_MOVW_PREL_G0_NC, 0x017) 156 ELF_RELOC(R_AARCH64_P32_MOVW_PREL_G1, 0x018) 157 ELF_RELOC(R_AARCH64_P32_LDST128_ABS_LO12_NC, 0x011) 158 ELF_RELOC(R_AARCH64_P32_GOT_LD_PREL19, 0x019) 159 ELF_RELOC(R_AARCH64_P32_ADR_GOT_PAGE, 0x01a) 160 ELF_RELOC(R_AARCH64_P32_LD64_GOT_LO12_NC, 0x01b) 161 ELF_RELOC(R_AARCH64_P32_LD32_GOTPAGE_LO14, 0x01c) 162 ELF_RELOC(R_AARCH64_P32_TLSLD_MOVW_DTPREL_G1, 0x057) 163 ELF_RELOC(R_AARCH64_P32_TLSLD_MOVW_DTPREL_G0, 0x058) 164 ELF_RELOC(R_AARCH64_P32_TLSLD_MOVW_DTPREL_G0_NC, 0x059) 165 ELF_RELOC(R_AARCH64_P32_TLSLD_ADD_DTPREL_HI12, 0x05a) 166 ELF_RELOC(R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12, 0x05b) 167 ELF_RELOC(R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12_NC, 0x05c) 168 ELF_RELOC(R_AARCH64_P32_TLSLD_LDST8_DTPREL_LO12, 0x05d) 169 ELF_RELOC(R_AARCH64_P32_TLSLD_LDST8_DTPREL_LO12_NC, 0x05e) 170 ELF_RELOC(R_AARCH64_P32_TLSLD_LDST16_DTPREL_LO12, 0x05f) 171 ELF_RELOC(R_AARCH64_P32_TLSLD_LDST16_DTPREL_LO12_NC, 0x060) 172 ELF_RELOC(R_AARCH64_P32_TLSLD_LDST32_DTPREL_LO12, 0x061) 173 ELF_RELOC(R_AARCH64_P32_TLSLD_LDST32_DTPREL_LO12_NC, 0x062) 174 ELF_RELOC(R_AARCH64_P32_TLSLD_LDST64_DTPREL_LO12, 0x063) 175 ELF_RELOC(R_AARCH64_P32_TLSLD_LDST64_DTPREL_LO12_NC, 0x064) 176 ELF_RELOC(R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21, 0x067) 177 ELF_RELOC(R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC, 0x068) 178 ELF_RELOC(R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19, 0x069) 179 ELF_RELOC(R_AARCH64_P32_TLSLE_MOVW_TPREL_G1, 0x06a) 180 ELF_RELOC(R_AARCH64_P32_TLSLE_MOVW_TPREL_G0, 0x06b) 181 ELF_RELOC(R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC, 0x06c) 182 ELF_RELOC(R_AARCH64_P32_TLSLE_ADD_TPREL_HI12, 0x06d) 183 ELF_RELOC(R_AARCH64_P32_TLSLE_ADD_TPREL_LO12, 0x06e) 184 ELF_RELOC(R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC, 0x06f) 185 ELF_RELOC(R_AARCH64_P32_TLSLE_LDST8_TPREL_LO12, 0x070) 186 ELF_RELOC(R_AARCH64_P32_TLSLE_LDST8_TPREL_LO12_NC, 0x071) 187 ELF_RELOC(R_AARCH64_P32_TLSLE_LDST16_TPREL_LO12, 0x072) 188 ELF_RELOC(R_AARCH64_P32_TLSLE_LDST16_TPREL_LO12_NC, 0x073) 189 ELF_RELOC(R_AARCH64_P32_TLSLE_LDST32_TPREL_LO12, 0x074) 190 ELF_RELOC(R_AARCH64_P32_TLSLE_LDST32_TPREL_LO12_NC, 0x075) 191 ELF_RELOC(R_AARCH64_P32_TLSLE_LDST64_TPREL_LO12, 0x076) 192 ELF_RELOC(R_AARCH64_P32_TLSLE_LDST64_TPREL_LO12_NC, 0x077) 193 ELF_RELOC(R_AARCH64_P32_TLSDESC_ADR_PAGE21, 0x051) 194 ELF_RELOC(R_AARCH64_P32_TLSDESC_LD32_LO12_NC, 0x07d) 195 ELF_RELOC(R_AARCH64_P32_TLSDESC_ADD_LO12_NC, 0x034) 196 ELF_RELOC(R_AARCH64_P32_TLSDESC_CALL, 0x07f) 197 ELF_RELOC(R_AARCH64_P32_COPY, 0x0b4) 198 ELF_RELOC(R_AARCH64_P32_GLOB_DAT, 0x0b5) 199 ELF_RELOC(R_AARCH64_P32_JUMP_SLOT, 0x0b6) 200 ELF_RELOC(R_AARCH64_P32_RELATIVE, 0x0b7) 201 ELF_RELOC(R_AARCH64_P32_IRELATIVE, 0x0bc) 202