zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 3eed61340784af95a92e2035712eeaeab7cf0ad3 (tree)
parent e2d2295382164776d32997d5806b9829525d7875
Author: LemonBoy <thatlemon@gmail.com>
Date:   Mon,  3 May 2021 12:30:18 +0200

std: Add two more ARM CPUs to the known CPU list

Modeled after GCC's description.

Diffstat:
Mlib/std/target/aarch64.zig | 18++++++++++++++++++
Mlib/std/zig/system/linux.zig | 6++++++
Mtools/update_cpu_features.zig | 22++++++++++++++++++++++
3 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/lib/std/target/aarch64.zig b/lib/std/target/aarch64.zig @@ -1621,6 +1621,16 @@ pub const cpu = struct { .apple_a7, }), }; + pub const emag = CpuModel{ + .name = "emag", + .llvm_name = null, + .features = featureSet(&[_]Feature{ + .crc, + .crypto, + .perfmon, + .v8a, + }), + }; pub const exynos_m1 = CpuModel{ .name = "exynos_m1", .llvm_name = null, @@ -1867,4 +1877,12 @@ pub const cpu = struct { .v8_2a, }), }; + pub const xgene1 = CpuModel{ + .name = "xgene1", + .llvm_name = null, + .features = featureSet(&[_]Feature{ + .perfmon, + .v8a, + }), + }; }; diff --git a/lib/std/zig/system/linux.zig b/lib/std/zig/system/linux.zig @@ -239,6 +239,11 @@ const ArmCpuinfoImpl = struct { const Nvidia = [_]E{ E{ .part = 0x004, .m64 = &A64.carmel }, }; + // implementer = 0x50 + const Ampere = [_]E{ + E{ .part = 0x000, .variant = 3, .m64 = &A64.emag }, + E{ .part = 0x000, .m64 = &A64.xgene1 }, + }; // implementer = 0x51 const Qualcomm = [_]E{ E{ .part = 0x06f, .m32 = &A32.krait }, @@ -262,6 +267,7 @@ const ArmCpuinfoImpl = struct { 0x43 => &Cavium, 0x46 => &Fujitsu, 0x48 => &HiSilicon, + 0x50 => &Ampere, 0x51 => &Qualcomm, else => return null, }; diff --git a/tools/update_cpu_features.zig b/tools/update_cpu_features.zig @@ -239,6 +239,28 @@ const llvm_targets = [_]LlvmTarget{ "zcz_fp", }, }, + .{ + .llvm_name = null, + .zig_name = "xgene1", + .features = &.{ + "fp_armv8", + "neon", + "perfmon", + "v8a", + }, + }, + .{ + .llvm_name = null, + .zig_name = "emag", + .features = &.{ + "crc", + "crypto", + "fp_armv8", + "neon", + "perfmon", + "v8a", + }, + }, }, }, .{