From 327ad0ae89c168a5e035f92f86617a29697bf6d8 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 21 Jan 2020 03:05:56 -0500 Subject: target_triple_llvm: emit none instead of unknown --- src/target.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/target.cpp') diff --git a/src/target.cpp b/src/target.cpp index 82d5467e26..e0b29ef1b1 100644 --- a/src/target.cpp +++ b/src/target.cpp @@ -831,11 +831,14 @@ void init_all_targets(void) { void target_triple_zig(Buf *triple, const ZigTarget *target) { buf_resize(triple, 0); + const char *abi_name = target->abi == ZigLLVM_UnknownEnvironment ? + "none" : ZigLLVMGetEnvironmentTypeName(target->abi); + buf_appendf(triple, "%s%s-%s-%s", ZigLLVMGetArchTypeName(target->arch), ZigLLVMGetSubArchTypeName(target->sub_arch), ZigLLVMGetOSTypeName(get_llvm_os_type(target->os)), - ZigLLVMGetEnvironmentTypeName(target->abi)); + abi_name); } void target_triple_llvm(Buf *triple, const ZigTarget *target) { -- cgit v1.2.3 From 15d5cab569a5ffc6495d606f460264429043aabf Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 21 Jan 2020 12:25:22 -0500 Subject: fix target_triple_zig to emit zig-compatible triples --- src/target.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'src/target.cpp') diff --git a/src/target.cpp b/src/target.cpp index e0b29ef1b1..7542ff7c95 100644 --- a/src/target.cpp +++ b/src/target.cpp @@ -831,14 +831,11 @@ void init_all_targets(void) { void target_triple_zig(Buf *triple, const ZigTarget *target) { buf_resize(triple, 0); - const char *abi_name = target->abi == ZigLLVM_UnknownEnvironment ? - "none" : ZigLLVMGetEnvironmentTypeName(target->abi); - buf_appendf(triple, "%s%s-%s-%s", - ZigLLVMGetArchTypeName(target->arch), - ZigLLVMGetSubArchTypeName(target->sub_arch), - ZigLLVMGetOSTypeName(get_llvm_os_type(target->os)), - abi_name); + target_arch_name(target->arch), + target_subarch_name(target->sub_arch), + target_os_name(target->os), + target_abi_name(target->abi)); } void target_triple_llvm(Buf *triple, const ZigTarget *target) { -- cgit v1.2.3 From fbfda7f00edbbf4eb623898d53c3faf43ab874ce Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 23 Jan 2020 13:02:45 -0500 Subject: fix incorrect list of sub-arches for aarch64 tests use older sub-arch that works in the older qemu --- lib/std/target.zig | 22 ++++++++-------------- lib/std/target/aarch64.zig | 11 +++++++++++ src/target.cpp | 7 ++----- src/zig_llvm.cpp | 4 ++-- test/tests.zig | 24 ++++++++++++------------ 5 files changed, 35 insertions(+), 33 deletions(-) (limited to 'src/target.cpp') 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)] = .{ diff --git a/src/target.cpp b/src/target.cpp index 7542ff7c95..53d2e598be 100644 --- a/src/target.cpp +++ b/src/target.cpp @@ -57,9 +57,6 @@ static const ZigLLVM_SubArchType subarch_list_arm64[] = { ZigLLVM_ARMSubArch_v8_2a, ZigLLVM_ARMSubArch_v8_1a, ZigLLVM_ARMSubArch_v8, - ZigLLVM_ARMSubArch_v8r, - ZigLLVM_ARMSubArch_v8m_baseline, - ZigLLVM_ARMSubArch_v8m_mainline, }; static const ZigLLVM_SubArchType subarch_list_kalimba[] = { @@ -683,7 +680,7 @@ const char *target_subarch_name(ZigLLVM_SubArchType subarch) { case ZigLLVM_ARMSubArch_v8_1a: return "v8_1a"; case ZigLLVM_ARMSubArch_v8: - return "v8"; + return "v8a"; case ZigLLVM_ARMSubArch_v8r: return "v8r"; case ZigLLVM_ARMSubArch_v8m_baseline: @@ -693,7 +690,7 @@ const char *target_subarch_name(ZigLLVM_SubArchType subarch) { case ZigLLVM_ARMSubArch_v8_1m_mainline: return "v8_1m_mainline"; case ZigLLVM_ARMSubArch_v7: - return "v7"; + return "v7a"; case ZigLLVM_ARMSubArch_v7em: return "v7em"; case ZigLLVM_ARMSubArch_v7m: diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index b5c43b632b..614d31dc5a 100644 --- a/src/zig_llvm.cpp +++ b/src/zig_llvm.cpp @@ -821,7 +821,7 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { case ZigLLVM_ARMSubArch_v8_1a: return "v8.1a"; case ZigLLVM_ARMSubArch_v8: - return "v8"; + return "v8a"; case ZigLLVM_ARMSubArch_v8r: return "v8r"; case ZigLLVM_ARMSubArch_v8m_baseline: @@ -831,7 +831,7 @@ const char *ZigLLVMGetSubArchTypeName(ZigLLVM_SubArchType sub_arch) { case ZigLLVM_ARMSubArch_v8_1m_mainline: return "v8.1m.main"; case ZigLLVM_ARMSubArch_v7: - return "v7"; + return "v7a"; case ZigLLVM_ARMSubArch_v7em: return "v7em"; case ZigLLVM_ARMSubArch_v7m: diff --git a/test/tests.zig b/test/tests.zig index 13cd2c3198..4d1f15fe29 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -111,8 +111,8 @@ const test_targets = blk: { .target = Target{ .Cross = CrossTarget{ .os = .linux, - .arch = Target.Arch{ .aarch64 = .v8_1a }, - .cpu_features = (Target.Arch{ .aarch64 = .v8_1a }).getBaselineCpuFeatures(), + .arch = Target.Arch{ .aarch64 = .v8a }, + .cpu_features = (Target.Arch{ .aarch64 = .v8a }).getBaselineCpuFeatures(), .abi = .none, }, }, @@ -121,8 +121,8 @@ const test_targets = blk: { .target = Target{ .Cross = CrossTarget{ .os = .linux, - .arch = Target.Arch{ .aarch64 = .v8_1a }, - .cpu_features = (Target.Arch{ .aarch64 = .v8_1a }).getBaselineCpuFeatures(), + .arch = Target.Arch{ .aarch64 = .v8a }, + .cpu_features = (Target.Arch{ .aarch64 = .v8a }).getBaselineCpuFeatures(), .abi = .musl, }, }, @@ -132,8 +132,8 @@ const test_targets = blk: { .target = Target{ .Cross = CrossTarget{ .os = .linux, - .arch = Target.Arch{ .aarch64 = .v8_1a }, - .cpu_features = (Target.Arch{ .aarch64 = .v8_1a }).getBaselineCpuFeatures(), + .arch = Target.Arch{ .aarch64 = .v8a }, + .cpu_features = (Target.Arch{ .aarch64 = .v8a }).getBaselineCpuFeatures(), .abi = .gnu, }, }, @@ -144,8 +144,8 @@ const test_targets = blk: { .target = Target{ .Cross = CrossTarget{ .os = .linux, - .arch = Target.Arch{ .arm = .v8_1a }, - .cpu_features = (Target.Arch{ .arm = .v8_1a }).getBaselineCpuFeatures(), + .arch = Target.Arch{ .arm = .v8a }, + .cpu_features = (Target.Arch{ .arm = .v8a }).getBaselineCpuFeatures(), .abi = .none, }, }, @@ -154,8 +154,8 @@ const test_targets = blk: { .target = Target{ .Cross = CrossTarget{ .os = .linux, - .arch = Target.Arch{ .arm = .v8_1a }, - .cpu_features = (Target.Arch{ .arm = .v8_1a }).getBaselineCpuFeatures(), + .arch = Target.Arch{ .arm = .v8a }, + .cpu_features = (Target.Arch{ .arm = .v8a }).getBaselineCpuFeatures(), .abi = .musleabihf, }, }, @@ -166,8 +166,8 @@ const test_targets = blk: { // .target = Target{ // .Cross = CrossTarget{ // .os = .linux, - // .arch = Target.Arch{ .arm = .v8_1a }, - // .cpu_features = (Target.Arch{ .arm = .v8_1a }).getBaselineCpuFeatures(), + // .arch = Target.Arch{ .arm = .v8a }, + // .cpu_features = (Target.Arch{ .arm = .v8a }).getBaselineCpuFeatures(), // .abi = .gnueabihf, // }, // }, -- cgit v1.2.3