std.Target: Update CPU models/features for LLVM 20.

Closes #21818.
This commit is contained in:
Alex Rønne Petersen
2025-02-05 12:58:32 +01:00
parent 8ea2e1ded5
commit 4de368a1b6
17 changed files with 2042 additions and 408 deletions

View File

@@ -778,6 +778,10 @@ const targets = [_]ArchTarget{
.llvm_name = "armv9.5-a",
.zig_name = "v9_5a",
},
.{
.llvm_name = "armv9.6-a",
.zig_name = "v9_6a",
},
.{
.llvm_name = "armv9-a",
.zig_name = "v9a",
@@ -894,6 +898,10 @@ const targets = [_]ArchTarget{
.llvm_name = "v9.5a",
.zig_name = "has_v9_5a",
},
.{
.llvm_name = "v9.6a",
.zig_name = "has_v9_6a",
},
},
.extra_cpus = &.{
.{
@@ -1092,25 +1100,23 @@ const targets = [_]ArchTarget{
.name = "WebAssembly",
.td_name = "WebAssembly",
},
// For whatever reason, LLVM's WebAssembly backend sets these implied features in code
// rather than making them proper dependencies, so fix that here...
.feature_overrides = &.{
.{
.llvm_name = "bulk-memory",
.extra_deps = &.{"bulk_memory_opt"},
},
.{
.llvm_name = "reference-types",
.extra_deps = &.{"call_indirect_overlong"},
},
},
.extra_features = &.{
.{
.zig_name = "nontrapping_bulk_memory_len0",
.desc = "Bulk memory operations with a zero length do not trap",
.deps = &.{"bulk_memory"},
},
},
.extra_cpus = &.{
.{
.llvm_name = null,
.zig_name = "lime1",
.features = &.{
"bulk_memory",
"extended_const",
"multivalue",
"mutable_globals",
"nontrapping_fptoint",
"sign_ext",
},
.deps = &.{"bulk_memory_opt"},
},
},
},