| author | |
| committer | |
| log | a3da3eea8f3bf0c9e26a84e9c280662d95c6bda2 |
| tree | 303f597cb33f7f2ebd820b588205862ff9d56601 |
| parent | 180f6156f58b921920f3491f423759b4d7bd187c |
closes https://codeberg.org/ziglang/zig/issues/31190
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/35813
Reviewed-by: Alex Rønne Petersen <alex@alexrp.com>4 files changed, 9 insertions(+), 2 deletions(-)
lib/std/Target.zig+1| ... | @@ -2347,6 +2347,7 @@ pub fn supportsAddressSpace( | ... | @@ -2347,6 +2347,7 @@ pub fn supportsAddressSpace( |
| 2347 | (is_spirv and (context == null or context == .constant or context == .pointer)), | 2347 | (is_spirv and (context == null or context == .constant or context == .pointer)), |
| 2348 | .param => is_nvptx, | 2348 | .param => is_nvptx, |
| 2349 | .input, .output, .uniform, .push_constant, .storage_buffer, .physical_storage_buffer => is_spirv, | 2349 | .input, .output, .uniform, .push_constant, .storage_buffer, .physical_storage_buffer => is_spirv, |
| 2350 | .externref, .funcref => target.cpu.has(.wasm, .reference_types), | ||
| 2350 | }; | 2351 | }; |
| 2351 | } | 2352 | } |
| 2352 | 2353 |
lib/std/lang.zig+4| ... | @@ -567,6 +567,10 @@ pub const AddressSpace = enum(u5) { | ... | @@ -567,6 +567,10 @@ pub const AddressSpace = enum(u5) { |
| 567 | 567 | ||
| 568 | /// This address space only addresses the "lookup" ram | 568 | /// This address space only addresses the "lookup" ram |
| 569 | lut, | 569 | lut, |
| 570 | |||
| 571 | // Web Assembly | ||
| 572 | externref, | ||
| 573 | funcref, | ||
| 570 | }; | 574 | }; |
| 571 | 575 | ||
| 572 | /// This data structure is used by the Zig language code generation and | 576 | /// This data structure is used by the Zig language code generation and |
src/codegen/llvm.zig+2-2| ... | @@ -4674,8 +4674,8 @@ fn llvmAddrSpaceInfo(target: *const std.Target) []const AddrSpaceInfo { | ... | @@ -4674,8 +4674,8 @@ fn llvmAddrSpaceInfo(target: *const std.Target) []const AddrSpaceInfo { |
| 4674 | .wasm32, .wasm64 => &.{ | 4674 | .wasm32, .wasm64 => &.{ |
| 4675 | .{ .zig = .generic, .llvm = Builder.AddrSpace.wasm.default, .force_in_data_layout = true }, | 4675 | .{ .zig = .generic, .llvm = Builder.AddrSpace.wasm.default, .force_in_data_layout = true }, |
| 4676 | .{ .zig = null, .llvm = Builder.AddrSpace.wasm.variable, .non_integral = true }, | 4676 | .{ .zig = null, .llvm = Builder.AddrSpace.wasm.variable, .non_integral = true }, |
| 4677 | .{ .zig = null, .llvm = Builder.AddrSpace.wasm.externref, .non_integral = true, .size = 8, .abi = 8 }, | 4677 | .{ .zig = .externref, .llvm = Builder.AddrSpace.wasm.externref, .non_integral = true, .size = 8, .abi = 8 }, |
| 4678 | .{ .zig = null, .llvm = Builder.AddrSpace.wasm.funcref, .non_integral = true, .size = 8, .abi = 8 }, | 4678 | .{ .zig = .funcref, .llvm = Builder.AddrSpace.wasm.funcref, .non_integral = true, .size = 8, .abi = 8 }, |
| 4679 | }, | 4679 | }, |
| 4680 | .m68k => &.{ | 4680 | .m68k => &.{ |
| 4681 | .{ .zig = .generic, .llvm = .default, .abi = 16, .pref = 32 }, | 4681 | .{ .zig = .generic, .llvm = .default, .abi = 16, .pref = 32 }, |
src/codegen/spirv/Module.zig+2| ... | @@ -1059,6 +1059,8 @@ pub fn storageClass(module: *Module, as: std.lang.AddressSpace) spec.StorageClas | ... | @@ -1059,6 +1059,8 @@ pub fn storageClass(module: *Module, as: std.lang.AddressSpace) spec.StorageClas |
| 1059 | .cog, | 1059 | .cog, |
| 1060 | .lut, | 1060 | .lut, |
| 1061 | .hub, | 1061 | .hub, |
| 1062 | .externref, | ||
| 1063 | .funcref, | ||
| 1062 | => unreachable, | 1064 | => unreachable, |
| 1063 | }; | 1065 | }; |
| 1064 | } | 1066 | } |