diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2025-04-05 01:46:13 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-05 01:46:13 -0400 |
| commit | 0cd31fc7ff157551cfbba5da35cd79f118d2a2e3 (patch) | |
| tree | a308488f5d85184c8ec402fb3f55f1cf2704443e /lib/std/Target/wasm.zig | |
| parent | 8acedfd5baabab705946ad097746f9183ef62420 (diff) | |
| parent | cefe65c1b8abe65a22d4b68410db1be264fdeda0 (diff) | |
| download | zig-0cd31fc7ff157551cfbba5da35cd79f118d2a2e3.tar.gz zig-0cd31fc7ff157551cfbba5da35cd79f118d2a2e3.zip | |
Merge pull request #22780 from ziglang/llvm20
LLVM 20
Diffstat (limited to 'lib/std/Target/wasm.zig')
| -rw-r--r-- | lib/std/Target/wasm.zig | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/lib/std/Target/wasm.zig b/lib/std/Target/wasm.zig index d5d4dc8f7e..3862a91edd 100644 --- a/lib/std/Target/wasm.zig +++ b/lib/std/Target/wasm.zig @@ -7,9 +7,11 @@ const CpuModel = std.Target.Cpu.Model; pub const Feature = enum { atomics, bulk_memory, + bulk_memory_opt, + call_indirect_overlong, exception_handling, extended_const, - half_precision, + fp16, multimemory, multivalue, mutable_globals, @@ -20,6 +22,7 @@ pub const Feature = enum { sign_ext, simd128, tail_call, + wide_arithmetic, }; pub const featureSet = CpuFeature.FeatureSetFns(Feature).featureSet; @@ -39,6 +42,18 @@ pub const all_features = blk: { result[@intFromEnum(Feature.bulk_memory)] = .{ .llvm_name = "bulk-memory", .description = "Enable bulk memory operations", + .dependencies = featureSet(&[_]Feature{ + .bulk_memory_opt, + }), + }; + result[@intFromEnum(Feature.bulk_memory_opt)] = .{ + .llvm_name = "bulk-memory-opt", + .description = "Enable bulk memory optimization operations", + .dependencies = featureSet(&[_]Feature{}), + }; + result[@intFromEnum(Feature.call_indirect_overlong)] = .{ + .llvm_name = "call-indirect-overlong", + .description = "Enable overlong encoding for call_indirect immediates", .dependencies = featureSet(&[_]Feature{}), }; result[@intFromEnum(Feature.exception_handling)] = .{ @@ -51,9 +66,9 @@ pub const all_features = blk: { .description = "Enable extended const expressions", .dependencies = featureSet(&[_]Feature{}), }; - result[@intFromEnum(Feature.half_precision)] = .{ - .llvm_name = "half-precision", - .description = "Enable half precision instructions", + result[@intFromEnum(Feature.fp16)] = .{ + .llvm_name = "fp16", + .description = "Enable FP16 instructions", .dependencies = featureSet(&[_]Feature{}), }; result[@intFromEnum(Feature.multimemory)] = .{ @@ -75,7 +90,7 @@ pub const all_features = blk: { .llvm_name = null, .description = "Bulk memory operations with a zero length do not trap", .dependencies = featureSet(&[_]Feature{ - .bulk_memory, + .bulk_memory_opt, }), }; result[@intFromEnum(Feature.nontrapping_fptoint)] = .{ @@ -86,7 +101,9 @@ pub const all_features = blk: { result[@intFromEnum(Feature.reference_types)] = .{ .llvm_name = "reference-types", .description = "Enable reference types", - .dependencies = featureSet(&[_]Feature{}), + .dependencies = featureSet(&[_]Feature{ + .call_indirect_overlong, + }), }; result[@intFromEnum(Feature.relaxed_simd)] = .{ .llvm_name = "relaxed-simd", @@ -108,6 +125,11 @@ pub const all_features = blk: { .description = "Enable tail call instructions", .dependencies = featureSet(&[_]Feature{}), }; + result[@intFromEnum(Feature.wide_arithmetic)] = .{ + .llvm_name = "wide-arithmetic", + .description = "Enable wide-arithmetic instructions", + .dependencies = featureSet(&[_]Feature{}), + }; const ti = @typeInfo(Feature); for (&result, 0..) |*elem, i| { elem.index = i; @@ -125,7 +147,7 @@ pub const cpu = struct { .bulk_memory, .exception_handling, .extended_const, - .half_precision, + .fp16, .multimemory, .multivalue, .mutable_globals, @@ -141,17 +163,20 @@ pub const cpu = struct { .name = "generic", .llvm_name = "generic", .features = featureSet(&[_]Feature{ + .bulk_memory, .multivalue, .mutable_globals, + .nontrapping_fptoint, .reference_types, .sign_ext, }), }; pub const lime1: CpuModel = .{ .name = "lime1", - .llvm_name = null, + .llvm_name = "lime1", .features = featureSet(&[_]Feature{ - .bulk_memory, + .bulk_memory_opt, + .call_indirect_overlong, .extended_const, .multivalue, .mutable_globals, |
