authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-21 01:48:25-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-21 01:48:25-05:00
log5974f95cb75921d973caa38e049deaebc7a7b628
treec144603d10c4231f2ceb531dd86c3171086489d4
parent0c2dde2fda29e84be25296d0b65bcb92dc9d4946
signature Commit is signed but in an unrecognized format.

add cpus and cpu features to zig targets


2 files changed, 35 insertions(+), 5 deletions(-)

BRANCH_TODO deleted-5
...@@ -1,5 +0,0 @@
1Finish these thigns before merging teh branch
2
3 * zig targets
4 - use non-reflection based cpu detection?
5
src-self-hosted/print_targets.zig+35
...@@ -177,6 +177,41 @@ pub fn cmdTargets(...@@ -177,6 +177,41 @@ pub fn cmdTargets(
177 }177 }
178 try jws.endArray();178 try jws.endArray();
179179
180 try jws.objectField("cpus");
181 try jws.beginObject();
182 inline for (@typeInfo(Target.Arch).Union.fields) |field| {
183 try jws.objectField(field.name);
184 try jws.beginObject();
185 const arch = @unionInit(Target.Arch, field.name, undefined);
186 for (arch.allCpus()) |cpu| {
187 try jws.objectField(cpu.name);
188 try jws.beginArray();
189 for (arch.allFeaturesList()) |feature, i| {
190 if (cpu.features.isEnabled(@intCast(u8, i))) {
191 try jws.arrayElem();
192 try jws.emitString(feature.name);
193 }
194 }
195 try jws.endArray();
196 }
197 try jws.endObject();
198 }
199 try jws.endObject();
200
201 try jws.objectField("cpuFeatures");
202 try jws.beginObject();
203 inline for (@typeInfo(Target.Arch).Union.fields) |field| {
204 try jws.objectField(field.name);
205 try jws.beginArray();
206 const arch = @unionInit(Target.Arch, field.name, undefined);
207 for (arch.allFeaturesList()) |feature| {
208 try jws.arrayElem();
209 try jws.emitString(feature.name);
210 }
211 try jws.endArray();
212 }
213 try jws.endObject();
214
180 try jws.objectField("native");215 try jws.objectField("native");
181 try jws.beginObject();216 try jws.beginObject();
182 {217 {