commit 8f2aa72af7695dc8fba9946b60129a4f615d6727 (tree)
parent a70d8d29d5895a8b44a86e8f065ee3ee59c9bfe8
Author: Jacob Young <jacobly0@users.noreply.github.com>
Date: Wed, 8 Nov 2023 07:20:18 -0500
x86_64: fix optional comparison
Diffstat:
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig
@@ -4877,11 +4877,14 @@ fn airWrapOptional(self: *Self, inst: Air.Inst.Index) !void {
switch (opt_mcv) {
else => unreachable,
- .register => |opt_reg| try self.asmRegisterImmediate(
- .{ ._s, .bt },
- opt_reg,
- Immediate.u(@as(u6, @intCast(pl_abi_size * 8))),
- ),
+ .register => |opt_reg| {
+ try self.truncateRegister(pl_ty, opt_reg);
+ try self.asmRegisterImmediate(
+ .{ ._s, .bt },
+ opt_reg,
+ Immediate.u(@as(u6, @intCast(pl_abi_size * 8))),
+ );
+ },
.load_frame => |frame_addr| try self.asmMemoryImmediate(
.{ ._, .mov },