diff options
Diffstat (limited to 'src/codegen.zig')
-rw-r--r-- | src/codegen.zig | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 3fed244..0dbf35e 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -709,7 +709,6 @@ const ProcedureContext = struct { fn genAssignLocal(self: *Self, assign_local: compile.Instr.AssignLocal) !void { const src = self.register_allocator.get(assign_local.val); try self.freeUnusedVRegs(); - std.log.debug("{}", .{self.locals.get(assign_local.local).?.stack_offset}); try self.emit(.sd(.sp, self.locals.get(assign_local.local).?.stack_offset, src)); } @@ -755,16 +754,12 @@ const ProcedureContext = struct { try self.emit(.addi(.sp, .sp, -self.stack_size)); try self.emit(.sd(.sp, 0, .ra)); - if (self.proc.param_reg) |reg| { - const param = try self.register_allocator.allocate(reg); - try self.emit(.addi(param, .a0, 0)); + if (self.proc.param_lvar) |lvar| { + try self.emit(.sd(.sp, self.locals.get(lvar).?.stack_offset, .a0)); } } fn epilogue(self: *Self) !void { - if (self.proc.param_reg) |reg| { - self.register_allocator.free(reg); - } try self.emit(.ld(.ra, .sp, 0)); try self.emit(.addi(.sp, .sp, self.stack_size)); try self.emit(.jalr(.zero, .ra, 0)); |