diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2023-09-05 23:10:04 +0200 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2023-09-06 13:14:00 +0200 |
| commit | a9df098cd2dd04e2c363b439233ff2e14e198413 (patch) | |
| tree | e9b6373bcc6bd41feddc4bf00325b0c4ef2383ed /src/codegen.zig | |
| parent | d9fffd431a89ed4104bcc0b2165bfb9917cdd82b (diff) | |
| download | zig-a9df098cd2dd04e2c363b439233ff2e14e198413.tar.gz zig-a9df098cd2dd04e2c363b439233ff2e14e198413.zip | |
elf: make everything upside down - track by Symbol.Index rather than Atom.Index
Diffstat (limited to 'src/codegen.zig')
| -rw-r--r-- | src/codegen.zig | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 75f42ff876..d3f44bb2f5 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -854,10 +854,10 @@ fn genDeclRef( const is_threadlocal = tv.val.isPtrToThreadLocal(mod) and !bin_file.options.single_threaded; if (bin_file.cast(link.File.Elf)) |elf_file| { - const atom_index = try elf_file.getOrCreateAtomForDecl(decl_index); - const atom = elf_file.atom(atom_index); - _ = try atom.getOrCreateOffsetTableEntry(elf_file); - return GenResult.mcv(.{ .memory = atom.getOffsetTableAddress(elf_file) }); + const sym_index = try elf_file.getOrCreateMetadataForDecl(decl_index); + const sym = elf_file.symbol(sym_index); + _ = try sym.getOrCreateOffsetTableEntry(elf_file); + return GenResult.mcv(.{ .memory = sym.getOffsetTableAddress(elf_file) }); } else if (bin_file.cast(link.File.MachO)) |macho_file| { const atom_index = try macho_file.getOrCreateAtomForDecl(decl_index); const sym_index = macho_file.getAtom(atom_index).getSymbolIndex().?; @@ -892,7 +892,7 @@ fn genUnnamedConst( return GenResult.fail(bin_file.allocator, src_loc, "lowering unnamed constant failed: {s}", .{@errorName(err)}); }; if (bin_file.cast(link.File.Elf)) |elf_file| { - return GenResult.mcv(.{ .memory = elf_file.symbol(local_sym_index).st_value }); + return GenResult.mcv(.{ .memory = elf_file.symbol(local_sym_index).value }); } else if (bin_file.cast(link.File.MachO)) |_| { return GenResult.mcv(.{ .load_direct = local_sym_index }); } else if (bin_file.cast(link.File.Coff)) |_| { |
