authorgravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2022-06-15 23:34:36+07:00
committergravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2022-06-24 21:19:33+07:00
log18d61d691c0c28405a521422a590e6ea84d13c61
treec013cc226ac4506b9069c5b696b6c6ff7545e31e
parent672cd2f02f734a58c577a00f2bef831b6f73e8ff

stage2: sparc64: Implement airArrayElemVal


1 files changed, 7 insertions(+), 1 deletions(-)

src/arch/sparc64/CodeGen.zig+7-1
......@@ -669,7 +669,7 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void {
669669 .ptr_slice_len_ptr => @panic("TODO try self.airPtrSliceLenPtr(inst)"),
670670 .ptr_slice_ptr_ptr => @panic("TODO try self.airPtrSlicePtrPtr(inst)"),
671671
672 .array_elem_val => @panic("TODO try self.airArrayElemVal(inst)"),
672 .array_elem_val => try self.airArrayElemVal(inst),
673673 .slice_elem_val => try self.airSliceElemVal(inst),
674674 .slice_elem_ptr => @panic("TODO try self.airSliceElemPtr(inst)"),
675675 .ptr_elem_val => @panic("TODO try self.airPtrElemVal(inst)"),
......@@ -796,6 +796,12 @@ fn airAlloc(self: *Self, inst: Air.Inst.Index) !void {
796796 return self.finishAir(inst, .{ .ptr_stack_offset = stack_offset }, .{ .none, .none, .none });
797797}
798798
799fn airArrayElemVal(self: *Self, inst: Air.Inst.Index) !void {
800 const bin_op = self.air.instructions.items(.data)[inst].bin_op;
801 const result: MCValue = if (self.liveness.isUnused(inst)) .dead else return self.fail("TODO implement array_elem_val for {}", .{self.target.cpu.arch});
802 return self.finishAir(inst, result, .{ bin_op.lhs, bin_op.rhs, .none });
803}
804
799805fn airArrayToSlice(self: *Self, inst: Air.Inst.Index) !void {
800806 const ty_op = self.air.instructions.items(.data)[inst].ty_op;
801807 const result: MCValue = if (self.liveness.isUnused(inst)) .dead else result: {