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    @"64bit",
  9    max_1,
 10    max_2,
 11    v1_1,
 12    v2_0,
 13};
 14
 15pub const featureSet = CpuFeature.FeatureSetFns(Feature).featureSet;
 16pub const featureSetHas = CpuFeature.FeatureSetFns(Feature).featureSetHas;
 17pub const featureSetHasAny = CpuFeature.FeatureSetFns(Feature).featureSetHasAny;
 18pub const featureSetHasAll = CpuFeature.FeatureSetFns(Feature).featureSetHasAll;
 19
 20pub const all_features = blk: {
 21    const len = @typeInfo(Feature).@"enum".fields.len;
 22    std.debug.assert(len <= CpuFeature.Set.needed_bit_count);
 23    var result: [len]CpuFeature = undefined;
 24    result[@intFromEnum(Feature.@"64bit")] = .{
 25        .llvm_name = null,
 26        .description = "Enable 64-bit PA-RISC 2.0",
 27        .dependencies = featureSet(&[_]Feature{
 28            .v2_0,
 29        }),
 30    };
 31    result[@intFromEnum(Feature.max_1)] = .{
 32        .llvm_name = null,
 33        .description = "Enable MAX-1 multimedia acceleration extensions",
 34        .dependencies = featureSet(&[_]Feature{}),
 35    };
 36    result[@intFromEnum(Feature.max_2)] = .{
 37        .llvm_name = null,
 38        .description = "Enable MAX-2 multimedia acceleration extensions",
 39        .dependencies = featureSet(&[_]Feature{
 40            .max_1,
 41        }),
 42    };
 43    result[@intFromEnum(Feature.v1_1)] = .{
 44        .llvm_name = null,
 45        .description = "Enable ISA v1.1",
 46        .dependencies = featureSet(&[_]Feature{}),
 47    };
 48    result[@intFromEnum(Feature.v2_0)] = .{
 49        .llvm_name = null,
 50        .description = "Enable ISA v2.0",
 51        .dependencies = featureSet(&[_]Feature{
 52            .max_2,
 53            .v1_1,
 54        }),
 55    };
 56    const ti = @typeInfo(Feature);
 57    for (&result, 0..) |*elem, i| {
 58        elem.index = i;
 59        elem.name = ti.@"enum".fields[i].name;
 60    }
 61    break :blk result;
 62};
 63
 64pub const cpu = struct {
 65    pub const ns_1: CpuModel = .{
 66        .name = "ns_1",
 67        .llvm_name = null,
 68        .features = featureSet(&[_]Feature{}),
 69    };
 70    pub const ns_2: CpuModel = .{
 71        .name = "ns_2",
 72        .llvm_name = null,
 73        .features = featureSet(&[_]Feature{}),
 74    };
 75    pub const pa_7000: CpuModel = .{
 76        .name = "pa_7000",
 77        .llvm_name = null,
 78        .features = featureSet(&[_]Feature{
 79            .v1_1,
 80        }),
 81    };
 82    pub const pa_7100: CpuModel = .{
 83        .name = "pa_7100",
 84        .llvm_name = null,
 85        .features = featureSet(&[_]Feature{
 86            .v1_1,
 87        }),
 88    };
 89    pub const pa_7100lc: CpuModel = .{
 90        .name = "pa_7100lc",
 91        .llvm_name = null,
 92        .features = featureSet(&[_]Feature{
 93            .max_1,
 94            .v1_1,
 95        }),
 96    };
 97    pub const pa_7150: CpuModel = .{
 98        .name = "pa_7150",
 99        .llvm_name = null,
100        .features = featureSet(&[_]Feature{
101            .v1_1,
102        }),
103    };
104    pub const pa_7200: CpuModel = .{
105        .name = "pa_7200",
106        .llvm_name = null,
107        .features = featureSet(&[_]Feature{
108            .v1_1,
109        }),
110    };
111    pub const pa_7300lc: CpuModel = .{
112        .name = "pa_7300lc",
113        .llvm_name = null,
114        .features = featureSet(&[_]Feature{
115            .max_1,
116            .v1_1,
117        }),
118    };
119    pub const pa_8000: CpuModel = .{
120        .name = "pa_8000",
121        .llvm_name = null,
122        .features = featureSet(&[_]Feature{
123            .@"64bit",
124        }),
125    };
126    pub const pa_8200: CpuModel = .{
127        .name = "pa_8200",
128        .llvm_name = null,
129        .features = featureSet(&[_]Feature{
130            .@"64bit",
131        }),
132    };
133    pub const pa_8500: CpuModel = .{
134        .name = "pa_8500",
135        .llvm_name = null,
136        .features = featureSet(&[_]Feature{
137            .@"64bit",
138        }),
139    };
140    pub const pa_8600: CpuModel = .{
141        .name = "pa_8600",
142        .llvm_name = null,
143        .features = featureSet(&[_]Feature{
144            .@"64bit",
145        }),
146    };
147    pub const pa_8700: CpuModel = .{
148        .name = "pa_8700",
149        .llvm_name = null,
150        .features = featureSet(&[_]Feature{
151            .@"64bit",
152        }),
153    };
154    pub const pa_8800: CpuModel = .{
155        .name = "pa_8800",
156        .llvm_name = null,
157        .features = featureSet(&[_]Feature{
158            .@"64bit",
159        }),
160    };
161    pub const pa_8900: CpuModel = .{
162        .name = "pa_8900",
163        .llvm_name = null,
164        .features = featureSet(&[_]Feature{
165            .@"64bit",
166        }),
167    };
168    pub const pcx: CpuModel = .{
169        .name = "pcx",
170        .llvm_name = null,
171        .features = featureSet(&[_]Feature{}),
172    };
173    pub const ts_1: CpuModel = .{
174        .name = "ts_1",
175        .llvm_name = null,
176        .features = featureSet(&[_]Feature{}),
177    };
178};