aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-12-18 22:11:20 -0800
committerAndrew Kelley <andrew@ziglang.org>2025-01-15 15:11:36 -0800
commit4f8a6b0888c8d1df87d254b68344bb99edcfe57c (patch)
tree2685575e3ef8de7a9134e8a35a9067a67d8d365c /src/codegen.zig
parent5fac6f380ef77a7650047c65450aec0d3215da2d (diff)
downloadzig-4f8a6b0888c8d1df87d254b68344bb99edcfe57c.tar.gz
zig-4f8a6b0888c8d1df87d254b68344bb99edcfe57c.zip
wasm linker: implement data fixups
one hash table lookup per fixup
Diffstat (limited to 'src/codegen.zig')
-rw-r--r--src/codegen.zig10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index df88682466..3971d8f521 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -674,8 +674,9 @@ fn lowerUavRef(
.addend = @intCast(offset),
});
} else {
- try wasm.uav_fixups.append(gpa, .{
- .ip_index = uav.val,
+ try wasm.uav_fixups.ensureUnusedCapacity(gpa, 1);
+ wasm.uav_fixups.appendAssumeCapacity(.{
+ .uavs_exe_index = try wasm.refUavExe(pt, uav.val),
.offset = @intCast(code.items.len),
});
}
@@ -745,8 +746,9 @@ fn lowerNavRef(
.addend = @intCast(offset),
});
} else {
- try wasm.nav_fixups.append(gpa, .{
- .nav_index = nav_index,
+ try wasm.nav_fixups.ensureUnusedCapacity(gpa, 1);
+ wasm.nav_fixups.appendAssumeCapacity(.{
+ .navs_exe_index = try wasm.refNavExe(nav_index),
.offset = @intCast(code.items.len),
});
}