zig

fork of https://codeberg.org/ziglang/zig
Log | Tree | Refs | README | LICENSE

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:
Msrc/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 @@ -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 },