aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-01-09 19:51:01 +0100
committerJakub Konka <kubkon@jakubkonka.com>2024-01-24 12:34:38 +0100
commitdd0addab1fe11b019e83c0050eedfa0ec67eb408 (patch)
tree852e59e811627cb8fb13f4091c5e1532fccda706 /src/codegen.zig
parent2f94dc939e8acf0dab4cf1f3cf01b132ac6fdd3c (diff)
downloadzig-dd0addab1fe11b019e83c0050eedfa0ec67eb408.tar.gz
zig-dd0addab1fe11b019e83c0050eedfa0ec67eb408.zip
macho: get the ball rolling!
Diffstat (limited to 'src/codegen.zig')
-rw-r--r--src/codegen.zig24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index 1ac8626a79..f9263c2a69 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -984,20 +984,22 @@ fn genDeclRef(
}
return GenResult.mcv(.{ .load_symbol = sym.esym_index });
} else if (lf.cast(link.File.MachO)) |macho_file| {
+ _ = macho_file;
if (is_extern) {
// TODO make this part of getGlobalSymbol
- const name = zcu.intern_pool.stringToSlice(decl.name);
- const sym_name = try std.fmt.allocPrint(gpa, "_{s}", .{name});
- defer gpa.free(sym_name);
- const global_index = try macho_file.addUndefined(sym_name, .{ .add_got = true });
- return GenResult.mcv(.{ .load_got = link.File.MachO.global_symbol_bit | global_index });
- }
- const atom_index = try macho_file.getOrCreateAtomForDecl(decl_index);
- const sym_index = macho_file.getAtom(atom_index).getSymbolIndex().?;
- if (is_threadlocal) {
- return GenResult.mcv(.{ .load_tlv = sym_index });
+ // const name = zcu.intern_pool.stringToSlice(decl.name);
+ // const sym_name = try std.fmt.allocPrint(gpa, "_{s}", .{name});
+ // defer gpa.free(sym_name);
+ // const global_index = try macho_file.addUndefined(sym_name, .{ .add_got = true });
+ // return GenResult.mcv(.{ .load_got = link.File.MachO.global_symbol_bit | global_index });
}
- return GenResult.mcv(.{ .load_got = sym_index });
+ // const atom_index = try macho_file.getOrCreateAtomForDecl(decl_index);
+ // const sym_index = macho_file.getAtom(atom_index).getSymbolIndex().?;
+ // if (is_threadlocal) {
+ // return GenResult.mcv(.{ .load_tlv = sym_index });
+ // }
+ // return GenResult.mcv(.{ .load_got = sym_index });
+ @panic("TODO genDeclRef");
} else if (lf.cast(link.File.Coff)) |coff_file| {
if (is_extern) {
const name = zcu.intern_pool.stringToSlice(decl.name);