mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 15:14:08 +00:00
x86/x64: Don't fuse loads across table.clear.
Reported by Peter Cawley. #1117
This commit is contained in:
parent
6807e60af1
commit
45c88b7963
@ -473,6 +473,7 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow)
|
|||||||
}
|
}
|
||||||
} else if (ir->o == IR_ALOAD || ir->o == IR_HLOAD || ir->o == IR_ULOAD) {
|
} else if (ir->o == IR_ALOAD || ir->o == IR_HLOAD || ir->o == IR_ULOAD) {
|
||||||
if (noconflict(as, ref, ir->o + IRDELTA_L2S, 0) &&
|
if (noconflict(as, ref, ir->o + IRDELTA_L2S, 0) &&
|
||||||
|
noconflict(as, ref, IR_CALLS, 0) && /* Don't cross table.clear. */
|
||||||
!(LJ_GC64 && irt_isaddr(ir->t))) {
|
!(LJ_GC64 && irt_isaddr(ir->t))) {
|
||||||
asm_fuseahuref(as, ir->op1, xallow);
|
asm_fuseahuref(as, ir->op1, xallow);
|
||||||
return RID_MRM;
|
return RID_MRM;
|
||||||
|
Loading…
Reference in New Issue
Block a user