authorgravatar for techatrix@mailbox.orgTechatrix <techatrix@mailbox.org> 2023-01-31 17:01:56+01:00
committergravatar for techatrix@mailbox.orgTechatrix <techatrix@mailbox.org> 2023-01-31 17:01:56+01:00
log47ff57ed7ddbf4c4a0f93208fc96851c9033b8b7
tree9b9b34a7deb95bccf2f9a886e29d21642cf1160c
parent1f64432196e51785fe1dba442a0878c1b10f8b06

wasm: apply request change


3 files changed, 5 insertions(+), 7 deletions(-)

src/arch/wasm/CodeGen.zig+5-2
......@@ -3880,8 +3880,11 @@ fn isNull(func: *CodeGen, operand: WValue, optional_ty: Type, opcode: wasm.Opcod
38803880 try func.addMemArg(.i32_load8_u, .{ .offset = operand.offset(), .alignment = 1 });
38813881 }
38823882 } else if (payload_ty.isSlice()) {
3883 // move the ptr on top of the stack
3884 _ = try func.load(operand, Type.usize, 0);
3883 switch (func.arch()) {
3884 .wasm32 => try func.addMemArg(.i32_load, .{ .offset = operand.offset(), .alignment = 4 }),
3885 .wasm64 => try func.addMemArg(.i64_load, .{ .offset = operand.offset(), .alignment = 8 }),
3886 else => unreachable,
3887 }
38853888 }
38863889
38873890 // Compare the null value with '0'
test/behavior/cast.zig-3
......@@ -1179,7 +1179,6 @@ fn peerTypeEmptyArrayAndSlice(a: bool, slice: []const u8) []const u8 {
11791179test "implicitly cast from [N]T to ?[]const T" {
11801180 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
11811181 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1182 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
11831182 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
11841183
11851184 try expect(mem.eql(u8, castToOptionalSlice().?, "hi"));
......@@ -1264,7 +1263,6 @@ test "cast from array reference to fn: runtime fn ptr" {
12641263test "*const [N]null u8 to ?[]const u8" {
12651264 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
12661265 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1267 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
12681266 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
12691267
12701268 const S = struct {
......@@ -1413,7 +1411,6 @@ test "cast i8 fn call peers to i32 result" {
14131411test "cast compatible optional types" {
14141412 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
14151413 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1416 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
14171414 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
14181415
14191416 var a: ?[:0]const u8 = null;
test/behavior/optional.zig-2
......@@ -439,7 +439,6 @@ test "Optional slice size is optimized" {
439439 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
440440 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
441441 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
442 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
443442 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
444443
445444 try expect(@sizeOf(?[]u8) == @sizeOf([]u8));
......@@ -479,7 +478,6 @@ test "cast slice to const slice nested in error union and optional" {
479478 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
480479 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
481480 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
482 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
483481
484482 const S = struct {
485483 fn inner() !?[]u8 {