enumstd.elf.R_AARCH64[src]

AArch64 relocations.

Fields

NONE = 0

No relocation.

P32_ABS32 = 1

ILP32 AArch64 relocs. Direct 32 bit.

P32_COPY = 180

Copy symbol at runtime.

P32_GLOB_DAT = 181

Create GOT entry.

P32_JUMP_SLOT = 182

Create PLT entry.

P32_RELATIVE = 183

Adjust by program base.

P32_TLS_DTPMOD = 184

Module number, 32 bit.

P32_TLS_DTPREL = 185

Module-relative offset, 32 bit.

P32_TLS_TPREL = 186

TP-relative offset, 32 bit.

P32_TLSDESC = 187

TLS Descriptor.

P32_IRELATIVE = 188

STT_GNU_IFUNC relocation.

ABS64 = 257

LP64 AArch64 relocs. Direct 64 bit.

ABS32 = 258

Direct 32 bit.

ABS16 = 259

Direct 16-bit.

PREL64 = 260

PC-relative 64-bit.

PREL32 = 261

PC-relative 32-bit.

PREL16 = 262

PC-relative 16-bit.

MOVW_UABS_G0 = 263

Dir. MOVZ imm. from bits 15:0.

MOVW_UABS_G0_NC = 264

Likewise for MOVK; no check.

MOVW_UABS_G1 = 265

Dir. MOVZ imm. from bits 31:16.

MOVW_UABS_G1_NC = 266

Likewise for MOVK; no check.

MOVW_UABS_G2 = 267

Dir. MOVZ imm. from bits 47:32.

MOVW_UABS_G2_NC = 268

Likewise for MOVK; no check.

MOVW_UABS_G3 = 269

Dir. MOV{K,Z} imm. from 63:48.

MOVW_SABS_G0 = 270

Dir. MOV{N,Z} imm. from 15:0.

MOVW_SABS_G1 = 271

Dir. MOV{N,Z} imm. from 31:16.

MOVW_SABS_G2 = 272

Dir. MOV{N,Z} imm. from 47:32.

LD_PREL_LO19 = 273

PC-rel. LD imm. from bits 20:2.

ADR_PREL_LO21 = 274

PC-rel. ADR imm. from bits 20:0.

ADR_PREL_PG_HI21 = 275

Page-rel. ADRP imm. from 32:12.

ADR_PREL_PG_HI21_NC = 276

Likewise; no overflow check.

ADD_ABS_LO12_NC = 277

Dir. ADD imm. from bits 11:0.

LDST8_ABS_LO12_NC = 278

Likewise for LD/ST; no check.

TSTBR14 = 279

PC-rel. TBZ/TBNZ imm. from 15:2.

CONDBR19 = 280

PC-rel. cond. br. imm. from 20:2.

JUMP26 = 282

PC-rel. B imm. from bits 27:2.

CALL26 = 283

Likewise for CALL.

LDST16_ABS_LO12_NC = 284

Dir. ADD imm. from bits 11:1.

LDST32_ABS_LO12_NC = 285

Likewise for bits 11:2.

LDST64_ABS_LO12_NC = 286

Likewise for bits 11:3.

MOVW_PREL_G0 = 287

PC-rel. MOV{N,Z} imm. from 15:0.

MOVW_PREL_G0_NC = 288

Likewise for MOVK; no check.

MOVW_PREL_G1 = 289

PC-rel. MOV{N,Z} imm. from 31:16.

MOVW_PREL_G1_NC = 290

Likewise for MOVK; no check.

MOVW_PREL_G2 = 291

PC-rel. MOV{N,Z} imm. from 47:32.

MOVW_PREL_G2_NC = 292

Likewise for MOVK; no check.

MOVW_PREL_G3 = 293

PC-rel. MOV{N,Z} imm. from 63:48.

LDST128_ABS_LO12_NC = 299

Dir. ADD imm. from bits 11:4.

MOVW_GOTOFF_G0 = 300

GOT-rel. off. MOV{N,Z} imm. 15:0.

MOVW_GOTOFF_G0_NC = 301

Likewise for MOVK; no check.

MOVW_GOTOFF_G1 = 302

GOT-rel. o. MOV{N,Z} imm. 31:16.

MOVW_GOTOFF_G1_NC = 303

Likewise for MOVK; no check.

MOVW_GOTOFF_G2 = 304

GOT-rel. o. MOV{N,Z} imm. 47:32.

MOVW_GOTOFF_G2_NC = 305

Likewise for MOVK; no check.

MOVW_GOTOFF_G3 = 306

GOT-rel. o. MOV{N,Z} imm. 63:48.

GOTREL64 = 307

GOT-relative 64-bit.

GOTREL32 = 308

GOT-relative 32-bit.

GOT_LD_PREL19 = 309

PC-rel. GOT off. load imm. 20:2.

LD64_GOTOFF_LO15 = 310

GOT-rel. off. LD/ST imm. 14:3.

ADR_GOT_PAGE = 311

P-page-rel. GOT off. ADRP 32:12.

LD64_GOT_LO12_NC = 312

Dir. GOT off. LD/ST imm. 11:3.

LD64_GOTPAGE_LO15 = 313

GOT-page-rel. GOT off. LD/ST 14:3

TLSGD_ADR_PREL21 = 512

PC-relative ADR imm. 20:0.

TLSGD_ADR_PAGE21 = 513

page-rel. ADRP imm. 32:12.

TLSGD_ADD_LO12_NC = 514

direct ADD imm. from 11:0.

TLSGD_MOVW_G1 = 515

GOT-rel. MOV{N,Z} 31:16.

TLSGD_MOVW_G0_NC = 516

GOT-rel. MOVK imm. 15:0.

TLSLD_ADR_PREL21 = 517

Like 512; local dynamic model.

TLSLD_ADR_PAGE21 = 518

Like 513; local dynamic model.

TLSLD_ADD_LO12_NC = 519

Like 514; local dynamic model.

TLSLD_MOVW_G1 = 520

Like 515; local dynamic model.

TLSLD_MOVW_G0_NC = 521

Like 516; local dynamic model.

TLSLD_LD_PREL19 = 522

TLS PC-rel. load imm. 20:2.

TLSLD_MOVW_DTPREL_G2 = 523

TLS DTP-rel. MOV{N,Z} 47:32.

TLSLD_MOVW_DTPREL_G1 = 524

TLS DTP-rel. MOV{N,Z} 31:16.

TLSLD_MOVW_DTPREL_G1_NC = 525

Likewise; MOVK; no check.

TLSLD_MOVW_DTPREL_G0 = 526

TLS DTP-rel. MOV{N,Z} 15:0.

TLSLD_MOVW_DTPREL_G0_NC = 527

Likewise; MOVK; no check.

TLSLD_ADD_DTPREL_HI12 = 528

DTP-rel. ADD imm. from 23:12.

TLSLD_ADD_DTPREL_LO12 = 529

DTP-rel. ADD imm. from 11:0.

TLSLD_ADD_DTPREL_LO12_NC = 530

Likewise; no ovfl. check.

TLSLD_LDST8_DTPREL_LO12 = 531

DTP-rel. LD/ST imm. 11:0.

TLSLD_LDST8_DTPREL_LO12_NC = 532

Likewise; no check.

TLSLD_LDST16_DTPREL_LO12 = 533

DTP-rel. LD/ST imm. 11:1.

TLSLD_LDST16_DTPREL_LO12_NC = 534

Likewise; no check.

TLSLD_LDST32_DTPREL_LO12 = 535

DTP-rel. LD/ST imm. 11:2.

TLSLD_LDST32_DTPREL_LO12_NC = 536

Likewise; no check.

TLSLD_LDST64_DTPREL_LO12 = 537

DTP-rel. LD/ST imm. 11:3.

TLSLD_LDST64_DTPREL_LO12_NC = 538

Likewise; no check.

TLSIE_MOVW_GOTTPREL_G1 = 539

GOT-rel. MOV{N,Z} 31:16.

TLSIE_MOVW_GOTTPREL_G0_NC = 540

GOT-rel. MOVK 15:0.

TLSIE_ADR_GOTTPREL_PAGE21 = 541

Page-rel. ADRP 32:12.

TLSIE_LD64_GOTTPREL_LO12_NC = 542

Direct LD off. 11:3.

TLSIE_LD_GOTTPREL_PREL19 = 543

PC-rel. load imm. 20:2.

TLSLE_MOVW_TPREL_G2 = 544

TLS TP-rel. MOV{N,Z} 47:32.

TLSLE_MOVW_TPREL_G1 = 545

TLS TP-rel. MOV{N,Z} 31:16.

TLSLE_MOVW_TPREL_G1_NC = 546

Likewise; MOVK; no check.

TLSLE_MOVW_TPREL_G0 = 547

TLS TP-rel. MOV{N,Z} 15:0.

TLSLE_MOVW_TPREL_G0_NC = 548

Likewise; MOVK; no check.

TLSLE_ADD_TPREL_HI12 = 549

TP-rel. ADD imm. 23:12.

TLSLE_ADD_TPREL_LO12 = 550

TP-rel. ADD imm. 11:0.

TLSLE_ADD_TPREL_LO12_NC = 551

Likewise; no ovfl. check.

TLSLE_LDST8_TPREL_LO12 = 552

TP-rel. LD/ST off. 11:0.

TLSLE_LDST8_TPREL_LO12_NC = 553

Likewise; no ovfl. check.

TLSLE_LDST16_TPREL_LO12 = 554

TP-rel. LD/ST off. 11:1.

TLSLE_LDST16_TPREL_LO12_NC = 555

Likewise; no check.

TLSLE_LDST32_TPREL_LO12 = 556

TP-rel. LD/ST off. 11:2.

TLSLE_LDST32_TPREL_LO12_NC = 557

Likewise; no check.

TLSLE_LDST64_TPREL_LO12 = 558

TP-rel. LD/ST off. 11:3.

TLSLE_LDST64_TPREL_LO12_NC = 559

Likewise; no check.

TLSDESC_LD_PREL19 = 560

PC-rel. load immediate 20:2.

TLSDESC_ADR_PREL21 = 561

PC-rel. ADR immediate 20:0.

TLSDESC_ADR_PAGE21 = 562

Page-rel. ADRP imm. 32:12.

TLSDESC_LD64_LO12 = 563

Direct LD off. from 11:3.

TLSDESC_ADD_LO12 = 564

Direct ADD imm. from 11:0.

TLSDESC_OFF_G1 = 565

GOT-rel. MOV{N,Z} imm. 31:16.

TLSDESC_OFF_G0_NC = 566

GOT-rel. MOVK imm. 15:0; no ck.

TLSDESC_LDR = 567

Relax LDR.

TLSDESC_ADD = 568

Relax ADD.

TLSDESC_CALL = 569

Relax BLR.

TLSLE_LDST128_TPREL_LO12 = 570

TP-rel. LD/ST off. 11:4.

TLSLE_LDST128_TPREL_LO12_NC = 571

Likewise; no check.

TLSLD_LDST128_DTPREL_LO12 = 572

DTP-rel. LD/ST imm. 11:4.

TLSLD_LDST128_DTPREL_LO12_NC = 573

Likewise; no check.

COPY = 1024

Copy symbol at runtime.

GLOB_DAT = 1025

Create GOT entry.

JUMP_SLOT = 1026

Create PLT entry.

RELATIVE = 1027

Adjust by program base.

TLS_DTPMOD = 1028

Module number, 64 bit.

TLS_DTPREL = 1029

Module-relative offset, 64 bit.

TLS_TPREL = 1030

TP-relative offset, 64 bit.

TLSDESC = 1031

TLS Descriptor.

IRELATIVE = 1032

STT_GNU_IFUNC relocation.

_

Source Code

Source code
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,
    _,
}