aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2023-04-14 04:16:53 -0400
committerJacob Young <jacobly0@users.noreply.github.com>2023-04-16 17:05:34 -0400
commit08055f2942abe873283ec46f2656ecb932f915b3 (patch)
tree1f1595316b7fe47ecf9426c5c06397db8fa1bdf4 /src
parent7fad555e5e16e6cb71554981394387a0622093b0 (diff)
downloadzig-08055f2942abe873283ec46f2656ecb932f915b3.tar.gz
zig-08055f2942abe873283ec46f2656ecb932f915b3.zip
x86_64: fix @clz direction
Diffstat (limited to 'src')
-rw-r--r--src/arch/x86_64/CodeGen.zig4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig
index 20c945e451..196dc330fb 100644
--- a/src/arch/x86_64/CodeGen.zig
+++ b/src/arch/x86_64/CodeGen.zig
@@ -3124,7 +3124,7 @@ fn airClz(self: *Self, inst: Air.Inst.Index) !void {
const imm_reg = try self.copyToTmpRegister(dst_ty, .{
.immediate = src_bits ^ (src_bits - 1),
});
- try self.genBinOpMir(.bsf, src_ty, dst_mcv, mat_src_mcv);
+ try self.genBinOpMir(.bsr, src_ty, dst_mcv, mat_src_mcv);
const cmov_abi_size = @max(@intCast(u32, dst_ty.abiSize(self.target.*)), 2);
try self.asmCmovccRegisterRegister(
@@ -3138,7 +3138,7 @@ fn airClz(self: *Self, inst: Air.Inst.Index) !void {
const imm_reg = try self.copyToTmpRegister(dst_ty, .{
.immediate = @as(u64, math.maxInt(u64)) >> @intCast(u6, 64 - self.regBitSize(dst_ty)),
});
- try self.genBinOpMir(.bsf, src_ty, dst_mcv, mat_src_mcv);
+ try self.genBinOpMir(.bsr, src_ty, dst_mcv, mat_src_mcv);
const cmov_abi_size = @max(@intCast(u32, dst_ty.abiSize(self.target.*)), 2);
try self.asmCmovccRegisterRegister(