aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/llvm.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2023-07-23 06:15:26 -0400
committerJacob Young <jacobly0@users.noreply.github.com>2023-07-23 23:48:19 -0400
commit3fc2e36de2d125b2de255b03abc24bea30899caf (patch)
tree085e367b2948ddc20ecfd7e504695a915ec312c4 /src/codegen/llvm.zig
parent533111e849c5f8010f4e9b97c09c433058c5a3e0 (diff)
downloadzig-3fc2e36de2d125b2de255b03abc24bea30899caf.tar.gz
zig-3fc2e36de2d125b2de255b03abc24bea30899caf.zip
llvm: convert global assembly
Diffstat (limited to 'src/codegen/llvm.zig')
-rw-r--r--src/codegen/llvm.zig14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 43a4b98866..87ed52c31b 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -1034,15 +1034,11 @@ pub const Object = struct {
fn genModuleLevelAssembly(object: *Object) !void {
const mod = object.module;
- if (mod.global_assembly.count() == 0) return;
- var buffer = std.ArrayList(u8).init(mod.gpa);
- defer buffer.deinit();
- var it = mod.global_assembly.iterator();
- while (it.next()) |kv| {
- try buffer.appendSlice(kv.value_ptr.*);
- try buffer.append('\n');
- }
- object.llvm_module.setModuleInlineAsm2(buffer.items.ptr, buffer.items.len - 1);
+
+ const writer = object.builder.setModuleAsm();
+ var it = mod.global_assembly.valueIterator();
+ while (it.next()) |assembly| try writer.print("{s}\n", .{assembly.*});
+ try object.builder.finishModuleAsm();
}
fn resolveExportExternCollisions(object: *Object) !void {