From 3227aec848bfe13d7a592eb887824e23e018aba9 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 22 Jan 2020 17:35:57 -0500 Subject: [PATCH] fix not respecting sub-arch feature --- lib/std/target.zig | 4 +--- src-self-hosted/stage1.zig | 4 ++++ src/codegen.cpp | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/std/target.zig b/lib/std/target.zig index f23fc78df27460a3301774f6b747e95c1b9685de..1292626f242c99279d19bd8b26bb52b9bd4571f8 100644 --- a/lib/std/target.zig +++ b/lib/std/target.zig @@ -181,7 +181,7 @@ pub const Target = union(enum) { }; } - pub fn subArchFeature(arch: Arch) ?u8 { + pub fn subArchFeature(arch: Arch) ?Cpu.Feature.Set.Index { return switch (arch) { .arm, .armeb, .thumb, .thumbeb => |arm32| switch (arm32) { .v8_5a => @enumToInt(arm.Feature.armv8_5_a), @@ -295,8 +295,6 @@ pub const Target = union(enum) { return error.UnknownCpuFeature; } } - - set.populateDependencies(all_features); return set; } diff --git a/src-self-hosted/stage1.zig b/src-self-hosted/stage1.zig index a6a3bc013c59ad55c9852872138454f247732bb0..961b95d481177461079ee163dcd1f406167948d8 100644 --- a/src-self-hosted/stage1.zig +++ b/src-self-hosted/stage1.zig @@ -790,7 +790,11 @@ fn stage2ParseCpuFeatures( }; } else cpu.features; + if (arch.subArchFeature()) |index| { + set.addFeature(index); + } set.populateDependencies(arch.allFeaturesList()); + return Stage2CpuFeatures.createFromCpuFeatures(std.heap.c_allocator, arch, .{ .cpu = cpu, .features = set, diff --git a/src/codegen.cpp b/src/codegen.cpp index 6fffcc6fdf618b34a0285710348ca314c37e5fd2..7ad19fdfcba2377b6ee7f05e81dd60edb1399777 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -10679,6 +10679,7 @@ CodeGen *create_child_codegen(CodeGen *parent_gen, Buf *root_src_path, OutType o child_gen->verbose_llvm_ir = parent_gen->verbose_llvm_ir; child_gen->verbose_cimport = parent_gen->verbose_cimport; child_gen->verbose_cc = parent_gen->verbose_cc; + child_gen->verbose_llvm_cpu_features = parent_gen->verbose_llvm_cpu_features; child_gen->llvm_argv = parent_gen->llvm_argv; child_gen->dynamic_linker_path = parent_gen->dynamic_linker_path; -- 2.54.0