Jelajahi Sumber

x86/x64: Limit VLOAD fusion to simple cases.

Reported by ccagml.
Mike Pall 3 tahun lalu
induk
melakukan
e1339aed3d
1 mengubah file dengan 2 tambahan dan 1 penghapusan
  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;