From 7f86e0dc92670dd5da34cd22c36aba18fa58ec6d Mon Sep 17 00:00:00 2001 From: Mathias Magnusson Date: Thu, 3 Jul 2025 23:00:50 +0200 Subject: implement comparisons --- src/codegen.zig | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/codegen.zig') diff --git a/src/codegen.zig b/src/codegen.zig index 7ade3fd..701a4e8 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -642,6 +642,14 @@ const Context = struct { switch (bin_op.op) { .add => try self.emit(.add(reg, lhs, rhs)), .sub => try self.emit(.sub(reg, lhs, rhs)), + .less_than => try self.emit(.sltu(reg, lhs, rhs)), + .greater_than => try self.emit(.sltu(reg, rhs, lhs)), + .less_or_equal, .greater_or_equal => { + const l, const r = if (bin_op.op == .less_or_equal) .{ lhs, rhs } else .{ rhs, lhs }; + + try self.emit(.sltu(reg, r, l)); + try self.emit(.xori(reg, reg, 1)); + }, } } -- cgit v1.2.3