authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-08 18:34:45-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-15 03:07:51-04:00
loge98e58691f2c0759c8534080446cf6faecd30eb0
tree824e8ea79f463ca7e9e9f7666ad4d1d329f7161b
parent019c8844811ffb8b385ac8891cfd17cbf60d104a

x86_64: fix crash with logging enabled


1 files changed, 10 insertions(+), 9 deletions(-)

src/arch/x86_64/CodeGen.zig+10-9
......@@ -1460,6 +1460,15 @@ fn asmMemoryRegister(self: *Self, tag: Mir.Inst.FixedTag, m: Memory, reg: Regist
14601460}
14611461
14621462fn asmMemoryImmediate(self: *Self, tag: Mir.Inst.FixedTag, m: Memory, imm: Immediate) !void {
1463 const payload = try self.addExtra(Mir.Imm32{ .imm = switch (imm) {
1464 .signed => |s| @bitCast(u32, s),
1465 .unsigned => |u| @intCast(u32, u),
1466 } });
1467 assert(payload + 1 == switch (m) {
1468 .sib => try self.addExtra(Mir.MemorySib.encode(m)),
1469 .rip => try self.addExtra(Mir.MemoryRip.encode(m)),
1470 else => unreachable,
1471 });
14631472 _ = try self.addInst(.{
14641473 .tag = tag[1],
14651474 .ops = switch (m) {
......@@ -1475,17 +1484,9 @@ fn asmMemoryImmediate(self: *Self, tag: Mir.Inst.FixedTag, m: Memory, imm: Immed
14751484 },
14761485 .data = .{ .x = .{
14771486 .fixes = tag[0],
1478 .payload = try self.addExtra(Mir.Imm32{ .imm = switch (imm) {
1479 .signed => |s| @bitCast(u32, s),
1480 .unsigned => |u| @intCast(u32, u),
1481 } }),
1487 .payload = payload,
14821488 } },
14831489 });
1484 _ = switch (m) {
1485 .sib => try self.addExtra(Mir.MemorySib.encode(m)),
1486 .rip => try self.addExtra(Mir.MemoryRip.encode(m)),
1487 else => unreachable,
1488 };
14891490}
14901491
14911492fn asmMemoryRegisterRegister(