authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-03-08 14:47:59+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2024-03-08 22:46:18+01:00
log7c5ddb6ae410a861e139ce36dec94434392bfdad
tree3177d5a8a9475e238705afb8b01654849c4fd968
parent47100bd40a026710076d2d9be6e03937201e8adc

elf+aarch64: handle PREL32 reloc


1 files changed, 6 insertions(+), 0 deletions(-)

src/link/Elf/Atom.zig+6
......@@ -1658,6 +1658,7 @@ const aarch64 = struct {
16581658 .LDST32_ABS_LO12_NC,
16591659 .LDST64_ABS_LO12_NC,
16601660 .LDST128_ABS_LO12_NC,
1661 .PREL32,
16611662 => {},
16621663
16631664 else => try atom.reportUnhandledRelocError(rel, elf_file),
......@@ -1716,6 +1717,11 @@ const aarch64 = struct {
17161717 aarch64_util.writeBranchImm(disp, code);
17171718 },
17181719
1720 .PREL32 => {
1721 const value = math.cast(i32, S + A - P) orelse return error.Overflow;
1722 mem.writeInt(u32, code, @bitCast(value), .little);
1723 },
1724
17191725 .ADR_PREL_PG_HI21 => {
17201726 // TODO: check for relaxation of ADRP+ADD
17211727 const saddr = @as(u64, @intCast(P));