enum R_AARCH64 [src]

AArch64 relocations.

Fields

NONE = 0No relocation.
P32_ABS32 = 1ILP32 AArch64 relocs. Direct 32 bit.
P32_COPY = 180Copy symbol at runtime.
P32_GLOB_DAT = 181Create GOT entry.
P32_JUMP_SLOT = 182Create PLT entry.
P32_RELATIVE = 183Adjust by program base.
P32_TLS_DTPMOD = 184Module number, 32 bit.
P32_TLS_DTPREL = 185Module-relative offset, 32 bit.
P32_TLS_TPREL = 186TP-relative offset, 32 bit.
P32_TLSDESC = 187TLS Descriptor.
P32_IRELATIVE = 188STT_GNU_IFUNC relocation.
ABS64 = 257LP64 AArch64 relocs. Direct 64 bit.
ABS32 = 258Direct 32 bit.
ABS16 = 259Direct 16-bit.
PREL64 = 260PC-relative 64-bit.
PREL32 = 261PC-relative 32-bit.
PREL16 = 262PC-relative 16-bit.
MOVW_UABS_G0 = 263Dir. MOVZ imm. from bits 15:0.
MOVW_UABS_G0_NC = 264Likewise for MOVK; no check.
MOVW_UABS_G1 = 265Dir. MOVZ imm. from bits 31:16.
MOVW_UABS_G1_NC = 266Likewise for MOVK; no check.
MOVW_UABS_G2 = 267Dir. MOVZ imm. from bits 47:32.
MOVW_UABS_G2_NC = 268Likewise for MOVK; no check.
MOVW_UABS_G3 = 269Dir. MOV{K,Z} imm. from 63:48.
MOVW_SABS_G0 = 270Dir. MOV{N,Z} imm. from 15:0.
MOVW_SABS_G1 = 271Dir. MOV{N,Z} imm. from 31:16.
MOVW_SABS_G2 = 272Dir. MOV{N,Z} imm. from 47:32.
LD_PREL_LO19 = 273PC-rel. LD imm. from bits 20:2.
ADR_PREL_LO21 = 274PC-rel. ADR imm. from bits 20:0.
ADR_PREL_PG_HI21 = 275Page-rel. ADRP imm. from 32:12.
ADR_PREL_PG_HI21_NC = 276Likewise; no overflow check.
ADD_ABS_LO12_NC = 277Dir. ADD imm. from bits 11:0.
LDST8_ABS_LO12_NC = 278Likewise for LD/ST; no check.
TSTBR14 = 279PC-rel. TBZ/TBNZ imm. from 15:2.
CONDBR19 = 280PC-rel. cond. br. imm. from 20:2.
JUMP26 = 282PC-rel. B imm. from bits 27:2.
CALL26 = 283Likewise for CALL.
LDST16_ABS_LO12_NC = 284Dir. ADD imm. from bits 11:1.
LDST32_ABS_LO12_NC = 285Likewise for bits 11:2.
LDST64_ABS_LO12_NC = 286Likewise for bits 11:3.
MOVW_PREL_G0 = 287PC-rel. MOV{N,Z} imm. from 15:0.
MOVW_PREL_G0_NC = 288Likewise for MOVK; no check.
MOVW_PREL_G1 = 289PC-rel. MOV{N,Z} imm. from 31:16.
MOVW_PREL_G1_NC = 290Likewise for MOVK; no check.
MOVW_PREL_G2 = 291PC-rel. MOV{N,Z} imm. from 47:32.
MOVW_PREL_G2_NC = 292Likewise for MOVK; no check.
MOVW_PREL_G3 = 293PC-rel. MOV{N,Z} imm. from 63:48.
LDST128_ABS_LO12_NC = 299Dir. ADD imm. from bits 11:4.
MOVW_GOTOFF_G0 = 300GOT-rel. off. MOV{N,Z} imm. 15:0.
MOVW_GOTOFF_G0_NC = 301Likewise for MOVK; no check.
MOVW_GOTOFF_G1 = 302GOT-rel. o. MOV{N,Z} imm. 31:16.
MOVW_GOTOFF_G1_NC = 303Likewise for MOVK; no check.
MOVW_GOTOFF_G2 = 304GOT-rel. o. MOV{N,Z} imm. 47:32.
MOVW_GOTOFF_G2_NC = 305Likewise for MOVK; no check.
MOVW_GOTOFF_G3 = 306GOT-rel. o. MOV{N,Z} imm. 63:48.
GOTREL64 = 307GOT-relative 64-bit.
GOTREL32 = 308GOT-relative 32-bit.
GOT_LD_PREL19 = 309PC-rel. GOT off. load imm. 20:2.
LD64_GOTOFF_LO15 = 310GOT-rel. off. LD/ST imm. 14:3.
ADR_GOT_PAGE = 311P-page-rel. GOT off. ADRP 32:12.
LD64_GOT_LO12_NC = 312Dir. GOT off. LD/ST imm. 11:3.
LD64_GOTPAGE_LO15 = 313GOT-page-rel. GOT off. LD/ST 14:3
TLSGD_ADR_PREL21 = 512PC-relative ADR imm. 20:0.
TLSGD_ADR_PAGE21 = 513page-rel. ADRP imm. 32:12.
TLSGD_ADD_LO12_NC = 514direct ADD imm. from 11:0.
TLSGD_MOVW_G1 = 515GOT-rel. MOV{N,Z} 31:16.
TLSGD_MOVW_G0_NC = 516GOT-rel. MOVK imm. 15:0.
TLSLD_ADR_PREL21 = 517Like 512; local dynamic model.
TLSLD_ADR_PAGE21 = 518Like 513; local dynamic model.
TLSLD_ADD_LO12_NC = 519Like 514; local dynamic model.
TLSLD_MOVW_G1 = 520Like 515; local dynamic model.
TLSLD_MOVW_G0_NC = 521Like 516; local dynamic model.
TLSLD_LD_PREL19 = 522TLS PC-rel. load imm. 20:2.
TLSLD_MOVW_DTPREL_G2 = 523TLS DTP-rel. MOV{N,Z} 47:32.
TLSLD_MOVW_DTPREL_G1 = 524TLS DTP-rel. MOV{N,Z} 31:16.
TLSLD_MOVW_DTPREL_G1_NC = 525Likewise; MOVK; no check.
TLSLD_MOVW_DTPREL_G0 = 526TLS DTP-rel. MOV{N,Z} 15:0.
TLSLD_MOVW_DTPREL_G0_NC = 527Likewise; MOVK; no check.
TLSLD_ADD_DTPREL_HI12 = 528DTP-rel. ADD imm. from 23:12.
TLSLD_ADD_DTPREL_LO12 = 529DTP-rel. ADD imm. from 11:0.
TLSLD_ADD_DTPREL_LO12_NC = 530Likewise; no ovfl. check.
TLSLD_LDST8_DTPREL_LO12 = 531DTP-rel. LD/ST imm. 11:0.
TLSLD_LDST8_DTPREL_LO12_NC = 532Likewise; no check.
TLSLD_LDST16_DTPREL_LO12 = 533DTP-rel. LD/ST imm. 11:1.
TLSLD_LDST16_DTPREL_LO12_NC = 534Likewise; no check.
TLSLD_LDST32_DTPREL_LO12 = 535DTP-rel. LD/ST imm. 11:2.
TLSLD_LDST32_DTPREL_LO12_NC = 536Likewise; no check.
TLSLD_LDST64_DTPREL_LO12 = 537DTP-rel. LD/ST imm. 11:3.
TLSLD_LDST64_DTPREL_LO12_NC = 538Likewise; no check.
TLSIE_MOVW_GOTTPREL_G1 = 539GOT-rel. MOV{N,Z} 31:16.
TLSIE_MOVW_GOTTPREL_G0_NC = 540GOT-rel. MOVK 15:0.
TLSIE_ADR_GOTTPREL_PAGE21 = 541Page-rel. ADRP 32:12.
TLSIE_LD64_GOTTPREL_LO12_NC = 542Direct LD off. 11:3.
TLSIE_LD_GOTTPREL_PREL19 = 543PC-rel. load imm. 20:2.
TLSLE_MOVW_TPREL_G2 = 544TLS TP-rel. MOV{N,Z} 47:32.
TLSLE_MOVW_TPREL_G1 = 545TLS TP-rel. MOV{N,Z} 31:16.
TLSLE_MOVW_TPREL_G1_NC = 546Likewise; MOVK; no check.
TLSLE_MOVW_TPREL_G0 = 547TLS TP-rel. MOV{N,Z} 15:0.
TLSLE_MOVW_TPREL_G0_NC = 548Likewise; MOVK; no check.
TLSLE_ADD_TPREL_HI12 = 549TP-rel. ADD imm. 23:12.
TLSLE_ADD_TPREL_LO12 = 550TP-rel. ADD imm. 11:0.
TLSLE_ADD_TPREL_LO12_NC = 551Likewise; no ovfl. check.
TLSLE_LDST8_TPREL_LO12 = 552TP-rel. LD/ST off. 11:0.
TLSLE_LDST8_TPREL_LO12_NC = 553Likewise; no ovfl. check.
TLSLE_LDST16_TPREL_LO12 = 554TP-rel. LD/ST off. 11:1.
TLSLE_LDST16_TPREL_LO12_NC = 555Likewise; no check.
TLSLE_LDST32_TPREL_LO12 = 556TP-rel. LD/ST off. 11:2.
TLSLE_LDST32_TPREL_LO12_NC = 557Likewise; no check.
TLSLE_LDST64_TPREL_LO12 = 558TP-rel. LD/ST off. 11:3.
TLSLE_LDST64_TPREL_LO12_NC = 559Likewise; no check.
TLSDESC_LD_PREL19 = 560PC-rel. load immediate 20:2.
TLSDESC_ADR_PREL21 = 561PC-rel. ADR immediate 20:0.
TLSDESC_ADR_PAGE21 = 562Page-rel. ADRP imm. 32:12.
TLSDESC_LD64_LO12 = 563Direct LD off. from 11:3.
TLSDESC_ADD_LO12 = 564Direct ADD imm. from 11:0.
TLSDESC_OFF_G1 = 565GOT-rel. MOV{N,Z} imm. 31:16.
TLSDESC_OFF_G0_NC = 566GOT-rel. MOVK imm. 15:0; no ck.
TLSDESC_LDR = 567Relax LDR.
TLSDESC_ADD = 568Relax ADD.
TLSDESC_CALL = 569Relax BLR.
TLSLE_LDST128_TPREL_LO12 = 570TP-rel. LD/ST off. 11:4.
TLSLE_LDST128_TPREL_LO12_NC = 571Likewise; no check.
TLSLD_LDST128_DTPREL_LO12 = 572DTP-rel. LD/ST imm. 11:4.
TLSLD_LDST128_DTPREL_LO12_NC = 573Likewise; no check.
COPY = 1024Copy symbol at runtime.
GLOB_DAT = 1025Create GOT entry.
JUMP_SLOT = 1026Create PLT entry.
RELATIVE = 1027Adjust by program base.
TLS_DTPMOD = 1028Module number, 64 bit.
TLS_DTPREL = 1029Module-relative offset, 64 bit.
TLS_TPREL = 1030TP-relative offset, 64 bit.
TLSDESC = 1031TLS Descriptor.
IRELATIVE = 1032STT_GNU_IFUNC relocation.
_

Source

pub const R_AARCH64 = enum(u32) { /// No relocation. NONE = 0, /// ILP32 AArch64 relocs. /// Direct 32 bit. P32_ABS32 = 1, /// Copy symbol at runtime. P32_COPY = 180, /// Create GOT entry. P32_GLOB_DAT = 181, /// Create PLT entry. P32_JUMP_SLOT = 182, /// Adjust by program base. P32_RELATIVE = 183, /// Module number, 32 bit. P32_TLS_DTPMOD = 184, /// Module-relative offset, 32 bit. P32_TLS_DTPREL = 185, /// TP-relative offset, 32 bit. P32_TLS_TPREL = 186, /// TLS Descriptor. P32_TLSDESC = 187, /// STT_GNU_IFUNC relocation. P32_IRELATIVE = 188, /// LP64 AArch64 relocs. /// Direct 64 bit. ABS64 = 257, /// Direct 32 bit. ABS32 = 258, /// Direct 16-bit. ABS16 = 259, /// PC-relative 64-bit. PREL64 = 260, /// PC-relative 32-bit. PREL32 = 261, /// PC-relative 16-bit. PREL16 = 262, /// Dir. MOVZ imm. from bits 15:0. MOVW_UABS_G0 = 263, /// Likewise for MOVK; no check. MOVW_UABS_G0_NC = 264, /// Dir. MOVZ imm. from bits 31:16. MOVW_UABS_G1 = 265, /// Likewise for MOVK; no check. MOVW_UABS_G1_NC = 266, /// Dir. MOVZ imm. from bits 47:32. MOVW_UABS_G2 = 267, /// Likewise for MOVK; no check. MOVW_UABS_G2_NC = 268, /// Dir. MOV{K,Z} imm. from 63:48. MOVW_UABS_G3 = 269, /// Dir. MOV{N,Z} imm. from 15:0. MOVW_SABS_G0 = 270, /// Dir. MOV{N,Z} imm. from 31:16. MOVW_SABS_G1 = 271, /// Dir. MOV{N,Z} imm. from 47:32. MOVW_SABS_G2 = 272, /// PC-rel. LD imm. from bits 20:2. LD_PREL_LO19 = 273, /// PC-rel. ADR imm. from bits 20:0. ADR_PREL_LO21 = 274, /// Page-rel. ADRP imm. from 32:12. ADR_PREL_PG_HI21 = 275, /// Likewise; no overflow check. ADR_PREL_PG_HI21_NC = 276, /// Dir. ADD imm. from bits 11:0. ADD_ABS_LO12_NC = 277, /// Likewise for LD/ST; no check. LDST8_ABS_LO12_NC = 278, /// PC-rel. TBZ/TBNZ imm. from 15:2. TSTBR14 = 279, /// PC-rel. cond. br. imm. from 20:2. CONDBR19 = 280, /// PC-rel. B imm. from bits 27:2. JUMP26 = 282, /// Likewise for CALL. CALL26 = 283, /// Dir. ADD imm. from bits 11:1. LDST16_ABS_LO12_NC = 284, /// Likewise for bits 11:2. LDST32_ABS_LO12_NC = 285, /// Likewise for bits 11:3. LDST64_ABS_LO12_NC = 286, /// PC-rel. MOV{N,Z} imm. from 15:0. MOVW_PREL_G0 = 287, /// Likewise for MOVK; no check. MOVW_PREL_G0_NC = 288, /// PC-rel. MOV{N,Z} imm. from 31:16. MOVW_PREL_G1 = 289, /// Likewise for MOVK; no check. MOVW_PREL_G1_NC = 290, /// PC-rel. MOV{N,Z} imm. from 47:32. MOVW_PREL_G2 = 291, /// Likewise for MOVK; no check. MOVW_PREL_G2_NC = 292, /// PC-rel. MOV{N,Z} imm. from 63:48. MOVW_PREL_G3 = 293, /// Dir. ADD imm. from bits 11:4. LDST128_ABS_LO12_NC = 299, /// GOT-rel. off. MOV{N,Z} imm. 15:0. MOVW_GOTOFF_G0 = 300, /// Likewise for MOVK; no check. MOVW_GOTOFF_G0_NC = 301, /// GOT-rel. o. MOV{N,Z} imm. 31:16. MOVW_GOTOFF_G1 = 302, /// Likewise for MOVK; no check. MOVW_GOTOFF_G1_NC = 303, /// GOT-rel. o. MOV{N,Z} imm. 47:32. MOVW_GOTOFF_G2 = 304, /// Likewise for MOVK; no check. MOVW_GOTOFF_G2_NC = 305, /// GOT-rel. o. MOV{N,Z} imm. 63:48. MOVW_GOTOFF_G3 = 306, /// GOT-relative 64-bit. GOTREL64 = 307, /// GOT-relative 32-bit. GOTREL32 = 308, /// PC-rel. GOT off. load imm. 20:2. GOT_LD_PREL19 = 309, /// GOT-rel. off. LD/ST imm. 14:3. LD64_GOTOFF_LO15 = 310, /// P-page-rel. GOT off. ADRP 32:12. ADR_GOT_PAGE = 311, /// Dir. GOT off. LD/ST imm. 11:3. LD64_GOT_LO12_NC = 312, /// GOT-page-rel. GOT off. LD/ST 14:3 LD64_GOTPAGE_LO15 = 313, /// PC-relative ADR imm. 20:0. TLSGD_ADR_PREL21 = 512, /// page-rel. ADRP imm. 32:12. TLSGD_ADR_PAGE21 = 513, /// direct ADD imm. from 11:0. TLSGD_ADD_LO12_NC = 514, /// GOT-rel. MOV{N,Z} 31:16. TLSGD_MOVW_G1 = 515, /// GOT-rel. MOVK imm. 15:0. TLSGD_MOVW_G0_NC = 516, /// Like 512; local dynamic model. TLSLD_ADR_PREL21 = 517, /// Like 513; local dynamic model. TLSLD_ADR_PAGE21 = 518, /// Like 514; local dynamic model. TLSLD_ADD_LO12_NC = 519, /// Like 515; local dynamic model. TLSLD_MOVW_G1 = 520, /// Like 516; local dynamic model. TLSLD_MOVW_G0_NC = 521, /// TLS PC-rel. load imm. 20:2. TLSLD_LD_PREL19 = 522, /// TLS DTP-rel. MOV{N,Z} 47:32. TLSLD_MOVW_DTPREL_G2 = 523, /// TLS DTP-rel. MOV{N,Z} 31:16. TLSLD_MOVW_DTPREL_G1 = 524, /// Likewise; MOVK; no check. TLSLD_MOVW_DTPREL_G1_NC = 525, /// TLS DTP-rel. MOV{N,Z} 15:0. TLSLD_MOVW_DTPREL_G0 = 526, /// Likewise; MOVK; no check. TLSLD_MOVW_DTPREL_G0_NC = 527, /// DTP-rel. ADD imm. from 23:12. TLSLD_ADD_DTPREL_HI12 = 528, /// DTP-rel. ADD imm. from 11:0. TLSLD_ADD_DTPREL_LO12 = 529, /// Likewise; no ovfl. check. TLSLD_ADD_DTPREL_LO12_NC = 530, /// DTP-rel. LD/ST imm. 11:0. TLSLD_LDST8_DTPREL_LO12 = 531, /// Likewise; no check. TLSLD_LDST8_DTPREL_LO12_NC = 532, /// DTP-rel. LD/ST imm. 11:1. TLSLD_LDST16_DTPREL_LO12 = 533, /// Likewise; no check. TLSLD_LDST16_DTPREL_LO12_NC = 534, /// DTP-rel. LD/ST imm. 11:2. TLSLD_LDST32_DTPREL_LO12 = 535, /// Likewise; no check. TLSLD_LDST32_DTPREL_LO12_NC = 536, /// DTP-rel. LD/ST imm. 11:3. TLSLD_LDST64_DTPREL_LO12 = 537, /// Likewise; no check. TLSLD_LDST64_DTPREL_LO12_NC = 538, /// GOT-rel. MOV{N,Z} 31:16. TLSIE_MOVW_GOTTPREL_G1 = 539, /// GOT-rel. MOVK 15:0. TLSIE_MOVW_GOTTPREL_G0_NC = 540, /// Page-rel. ADRP 32:12. TLSIE_ADR_GOTTPREL_PAGE21 = 541, /// Direct LD off. 11:3. TLSIE_LD64_GOTTPREL_LO12_NC = 542, /// PC-rel. load imm. 20:2. TLSIE_LD_GOTTPREL_PREL19 = 543, /// TLS TP-rel. MOV{N,Z} 47:32. TLSLE_MOVW_TPREL_G2 = 544, /// TLS TP-rel. MOV{N,Z} 31:16. TLSLE_MOVW_TPREL_G1 = 545, /// Likewise; MOVK; no check. TLSLE_MOVW_TPREL_G1_NC = 546, /// TLS TP-rel. MOV{N,Z} 15:0. TLSLE_MOVW_TPREL_G0 = 547, /// Likewise; MOVK; no check. TLSLE_MOVW_TPREL_G0_NC = 548, /// TP-rel. ADD imm. 23:12. TLSLE_ADD_TPREL_HI12 = 549, /// TP-rel. ADD imm. 11:0. TLSLE_ADD_TPREL_LO12 = 550, /// Likewise; no ovfl. check. TLSLE_ADD_TPREL_LO12_NC = 551, /// TP-rel. LD/ST off. 11:0. TLSLE_LDST8_TPREL_LO12 = 552, /// Likewise; no ovfl. check. TLSLE_LDST8_TPREL_LO12_NC = 553, /// TP-rel. LD/ST off. 11:1. TLSLE_LDST16_TPREL_LO12 = 554, /// Likewise; no check. TLSLE_LDST16_TPREL_LO12_NC = 555, /// TP-rel. LD/ST off. 11:2. TLSLE_LDST32_TPREL_LO12 = 556, /// Likewise; no check. TLSLE_LDST32_TPREL_LO12_NC = 557, /// TP-rel. LD/ST off. 11:3. TLSLE_LDST64_TPREL_LO12 = 558, /// Likewise; no check. TLSLE_LDST64_TPREL_LO12_NC = 559, /// PC-rel. load immediate 20:2. TLSDESC_LD_PREL19 = 560, /// PC-rel. ADR immediate 20:0. TLSDESC_ADR_PREL21 = 561, /// Page-rel. ADRP imm. 32:12. TLSDESC_ADR_PAGE21 = 562, /// Direct LD off. from 11:3. TLSDESC_LD64_LO12 = 563, /// Direct ADD imm. from 11:0. TLSDESC_ADD_LO12 = 564, /// GOT-rel. MOV{N,Z} imm. 31:16. TLSDESC_OFF_G1 = 565, /// GOT-rel. MOVK imm. 15:0; no ck. TLSDESC_OFF_G0_NC = 566, /// Relax LDR. TLSDESC_LDR = 567, /// Relax ADD. TLSDESC_ADD = 568, /// Relax BLR. TLSDESC_CALL = 569, /// TP-rel. LD/ST off. 11:4. TLSLE_LDST128_TPREL_LO12 = 570, /// Likewise; no check. TLSLE_LDST128_TPREL_LO12_NC = 571, /// DTP-rel. LD/ST imm. 11:4. TLSLD_LDST128_DTPREL_LO12 = 572, /// Likewise; no check. TLSLD_LDST128_DTPREL_LO12_NC = 573, /// Copy symbol at runtime. COPY = 1024, /// Create GOT entry. GLOB_DAT = 1025, /// Create PLT entry. JUMP_SLOT = 1026, /// Adjust by program base. RELATIVE = 1027, /// Module number, 64 bit. TLS_DTPMOD = 1028, /// Module-relative offset, 64 bit. TLS_DTPREL = 1029, /// TP-relative offset, 64 bit. TLS_TPREL = 1030, /// TLS Descriptor. TLSDESC = 1031, /// STT_GNU_IFUNC relocation. IRELATIVE = 1032, _, }