authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-15 23:58:17-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-18 20:42:38-04:00
log80df8da82f793c87217ec673ff980751461f8164
treed16d8a8c9c6c2c6f15bc7f2a76b0b747f4ff8ecd
parent729daed591ba6884ed1f907166abadf8fad26741

x86_64: initialize array sentinels


2 files changed, 6 insertions(+), 2 deletions(-)

src/arch/x86_64/CodeGen.zig+6
......@@ -11162,6 +11162,12 @@ fn airAggregateInit(self: *Self, inst: Air.Inst.Index) !void {
1116211162 const elem_off = @intCast(i32, elem_size * elem_i);
1116311163 try self.genSetMem(.{ .frame = frame_index }, elem_off, elem_ty, mat_elem_mcv);
1116411164 }
11165 if (result_ty.sentinel()) |sentinel| try self.genSetMem(
11166 .{ .frame = frame_index },
11167 @intCast(i32, elem_size * elements.len),
11168 elem_ty,
11169 try self.genTypedValue(.{ .ty = elem_ty, .val = sentinel }),
11170 );
1116511171 break :result .{ .load_frame = .{ .index = frame_index } };
1116611172 },
1116711173 .Vector => return self.fail("TODO implement aggregate_init for vectors", .{}),
test/behavior/eval.zig-2
......@@ -816,7 +816,6 @@ test "array concatenation peer resolves element types - pointer" {
816816
817817test "array concatenation sets the sentinel - value" {
818818 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
819 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
820819 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
821820 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
822821 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
......@@ -855,7 +854,6 @@ test "array concatenation sets the sentinel - pointer" {
855854
856855test "array multiplication sets the sentinel - value" {
857856 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
858 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
859857 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
860858 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
861859 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO