authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-09-17 07:43:43+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-09-17 15:27:52+02:00
logedad096b772d58bc39d227b0ba4d13b641ca99e6
treed0847c1f3793a1c69e6e93bcde35cd5b1c938f96
parent055064a37a24b0150b6c7ae426a8f2279819e7de
signature Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.zig.system: remove some pointless parameters being passed around


3 files changed, 11 insertions(+), 19 deletions(-)

lib/std/zig/system.zig+5-5
......@@ -374,10 +374,10 @@ pub fn resolveTargetQuery(io: Io, query: Target.Query) DetectError!Target {
374374 }
375375
376376 var cpu = switch (query.cpu_model) {
377 .native => detectNativeCpuAndFeatures(io, query_cpu_arch, os, query),
377 .native => detectNativeCpuAndFeatures(io, query_cpu_arch),
378378 .baseline => Target.Cpu.baseline(query_cpu_arch, os),
379379 .determined_by_arch_os => if (query.cpu_arch == null)
380 detectNativeCpuAndFeatures(io, query_cpu_arch, os, query)
380 detectNativeCpuAndFeatures(io, query_cpu_arch)
381381 else
382382 Target.Cpu.baseline(query_cpu_arch, os),
383383 .explicit => |model| model.toCpu(query_cpu_arch),
......@@ -535,13 +535,13 @@ fn updateCpuFeatures(
535535 set.removeFeatureSet(sub_set);
536536}
537537
538fn detectNativeCpuAndFeatures(io: Io, cpu_arch: Target.Cpu.Arch, os: Target.Os, query: Target.Query) ?Target.Cpu {
538fn detectNativeCpuAndFeatures(io: Io, cpu_arch: Target.Cpu.Arch) ?Target.Cpu {
539539 // Here we switch on a comptime value rather than `cpu_arch`. This is valid because `cpu_arch`,
540540 // although it is a runtime value, is guaranteed to be one of the architectures in the set
541541 // of the respective switch prong.
542542 switch (builtin.cpu.arch) {
543 .loongarch32, .loongarch64 => return @import("system/loongarch.zig").detectNativeCpuAndFeatures(cpu_arch, os, query),
544 .x86_64, .x86 => return @import("system/x86.zig").detectNativeCpuAndFeatures(cpu_arch, os, query),
543 .loongarch32, .loongarch64 => return @import("system/loongarch.zig").detectNativeCpuAndFeatures(cpu_arch),
544 .x86_64, .x86 => return @import("system/x86.zig").detectNativeCpuAndFeatures(cpu_arch),
545545 else => {},
546546 }
547547
lib/std/zig/system/loongarch.zig+1-8
......@@ -18,14 +18,7 @@ fn setFeature(cpu: *std.Target.Cpu, feature: std.Target.loongarch.Feature, enabl
1818 if (enabled) cpu.features.addFeature(idx) else cpu.features.removeFeature(idx);
1919}
2020
21pub fn detectNativeCpuAndFeatures(
22 arch: std.Target.Cpu.Arch,
23 os: std.Target.Os,
24 query: std.Target.Query,
25) ?std.Target.Cpu {
26 _ = os;
27 _ = query;
28
21pub fn detectNativeCpuAndFeatures(arch: std.Target.Cpu.Arch) ?std.Target.Cpu {
2922 const variant: Variant = @fromBackingInt(@intCast(cpucfg(1) & 0b11));
3023
3124 var cpu: std.Target.Cpu = .{
lib/std/zig/system/x86.zig+5-6
......@@ -41,8 +41,7 @@ inline fn hasMask(input: u32, mask: u32) bool {
4141 return (input & mask) == mask;
4242}
4343
44pub fn detectNativeCpuAndFeatures(arch: Target.Cpu.Arch, os: Target.Os, query: Target.Query) Target.Cpu {
45 _ = query;
44pub fn detectNativeCpuAndFeatures(arch: Target.Cpu.Arch) Target.Cpu {
4645 var cpu = Target.Cpu{
4746 .arch = arch,
4847 .model = Target.Cpu.Model.generic(arch),
......@@ -50,7 +49,7 @@ pub fn detectNativeCpuAndFeatures(arch: Target.Cpu.Arch, os: Target.Os, query: T
5049 };
5150
5251 // First we detect features, to use as hints when detecting CPU Model.
53 detectNativeFeatures(&cpu, os.tag);
52 detectNativeFeatures(&cpu);
5453
5554 var leaf = cpuid(0, 0);
5655 const max_leaf = leaf.eax;
......@@ -90,7 +89,7 @@ pub fn detectNativeCpuAndFeatures(arch: Target.Cpu.Arch, os: Target.Os, query: T
9089 // Add the CPU model's feature set into the working set, but then
9190 // override with actual detected features again.
9291 cpu.features.addFeatureSet(cpu.model.features);
93 detectNativeFeatures(&cpu, os.tag);
92 detectNativeFeatures(&cpu);
9493
9594 cpu.features.populateDependencies(cpu.arch.allFeaturesList());
9695
......@@ -215,7 +214,7 @@ fn detectAmdProcessor(cpu: *const Target.Cpu, family: u32, model: u32) ?*const T
215214 };
216215}
217216
218fn detectNativeFeatures(cpu: *Target.Cpu, os_tag: Target.Os.Tag) void {
217fn detectNativeFeatures(cpu: *Target.Cpu) void {
219218 var leaf = cpuid(0, 0);
220219
221220 const max_level = leaf.eax;
......@@ -268,7 +267,7 @@ fn detectNativeFeatures(cpu: *Target.Cpu, os_tag: Target.Os.Tag) void {
268267 // Darwin lazily saves the AVX512 context on first use: trust that the OS will
269268 // save the AVX512 context if we use AVX512 instructions, even if the bit is not
270269 // set right now.
271 const has_avx512_save = if (os_tag.isDarwin())
270 const has_avx512_save = if (builtin.target.os.tag.isDarwin())
272271 true
273272 else
274273 xcr0.zmm_hi256 and xcr0.hi16_zmm;