diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2023-07-23 06:15:26 -0400 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2023-07-23 23:48:19 -0400 |
| commit | 3fc2e36de2d125b2de255b03abc24bea30899caf (patch) | |
| tree | 085e367b2948ddc20ecfd7e504695a915ec312c4 /src/codegen/llvm.zig | |
| parent | 533111e849c5f8010f4e9b97c09c433058c5a3e0 (diff) | |
| download | zig-3fc2e36de2d125b2de255b03abc24bea30899caf.tar.gz zig-3fc2e36de2d125b2de255b03abc24bea30899caf.zip | |
llvm: convert global assembly
Diffstat (limited to 'src/codegen/llvm.zig')
| -rw-r--r-- | src/codegen/llvm.zig | 14 |
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 { |
