master
1//! This file is auto-generated by tools/update_cpu_features.zig.
2
3const std = @import("../std.zig");
4const CpuFeature = std.Target.Cpu.Feature;
5const CpuModel = std.Target.Cpu.Model;
6
7pub const Feature = enum {
8 alu32,
9 dummy,
10 dwarfris,
11};
12
13pub const featureSet = CpuFeature.FeatureSetFns(Feature).featureSet;
14pub const featureSetHas = CpuFeature.FeatureSetFns(Feature).featureSetHas;
15pub const featureSetHasAny = CpuFeature.FeatureSetFns(Feature).featureSetHasAny;
16pub const featureSetHasAll = CpuFeature.FeatureSetFns(Feature).featureSetHasAll;
17
18pub const all_features = blk: {
19 const len = @typeInfo(Feature).@"enum".fields.len;
20 std.debug.assert(len <= CpuFeature.Set.needed_bit_count);
21 var result: [len]CpuFeature = undefined;
22 result[@intFromEnum(Feature.alu32)] = .{
23 .llvm_name = "alu32",
24 .description = "Enable ALU32 instructions",
25 .dependencies = featureSet(&[_]Feature{}),
26 };
27 result[@intFromEnum(Feature.dummy)] = .{
28 .llvm_name = "dummy",
29 .description = "unused feature",
30 .dependencies = featureSet(&[_]Feature{}),
31 };
32 result[@intFromEnum(Feature.dwarfris)] = .{
33 .llvm_name = "dwarfris",
34 .description = "Disable MCAsmInfo DwarfUsesRelocationsAcrossSections",
35 .dependencies = featureSet(&[_]Feature{}),
36 };
37 const ti = @typeInfo(Feature);
38 for (&result, 0..) |*elem, i| {
39 elem.index = i;
40 elem.name = ti.@"enum".fields[i].name;
41 }
42 break :blk result;
43};
44
45pub const cpu = struct {
46 pub const generic: CpuModel = .{
47 .name = "generic",
48 .llvm_name = "generic",
49 .features = featureSet(&[_]Feature{}),
50 };
51 pub const probe: CpuModel = .{
52 .name = "probe",
53 .llvm_name = "probe",
54 .features = featureSet(&[_]Feature{}),
55 };
56 pub const v1: CpuModel = .{
57 .name = "v1",
58 .llvm_name = "v1",
59 .features = featureSet(&[_]Feature{}),
60 };
61 pub const v2: CpuModel = .{
62 .name = "v2",
63 .llvm_name = "v2",
64 .features = featureSet(&[_]Feature{}),
65 };
66 pub const v3: CpuModel = .{
67 .name = "v3",
68 .llvm_name = "v3",
69 .features = featureSet(&[_]Feature{
70 .alu32,
71 }),
72 };
73 pub const v4: CpuModel = .{
74 .name = "v4",
75 .llvm_name = "v4",
76 .features = featureSet(&[_]Feature{
77 .alu32,
78 }),
79 };
80};