aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/x86_64/CodeGen.zig
diff options
context:
space:
mode:
authorMatthew Lugg <mlugg@mlugg.co.uk>2025-12-06 15:27:57 +0000
committerMatthew Lugg <mlugg@mlugg.co.uk>2025-12-22 12:55:16 +0000
commit18bc7e802f8b4460216ae2169f81abddd108599f (patch)
treee0ae2276660fd37218bd4c66c4f33b8aabe10f7d /src/codegen/x86_64/CodeGen.zig
parent9ae4e38ca27e1b14e84f58594b8be4513f1fcfbe (diff)
downloadzig-18bc7e802f8b4460216ae2169f81abddd108599f.tar.gz
zig-18bc7e802f8b4460216ae2169f81abddd108599f.zip
compiler: replace thread pool with `std.Io`
Eliminate the `std.Thread.Pool` used in the compiler for concurrency and asynchrony, in favour of the new `std.Io.async` and `std.Io.concurrent` primitives. This removes the last usage of `std.Thread.Pool` in the Zig repository.
Diffstat (limited to 'src/codegen/x86_64/CodeGen.zig')
-rw-r--r--src/codegen/x86_64/CodeGen.zig18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/codegen/x86_64/CodeGen.zig b/src/codegen/x86_64/CodeGen.zig
index 7e8e78334a..382c9e9c3c 100644
--- a/src/codegen/x86_64/CodeGen.zig
+++ b/src/codegen/x86_64/CodeGen.zig
@@ -180204,6 +180204,7 @@ fn airSplat(self: *CodeGen, inst: Air.Inst.Index) !void {
fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
const pt = self.pt;
const zcu = pt.zcu;
+ const io = zcu.comp.io;
const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op;
const extra = self.air.extraData(Air.Bin, pl_op.payload).data;
const ty = self.typeOfIndex(inst);
@@ -180477,7 +180478,7 @@ fn airSelect(self: *CodeGen, inst: Air.Inst.Index) !void {
for (mask_elems, 0..) |*elem, bit| elem.* = @intCast(bit / elem_bits);
const mask_mcv = try self.lowerValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = mask_ty.toIntern(),
- .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, mask_elems, .maybe_embedded_nulls) },
+ .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, io, pt.tid, mask_elems, .maybe_embedded_nulls) },
} })));
const mask_mem: Memory = .{
.base = .{ .reg = try self.copyToTmpRegister(.usize, mask_mcv.address()) },
@@ -188476,6 +188477,7 @@ const Select = struct {
fn create(spec: TempSpec, s: *const Select) InnerError!struct { Temp, bool } {
const cg = s.cg;
const pt = cg.pt;
+ const io = pt.zcu.comp.io;
return switch (spec.kind) {
.unused => .{ undefined, false },
.any => .{ try cg.tempAlloc(spec.type), true },
@@ -188693,7 +188695,7 @@ const Select = struct {
};
return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = spec.type.toIntern(),
- .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
+ .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, io, pt.tid, elems, .maybe_embedded_nulls) },
} }))), true };
},
.pshufb_trunc_mem => |trunc_spec| {
@@ -188720,7 +188722,7 @@ const Select = struct {
};
return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = spec.type.toIntern(),
- .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
+ .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, io, pt.tid, elems, .maybe_embedded_nulls) },
} }))), true };
},
.pand_trunc_mem => |trunc_spec| {
@@ -188734,7 +188736,7 @@ const Select = struct {
while (index < elems.len) : (index += from_bytes) @memset(elems[index..][0..to_bytes], std.math.maxInt(u8));
return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = spec.type.toIntern(),
- .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
+ .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, io, pt.tid, elems, .maybe_embedded_nulls) },
} }))), true };
},
.pand_mask_mem => |mask_spec| {
@@ -188753,7 +188755,7 @@ const Select = struct {
@memset(elems[mask_len..], invert_mask);
return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = spec.type.toIntern(),
- .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
+ .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, io, pt.tid, elems, .maybe_embedded_nulls) },
} }))), true };
},
.ptest_mask_mem => |mask_ref| {
@@ -188778,7 +188780,7 @@ const Select = struct {
}
return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = spec.type.toIntern(),
- .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
+ .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, io, pt.tid, elems, .maybe_embedded_nulls) },
} }))), true };
},
.pshufb_bswap_mem => |bswap_spec| {
@@ -188794,7 +188796,7 @@ const Select = struct {
};
return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = spec.type.toIntern(),
- .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
+ .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, io, pt.tid, elems, .maybe_embedded_nulls) },
} }))), true };
},
.bits_mem => |direction| {
@@ -188808,7 +188810,7 @@ const Select = struct {
};
return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
.ty = spec.type.toIntern(),
- .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
+ .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, io, pt.tid, elems, .maybe_embedded_nulls) },
} }))), true };
},
.splat_int_mem => |splat_spec| {