aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.zig
diff options
context:
space:
mode:
authorJacob G-W <jacoblevgw@gmail.com>2021-08-30 08:52:29 -0400
committerJacob G-W <jacoblevgw@gmail.com>2021-09-18 19:44:41 -0400
commit84ab03a875b2a1b9d38f094242ddbd54f133c1a5 (patch)
tree177803b056903400b587cda7172482f3723d520a /src/codegen.zig
parent4cb2d6bc3e3ab7c27cabdc7318abaea1afc34654 (diff)
downloadzig-84ab03a875b2a1b9d38f094242ddbd54f133c1a5.tar.gz
zig-84ab03a875b2a1b9d38f094242ddbd54f133c1a5.zip
plan9 linker: get ready to delete allocateDeclIndexes
Diffstat (limited to 'src/codegen.zig')
-rw-r--r--src/codegen.zig3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index 7dc605ba73..20243ba861 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -2965,6 +2965,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type {
}
if (self.air.value(callee)) |func_value| {
if (func_value.castTag(.function)) |func_payload| {
+ try p9.seeDecl(func_payload.data.owner_decl);
const ptr_bits = self.target.cpu.arch.ptrBitWidth();
const ptr_bytes: u64 = @divExact(ptr_bits, 8);
const got_addr = p9.bases.data;
@@ -3012,6 +3013,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type {
}
if (self.air.value(callee)) |func_value| {
if (func_value.castTag(.function)) |func_payload| {
+ try p9.seeDecl(func_payload.data.owner_decl);
const ptr_bits = self.target.cpu.arch.ptrBitWidth();
const ptr_bytes: u64 = @divExact(ptr_bits, 8);
const got_addr = p9.bases.data;
@@ -4939,6 +4941,7 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type {
const got_addr = coff_file.offset_table_virtual_address + decl.link.coff.offset_table_index * ptr_bytes;
return MCValue{ .memory = got_addr };
} else if (self.bin_file.cast(link.File.Plan9)) |p9| {
+ try p9.seeDecl(decl);
const got_addr = p9.bases.data + decl.link.plan9.got_index.? * ptr_bytes;
return MCValue{ .memory = got_addr };
} else {