mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-10-28 10:45:48 +08:00
update_cpu_feature: replace generic aarch64 model with architecture level models
And use armv8a as the generic model. The old generic model was incoherent; it didn't even have v8a.
This commit is contained in:
4 files changed
+235
-11
No files matched your search
@@ -2045,6 +2045,7 @@ pub const Cpu = struct {
|
||||
/// Clang compatibility is important, consider using `baseline` instead.
|
||||
pub fn generic(arch: Arch) *const Model {
|
||||
return switch (arch) {
|
||||
.aarch64, .aarch64_be => &aarch64.cpu.armv8a,
|
||||
.alpha => &alpha.cpu.ev4,
|
||||
.amdgcn => &amdgcn.cpu.gfx600,
|
||||
.avr => &avr.cpu.avr1,
|
||||
|
||||
@@ -669,7 +669,7 @@ test parse {
|
||||
{
|
||||
const query = try Query.parse(.{
|
||||
.arch_os_abi = "aarch64-linux.3.10...4.4.1-gnu.2.27",
|
||||
.cpu_features = "generic+v8a",
|
||||
.cpu_features = "armv8a",
|
||||
});
|
||||
const target = try std.zig.system.resolveTargetQuery(io, query);
|
||||
|
||||
|
||||
+133
-10
@@ -2464,6 +2464,139 @@ pub const cpu = struct {
|
||||
.v9_2a,
|
||||
}),
|
||||
};
|
||||
pub const armv8_1a: CpuModel = .{
|
||||
.name = "armv8_1a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8_1a,
|
||||
}),
|
||||
};
|
||||
pub const armv8_2a: CpuModel = .{
|
||||
.name = "armv8_2a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8_2a,
|
||||
}),
|
||||
};
|
||||
pub const armv8_3a: CpuModel = .{
|
||||
.name = "armv8_3a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8_3a,
|
||||
}),
|
||||
};
|
||||
pub const armv8_4a: CpuModel = .{
|
||||
.name = "armv8_4a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8_4a,
|
||||
}),
|
||||
};
|
||||
pub const armv8_5a: CpuModel = .{
|
||||
.name = "armv8_5a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8_5a,
|
||||
}),
|
||||
};
|
||||
pub const armv8_6a: CpuModel = .{
|
||||
.name = "armv8_6a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8_6a,
|
||||
}),
|
||||
};
|
||||
pub const armv8_7a: CpuModel = .{
|
||||
.name = "armv8_7a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8_7a,
|
||||
}),
|
||||
};
|
||||
pub const armv8_8a: CpuModel = .{
|
||||
.name = "armv8_8a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8_8a,
|
||||
}),
|
||||
};
|
||||
pub const armv8_9a: CpuModel = .{
|
||||
.name = "armv8_9a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8_9a,
|
||||
}),
|
||||
};
|
||||
pub const armv8a: CpuModel = .{
|
||||
.name = "armv8a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8a,
|
||||
}),
|
||||
};
|
||||
pub const armv8r: CpuModel = .{
|
||||
.name = "armv8r",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v8r,
|
||||
}),
|
||||
};
|
||||
pub const armv9_1a: CpuModel = .{
|
||||
.name = "armv9_1a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v9_1a,
|
||||
}),
|
||||
};
|
||||
pub const armv9_2a: CpuModel = .{
|
||||
.name = "armv9_2a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v9_2a,
|
||||
}),
|
||||
};
|
||||
pub const armv9_3a: CpuModel = .{
|
||||
.name = "armv9_3a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v9_3a,
|
||||
}),
|
||||
};
|
||||
pub const armv9_4a: CpuModel = .{
|
||||
.name = "armv9_4a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v9_4a,
|
||||
}),
|
||||
};
|
||||
pub const armv9_5a: CpuModel = .{
|
||||
.name = "armv9_5a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v9_5a,
|
||||
}),
|
||||
};
|
||||
pub const armv9_6a: CpuModel = .{
|
||||
.name = "armv9_6a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v9_6a,
|
||||
}),
|
||||
};
|
||||
pub const armv9_7a: CpuModel = .{
|
||||
.name = "armv9_7a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v9_7a,
|
||||
}),
|
||||
};
|
||||
pub const armv9a: CpuModel = .{
|
||||
.name = "armv9a",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.v9a,
|
||||
}),
|
||||
};
|
||||
pub const c1_nano: CpuModel = .{
|
||||
.name = "c1_nano",
|
||||
.llvm_name = "c1-nano",
|
||||
@@ -3393,16 +3526,6 @@ pub const cpu = struct {
|
||||
.v9_2a,
|
||||
}),
|
||||
};
|
||||
pub const generic: CpuModel = .{
|
||||
.name = "generic",
|
||||
.llvm_name = "generic",
|
||||
.features = featureSet(&[_]Feature{
|
||||
.ete,
|
||||
.fuse_adrp_add,
|
||||
.fuse_aes,
|
||||
.neon,
|
||||
}),
|
||||
};
|
||||
pub const grace: CpuModel = .{
|
||||
.name = "grace",
|
||||
.llvm_name = "grace",
|
||||
|
||||
@@ -758,8 +758,108 @@ const targets = [_]ArchTarget{
|
||||
.llvm_name = "apple-latest",
|
||||
.omit = true,
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.omit = true,
|
||||
},
|
||||
},
|
||||
.extra_models = &.{
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8a",
|
||||
.features = &.{"v8a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8r",
|
||||
.features = &.{"v8r"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8_1a",
|
||||
.features = &.{"v8_1a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8_2a",
|
||||
.features = &.{"v8_2a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8_3a",
|
||||
.features = &.{"v8_3a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8_4a",
|
||||
.features = &.{"v8_4a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8_5a",
|
||||
.features = &.{"v8_5a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8_6a",
|
||||
.features = &.{"v8_6a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8_7a",
|
||||
.features = &.{"v8_7a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8_8a",
|
||||
.features = &.{"v8_8a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv8_9a",
|
||||
.features = &.{"v8_9a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv9a",
|
||||
.features = &.{"v9a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv9_1a",
|
||||
.features = &.{"v9_1a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv9_2a",
|
||||
.features = &.{"v9_2a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv9_3a",
|
||||
.features = &.{"v9_3a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv9_4a",
|
||||
.features = &.{"v9_4a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv9_5a",
|
||||
.features = &.{"v9_5a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv9_6a",
|
||||
.features = &.{"v9_6a"},
|
||||
},
|
||||
.{
|
||||
.llvm_name = "generic",
|
||||
.zig_name = "armv9_7a",
|
||||
.features = &.{"v9_7a"},
|
||||
},
|
||||
|
||||
.{
|
||||
.llvm_name = null,
|
||||
.zig_name = "exynos_m1",
|
||||
|
||||
Reference in new issue
Block a user