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-23 21:59:18-04:00
log7b9e482ed6aaf9c1ec25970f599ae8f7ef83ad47
tree62cde30d7a867b59340ac405f2919f43c372cc50
parent7757302c3aa230a30770b4ff7a9b033e621c0178

x86_64: fix rare miscomp that clobbers memory


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

src/arch/x86_64/CodeGen.zig+10-1
......@@ -101703,10 +101703,19 @@ const Temp = struct {
101703101703 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101704101704 .each = .{ .once = &.{} },
101705101705 }, .{
101706 .required_features = .{ .fast_imm16, null, null, null },
101707101706 .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any },
101708101707 .patterns = &.{
101709101708 .{ .src = .{ .mut_mem, .none, .none } },
101709 },
101710 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101711 .clobbers = .{ .eflags = true },
101712 .each = .{ .once = &.{
101713 .{ ._, ._, .@"and", .dst0w, .ua(.src0, .add_umax), ._, ._ },
101714 } },
101715 }, .{
101716 .required_features = .{ .fast_imm16, null, null, null },
101717 .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any },
101718 .patterns = &.{
101710101719 .{ .src = .{ .to_mut_gpr, .none, .none } },
101711101720 },
101712101721 .dst_temps = .{ .{ .ref = .src0 }, .unused },