From 8f2aa72af7695dc8fba9946b60129a4f615d6727 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Wed, 8 Nov 2023 07:20:18 -0500 Subject: [PATCH] x86_64: fix optional comparison --- src/arch/x86_64/CodeGen.zig | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 16a4b4a7f4..4501a01c66 100644 --- 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 },