mirror of
https://github.com/ziglang/zig.git
synced 2024-11-15 08:33:06 +00:00
lib/std/elf: add aarch64 relocation kinds
This commit is contained in:
parent
07c1dd3d1d
commit
0c3d5fd1fe
272
lib/std/elf.zig
272
lib/std/elf.zig
@ -1892,6 +1892,278 @@ pub const R_X86_64_GOTPCRELX = 41;
|
||||
pub const R_X86_64_REX_GOTPCRELX = 42;
|
||||
pub const R_X86_64_NUM = 43;
|
||||
|
||||
/// AArch64 relocs.
|
||||
/// No relocation.
|
||||
pub const R_AARCH64_NONE = 0;
|
||||
|
||||
/// ILP32 AArch64 relocs.
|
||||
/// Direct 32 bit.
|
||||
pub const R_AARCH64_P32_ABS32 = 1;
|
||||
/// Copy symbol at runtime.
|
||||
pub const R_AARCH64_P32_COPY = 180;
|
||||
/// Create GOT entry.
|
||||
pub const R_AARCH64_P32_GLOB_DAT = 181;
|
||||
/// Create PLT entry.
|
||||
pub const R_AARCH64_P32_JUMP_SLOT = 182;
|
||||
/// Adjust by program base.
|
||||
pub const R_AARCH64_P32_RELATIVE = 183;
|
||||
/// Module number, 32 bit.
|
||||
pub const R_AARCH64_P32_TLS_DTPMOD = 184;
|
||||
/// Module-relative offset, 32 bit.
|
||||
pub const R_AARCH64_P32_TLS_DTPREL = 185;
|
||||
/// TP-relative offset, 32 bit.
|
||||
pub const R_AARCH64_P32_TLS_TPREL = 186;
|
||||
/// TLS Descriptor.
|
||||
pub const R_AARCH64_P32_TLSDESC = 187;
|
||||
/// STT_GNU_IFUNC relocation.
|
||||
pub const R_AARCH64_P32_IRELATIVE = 188;
|
||||
|
||||
/// LP64 AArch64 relocs.
|
||||
/// Direct 64 bit.
|
||||
pub const R_AARCH64_ABS64 = 257;
|
||||
/// Direct 32 bit.
|
||||
pub const R_AARCH64_ABS32 = 258;
|
||||
/// Direct 16-bit.
|
||||
pub const R_AARCH64_ABS16 = 259;
|
||||
/// PC-relative 64-bit.
|
||||
pub const R_AARCH64_PREL64 = 260;
|
||||
/// PC-relative 32-bit.
|
||||
pub const R_AARCH64_PREL32 = 261;
|
||||
/// PC-relative 16-bit.
|
||||
pub const R_AARCH64_PREL16 = 262;
|
||||
/// Dir. MOVZ imm. from bits 15:0.
|
||||
pub const R_AARCH64_MOVW_UABS_G0 = 263;
|
||||
/// Likewise for MOVK; no check.
|
||||
pub const R_AARCH64_MOVW_UABS_G0_NC = 264;
|
||||
/// Dir. MOVZ imm. from bits 31:16.
|
||||
pub const R_AARCH64_MOVW_UABS_G1 = 265;
|
||||
/// Likewise for MOVK; no check.
|
||||
pub const R_AARCH64_MOVW_UABS_G1_NC = 266;
|
||||
/// Dir. MOVZ imm. from bits 47:32.
|
||||
pub const R_AARCH64_MOVW_UABS_G2 = 267;
|
||||
/// Likewise for MOVK; no check.
|
||||
pub const R_AARCH64_MOVW_UABS_G2_NC = 268;
|
||||
/// Dir. MOV{K,Z} imm. from 63:48.
|
||||
pub const R_AARCH64_MOVW_UABS_G3 = 269;
|
||||
/// Dir. MOV{N,Z} imm. from 15:0.
|
||||
pub const R_AARCH64_MOVW_SABS_G0 = 270;
|
||||
/// Dir. MOV{N,Z} imm. from 31:16.
|
||||
pub const R_AARCH64_MOVW_SABS_G1 = 271;
|
||||
/// Dir. MOV{N,Z} imm. from 47:32.
|
||||
pub const R_AARCH64_MOVW_SABS_G2 = 272;
|
||||
/// PC-rel. LD imm. from bits 20:2.
|
||||
pub const R_AARCH64_LD_PREL_LO19 = 273;
|
||||
/// PC-rel. ADR imm. from bits 20:0.
|
||||
pub const R_AARCH64_ADR_PREL_LO21 = 274;
|
||||
/// Page-rel. ADRP imm. from 32:12.
|
||||
pub const R_AARCH64_ADR_PREL_PG_HI21 = 275;
|
||||
/// Likewise; no overflow check.
|
||||
pub const R_AARCH64_ADR_PREL_PG_HI21_NC = 276;
|
||||
/// Dir. ADD imm. from bits 11:0.
|
||||
pub const R_AARCH64_ADD_ABS_LO12_NC = 277;
|
||||
/// Likewise for LD/ST; no check.
|
||||
pub const R_AARCH64_LDST8_ABS_LO12_NC = 278;
|
||||
/// PC-rel. TBZ/TBNZ imm. from 15:2.
|
||||
pub const R_AARCH64_TSTBR14 = 279;
|
||||
/// PC-rel. cond. br. imm. from 20:2.
|
||||
pub const R_AARCH64_CONDBR19 = 280;
|
||||
/// PC-rel. B imm. from bits 27:2.
|
||||
pub const R_AARCH64_JUMP26 = 282;
|
||||
/// Likewise for CALL.
|
||||
pub const R_AARCH64_CALL26 = 283;
|
||||
/// Dir. ADD imm. from bits 11:1.
|
||||
pub const R_AARCH64_LDST16_ABS_LO12_NC = 284;
|
||||
/// Likewise for bits 11:2.
|
||||
pub const R_AARCH64_LDST32_ABS_LO12_NC = 285;
|
||||
/// Likewise for bits 11:3.
|
||||
pub const R_AARCH64_LDST64_ABS_LO12_NC = 286;
|
||||
/// PC-rel. MOV{N,Z} imm. from 15:0.
|
||||
pub const R_AARCH64_MOVW_PREL_G0 = 287;
|
||||
/// Likewise for MOVK; no check.
|
||||
pub const R_AARCH64_MOVW_PREL_G0_NC = 288;
|
||||
/// PC-rel. MOV{N,Z} imm. from 31:16.
|
||||
pub const R_AARCH64_MOVW_PREL_G1 = 289;
|
||||
/// Likewise for MOVK; no check.
|
||||
pub const R_AARCH64_MOVW_PREL_G1_NC = 290;
|
||||
/// PC-rel. MOV{N,Z} imm. from 47:32.
|
||||
pub const R_AARCH64_MOVW_PREL_G2 = 291;
|
||||
/// Likewise for MOVK; no check.
|
||||
pub const R_AARCH64_MOVW_PREL_G2_NC = 292;
|
||||
/// PC-rel. MOV{N,Z} imm. from 63:48.
|
||||
pub const R_AARCH64_MOVW_PREL_G3 = 293;
|
||||
/// Dir. ADD imm. from bits 11:4.
|
||||
pub const R_AARCH64_LDST128_ABS_LO12_NC = 299;
|
||||
/// GOT-rel. off. MOV{N,Z} imm. 15:0.
|
||||
pub const R_AARCH64_MOVW_GOTOFF_G0 = 300;
|
||||
/// Likewise for MOVK; no check.
|
||||
pub const R_AARCH64_MOVW_GOTOFF_G0_NC = 301;
|
||||
/// GOT-rel. o. MOV{N,Z} imm. 31:16.
|
||||
pub const R_AARCH64_MOVW_GOTOFF_G1 = 302;
|
||||
/// Likewise for MOVK; no check.
|
||||
pub const R_AARCH64_MOVW_GOTOFF_G1_NC = 303;
|
||||
/// GOT-rel. o. MOV{N,Z} imm. 47:32.
|
||||
pub const R_AARCH64_MOVW_GOTOFF_G2 = 304;
|
||||
/// Likewise for MOVK; no check.
|
||||
pub const R_AARCH64_MOVW_GOTOFF_G2_NC = 305;
|
||||
/// GOT-rel. o. MOV{N,Z} imm. 63:48.
|
||||
pub const R_AARCH64_MOVW_GOTOFF_G3 = 306;
|
||||
/// GOT-relative 64-bit.
|
||||
pub const R_AARCH64_GOTREL64 = 307;
|
||||
/// GOT-relative 32-bit.
|
||||
pub const R_AARCH64_GOTREL32 = 308;
|
||||
/// PC-rel. GOT off. load imm. 20:2.
|
||||
pub const R_AARCH64_GOT_LD_PREL19 = 309;
|
||||
/// GOT-rel. off. LD/ST imm. 14:3.
|
||||
pub const R_AARCH64_LD64_GOTOFF_LO15 = 310;
|
||||
/// P-page-rel. GOT off. ADRP 32:12.
|
||||
pub const R_AARCH64_ADR_GOT_PAGE = 311;
|
||||
/// Dir. GOT off. LD/ST imm. 11:3.
|
||||
pub const R_AARCH64_LD64_GOT_LO12_NC = 312;
|
||||
/// GOT-page-rel. GOT off. LD/ST 14:3
|
||||
pub const R_AARCH64_LD64_GOTPAGE_LO15 = 313;
|
||||
/// PC-relative ADR imm. 20:0.
|
||||
pub const R_AARCH64_TLSGD_ADR_PREL21 = 512;
|
||||
/// page-rel. ADRP imm. 32:12.
|
||||
pub const R_AARCH64_TLSGD_ADR_PAGE21 = 513;
|
||||
/// direct ADD imm. from 11:0.
|
||||
pub const R_AARCH64_TLSGD_ADD_LO12_NC = 514;
|
||||
/// GOT-rel. MOV{N,Z} 31:16.
|
||||
pub const R_AARCH64_TLSGD_MOVW_G1 = 515;
|
||||
/// GOT-rel. MOVK imm. 15:0.
|
||||
pub const R_AARCH64_TLSGD_MOVW_G0_NC = 516;
|
||||
/// Like 512; local dynamic model.
|
||||
pub const R_AARCH64_TLSLD_ADR_PREL21 = 517;
|
||||
/// Like 513; local dynamic model.
|
||||
pub const R_AARCH64_TLSLD_ADR_PAGE21 = 518;
|
||||
/// Like 514; local dynamic model.
|
||||
pub const R_AARCH64_TLSLD_ADD_LO12_NC = 519;
|
||||
/// Like 515; local dynamic model.
|
||||
pub const R_AARCH64_TLSLD_MOVW_G1 = 520;
|
||||
/// Like 516; local dynamic model.
|
||||
pub const R_AARCH64_TLSLD_MOVW_G0_NC = 521;
|
||||
/// TLS PC-rel. load imm. 20:2.
|
||||
pub const R_AARCH64_TLSLD_LD_PREL19 = 522;
|
||||
/// TLS DTP-rel. MOV{N,Z} 47:32.
|
||||
pub const R_AARCH64_TLSLD_MOVW_DTPREL_G2 = 523;
|
||||
/// TLS DTP-rel. MOV{N,Z} 31:16.
|
||||
pub const R_AARCH64_TLSLD_MOVW_DTPREL_G1 = 524;
|
||||
/// Likewise; MOVK; no check.
|
||||
pub const R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC = 525;
|
||||
/// TLS DTP-rel. MOV{N,Z} 15:0.
|
||||
pub const R_AARCH64_TLSLD_MOVW_DTPREL_G0 = 526;
|
||||
/// Likewise; MOVK; no check.
|
||||
pub const R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC = 527;
|
||||
/// DTP-rel. ADD imm. from 23:12.
|
||||
pub const R_AARCH64_TLSLD_ADD_DTPREL_HI12 = 528;
|
||||
/// DTP-rel. ADD imm. from 11:0.
|
||||
pub const R_AARCH64_TLSLD_ADD_DTPREL_LO12 = 529;
|
||||
/// Likewise; no ovfl. check.
|
||||
pub const R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC = 530;
|
||||
/// DTP-rel. LD/ST imm. 11:0.
|
||||
pub const R_AARCH64_TLSLD_LDST8_DTPREL_LO12 = 531;
|
||||
/// Likewise; no check.
|
||||
pub const R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC = 532;
|
||||
/// DTP-rel. LD/ST imm. 11:1.
|
||||
pub const R_AARCH64_TLSLD_LDST16_DTPREL_LO12 = 533;
|
||||
/// Likewise; no check.
|
||||
pub const R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC = 534;
|
||||
/// DTP-rel. LD/ST imm. 11:2.
|
||||
pub const R_AARCH64_TLSLD_LDST32_DTPREL_LO12 = 535;
|
||||
/// Likewise; no check.
|
||||
pub const R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC = 536;
|
||||
/// DTP-rel. LD/ST imm. 11:3.
|
||||
pub const R_AARCH64_TLSLD_LDST64_DTPREL_LO12 = 537;
|
||||
/// Likewise; no check.
|
||||
pub const R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC = 538;
|
||||
/// GOT-rel. MOV{N,Z} 31:16.
|
||||
pub const R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 = 539;
|
||||
/// GOT-rel. MOVK 15:0.
|
||||
pub const R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC = 540;
|
||||
/// Page-rel. ADRP 32:12.
|
||||
pub const R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 = 541;
|
||||
/// Direct LD off. 11:3.
|
||||
pub const R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC = 542;
|
||||
/// PC-rel. load imm. 20:2.
|
||||
pub const R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 = 543;
|
||||
/// TLS TP-rel. MOV{N,Z} 47:32.
|
||||
pub const R_AARCH64_TLSLE_MOVW_TPREL_G2 = 544;
|
||||
/// TLS TP-rel. MOV{N,Z} 31:16.
|
||||
pub const R_AARCH64_TLSLE_MOVW_TPREL_G1 = 545;
|
||||
/// Likewise; MOVK; no check.
|
||||
pub const R_AARCH64_TLSLE_MOVW_TPREL_G1_NC = 546;
|
||||
/// TLS TP-rel. MOV{N,Z} 15:0.
|
||||
pub const R_AARCH64_TLSLE_MOVW_TPREL_G0 = 547;
|
||||
/// Likewise; MOVK; no check.
|
||||
pub const R_AARCH64_TLSLE_MOVW_TPREL_G0_NC = 548;
|
||||
/// TP-rel. ADD imm. 23:12.
|
||||
pub const R_AARCH64_TLSLE_ADD_TPREL_HI12 = 549;
|
||||
/// TP-rel. ADD imm. 11:0.
|
||||
pub const R_AARCH64_TLSLE_ADD_TPREL_LO12 = 550;
|
||||
/// Likewise; no ovfl. check.
|
||||
pub const R_AARCH64_TLSLE_ADD_TPREL_LO12_NC = 551;
|
||||
/// TP-rel. LD/ST off. 11:0.
|
||||
pub const R_AARCH64_TLSLE_LDST8_TPREL_LO12 = 552;
|
||||
/// Likewise; no ovfl. check.
|
||||
pub const R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC = 553;
|
||||
/// TP-rel. LD/ST off. 11:1.
|
||||
pub const R_AARCH64_TLSLE_LDST16_TPREL_LO12 = 554;
|
||||
/// Likewise; no check.
|
||||
pub const R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC = 555;
|
||||
/// TP-rel. LD/ST off. 11:2.
|
||||
pub const R_AARCH64_TLSLE_LDST32_TPREL_LO12 = 556;
|
||||
/// Likewise; no check.
|
||||
pub const R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC = 557;
|
||||
/// TP-rel. LD/ST off. 11:3.
|
||||
pub const R_AARCH64_TLSLE_LDST64_TPREL_LO12 = 558;
|
||||
/// Likewise; no check.
|
||||
pub const R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC = 559;
|
||||
/// PC-rel. load immediate 20:2.
|
||||
pub const R_AARCH64_TLSDESC_LD_PREL19 = 560;
|
||||
/// PC-rel. ADR immediate 20:0.
|
||||
pub const R_AARCH64_TLSDESC_ADR_PREL21 = 561;
|
||||
/// Page-rel. ADRP imm. 32:12.
|
||||
pub const R_AARCH64_TLSDESC_ADR_PAGE21 = 562;
|
||||
/// Direct LD off. from 11:3.
|
||||
pub const R_AARCH64_TLSDESC_LD64_LO12 = 563;
|
||||
/// Direct ADD imm. from 11:0.
|
||||
pub const R_AARCH64_TLSDESC_ADD_LO12 = 564;
|
||||
/// GOT-rel. MOV{N,Z} imm. 31:16.
|
||||
pub const R_AARCH64_TLSDESC_OFF_G1 = 565;
|
||||
/// GOT-rel. MOVK imm. 15:0; no ck.
|
||||
pub const R_AARCH64_TLSDESC_OFF_G0_NC = 566;
|
||||
/// Relax LDR.
|
||||
pub const R_AARCH64_TLSDESC_LDR = 567;
|
||||
/// Relax ADD.
|
||||
pub const R_AARCH64_TLSDESC_ADD = 568;
|
||||
/// Relax BLR.
|
||||
pub const R_AARCH64_TLSDESC_CALL = 569;
|
||||
/// TP-rel. LD/ST off. 11:4.
|
||||
pub const R_AARCH64_TLSLE_LDST128_TPREL_LO12 = 570;
|
||||
/// Likewise; no check.
|
||||
pub const R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC = 571;
|
||||
/// DTP-rel. LD/ST imm. 11:4.
|
||||
pub const R_AARCH64_TLSLD_LDST128_DTPREL_LO12 = 572;
|
||||
/// Likewise; no check.
|
||||
pub const R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC = 573;
|
||||
/// Copy symbol at runtime.
|
||||
pub const R_AARCH64_COPY = 1024;
|
||||
/// Create GOT entry.
|
||||
pub const R_AARCH64_GLOB_DAT = 1025;
|
||||
/// Create PLT entry.
|
||||
pub const R_AARCH64_JUMP_SLOT = 1026;
|
||||
/// Adjust by program base.
|
||||
pub const R_AARCH64_RELATIVE = 1027;
|
||||
/// Module number, 64 bit.
|
||||
pub const R_AARCH64_TLS_DTPMOD = 1028;
|
||||
/// Module-relative offset, 64 bit.
|
||||
pub const R_AARCH64_TLS_DTPREL = 1029;
|
||||
/// TP-relative offset, 64 bit.
|
||||
pub const R_AARCH64_TLS_TPREL = 1030;
|
||||
/// TLS Descriptor.
|
||||
pub const R_AARCH64_TLSDESC = 1031;
|
||||
/// STT_GNU_IFUNC relocation.
|
||||
pub const R_AARCH64_IRELATIVE = 1032;
|
||||
|
||||
pub const STV = enum(u2) {
|
||||
DEFAULT = 0,
|
||||
INTERNAL = 1,
|
||||
|
Loading…
Reference in New Issue
Block a user