diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2023-03-24 21:33:17 -0400 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2023-03-24 21:34:38 -0400 |
| commit | 4ab4bd04fe8f4308d67b757eaa88f5a356aea688 (patch) | |
| tree | 1358b197a48b4b0243b1e953583f494f9f9e91d0 /src | |
| parent | 0987ed1970bc0332844a0e398b3c981b38627ed6 (diff) | |
| download | zig-4ab4bd04fe8f4308d67b757eaa88f5a356aea688.tar.gz zig-4ab4bd04fe8f4308d67b757eaa88f5a356aea688.zip | |
x86_64: add back assume unused
This seems to have been asserting due to a value tracking bug that has
since been fixed.
Diffstat (limited to 'src')
| -rw-r--r-- | src/arch/x86_64/CodeGen.zig | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 7335d3ac94..66e1904420 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -2586,7 +2586,7 @@ fn airPtrElemVal(self: *Self, inst: Air.Inst.Index) !void { const index_ty = self.air.typeOf(bin_op.rhs); const index = try self.resolveInst(bin_op.rhs); const index_lock: ?RegisterLock = switch (index) { - .register => |reg| self.register_manager.lockReg(reg), + .register => |reg| self.register_manager.lockRegAssumeUnused(reg), else => null, }; defer if (index_lock) |lock| self.register_manager.unlockReg(lock); @@ -2635,7 +2635,7 @@ fn airPtrElemPtr(self: *Self, inst: Air.Inst.Index) !void { const index_ty = self.air.typeOf(extra.rhs); const index = try self.resolveInst(extra.rhs); const index_lock: ?RegisterLock = switch (index) { - .register => |reg| self.register_manager.lockReg(reg), + .register => |reg| self.register_manager.lockRegAssumeUnused(reg), else => null, }; defer if (index_lock) |lock| self.register_manager.unlockReg(lock); |
