Skip to content

Commit

Permalink
Fix last commit.
Browse files Browse the repository at this point in the history
(cherry picked from commit 43d0a19)

The previous commit accidentally removes the check that fusing
optimization isn't performing across the call to the `table.clear()`.
This commit fixes the behaviour by adding the corresponding check that
depends on the first bit of `check` masks in the `noconflict()` routine.

Sergey Kaplun:
* added the description for the problem

Part of tarantool/tarantool#10709
  • Loading branch information
Mike Pall authored and Buristan committed Jan 10, 2025
1 parent e3d4dcd commit 21c8715
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/lj_asm_x86.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ static int noconflict(ASMState *as, IRRef ref, IROp conflict, int check)
while (--i > ref) {
if (ir[i].o == conflict)
return 0; /* Conflict found. */
else if ((check & 1) && ir[i].o == IR_NEWREF)
else if ((check & 1) && (ir[i].o == IR_NEWREF || ir[i].o == IR_CALLS))
return 0;
else if ((check & 2) && (ir[i].op1 == ref || ir[i].op2 == ref))
return 0;
Expand Down

0 comments on commit 21c8715

Please sign in to comment.