authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-01-05 23:40:53+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-01-06 09:54:33+01:00
logee6e9b3c48acea20bae340e59a9406ff433de6e7
tree1e8c71671fe90a4af3b70d089890e5fd679d9717
parentb215241ef2153bf4b20f176923824e0e50d6da4c

stage2: fix airStructFieldPtr and airStructFieldVal

This finally fixes `zig test`.

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

src/arch/x86_64/CodeGen.zig+2-2
...@@ -1699,7 +1699,7 @@ fn structFieldPtr(self: *Self, inst: Air.Inst.Index, operand: Air.Inst.Ref, inde...@@ -1699,7 +1699,7 @@ fn structFieldPtr(self: *Self, inst: Air.Inst.Index, operand: Air.Inst.Ref, inde
16991699
1700 switch (mcv) {1700 switch (mcv) {
1701 .ptr_stack_offset => |off| {1701 .ptr_stack_offset => |off| {
1702 const ptr_stack_offset = off - struct_size + struct_field_offset + struct_field_size;1702 const ptr_stack_offset = off + struct_size - struct_field_offset - struct_field_size;
1703 break :result MCValue{ .ptr_stack_offset = ptr_stack_offset };1703 break :result MCValue{ .ptr_stack_offset = ptr_stack_offset };
1704 },1704 },
1705 else => return self.fail("TODO implement codegen struct_field_ptr for {}", .{mcv}),1705 else => return self.fail("TODO implement codegen struct_field_ptr for {}", .{mcv}),
...@@ -1722,7 +1722,7 @@ fn airStructFieldVal(self: *Self, inst: Air.Inst.Index) !void {...@@ -1722,7 +1722,7 @@ fn airStructFieldVal(self: *Self, inst: Air.Inst.Index) !void {
17221722
1723 switch (mcv) {1723 switch (mcv) {
1724 .stack_offset => |off| {1724 .stack_offset => |off| {
1725 const stack_offset = off - struct_size + struct_field_offset + struct_field_size;1725 const stack_offset = off + struct_size - struct_field_offset - struct_field_size;
1726 break :result MCValue{ .stack_offset = stack_offset };1726 break :result MCValue{ .stack_offset = stack_offset };
1727 },1727 },
1728 else => return self.fail("TODO implement codegen struct_field_val for {}", .{mcv}),1728 else => return self.fail("TODO implement codegen struct_field_val for {}", .{mcv}),