| author | |
| committer | |
| log | b0ce4f0996e24ad62501be325da7e402bcb3498e |
| tree | 60b4e81ece5025e3a3c959ceee5cdcd3b1f181fb |
| parent | 4df60441652914d3228bbd1dc3c05f64b8c16191 |
| signature | Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM |
Both on models and architecture levels this time.
As part of this, I removed neon from the baseline model because that isn't
actually part of the ARMv7 baseline on any platform I'm aware of, and it made
our baseline binaries not work on some real boards, e.g. Tegra 2. We keep
vfp3d16 since virtually every ARMv7 board has VFP.
To not regress PlayStation Vita performance, I also added a kermit model with
neon enabled. This was necessary since vortex_a9 lost all NEON/VFP features by
default.3 files changed, 171 insertions(+), 25 deletions(-)
lib/std/Target.zig+2-2| ... | ... | @@ -2090,12 +2090,12 @@ pub const Cpu = struct { |
| 2090 | 2090 | .amdgcn => &amdgcn.cpu.gfx906, |
| 2091 | 2091 | .arm => switch (os.tag) { |
| 2092 | 2092 | .@"3ds" => &arm.cpu.mpcore, |
| 2093 | .vita => &arm.cpu.cortex_a9, | |
| 2093 | .vita => &arm.cpu.kermit, | |
| 2094 | 2094 | .gba => &arm.cpu.arm7tdmi, |
| 2095 | 2095 | else => &arm.cpu.baseline, |
| 2096 | 2096 | }, |
| 2097 | 2097 | .thumb => switch (os.tag) { |
| 2098 | .vita => &arm.cpu.cortex_a9, | |
| 2098 | .vita => &arm.cpu.kermit, | |
| 2099 | 2099 | .gba => &arm.cpu.arm7tdmi, |
| 2100 | 2100 | else => &arm.cpu.baseline, |
| 2101 | 2101 | }, |
lib/std/Target/arm.zig+35-22| ... | ... | @@ -1200,7 +1200,6 @@ pub const all_features = blk: { |
| 1200 | 1200 | .db, |
| 1201 | 1201 | .dsp, |
| 1202 | 1202 | .has_v7, |
| 1203 | .neon, | |
| 1204 | 1203 | .perfmon, |
| 1205 | 1204 | }), |
| 1206 | 1205 | }; |
| ... | ... | @@ -1250,7 +1249,6 @@ pub const all_features = blk: { |
| 1250 | 1249 | .dsp, |
| 1251 | 1250 | .has_v7, |
| 1252 | 1251 | .mp, |
| 1253 | .neon, | |
| 1254 | 1252 | .perfmon, |
| 1255 | 1253 | .trustzone, |
| 1256 | 1254 | .virtualization, |
| ... | ... | @@ -1262,12 +1260,12 @@ pub const all_features = blk: { |
| 1262 | 1260 | .dependencies = featureSet(&[_]Feature{ |
| 1263 | 1261 | .aclass, |
| 1264 | 1262 | .crc, |
| 1265 | .crypto, | |
| 1266 | 1263 | .db, |
| 1267 | 1264 | .dsp, |
| 1268 | 1265 | .fp_armv8, |
| 1269 | 1266 | .has_v8_1a, |
| 1270 | 1267 | .mp, |
| 1268 | .neon, | |
| 1271 | 1269 | .trustzone, |
| 1272 | 1270 | .virtualization, |
| 1273 | 1271 | }), |
| ... | ... | @@ -1276,7 +1274,6 @@ pub const all_features = blk: { |
| 1276 | 1274 | .llvm_name = "armv8.1-m.main", |
| 1277 | 1275 | .description = "ARMv81mMainline architecture", |
| 1278 | 1276 | .dependencies = featureSet(&[_]Feature{ |
| 1279 | .@"8msecext", | |
| 1280 | 1277 | .acquire_release, |
| 1281 | 1278 | .db, |
| 1282 | 1279 | .has_v8_1m_main, |
| ... | ... | @@ -1294,12 +1291,12 @@ pub const all_features = blk: { |
| 1294 | 1291 | .dependencies = featureSet(&[_]Feature{ |
| 1295 | 1292 | .aclass, |
| 1296 | 1293 | .crc, |
| 1297 | .crypto, | |
| 1298 | 1294 | .db, |
| 1299 | 1295 | .dsp, |
| 1300 | 1296 | .fp_armv8, |
| 1301 | 1297 | .has_v8_2a, |
| 1302 | 1298 | .mp, |
| 1299 | .neon, | |
| 1303 | 1300 | .ras, |
| 1304 | 1301 | .trustzone, |
| 1305 | 1302 | .virtualization, |
| ... | ... | @@ -1311,12 +1308,12 @@ pub const all_features = blk: { |
| 1311 | 1308 | .dependencies = featureSet(&[_]Feature{ |
| 1312 | 1309 | .aclass, |
| 1313 | 1310 | .crc, |
| 1314 | .crypto, | |
| 1315 | 1311 | .db, |
| 1316 | 1312 | .dsp, |
| 1317 | 1313 | .fp_armv8, |
| 1318 | 1314 | .has_v8_3a, |
| 1319 | 1315 | .mp, |
| 1316 | .neon, | |
| 1320 | 1317 | .ras, |
| 1321 | 1318 | .trustzone, |
| 1322 | 1319 | .virtualization, |
| ... | ... | @@ -1328,7 +1325,6 @@ pub const all_features = blk: { |
| 1328 | 1325 | .dependencies = featureSet(&[_]Feature{ |
| 1329 | 1326 | .aclass, |
| 1330 | 1327 | .crc, |
| 1331 | .crypto, | |
| 1332 | 1328 | .db, |
| 1333 | 1329 | .dsp, |
| 1334 | 1330 | .fp_armv8, |
| ... | ... | @@ -1345,7 +1341,6 @@ pub const all_features = blk: { |
| 1345 | 1341 | .dependencies = featureSet(&[_]Feature{ |
| 1346 | 1342 | .aclass, |
| 1347 | 1343 | .crc, |
| 1348 | .crypto, | |
| 1349 | 1344 | .db, |
| 1350 | 1345 | .dsp, |
| 1351 | 1346 | .fp_armv8, |
| ... | ... | @@ -1362,7 +1357,6 @@ pub const all_features = blk: { |
| 1362 | 1357 | .dependencies = featureSet(&[_]Feature{ |
| 1363 | 1358 | .aclass, |
| 1364 | 1359 | .crc, |
| 1365 | .crypto, | |
| 1366 | 1360 | .db, |
| 1367 | 1361 | .dsp, |
| 1368 | 1362 | .fp_armv8, |
| ... | ... | @@ -1379,7 +1373,6 @@ pub const all_features = blk: { |
| 1379 | 1373 | .dependencies = featureSet(&[_]Feature{ |
| 1380 | 1374 | .aclass, |
| 1381 | 1375 | .crc, |
| 1382 | .crypto, | |
| 1383 | 1376 | .db, |
| 1384 | 1377 | .dsp, |
| 1385 | 1378 | .fp_armv8, |
| ... | ... | @@ -1396,7 +1389,6 @@ pub const all_features = blk: { |
| 1396 | 1389 | .dependencies = featureSet(&[_]Feature{ |
| 1397 | 1390 | .aclass, |
| 1398 | 1391 | .crc, |
| 1399 | .crypto, | |
| 1400 | 1392 | .db, |
| 1401 | 1393 | .dsp, |
| 1402 | 1394 | .fp_armv8, |
| ... | ... | @@ -1413,7 +1405,6 @@ pub const all_features = blk: { |
| 1413 | 1405 | .dependencies = featureSet(&[_]Feature{ |
| 1414 | 1406 | .aclass, |
| 1415 | 1407 | .crc, |
| 1416 | .crypto, | |
| 1417 | 1408 | .db, |
| 1418 | 1409 | .dsp, |
| 1419 | 1410 | .fp_armv8, |
| ... | ... | @@ -1430,12 +1421,12 @@ pub const all_features = blk: { |
| 1430 | 1421 | .dependencies = featureSet(&[_]Feature{ |
| 1431 | 1422 | .aclass, |
| 1432 | 1423 | .crc, |
| 1433 | .crypto, | |
| 1434 | 1424 | .db, |
| 1435 | 1425 | .dsp, |
| 1436 | 1426 | .fp_armv8, |
| 1437 | 1427 | .has_v8, |
| 1438 | 1428 | .mp, |
| 1429 | .neon, | |
| 1439 | 1430 | .trustzone, |
| 1440 | 1431 | .virtualization, |
| 1441 | 1432 | }), |
| ... | ... | @@ -1444,7 +1435,6 @@ pub const all_features = blk: { |
| 1444 | 1435 | .llvm_name = "armv8-m.base", |
| 1445 | 1436 | .description = "ARMv8mBaseline architecture", |
| 1446 | 1437 | .dependencies = featureSet(&[_]Feature{ |
| 1447 | .@"8msecext", | |
| 1448 | 1438 | .acquire_release, |
| 1449 | 1439 | .db, |
| 1450 | 1440 | .has_v7clrex, |
| ... | ... | @@ -1460,7 +1450,6 @@ pub const all_features = blk: { |
| 1460 | 1450 | .llvm_name = "armv8-m.main", |
| 1461 | 1451 | .description = "ARMv8mMainline architecture", |
| 1462 | 1452 | .dependencies = featureSet(&[_]Feature{ |
| 1463 | .@"8msecext", | |
| 1464 | 1453 | .acquire_release, |
| 1465 | 1454 | .db, |
| 1466 | 1455 | .has_v8m_main, |
| ... | ... | @@ -1523,7 +1512,6 @@ pub const all_features = blk: { |
| 1523 | 1512 | .dependencies = featureSet(&[_]Feature{ |
| 1524 | 1513 | .aclass, |
| 1525 | 1514 | .crc, |
| 1526 | .crypto, | |
| 1527 | 1515 | .db, |
| 1528 | 1516 | .dsp, |
| 1529 | 1517 | .fp_armv8, |
| ... | ... | @@ -1949,6 +1937,7 @@ pub const cpu = struct { |
| 1949 | 1937 | .llvm_name = "generic", |
| 1950 | 1938 | .features = featureSet(&[_]Feature{ |
| 1951 | 1939 | .v7a, |
| 1940 | .vfp3d16, | |
| 1952 | 1941 | }), |
| 1953 | 1942 | }; |
| 1954 | 1943 | pub const cortex_a12: CpuModel = .{ |
| ... | ... | @@ -1960,7 +1949,6 @@ pub const cpu = struct { |
| 1960 | 1949 | .ret_addr_stack, |
| 1961 | 1950 | .trustzone, |
| 1962 | 1951 | .v7a, |
| 1963 | .vfp4, | |
| 1964 | 1952 | .virtualization, |
| 1965 | 1953 | .vmlx_forwarding, |
| 1966 | 1954 | }), |
| ... | ... | @@ -1976,7 +1964,6 @@ pub const cpu = struct { |
| 1976 | 1964 | .splat_vfp_neon, |
| 1977 | 1965 | .trustzone, |
| 1978 | 1966 | .v7a, |
| 1979 | .vfp4, | |
| 1980 | 1967 | .virtualization, |
| 1981 | 1968 | .vldn_align, |
| 1982 | 1969 | }), |
| ... | ... | @@ -1990,7 +1977,6 @@ pub const cpu = struct { |
| 1990 | 1977 | .ret_addr_stack, |
| 1991 | 1978 | .trustzone, |
| 1992 | 1979 | .v7a, |
| 1993 | .vfp4, | |
| 1994 | 1980 | .virtualization, |
| 1995 | 1981 | .vmlx_forwarding, |
| 1996 | 1982 | }), |
| ... | ... | @@ -2020,7 +2006,6 @@ pub const cpu = struct { |
| 2020 | 2006 | .slowfpvmlx, |
| 2021 | 2007 | .trustzone, |
| 2022 | 2008 | .v7a, |
| 2023 | .vfp4, | |
| 2024 | 2009 | .vmlx_forwarding, |
| 2025 | 2010 | }), |
| 2026 | 2011 | }; |
| ... | ... | @@ -2072,7 +2057,6 @@ pub const cpu = struct { |
| 2072 | 2057 | .slowfpvmlx, |
| 2073 | 2058 | .trustzone, |
| 2074 | 2059 | .v7a, |
| 2075 | .vfp4, | |
| 2076 | 2060 | .virtualization, |
| 2077 | 2061 | .vmlx_forwarding, |
| 2078 | 2062 | .vmlx_hazards, |
| ... | ... | @@ -2186,7 +2170,6 @@ pub const cpu = struct { |
| 2186 | 2170 | .features = featureSet(&[_]Feature{ |
| 2187 | 2171 | .avoid_partial_cpsr, |
| 2188 | 2172 | .expand_fp_mlx, |
| 2189 | .fp16, | |
| 2190 | 2173 | .mp, |
| 2191 | 2174 | .muxed_units, |
| 2192 | 2175 | .neon_fpmovs, |
| ... | ... | @@ -2322,6 +2305,7 @@ pub const cpu = struct { |
| 2322 | 2305 | .name = "cortex_m85", |
| 2323 | 2306 | .llvm_name = "cortex-m85", |
| 2324 | 2307 | .features = featureSet(&[_]Feature{ |
| 2308 | .@"8msecext", | |
| 2325 | 2309 | .branch_align_64, |
| 2326 | 2310 | .dsp, |
| 2327 | 2311 | .m85, |
| ... | ... | @@ -2434,6 +2418,7 @@ pub const cpu = struct { |
| 2434 | 2418 | .features = featureSet(&[_]Feature{ |
| 2435 | 2419 | .avoid_movs_shop, |
| 2436 | 2420 | .avoid_partial_cpsr, |
| 2421 | .crypto, | |
| 2437 | 2422 | .disable_postra_scheduler, |
| 2438 | 2423 | .neonfp, |
| 2439 | 2424 | .ret_addr_stack, |
| ... | ... | @@ -2455,6 +2440,7 @@ pub const cpu = struct { |
| 2455 | 2440 | .name = "exynos_m1", |
| 2456 | 2441 | .llvm_name = null, |
| 2457 | 2442 | .features = featureSet(&[_]Feature{ |
| 2443 | .crypto, | |
| 2458 | 2444 | .expand_fp_mlx, |
| 2459 | 2445 | .fuse_aes, |
| 2460 | 2446 | .fuse_literals, |
| ... | ... | @@ -2475,6 +2461,7 @@ pub const cpu = struct { |
| 2475 | 2461 | .name = "exynos_m2", |
| 2476 | 2462 | .llvm_name = null, |
| 2477 | 2463 | .features = featureSet(&[_]Feature{ |
| 2464 | .crypto, | |
| 2478 | 2465 | .expand_fp_mlx, |
| 2479 | 2466 | .fuse_aes, |
| 2480 | 2467 | .fuse_literals, |
| ... | ... | @@ -2495,6 +2482,7 @@ pub const cpu = struct { |
| 2495 | 2482 | .name = "exynos_m3", |
| 2496 | 2483 | .llvm_name = "exynos-m3", |
| 2497 | 2484 | .features = featureSet(&[_]Feature{ |
| 2485 | .crypto, | |
| 2498 | 2486 | .expand_fp_mlx, |
| 2499 | 2487 | .fuse_aes, |
| 2500 | 2488 | .fuse_literals, |
| ... | ... | @@ -2515,6 +2503,7 @@ pub const cpu = struct { |
| 2515 | 2503 | .name = "exynos_m4", |
| 2516 | 2504 | .llvm_name = "exynos-m4", |
| 2517 | 2505 | .features = featureSet(&[_]Feature{ |
| 2506 | .crypto, | |
| 2518 | 2507 | .dotprod, |
| 2519 | 2508 | .expand_fp_mlx, |
| 2520 | 2509 | .fullfp16, |
| ... | ... | @@ -2537,6 +2526,7 @@ pub const cpu = struct { |
| 2537 | 2526 | .name = "exynos_m5", |
| 2538 | 2527 | .llvm_name = "exynos-m5", |
| 2539 | 2528 | .features = featureSet(&[_]Feature{ |
| 2529 | .crypto, | |
| 2540 | 2530 | .dotprod, |
| 2541 | 2531 | .expand_fp_mlx, |
| 2542 | 2532 | .fullfp16, |
| ... | ... | @@ -2567,6 +2557,26 @@ pub const cpu = struct { |
| 2567 | 2557 | .v5te, |
| 2568 | 2558 | }), |
| 2569 | 2559 | }; |
| 2560 | pub const kermit: CpuModel = .{ | |
| 2561 | .name = "kermit", | |
| 2562 | .llvm_name = "cortex-a9", | |
| 2563 | .features = featureSet(&[_]Feature{ | |
| 2564 | .avoid_partial_cpsr, | |
| 2565 | .expand_fp_mlx, | |
| 2566 | .fp16, | |
| 2567 | .mp, | |
| 2568 | .muxed_units, | |
| 2569 | .neon, | |
| 2570 | .neon_fpmovs, | |
| 2571 | .prefer_vmovsr, | |
| 2572 | .ret_addr_stack, | |
| 2573 | .trustzone, | |
| 2574 | .v7a, | |
| 2575 | .vldn_align, | |
| 2576 | .vmlx_forwarding, | |
| 2577 | .vmlx_hazards, | |
| 2578 | }), | |
| 2579 | }; | |
| 2570 | 2580 | pub const krait: CpuModel = .{ |
| 2571 | 2581 | .name = "krait", |
| 2572 | 2582 | .llvm_name = "krait", |
| ... | ... | @@ -2575,6 +2585,7 @@ pub const cpu = struct { |
| 2575 | 2585 | .hwdiv, |
| 2576 | 2586 | .hwdiv_arm, |
| 2577 | 2587 | .muxed_units, |
| 2588 | .neon, | |
| 2578 | 2589 | .ret_addr_stack, |
| 2579 | 2590 | .v7a, |
| 2580 | 2591 | .vfp4, |
| ... | ... | @@ -2586,6 +2597,7 @@ pub const cpu = struct { |
| 2586 | 2597 | .name = "kryo", |
| 2587 | 2598 | .llvm_name = "kryo", |
| 2588 | 2599 | .features = featureSet(&[_]Feature{ |
| 2600 | .crypto, | |
| 2589 | 2601 | .v8a, |
| 2590 | 2602 | }), |
| 2591 | 2603 | }; |
| ... | ... | @@ -2715,6 +2727,7 @@ pub const cpu = struct { |
| 2715 | 2727 | .hwdiv, |
| 2716 | 2728 | .hwdiv_arm, |
| 2717 | 2729 | .mp, |
| 2730 | .neon, | |
| 2718 | 2731 | .neonfp, |
| 2719 | 2732 | .prefer_ishst, |
| 2720 | 2733 | .prof_unpr, |
tools/update_cpu_features.zig+134-1| ... | ... | @@ -843,6 +843,7 @@ const targets = [_]ArchTarget{ |
| 843 | 843 | .{ |
| 844 | 844 | .llvm_name = "armv7-a", |
| 845 | 845 | .zig_name = "v7a", |
| 846 | .omit_deps = &.{"neon"}, | |
| 846 | 847 | }, |
| 847 | 848 | .{ |
| 848 | 849 | .llvm_name = "armv7-m", |
| ... | ... | @@ -867,58 +868,72 @@ const targets = [_]ArchTarget{ |
| 867 | 868 | .{ |
| 868 | 869 | .llvm_name = "armv7ve", |
| 869 | 870 | .zig_name = "v7ve", |
| 871 | .omit_deps = &.{"neon"}, | |
| 870 | 872 | }, |
| 871 | 873 | .{ |
| 872 | 874 | .llvm_name = "armv8.1-a", |
| 873 | 875 | .zig_name = "v8_1a", |
| 876 | .omit_deps = &.{"crypto"}, | |
| 874 | 877 | }, |
| 875 | 878 | .{ |
| 876 | 879 | .llvm_name = "armv8.1-m.main", |
| 877 | 880 | .zig_name = "v8_1m_main", |
| 881 | .omit_deps = &.{"8msecext"}, | |
| 878 | 882 | }, |
| 879 | 883 | .{ |
| 880 | 884 | .llvm_name = "armv8.2-a", |
| 881 | 885 | .zig_name = "v8_2a", |
| 886 | .omit_deps = &.{"crypto"}, | |
| 882 | 887 | }, |
| 883 | 888 | .{ |
| 884 | 889 | .llvm_name = "armv8.3-a", |
| 885 | 890 | .zig_name = "v8_3a", |
| 891 | .omit_deps = &.{"crypto"}, | |
| 886 | 892 | }, |
| 887 | 893 | .{ |
| 888 | 894 | .llvm_name = "armv8.4-a", |
| 889 | 895 | .zig_name = "v8_4a", |
| 896 | .omit_deps = &.{"crypto"}, | |
| 890 | 897 | }, |
| 891 | 898 | .{ |
| 892 | 899 | .llvm_name = "armv8.5-a", |
| 893 | 900 | .zig_name = "v8_5a", |
| 901 | .omit_deps = &.{"crypto"}, | |
| 894 | 902 | }, |
| 895 | 903 | .{ |
| 896 | 904 | .llvm_name = "armv8.6-a", |
| 897 | 905 | .zig_name = "v8_6a", |
| 906 | .omit_deps = &.{"crypto"}, | |
| 898 | 907 | }, |
| 899 | 908 | .{ |
| 900 | 909 | .llvm_name = "armv8.7-a", |
| 901 | 910 | .zig_name = "v8_7a", |
| 911 | .omit_deps = &.{"crypto"}, | |
| 902 | 912 | }, |
| 903 | 913 | .{ |
| 904 | 914 | .llvm_name = "armv8.8-a", |
| 905 | 915 | .zig_name = "v8_8a", |
| 916 | .omit_deps = &.{"crypto"}, | |
| 906 | 917 | }, |
| 907 | 918 | .{ |
| 908 | 919 | .llvm_name = "armv8.9-a", |
| 909 | 920 | .zig_name = "v8_9a", |
| 921 | .omit_deps = &.{"crypto"}, | |
| 910 | 922 | }, |
| 911 | 923 | .{ |
| 912 | 924 | .llvm_name = "armv8-a", |
| 913 | 925 | .zig_name = "v8a", |
| 926 | .omit_deps = &.{"crypto"}, | |
| 914 | 927 | }, |
| 915 | 928 | .{ |
| 916 | 929 | .llvm_name = "armv8-m.base", |
| 917 | 930 | .zig_name = "v8m", |
| 931 | .omit_deps = &.{"8msecext"}, | |
| 918 | 932 | }, |
| 919 | 933 | .{ |
| 920 | 934 | .llvm_name = "armv8-m.main", |
| 921 | 935 | .zig_name = "v8m_main", |
| 936 | .omit_deps = &.{"8msecext"}, | |
| 922 | 937 | }, |
| 923 | 938 | .{ |
| 924 | 939 | .llvm_name = "armv8-r", |
| ... | ... | @@ -935,6 +950,7 @@ const targets = [_]ArchTarget{ |
| 935 | 950 | .{ |
| 936 | 951 | .llvm_name = "armv9.3-a", |
| 937 | 952 | .zig_name = "v9_3a", |
| 953 | .omit_deps = &.{"crypto"}, | |
| 938 | 954 | }, |
| 939 | 955 | .{ |
| 940 | 956 | .llvm_name = "armv9.4-a", |
| ... | ... | @@ -1101,6 +1117,78 @@ const targets = [_]ArchTarget{ |
| 1101 | 1117 | }, |
| 1102 | 1118 | }, |
| 1103 | 1119 | .model_overrides = &.{ |
| 1120 | .{ | |
| 1121 | .llvm_name = "cortex-a5", | |
| 1122 | .omit_deps = &.{"vfp4"}, | |
| 1123 | }, | |
| 1124 | .{ | |
| 1125 | .llvm_name = "cortex-a7", | |
| 1126 | .omit_deps = &.{"vfp4"}, | |
| 1127 | }, | |
| 1128 | .{ | |
| 1129 | .llvm_name = "cortex-a9", | |
| 1130 | .omit_deps = &.{"fp16"}, | |
| 1131 | }, | |
| 1132 | .{ | |
| 1133 | .llvm_name = "cortex-a12", | |
| 1134 | .omit_deps = &.{"vfp4"}, | |
| 1135 | }, | |
| 1136 | .{ | |
| 1137 | .llvm_name = "cortex-a15", | |
| 1138 | .omit_deps = &.{"vfp4"}, | |
| 1139 | }, | |
| 1140 | .{ | |
| 1141 | .llvm_name = "cortex-a17", | |
| 1142 | .omit_deps = &.{"vfp4"}, | |
| 1143 | }, | |
| 1144 | .{ | |
| 1145 | .llvm_name = "cortex-a32", | |
| 1146 | .omit_deps = &.{"crypto"}, | |
| 1147 | }, | |
| 1148 | .{ | |
| 1149 | .llvm_name = "cortex-a35", | |
| 1150 | .omit_deps = &.{"crypto"}, | |
| 1151 | }, | |
| 1152 | .{ | |
| 1153 | .llvm_name = "cortex-a53", | |
| 1154 | .omit_deps = &.{"crypto"}, | |
| 1155 | }, | |
| 1156 | .{ | |
| 1157 | .llvm_name = "cortex-a57", | |
| 1158 | .omit_deps = &.{"crypto"}, | |
| 1159 | }, | |
| 1160 | .{ | |
| 1161 | .llvm_name = "cortex-a72", | |
| 1162 | .omit_deps = &.{"crypto"}, | |
| 1163 | }, | |
| 1164 | .{ | |
| 1165 | .llvm_name = "cortex-a73", | |
| 1166 | .omit_deps = &.{"crypto"}, | |
| 1167 | }, | |
| 1168 | .{ | |
| 1169 | .llvm_name = "cortex-a76", | |
| 1170 | .omit_deps = &.{"crypto"}, | |
| 1171 | }, | |
| 1172 | .{ | |
| 1173 | .llvm_name = "cortex-a76ae", | |
| 1174 | .omit_deps = &.{"crypto"}, | |
| 1175 | }, | |
| 1176 | .{ | |
| 1177 | .llvm_name = "cortex-a77", | |
| 1178 | .omit_deps = &.{"crypto"}, | |
| 1179 | }, | |
| 1180 | .{ | |
| 1181 | .llvm_name = "cortex-a78", | |
| 1182 | .omit_deps = &.{"crypto"}, | |
| 1183 | }, | |
| 1184 | .{ | |
| 1185 | .llvm_name = "cortex-a78ae", | |
| 1186 | .omit_deps = &.{"crypto"}, | |
| 1187 | }, | |
| 1188 | .{ | |
| 1189 | .llvm_name = "cortex-a78c", | |
| 1190 | .omit_deps = &.{"crypto"}, | |
| 1191 | }, | |
| 1104 | 1192 | .{ |
| 1105 | 1193 | .llvm_name = "cortex-m4", |
| 1106 | 1194 | .omit_deps = &.{"vfp4d16sp"}, |
| ... | ... | @@ -1127,6 +1215,7 @@ const targets = [_]ArchTarget{ |
| 1127 | 1215 | }, |
| 1128 | 1216 | .{ |
| 1129 | 1217 | .llvm_name = "cortex-m85", |
| 1218 | .extra_deps = &.{"8msecext"}, | |
| 1130 | 1219 | .omit_deps = &.{ "fp_armv8d16", "mve_fp", "pacbti" }, |
| 1131 | 1220 | }, |
| 1132 | 1221 | .{ |
| ... | ... | @@ -1149,6 +1238,26 @@ const targets = [_]ArchTarget{ |
| 1149 | 1238 | .llvm_name = "cortex-r52plus", |
| 1150 | 1239 | .omit_deps = &.{ "fp_armv8", "neon" }, |
| 1151 | 1240 | }, |
| 1241 | .{ | |
| 1242 | .llvm_name = "cortex-x1", | |
| 1243 | .omit_deps = &.{"crypto"}, | |
| 1244 | }, | |
| 1245 | .{ | |
| 1246 | .llvm_name = "cortex-x1c", | |
| 1247 | .omit_deps = &.{"crypto"}, | |
| 1248 | }, | |
| 1249 | .{ | |
| 1250 | .llvm_name = "krait", | |
| 1251 | .extra_deps = &.{"neon"}, | |
| 1252 | }, | |
| 1253 | .{ | |
| 1254 | .llvm_name = "neoverse-n1", | |
| 1255 | .omit_deps = &.{"crypto"}, | |
| 1256 | }, | |
| 1257 | .{ | |
| 1258 | .llvm_name = "neoverse-v1", | |
| 1259 | .omit_deps = &.{"crypto"}, | |
| 1260 | }, | |
| 1152 | 1261 | .{ |
| 1153 | 1262 | .llvm_name = "star-mc1", |
| 1154 | 1263 | .omit_deps = &.{ "dsp", "fp_armv8d16sp" }, |
| ... | ... | @@ -1157,12 +1266,16 @@ const targets = [_]ArchTarget{ |
| 1157 | 1266 | .llvm_name = "star-mc3", |
| 1158 | 1267 | .omit_deps = &.{ "fp_armv8d16", "mve_fp", "pacbti" }, |
| 1159 | 1268 | }, |
| 1269 | .{ | |
| 1270 | .llvm_name = "swift", | |
| 1271 | .extra_deps = &.{"neon"}, | |
| 1272 | }, | |
| 1160 | 1273 | }, |
| 1161 | 1274 | .extra_models = &.{ |
| 1162 | 1275 | .{ |
| 1163 | 1276 | .llvm_name = "generic", |
| 1164 | 1277 | .zig_name = "baseline", |
| 1165 | .features = &.{"v7a"}, | |
| 1278 | .features = &.{ "v7a", "vfp3d16" }, | |
| 1166 | 1279 | }, |
| 1167 | 1280 | .{ |
| 1168 | 1281 | .llvm_name = null, |
| ... | ... | @@ -1174,6 +1287,26 @@ const targets = [_]ArchTarget{ |
| 1174 | 1287 | .zig_name = "exynos_m2", |
| 1175 | 1288 | .features = &.{ "v8a", "exynos" }, |
| 1176 | 1289 | }, |
| 1290 | .{ | |
| 1291 | .llvm_name = "cortex-a9", | |
| 1292 | .zig_name = "kermit", | |
| 1293 | .features = &.{ | |
| 1294 | "avoid_partial_cpsr", | |
| 1295 | "expand_fp_mlx", | |
| 1296 | "fp16", | |
| 1297 | "mp", | |
| 1298 | "muxed_units", | |
| 1299 | "neon", | |
| 1300 | "neon_fpmovs", | |
| 1301 | "prefer_vmovsr", | |
| 1302 | "ret_addr_stack", | |
| 1303 | "trustzone", | |
| 1304 | "v7a", | |
| 1305 | "vldn_align", | |
| 1306 | "vmlx_forwarding", | |
| 1307 | "vmlx_hazards", | |
| 1308 | }, | |
| 1309 | }, | |
| 1177 | 1310 | }, |
| 1178 | 1311 | }, |
| 1179 | 1312 | .{ |