authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-03-01 15:37:31+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-03-01 17:59:39+01:00
log52205a3c162d5adaf98be1dbf96bf86afd658182
tree3b0113e2e22cd1911100b71c21403588f4eaa451
parentad03fef71222ad4335107257451c1828fb9adc88

x64: fix array to slice impl


2 files changed, 1 insertions(+), 3 deletions(-)

src/arch/x86_64/CodeGen.zig+1-1
...@@ -5268,7 +5268,7 @@ fn airArrayToSlice(self: *Self, inst: Air.Inst.Index) !void {...@@ -5268,7 +5268,7 @@ fn airArrayToSlice(self: *Self, inst: Air.Inst.Index) !void {
5268 const ptr_ty = self.air.typeOf(ty_op.operand);5268 const ptr_ty = self.air.typeOf(ty_op.operand);
5269 const ptr = try self.resolveInst(ty_op.operand);5269 const ptr = try self.resolveInst(ty_op.operand);
5270 const array_ty = ptr_ty.childType();5270 const array_ty = ptr_ty.childType();
5271 const array_len = array_ty.arrayLenIncludingSentinel();5271 const array_len = array_ty.arrayLen();
5272 const result: MCValue = if (self.liveness.isUnused(inst)) .dead else blk: {5272 const result: MCValue = if (self.liveness.isUnused(inst)) .dead else blk: {
5273 const stack_offset = @intCast(i32, try self.allocMem(inst, 16, 16));5273 const stack_offset = @intCast(i32, try self.allocMem(inst, 16, 16));
5274 try self.genSetStack(ptr_ty, stack_offset, ptr, .{});5274 try self.genSetStack(ptr_ty, stack_offset, ptr, .{});
test/behavior/cast.zig-2
...@@ -497,7 +497,6 @@ test "single-item pointer of array to slice to unknown length pointer" {...@@ -497,7 +497,6 @@ test "single-item pointer of array to slice to unknown length pointer" {
497 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;497 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
498 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO498 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
499 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO499 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
500 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
501500
502 try testCastPtrOfArrayToSliceAndPtr();501 try testCastPtrOfArrayToSliceAndPtr();
503 comptime try testCastPtrOfArrayToSliceAndPtr();502 comptime try testCastPtrOfArrayToSliceAndPtr();
...@@ -821,7 +820,6 @@ test "peer cast [:x]T to []T" {...@@ -821,7 +820,6 @@ test "peer cast [:x]T to []T" {
821 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;820 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
822 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO821 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
823 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO822 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
824 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
825823
826 const S = struct {824 const S = struct {
827 fn doTheTest() !void {825 fn doTheTest() !void {