From a49805b7a8a9fc05df34f14cb8b6892c723e2a61 Mon Sep 17 00:00:00 2001 From: Mathias Magnusson Date: Sun, 1 Jun 2025 02:29:41 +0200 Subject: codegen: fix some small bugs --- src/codegen.zig | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/codegen.zig b/src/codegen.zig index b9f39c9..e52fb47 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -266,12 +266,12 @@ const Instruction = packed union { return I.init(0b0011011, rd, 5, rs1, 0x20 << 5 | @as(i12, @intCast(by))); } /// Set less than immediate, signed. - /// rd = rs1 s< rs2 ? 1 : 0 + /// rd = rs1 s< imm ? 1 : 0 fn slti(rd: Register, rs1: Register, imm: i12) Self { return I.init(0b0010011, rd, 2, rs1, imm); } /// Set less than sign extended immediate, unsigned comparison. - /// rd = rs1 u< rs2 ? 1 : 0 + /// rd = rs1 u< imm ? 1 : 0 fn sltiu(rd: Register, rs1: Register, imm: i12) Self { return I.init(0b0010011, rd, 3, rs1, imm); } @@ -336,7 +336,7 @@ const Instruction = packed union { .funct3 = funct3, .rs1 = rs1, .rs2 = rs2, - .imm11_5 = umm >> 5, + .imm11_5 = @truncate(umm >> 5), } }; } }; @@ -373,7 +373,7 @@ const Instruction = packed union { imm12: u1, fn init(opcode: Opcode, funct3: u3, rs1: Register, rs2: Register, imm: i13) Self { - std.debug.assert(imm % 2 == 0); + std.debug.assert(imm & 1 == 0); const umm: u13 = @bitCast(imm); return .{ .b = .{ .opcode = opcode, @@ -383,7 +383,7 @@ const Instruction = packed union { .rs1 = rs1, .rs2 = rs2, .imm10_5 = @truncate(umm >> 5), - .imm12 = umm >> 12, + .imm12 = @truncate(umm >> 12), } }; } }; -- cgit v1.2.3