Skip to content

Commit 3c3a6c9

Browse files
committed
x86_64: fix rare miscomp that clobbers memory
1 parent 2361468 commit 3c3a6c9

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/arch/x86_64/CodeGen.zig

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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 },

0 commit comments

Comments
 (0)