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