aboutsummaryrefslogtreecommitdiff
path: root/src/arch/sparc64/CodeGen.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2023-09-05 23:10:04 +0200
committerJakub Konka <kubkon@jakubkonka.com>2023-09-06 13:14:00 +0200
commita9df098cd2dd04e2c363b439233ff2e14e198413 (patch)
treee9b6373bcc6bd41feddc4bf00325b0c4ef2383ed /src/arch/sparc64/CodeGen.zig
parentd9fffd431a89ed4104bcc0b2165bfb9917cdd82b (diff)
downloadzig-a9df098cd2dd04e2c363b439233ff2e14e198413.tar.gz
zig-a9df098cd2dd04e2c363b439233ff2e14e198413.zip
elf: make everything upside down - track by Symbol.Index rather than Atom.Index
Diffstat (limited to 'src/arch/sparc64/CodeGen.zig')
-rw-r--r--src/arch/sparc64/CodeGen.zig8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/arch/sparc64/CodeGen.zig b/src/arch/sparc64/CodeGen.zig
index 3a3f69ce37..b0a3573ff9 100644
--- a/src/arch/sparc64/CodeGen.zig
+++ b/src/arch/sparc64/CodeGen.zig
@@ -1349,10 +1349,10 @@ fn airCall(self: *Self, inst: Air.Inst.Index, modifier: std.builtin.CallModifier
switch (mod.intern_pool.indexToKey(func_value.ip_index)) {
.func => |func| {
const got_addr = if (self.bin_file.cast(link.File.Elf)) |elf_file| blk: {
- const atom_index = try elf_file.getOrCreateAtomForDecl(func.owner_decl);
- const atom = elf_file.atom(atom_index);
- _ = try atom.getOrCreateOffsetTableEntry(elf_file);
- break :blk @as(u32, @intCast(atom.getOffsetTableAddress(elf_file)));
+ const sym_index = try elf_file.getOrCreateMetadataForDecl(func.owner_decl);
+ const sym = elf_file.symbol(sym_index);
+ _ = try sym.getOrCreateOffsetTableEntry(elf_file);
+ break :blk @as(u32, @intCast(sym.getOffsetTableAddress(elf_file)));
} else unreachable;
try self.genSetReg(Type.usize, .o7, .{ .memory = got_addr });