diff --git a/lib/std/hash/crc.zig b/lib/std/hash/crc.zig index 4b9a10af17d9f1ce51d261e41adab17ccbf9678d..d81fee7774ce49362ec6c92414047f8d803d3b59 100644 --- a/lib/std/hash/crc.zig +++ b/lib/std/hash/crc.zig @@ -14,7 +14,7 @@ test { _ = @import("crc/test.zig"); } -pub const Crc32Iscsi = switch (builtin.cpu.hasAll(.x86, &.{ .@"64bit", .crc32 }) and builtin.zig_backend == .stage2_llvm) { +pub const Crc32Iscsi = switch (builtin.cpu.hasAll(.x86, &.{ .@"64bit", .crc32 })) { true => @import("crc/Crc32c.zig"), else => Crc(u32, .{ .polynomial = 0x1edc6f41, diff --git a/src/codegen/x86_64/CodeGen.zig b/src/codegen/x86_64/CodeGen.zig index 02eac4e411dea0a6eb9e7f250d1e834a4726e91c..a7f40aa417b575aa2ceea22ea0935ec107456f9e 100644 --- a/src/codegen/x86_64/CodeGen.zig +++ b/src/codegen/x86_64/CodeGen.zig @@ -178018,6 +178018,10 @@ fn airAsm(self: *CodeGen, inst: Air.Inst.Index) !void { fixed_mnem_size: { const fixed_mnem_size: Memory.Size = switch (mnem_tag) { .clflush => .byte, + .crc32 => { + mnem_size.op_has_size.unset(1); + break :fixed_mnem_size; + }, .fldcw, .fnstcw, .fstcw, .fnstsw, .fstsw => .word, .fldenv, .fnstenv, .fstenv => .none, .frstor, .fsave, .fnsave, .fxrstor, .fxrstor64, .fxsave, .fxsave64 => .none, diff --git a/tools/update_crc_catalog.zig b/tools/update_crc_catalog.zig index 5df014d15d5d2f6261957d4d0790c2ef81785d9c..283b60b0d19ef14285bd758fa8aae7631e955690 100644 --- a/tools/update_crc_catalog.zig +++ b/tools/update_crc_catalog.zig @@ -53,7 +53,7 @@ fn @"i like cheese"(arena: std.mem.Allocator, io: Io, args: []const []const u8) \\ _ = @import("crc/test.zig"); \\} \\ - \\pub const Crc32Iscsi = switch (builtin.cpu.hasAll(.x86, &.{ .@"64bit", .crc32 }) and builtin.zig_backend == .stage2_llvm) { + \\pub const Crc32Iscsi = switch (builtin.cpu.hasAll(.x86, &.{ .@"64bit", .crc32 })) { \\ true => @import("crc/Crc32c.zig"), \\ else => Crc(u32, .{ \\ .polynomial = 0x1edc6f41,