Merge pull request #20975 from squeek502/cpu-features-update

update_cpu_features: Fixes and updates
This commit is contained in:
Andrew Kelley 2024-08-07 22:48:57 -07:00 committed by GitHub
commit 468b976f63
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 8 deletions

View File

@ -86,6 +86,7 @@ pub const Feature = enum {
has_v9_2a, has_v9_2a,
has_v9_3a, has_v9_3a,
has_v9_4a, has_v9_4a,
has_v9_5a,
has_v9a, has_v9a,
hwdiv, hwdiv,
hwdiv_arm, hwdiv_arm,
@ -754,6 +755,13 @@ pub const all_features = blk: {
.has_v9_3a, .has_v9_3a,
}), }),
}; };
result[@intFromEnum(Feature.has_v9_5a)] = .{
.llvm_name = "v9.5a",
.description = "Support ARM v9.5a instructions",
.dependencies = featureSet(&[_]Feature{
.has_v9_4a,
}),
};
result[@intFromEnum(Feature.has_v9a)] = .{ result[@intFromEnum(Feature.has_v9a)] = .{
.llvm_name = "v9a", .llvm_name = "v9a",
.description = "Support ARM v9a instructions", .description = "Support ARM v9a instructions",
@ -1582,20 +1590,13 @@ pub const all_features = blk: {
.db, .db,
.dsp, .dsp,
.fp_armv8, .fp_armv8,
.has_v9_5a,
.mp, .mp,
.ras, .ras,
.trustzone, .trustzone,
.v9_5a,
.virtualization, .virtualization,
}), }),
}; };
result[@intFromEnum(Feature.v9_5a)] = .{
.llvm_name = "v9.5a",
.description = "Support ARM v9.5a instructions",
.dependencies = featureSet(&[_]Feature{
.has_v9_4a,
}),
};
result[@intFromEnum(Feature.v9a)] = .{ result[@intFromEnum(Feature.v9a)] = .{
.llvm_name = "armv9-a", .llvm_name = "armv9-a",
.description = "ARMv9a architecture", .description = "ARMv9a architecture",

View File

@ -78,6 +78,7 @@ pub const Feature = enum {
svnapot, svnapot,
svpbmt, svpbmt,
tagged_globals, tagged_globals,
unaligned_scalar_mem,
use_postra_scheduler, use_postra_scheduler,
v, v,
ventana_veyron, ventana_veyron,
@ -584,6 +585,11 @@ pub const all_features = blk: {
.description = "Use an instruction sequence for taking the address of a global that allows a memory tag in the upper address bits", .description = "Use an instruction sequence for taking the address of a global that allows a memory tag in the upper address bits",
.dependencies = featureSet(&[_]Feature{}), .dependencies = featureSet(&[_]Feature{}),
}; };
result[@intFromEnum(Feature.unaligned_scalar_mem)] = .{
.llvm_name = "unaligned-scalar-mem",
.description = "Has reasonably performant unaligned scalar loads and stores",
.dependencies = featureSet(&[_]Feature{}),
};
result[@intFromEnum(Feature.use_postra_scheduler)] = .{ result[@intFromEnum(Feature.use_postra_scheduler)] = .{
.llvm_name = "use-postra-scheduler", .llvm_name = "use-postra-scheduler",
.description = "Schedule again after register allocation", .description = "Schedule again after register allocation",

View File

@ -809,6 +809,10 @@ const llvm_targets = [_]LlvmTarget{
.llvm_name = "v9.4a", .llvm_name = "v9.4a",
.zig_name = "has_v9_4a", .zig_name = "has_v9_4a",
}, },
.{
.llvm_name = "v9.5a",
.zig_name = "has_v9_5a",
},
}, },
// LLVM removed support for v2 and v3 but zig wants to support targeting old hardware // LLVM removed support for v2 and v3 but zig wants to support targeting old hardware
.extra_features = &.{ .extra_features = &.{
@ -990,6 +994,7 @@ const llvm_targets = [_]LlvmTarget{
"icelake_client", "icelake_client",
"icelake_server", "icelake_server",
"graniterapids_d", "graniterapids_d",
"arrowlake_s",
}, },
}, },
.{ .{