aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/target.zig22
-rw-r--r--lib/std/target/aarch64.zig11
2 files changed, 19 insertions, 14 deletions
diff --git a/lib/std/target.zig b/lib/std/target.zig
index 5dcbb962be..0b09ebf838 100644
--- a/lib/std/target.zig
+++ b/lib/std/target.zig
@@ -123,12 +123,12 @@ pub const Target = union(enum) {
v8_3a,
v8_2a,
v8_1a,
- v8,
+ v8a,
v8r,
v8m_baseline,
v8m_mainline,
v8_1m_mainline,
- v7,
+ v7a,
v7em,
v7m,
v7s,
@@ -144,8 +144,8 @@ pub const Target = union(enum) {
pub fn version(version: Arm32) comptime_int {
return switch (version) {
- .v8_5a, .v8_4a, .v8_3a, .v8_2a, .v8_1a, .v8, .v8r, .v8m_baseline, .v8m_mainline, .v8_1m_mainline => 8,
- .v7, .v7em, .v7m, .v7s, .v7k, .v7ve => 7,
+ .v8_5a, .v8_4a, .v8_3a, .v8_2a, .v8_1a, .v8a, .v8r, .v8m_baseline, .v8m_mainline, .v8_1m_mainline => 8,
+ .v7a, .v7em, .v7m, .v7s, .v7k, .v7ve => 7,
.v6, .v6m, .v6k, .v6t2 => 6,
.v5, .v5te => 5,
.v4t => 4,
@@ -158,10 +158,7 @@ pub const Target = union(enum) {
v8_3a,
v8_2a,
v8_1a,
- v8,
- v8r,
- v8m_baseline,
- v8m_mainline,
+ v8a,
};
pub const Kalimba = enum {
v5,
@@ -189,12 +186,12 @@ pub const Target = union(enum) {
.v8_3a => @enumToInt(arm.Feature.armv8_3_a),
.v8_2a => @enumToInt(arm.Feature.armv8_2_a),
.v8_1a => @enumToInt(arm.Feature.armv8_1_a),
- .v8 => @enumToInt(arm.Feature.armv8_a),
+ .v8a => @enumToInt(arm.Feature.armv8_a),
.v8r => @enumToInt(arm.Feature.armv8_r),
.v8m_baseline => @enumToInt(arm.Feature.armv8_m_base),
.v8m_mainline => @enumToInt(arm.Feature.armv8_m_main),
.v8_1m_mainline => @enumToInt(arm.Feature.armv8_1_m_main),
- .v7 => @enumToInt(arm.Feature.armv7_a),
+ .v7a => @enumToInt(arm.Feature.armv7_a),
.v7em => @enumToInt(arm.Feature.armv7e_m),
.v7m => @enumToInt(arm.Feature.armv7_m),
.v7s => @enumToInt(arm.Feature.armv7s),
@@ -214,10 +211,7 @@ pub const Target = union(enum) {
.v8_3a => @enumToInt(aarch64.Feature.v8_3a),
.v8_2a => @enumToInt(aarch64.Feature.v8_2a),
.v8_1a => @enumToInt(aarch64.Feature.v8_1a),
- .v8 => @enumToInt(aarch64.Feature.v8_1a),
- .v8r => @enumToInt(aarch64.Feature.v8_1a),
- .v8m_baseline => @enumToInt(aarch64.Feature.v8_1a),
- .v8m_mainline => @enumToInt(aarch64.Feature.v8_1a),
+ .v8a => @enumToInt(aarch64.Feature.v8a),
},
else => return null,
};
diff --git a/lib/std/target/aarch64.zig b/lib/std/target/aarch64.zig
index 4639fe6dcc..d2878e2423 100644
--- a/lib/std/target/aarch64.zig
+++ b/lib/std/target/aarch64.zig
@@ -137,6 +137,7 @@ pub const Feature = enum {
use_aa,
use_postra_scheduler,
use_reciprocal_square_root,
+ v8a,
v8_1a,
v8_2a,
v8_3a,
@@ -153,6 +154,7 @@ pub const Feature = enum {
pub usingnamespace Cpu.Feature.feature_set_fns(Feature);
pub const all_features = blk: {
+ @setEvalBranchQuota(2000);
const len = @typeInfo(Feature).Enum.fields.len;
std.debug.assert(len <= Cpu.Feature.Set.needed_bit_count);
var result: [len]Cpu.Feature = undefined;
@@ -1108,6 +1110,14 @@ pub const all_features = blk: {
.description = "Use the reciprocal square root approximation",
.dependencies = featureSet(&[_]Feature{}),
};
+ result[@enumToInt(Feature.v8a)] = .{
+ .llvm_name = null,
+ .description = "Support ARM v8a instructions",
+ .dependencies = featureSet(&[_]Feature{
+ .fp_armv8,
+ .neon,
+ }),
+ };
result[@enumToInt(Feature.v8_1a)] = .{
.llvm_name = "v8.1a",
.description = "Support ARM v8.1a instructions",
@@ -1118,6 +1128,7 @@ pub const all_features = blk: {
.pan,
.rdm,
.vh,
+ .v8a,
}),
};
result[@enumToInt(Feature.v8_2a)] = .{