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

Reviewed-by: Sergey Bronnikov <[email protected]>
Signed-off-by: Sergey Kaplun <[email protected]>
(cherry picked from commit ffede1b)
  • Loading branch information
Mike Pall authored and Buristan committed Jan 15, 2025
1 parent 058994b commit 192bb64
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 192bb64

Please sign in to comment.