Bug 1231024 - narrow the live range for values. r=jandem
authorLars T Hansen <lhansen@mozilla.com>
Mon, 18 Jan 2016 11:48:39 +0100
changeset 280656 9c8c14902800d80d248d8adf451c2f635fd611d2
parent 280655 75104f84eda68959b1415ab55ec9068345b6ea73
child 280657 591c698895a24dee2387b5b8785e4a968941addf
push id70552
push userlhansen@mozilla.com
push dateWed, 20 Jan 2016 14:06:18 +0000
treeherdermozilla-inbound@cbb0ad1e2118 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjandem
bugs1231024
milestone46.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1231024 - narrow the live range for values. r=jandem
js/src/jit/Lowering.cpp
--- a/js/src/jit/Lowering.cpp
+++ b/js/src/jit/Lowering.cpp
@@ -577,25 +577,25 @@ LIRGenerator::visitApplyArray(MApplyArra
     MOZ_ASSERT(CallTempReg0 != ArgumentsRectifierReg);
     MOZ_ASSERT(CallTempReg1 != ArgumentsRectifierReg);
 
     // Assert if the return value is already erased.
     MOZ_ASSERT(CallTempReg2 != JSReturnReg_Type);
     MOZ_ASSERT(CallTempReg2 != JSReturnReg_Data);
 
     LApplyArrayGeneric* lir = new(alloc()) LApplyArrayGeneric(
-        useFixed(apply->getFunction(), CallTempReg3),
-        useFixed(apply->getElements(), CallTempReg0),
+        useFixedAtStart(apply->getFunction(), CallTempReg3),
+        useFixedAtStart(apply->getElements(), CallTempReg0),
         tempFixed(CallTempReg1),  // object register
         tempFixed(CallTempReg2)); // stack counter register
 
     MDefinition* self = apply->getThis();
     useBoxFixed(lir, LApplyArrayGeneric::ThisIndex, self, CallTempReg4, CallTempReg5);
 
-    // Bailout is needed in the case of possible non-JSFunction callee
+    // Bailout is needed in the case of possible non-JSFunction callee,
     // too many values in the array, or empty space at the end of the
     // array.  I'm going to use NonJSFunctionCallee for the code even
     // if that is not an adequate description.
     assignSnapshot(lir, Bailout_NonJSFunctionCallee);
 
     defineReturn(lir, apply);
     assignSafepoint(lir, apply);
 }