Explorar o código

x86/x64: Limit VLOAD fusion to simple cases.

Reported by ccagml.
Mike Pall %!s(int64=3) %!d(string=hai) anos
pai
achega
e1339aed3d
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      src/lj_asm_x86.h

+ 2 - 1
src/lj_asm_x86.h

@@ -485,7 +485,8 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow)
 	asm_fusexref(as, ir->op1, xallow);
 	return RID_MRM;
       }
-    } else if (ir->o == IR_VLOAD && !(LJ_GC64 && irt_isaddr(ir->t))) {
+    } else if (ir->o == IR_VLOAD && IR(ir->op1)->o == IR_AREF &&
+	       !(LJ_GC64 && irt_isaddr(ir->t))) {
       asm_fuseahuref(as, ir->op1, xallow);
       as->mrm.ofs += 8 * ir->op2;
       return RID_MRM;