authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-03-22 04:28:44-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-03-22 04:29:18-04:00
log3c3a6c937bba39d0edfe226e3a1548c009c04b09
tree63751655d40708ad5d06ee51eddbcc136cae6822
parent2361468e23b18a35578deddd6c4641114ed02ebf

x86_64: fix rare miscomp that clobbers memory


1 files changed, 10 insertions(+), 1 deletions(-)

src/arch/x86_64/CodeGen.zig+10-1
...@@ -105447,10 +105447,19 @@ const Temp = struct {...@@ -105447,10 +105447,19 @@ const Temp = struct {
105447 .dst_temps = .{ .{ .ref = .src0 }, .unused },105447 .dst_temps = .{ .{ .ref = .src0 }, .unused },
105448 .each = .{ .once = &.{} },105448 .each = .{ .once = &.{} },
105449 }, .{105449 }, .{
105450 .required_features = .{ .fast_imm16, null, null, null },
105451 .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any },105450 .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any },
105452 .patterns = &.{105451 .patterns = &.{
105453 .{ .src = .{ .mut_mem, .none, .none } },105452 .{ .src = .{ .mut_mem, .none, .none } },
105453 },
105454 .dst_temps = .{ .{ .ref = .src0 }, .unused },
105455 .clobbers = .{ .eflags = true },
105456 .each = .{ .once = &.{
105457 .{ ._, ._, .@"and", .dst0w, .ua(.src0, .add_umax), ._, ._ },
105458 } },
105459 }, .{
105460 .required_features = .{ .fast_imm16, null, null, null },
105461 .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any },
105462 .patterns = &.{
105454 .{ .src = .{ .to_mut_gpr, .none, .none } },105463 .{ .src = .{ .to_mut_gpr, .none, .none } },
105455 },105464 },
105456 .dst_temps = .{ .{ .ref = .src0 }, .unused },105465 .dst_temps = .{ .{ .ref = .src0 }, .unused },