| author | |
| committer | |
| log | 468b976f63b0938f2a799261b536167959c059b4 |
| tree | 9af0e9f74eef0a4cf0732d5600eda9ad425a68d4 |
| parent | 7a7421c74970a0d52286fa33086e80af29fc8d0b |
| parent | e912411fbedab06f4b7313404c9bb88f9e9e6c44 |
| signature |
update_cpu_features: Fixes and updates3 files changed, 20 insertions(+), 8 deletions(-)
lib/std/Target/arm.zig+9-8| ... | @@ -86,6 +86,7 @@ pub const Feature = enum { | ... | @@ -86,6 +86,7 @@ pub const Feature = enum { |
| 86 | has_v9_2a, | 86 | has_v9_2a, |
| 87 | has_v9_3a, | 87 | has_v9_3a, |
| 88 | has_v9_4a, | 88 | has_v9_4a, |
| 89 | has_v9_5a, | ||
| 89 | has_v9a, | 90 | has_v9a, |
| 90 | hwdiv, | 91 | hwdiv, |
| 91 | hwdiv_arm, | 92 | hwdiv_arm, |
| ... | @@ -754,6 +755,13 @@ pub const all_features = blk: { | ... | @@ -754,6 +755,13 @@ pub const all_features = blk: { |
| 754 | .has_v9_3a, | 755 | .has_v9_3a, |
| 755 | }), | 756 | }), |
| 756 | }; | 757 | }; |
| 758 | result[@intFromEnum(Feature.has_v9_5a)] = .{ | ||
| 759 | .llvm_name = "v9.5a", | ||
| 760 | .description = "Support ARM v9.5a instructions", | ||
| 761 | .dependencies = featureSet(&[_]Feature{ | ||
| 762 | .has_v9_4a, | ||
| 763 | }), | ||
| 764 | }; | ||
| 757 | result[@intFromEnum(Feature.has_v9a)] = .{ | 765 | result[@intFromEnum(Feature.has_v9a)] = .{ |
| 758 | .llvm_name = "v9a", | 766 | .llvm_name = "v9a", |
| 759 | .description = "Support ARM v9a instructions", | 767 | .description = "Support ARM v9a instructions", |
| ... | @@ -1582,20 +1590,13 @@ pub const all_features = blk: { | ... | @@ -1582,20 +1590,13 @@ pub const all_features = blk: { |
| 1582 | .db, | 1590 | .db, |
| 1583 | .dsp, | 1591 | .dsp, |
| 1584 | .fp_armv8, | 1592 | .fp_armv8, |
| 1593 | .has_v9_5a, | ||
| 1585 | .mp, | 1594 | .mp, |
| 1586 | .ras, | 1595 | .ras, |
| 1587 | .trustzone, | 1596 | .trustzone, |
| 1588 | .v9_5a, | ||
| 1589 | .virtualization, | 1597 | .virtualization, |
| 1590 | }), | 1598 | }), |
| 1591 | }; | 1599 | }; |
| 1592 | result[@intFromEnum(Feature.v9_5a)] = .{ | ||
| 1593 | .llvm_name = "v9.5a", | ||
| 1594 | .description = "Support ARM v9.5a instructions", | ||
| 1595 | .dependencies = featureSet(&[_]Feature{ | ||
| 1596 | .has_v9_4a, | ||
| 1597 | }), | ||
| 1598 | }; | ||
| 1599 | result[@intFromEnum(Feature.v9a)] = .{ | 1600 | result[@intFromEnum(Feature.v9a)] = .{ |
| 1600 | .llvm_name = "armv9-a", | 1601 | .llvm_name = "armv9-a", |
| 1601 | .description = "ARMv9a architecture", | 1602 | .description = "ARMv9a architecture", |
lib/std/Target/riscv.zig+6| ... | @@ -78,6 +78,7 @@ pub const Feature = enum { | ... | @@ -78,6 +78,7 @@ pub const Feature = enum { |
| 78 | svnapot, | 78 | svnapot, |
| 79 | svpbmt, | 79 | svpbmt, |
| 80 | tagged_globals, | 80 | tagged_globals, |
| 81 | unaligned_scalar_mem, | ||
| 81 | use_postra_scheduler, | 82 | use_postra_scheduler, |
| 82 | v, | 83 | v, |
| 83 | ventana_veyron, | 84 | ventana_veyron, |
| ... | @@ -584,6 +585,11 @@ pub const all_features = blk: { | ... | @@ -584,6 +585,11 @@ pub const all_features = blk: { |
| 584 | .description = "Use an instruction sequence for taking the address of a global that allows a memory tag in the upper address bits", | 585 | .description = "Use an instruction sequence for taking the address of a global that allows a memory tag in the upper address bits", |
| 585 | .dependencies = featureSet(&[_]Feature{}), | 586 | .dependencies = featureSet(&[_]Feature{}), |
| 586 | }; | 587 | }; |
| 588 | result[@intFromEnum(Feature.unaligned_scalar_mem)] = .{ | ||
| 589 | .llvm_name = "unaligned-scalar-mem", | ||
| 590 | .description = "Has reasonably performant unaligned scalar loads and stores", | ||
| 591 | .dependencies = featureSet(&[_]Feature{}), | ||
| 592 | }; | ||
| 587 | result[@intFromEnum(Feature.use_postra_scheduler)] = .{ | 593 | result[@intFromEnum(Feature.use_postra_scheduler)] = .{ |
| 588 | .llvm_name = "use-postra-scheduler", | 594 | .llvm_name = "use-postra-scheduler", |
| 589 | .description = "Schedule again after register allocation", | 595 | .description = "Schedule again after register allocation", |
tools/update_cpu_features.zig+5| ... | @@ -809,6 +809,10 @@ const llvm_targets = [_]LlvmTarget{ | ... | @@ -809,6 +809,10 @@ const llvm_targets = [_]LlvmTarget{ |
| 809 | .llvm_name = "v9.4a", | 809 | .llvm_name = "v9.4a", |
| 810 | .zig_name = "has_v9_4a", | 810 | .zig_name = "has_v9_4a", |
| 811 | }, | 811 | }, |
| 812 | .{ | ||
| 813 | .llvm_name = "v9.5a", | ||
| 814 | .zig_name = "has_v9_5a", | ||
| 815 | }, | ||
| 812 | }, | 816 | }, |
| 813 | // LLVM removed support for v2 and v3 but zig wants to support targeting old hardware | 817 | // LLVM removed support for v2 and v3 but zig wants to support targeting old hardware |
| 814 | .extra_features = &.{ | 818 | .extra_features = &.{ |
| ... | @@ -990,6 +994,7 @@ const llvm_targets = [_]LlvmTarget{ | ... | @@ -990,6 +994,7 @@ const llvm_targets = [_]LlvmTarget{ |
| 990 | "icelake_client", | 994 | "icelake_client", |
| 991 | "icelake_server", | 995 | "icelake_server", |
| 992 | "graniterapids_d", | 996 | "graniterapids_d", |
| 997 | "arrowlake_s", | ||
| 993 | }, | 998 | }, |
| 994 | }, | 999 | }, |
| 995 | .{ | 1000 | .{ |