aboutsummaryrefslogtreecommitdiff
path: root/src/link/Xcoff.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/link/Xcoff.zig')
-rw-r--r--src/link/Xcoff.zig49
1 files changed, 21 insertions, 28 deletions
diff --git a/src/link/Xcoff.zig b/src/link/Xcoff.zig
index 525d99d391..fd143713ff 100644
--- a/src/link/Xcoff.zig
+++ b/src/link/Xcoff.zig
@@ -13,14 +13,12 @@ const Path = std.Build.Cache.Path;
const Zcu = @import("../Zcu.zig");
const InternPool = @import("../InternPool.zig");
const Compilation = @import("../Compilation.zig");
+const codegen = @import("../codegen.zig");
const link = @import("../link.zig");
const trace = @import("../tracy.zig").trace;
const build_options = @import("build_options");
-const Air = @import("../Air.zig");
-const LlvmObject = @import("../codegen/llvm.zig").Object;
base: link.File,
-llvm_object: LlvmObject.Ptr,
pub fn createEmpty(
arena: Allocator,
@@ -36,23 +34,20 @@ pub fn createEmpty(
assert(!use_lld); // Caught by Compilation.Config.resolve.
assert(target.os.tag == .aix); // Caught by Compilation.Config.resolve.
- const llvm_object = try LlvmObject.create(arena, comp);
const xcoff = try arena.create(Xcoff);
xcoff.* = .{
.base = .{
.tag = .xcoff,
.comp = comp,
.emit = emit,
- .zcu_object_sub_path = emit.sub_path,
+ .zcu_object_basename = emit.sub_path,
.gc_sections = options.gc_sections orelse false,
.print_gc_sections = options.print_gc_sections,
.stack_size = options.stack_size orelse 0,
.allow_shlib_undefined = options.allow_shlib_undefined orelse false,
.file = null,
- .disable_lld_caching = options.disable_lld_caching,
.build_id = options.build_id,
},
- .llvm_object = llvm_object,
};
return xcoff;
@@ -70,27 +65,27 @@ pub fn open(
}
pub fn deinit(self: *Xcoff) void {
- self.llvm_object.deinit();
+ _ = self;
}
pub fn updateFunc(
self: *Xcoff,
pt: Zcu.PerThread,
func_index: InternPool.Index,
- air: Air,
- liveness: Air.Liveness,
+ mir: *const codegen.AnyMir,
) link.File.UpdateNavError!void {
- if (build_options.skip_non_native and builtin.object_format != .xcoff)
- @panic("Attempted to compile for object format that was disabled by build configuration");
-
- try self.llvm_object.updateFunc(pt, func_index, air, liveness);
+ _ = self;
+ _ = pt;
+ _ = func_index;
+ _ = mir;
+ unreachable; // we always use llvm
}
pub fn updateNav(self: *Xcoff, pt: Zcu.PerThread, nav: InternPool.Nav.Index) link.File.UpdateNavError!void {
- if (build_options.skip_non_native and builtin.object_format != .xcoff)
- @panic("Attempted to compile for object format that was disabled by build configuration");
-
- return self.llvm_object.updateNav(pt, nav);
+ _ = self;
+ _ = pt;
+ _ = nav;
+ unreachable; // we always use llvm
}
pub fn updateExports(
@@ -99,21 +94,19 @@ pub fn updateExports(
exported: Zcu.Exported,
export_indices: []const Zcu.Export.Index,
) !void {
- if (build_options.skip_non_native and builtin.object_format != .xcoff)
- @panic("Attempted to compile for object format that was disabled by build configuration");
-
- return self.llvm_object.updateExports(pt, exported, export_indices);
+ _ = self;
+ _ = pt;
+ _ = exported;
+ _ = export_indices;
+ unreachable; // we always use llvm
}
pub fn flush(self: *Xcoff, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: std.Progress.Node) link.File.FlushError!void {
- return self.flushModule(arena, tid, prog_node);
-}
-
-pub fn flushModule(self: *Xcoff, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: std.Progress.Node) link.File.FlushError!void {
if (build_options.skip_non_native and builtin.object_format != .xcoff)
@panic("Attempted to compile for object format that was disabled by build configuration");
+ _ = self;
+ _ = arena;
_ = tid;
-
- try self.base.emitLlvmObject(arena, self.llvm_object, prog_node);
+ _ = prog_node;
}