authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-09-24 11:08:29+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-09-24 11:08:29+02:00
logdcbd3cbce924579fd4cdd71ef83935570daa774e
tree6ae3f55ee3204a39dab011fc18be897fb58927f1
parentd3ba5f397d3270047bcf05c7ed21c5bd6b97e75b
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

update_cpu_features: Add support for parsing DefaultExts as used for aarch64.


1 files changed, 18 insertions(+), 4 deletions(-)

tools/update_cpu_features.zig+18-4
...@@ -61,10 +61,6 @@ const llvm_targets = [_]LlvmTarget{...@@ -61,10 +61,6 @@ const llvm_targets = [_]LlvmTarget{
61 .zig_name = "contextidr_el2",61 .zig_name = "contextidr_el2",
62 .desc = "Enable RW operand Context ID Register (EL2)",62 .desc = "Enable RW operand Context ID Register (EL2)",
63 },63 },
64 .{
65 .llvm_name = "v8a",
66 .extra_deps = &.{"neon"},
67 },
68 .{64 .{
69 .llvm_name = "neoversee1",65 .llvm_name = "neoversee1",
70 .flatten = true,66 .flatten = true,
...@@ -1436,6 +1432,24 @@ fn processOneTarget(job: Job) anyerror!void {...@@ -1436,6 +1432,24 @@ fn processOneTarget(job: Job) anyerror!void {
1436 try deps.append(other_zig_name);1432 try deps.append(other_zig_name);
1437 }1433 }
1438 }1434 }
1435 // This is used by AArch64.
1436 if (kv.value_ptr.object.get("DefaultExts")) |exts_val| {
1437 for (exts_val.array.items) |ext| {
1438 const other_key = ext.object.get("def").?.string;
1439 const other_obj = &root_map.getPtr(other_key).?.object;
1440 const other_llvm_name = other_obj.get("Name").?.string;
1441 const other_zig_name = (try llvmFeatureNameToZigNameOmit(
1442 arena,
1443 llvm_target,
1444 other_llvm_name,
1445 )) orelse continue;
1446 for (omit_deps) |omit_dep| {
1447 if (mem.eql(u8, other_zig_name, omit_dep)) break;
1448 } else {
1449 try deps.append(other_zig_name);
1450 }
1451 }
1452 }
1439 for (extra_deps) |extra_dep| {1453 for (extra_deps) |extra_dep| {
1440 try deps.append(extra_dep);1454 try deps.append(extra_dep);
1441 }1455 }