From 2e9ce6facd47189c4bbcd90a2a6ba1a689bfbde3 Mon Sep 17 00:00:00 2001 From: mparadinha Date: Sun, 23 Jan 2022 22:04:50 +0000 Subject: stage2: x64: fix printing of callee preserved regs instructions --- src/arch/x86_64/PrintMir.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/arch/x86_64/PrintMir.zig b/src/arch/x86_64/PrintMir.zig index a7a4666f77..8f30802912 100644 --- a/src/arch/x86_64/PrintMir.zig +++ b/src/arch/x86_64/PrintMir.zig @@ -186,8 +186,11 @@ fn mirPushPopRegsFromCalleePreservedRegs(print: *const Print, tag: Mir.Inst.Tag, const regs = data.regs; var disp: u32 = data.disp + 8; if (regs == 0) return w.writeAll("no regs from callee_preserved_regs\n"); + var printed_first_reg = false; for (bits.callee_preserved_regs) |reg, i| { if ((regs >> @intCast(u5, i)) & 1 == 0) continue; + if (printed_first_reg) try w.writeAll(" "); + printed_first_reg = true; if (tag == .push) { try w.print("mov qword ptr [{s} + {d}], {s}", .{ @tagName(ops.reg1), @@ -202,8 +205,8 @@ fn mirPushPopRegsFromCalleePreservedRegs(print: *const Print, tag: Mir.Inst.Tag, }); } disp += 8; + try w.writeByte('\n'); } - try w.writeByte('\n'); } fn mirJmpCall(print: *const Print, tag: Mir.Inst.Tag, inst: Mir.Inst.Index, w: anytype) !void { -- cgit v1.2.3