| ... | @@ -352,7 +352,7 @@ fn gen(self: *Self) !void { | ... | @@ -352,7 +352,7 @@ fn gen(self: *Self) !void { |
| 352 | if (cc != .Naked) { | 352 | if (cc != .Naked) { |
| 353 | // TODO Finish function prologue and epilogue for sparc64. | 353 | // TODO Finish function prologue and epilogue for sparc64. |
| 354 | | 354 | |
| 355 | // save %sp, stack_save_area, %sp | 355 | // save %sp, stack_reserved_area, %sp |
| 356 | const save_inst = try self.addInst(.{ | 356 | const save_inst = try self.addInst(.{ |
| 357 | .tag = .save, | 357 | .tag = .save, |
| 358 | .data = .{ | 358 | .data = .{ |
| ... | @@ -360,7 +360,7 @@ fn gen(self: *Self) !void { | ... | @@ -360,7 +360,7 @@ fn gen(self: *Self) !void { |
| 360 | .is_imm = true, | 360 | .is_imm = true, |
| 361 | .rd = .sp, | 361 | .rd = .sp, |
| 362 | .rs1 = .sp, | 362 | .rs1 = .sp, |
| 363 | .rs2_or_imm = .{ .imm = -abi.stack_save_area }, | 363 | .rs2_or_imm = .{ .imm = -abi.stack_reserved_area }, |
| 364 | }, | 364 | }, |
| 365 | }, | 365 | }, |
| 366 | }); | 366 | }); |
| ... | @@ -407,7 +407,7 @@ fn gen(self: *Self) !void { | ... | @@ -407,7 +407,7 @@ fn gen(self: *Self) !void { |
| 407 | } | 407 | } |
| 408 | | 408 | |
| 409 | // Backpatch stack offset | 409 | // Backpatch stack offset |
| 410 | const total_stack_size = self.max_end_stack + abi.stack_save_area; // TODO + self.saved_regs_stack_space; | 410 | const total_stack_size = self.max_end_stack + abi.stack_reserved_area; // TODO + self.saved_regs_stack_space; |
| 411 | const stack_size = mem.alignForwardGeneric(u32, total_stack_size, self.stack_align); | 411 | const stack_size = mem.alignForwardGeneric(u32, total_stack_size, self.stack_align); |
| 412 | if (math.cast(i13, stack_size)) |size| { | 412 | if (math.cast(i13, stack_size)) |size| { |
| 413 | self.mir_instructions.set(save_inst, .{ | 413 | self.mir_instructions.set(save_inst, .{ |
| ... | @@ -2299,7 +2299,7 @@ fn genSetReg(self: *Self, ty: Type, reg: Register, mcv: MCValue) InnerError!void | ... | @@ -2299,7 +2299,7 @@ fn genSetReg(self: *Self, ty: Type, reg: Register, mcv: MCValue) InnerError!void |
| 2299 | return self.genSetReg(ty, reg, .{ .immediate = 0xaaaaaaaaaaaaaaaa }); | 2299 | return self.genSetReg(ty, reg, .{ .immediate = 0xaaaaaaaaaaaaaaaa }); |
| 2300 | }, | 2300 | }, |
| 2301 | .ptr_stack_offset => |off| { | 2301 | .ptr_stack_offset => |off| { |
| 2302 | const simm13 = math.cast(u12, off) catch | 2302 | const simm13 = math.cast(u12, off + abi.stack_bias + abi.stack_reserved_area) catch |
| 2303 | return self.fail("TODO larger stack offsets", .{}); | 2303 | return self.fail("TODO larger stack offsets", .{}); |
| 2304 | | 2304 | |
| 2305 | _ = try self.addInst(.{ | 2305 | _ = try self.addInst(.{ |
| ... | @@ -2431,7 +2431,7 @@ fn genSetReg(self: *Self, ty: Type, reg: Register, mcv: MCValue) InnerError!void | ... | @@ -2431,7 +2431,7 @@ fn genSetReg(self: *Self, ty: Type, reg: Register, mcv: MCValue) InnerError!void |
| 2431 | try self.genLoad(reg, reg, i13, 0, ty.abiSize(self.target.*)); | 2431 | try self.genLoad(reg, reg, i13, 0, ty.abiSize(self.target.*)); |
| 2432 | }, | 2432 | }, |
| 2433 | .stack_offset => |off| { | 2433 | .stack_offset => |off| { |
| 2434 | const real_offset = off + abi.stack_bias + abi.stack_save_area; | 2434 | const real_offset = off + abi.stack_bias + abi.stack_reserved_area; |
| 2435 | const simm13 = math.cast(i13, real_offset) catch | 2435 | const simm13 = math.cast(i13, real_offset) catch |
| 2436 | return self.fail("TODO larger stack offsets", .{}); | 2436 | return self.fail("TODO larger stack offsets", .{}); |
| 2437 | try self.genLoad(reg, .sp, i13, simm13, ty.abiSize(self.target.*)); | 2437 | try self.genLoad(reg, .sp, i13, simm13, ty.abiSize(self.target.*)); |
| ... | @@ -2465,7 +2465,7 @@ fn genSetStack(self: *Self, ty: Type, stack_offset: u32, mcv: MCValue) InnerErro | ... | @@ -2465,7 +2465,7 @@ fn genSetStack(self: *Self, ty: Type, stack_offset: u32, mcv: MCValue) InnerErro |
| 2465 | return self.genSetStack(ty, stack_offset, MCValue{ .register = reg }); | 2465 | return self.genSetStack(ty, stack_offset, MCValue{ .register = reg }); |
| 2466 | }, | 2466 | }, |
| 2467 | .register => |reg| { | 2467 | .register => |reg| { |
| 2468 | const real_offset = stack_offset + abi.stack_bias + abi.stack_save_area; | 2468 | const real_offset = stack_offset + abi.stack_bias + abi.stack_reserved_area; |
| 2469 | const simm13 = math.cast(i13, real_offset) catch | 2469 | const simm13 = math.cast(i13, real_offset) catch |
| 2470 | return self.fail("TODO larger stack offsets", .{}); | 2470 | return self.fail("TODO larger stack offsets", .{}); |
| 2471 | return self.genStore(reg, .sp, i13, simm13, abi_size); | 2471 | return self.genStore(reg, .sp, i13, simm13, abi_size); |