aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMathias Magnusson <mathias@magnusson.space>2025-06-01 02:29:41 +0200
committerMathias Magnusson <mathias@magnusson.space>2025-06-01 02:29:41 +0200
commita49805b7a8a9fc05df34f14cb8b6892c723e2a61 (patch)
tree205dfde0d9d8a32ce3c24620d1d449556a650a13 /src
parentb10cb715610d0186b70765a152baaf71e192a9f1 (diff)
downloadhuginn-a49805b7a8a9fc05df34f14cb8b6892c723e2a61.tar.gz
codegen: fix some small bugs
Diffstat (limited to 'src')
-rw-r--r--src/codegen.zig10
1 files changed, 5 insertions, 5 deletions
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),
} };
}
};