authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-11-08 13:50:30+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-11-08 13:50:30+01:00
log32ad218f5aa389d5827af6367d180efe2f5bba38
treeb7416411b90b49aa64cd2854a0ac735a7f9fd4d1
parent45f65c84457f3b52209fd4f4595130d6528ebecd

aarch64: revert changes to .call


1 files changed, 6 insertions(+), 4 deletions(-)

src/arch/aarch64/CodeGen.zig+6-4
...@@ -4215,16 +4215,18 @@ fn airCall(self: *Self, inst: Air.Inst.Index, modifier: std.builtin.CallOptions....@@ -4215,16 +4215,18 @@ fn airCall(self: *Self, inst: Air.Inst.Index, modifier: std.builtin.CallOptions.
42154215
4216 const result: MCValue = result: {4216 const result: MCValue = result: {
4217 switch (info.return_value) {4217 switch (info.return_value) {
4218 .register => {4218 .register => |reg| {
4219 // Save function return value in a callee saved register4219 if (RegisterManager.indexOfReg(&callee_preserved_regs, reg) == null) {
4220 break :result try self.copyToNewRegister(inst, info.return_value);4220 // Save function return value in a callee saved register
4221 break :result try self.copyToNewRegister(inst, info.return_value);
4222 }
4221 },4223 },
4222 else => {},4224 else => {},
4223 }4225 }
4224 break :result info.return_value;4226 break :result info.return_value;
4225 };4227 };
42264228
4227 if (args.len <= Liveness.bpi - 2) {4229 if (args.len + 1 <= Liveness.bpi - 1) {
4228 var buf = [1]Air.Inst.Ref{.none} ** (Liveness.bpi - 1);4230 var buf = [1]Air.Inst.Ref{.none} ** (Liveness.bpi - 1);
4229 buf[0] = callee;4231 buf[0] = callee;
4230 std.mem.copy(Air.Inst.Ref, buf[1..], args);4232 std.mem.copy(Air.Inst.Ref, buf[1..], args);