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 {
105447105447 .dst_temps = .{ .{ .ref = .src0 }, .unused },
105448105448 .each = .{ .once = &.{} },
105449105449 }, .{
105450 .required_features = .{ .fast_imm16, null, null, null },
105451105450 .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any },
105452105451 .patterns = &.{
105453105452 .{ .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 = &.{
105454105463 .{ .src = .{ .to_mut_gpr, .none, .none } },
105455105464 },
105456105465 .dst_temps = .{ .{ .ref = .src0 }, .unused },