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};