]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Only fuse with spill slots for cross-section references.
authorMike Pall <mike>
Sun, 28 Mar 2010 04:42:48 +0000 (06:42 +0200)
committerMike Pall <mike>
Sun, 28 Mar 2010 04:42:48 +0000 (06:42 +0200)
src/lj_asm.c

index 382f2aa03a7bcd3581fa3d4b38ca623aa3c64fda..ba34bff8dd3b3bf36d88870e30a3176aadbfe916 100644 (file)
@@ -1307,7 +1307,7 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow)
     }
   }
   if (!(as->freeset & allow) &&
-      (allow == RSET_EMPTY || ra_hasspill(ir->s) || ref < as->loopref))
+      (allow == RSET_EMPTY || ra_hasspill(ir->s) || iscrossref(as, ref)))
     goto fusespill;
   return ra_allocref(as, ref, allow);
 }