Backout commit 289e653a7061 for bug 995704 - potential perf regression.
authorKannan Vijayan <kvijayan@mozilla.com>
Wed, 14 May 2014 16:19:13 -0400
changeset 195763 a8775731e2feb3f4a103f0dbb6862e356be44130
parent 195762 f20eb963186959bde60b7ce8f505bb4903e19063
child 195764 0f5952a674944bda8b73b669bf75920d041716c1
push id5990
push userasasaki@mozilla.com
push dateMon, 09 Jun 2014 21:40:24 +0000
treeherdermozilla-aurora@0796197efbc9 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs995704
milestone32.0a1
Backout commit 289e653a7061 for bug 995704 - potential perf regression.
js/src/jit/CodeGenerator.cpp
--- a/js/src/jit/CodeGenerator.cpp
+++ b/js/src/jit/CodeGenerator.cpp
@@ -2800,29 +2800,17 @@ CodeGenerator::generateArgumentsChecks(b
     // arguments are correct. Upon fail it will hit a breakpoint.
 
     MIRGraph &mir = gen->graph();
     MResumePoint *rp = mir.entryResumePoint();
 
     // Reserve the amount of stack the actual frame will use. We have to undo
     // this before falling through to the method proper though, because the
     // monomorphic call case will bypass this entire path.
-
-    // On windows, we cannot skip very far down the stack without touching the
-    // memory pages in-between.  This is a corner-case code for situations where the
-    // Ion frame data for a piece of code is very large.  To handle this special case,
-    // for frames over 1k in size we allocate memory on the stack incrementally, touching
-    // it as we go.
-    uint32_t frameSizeLeft = frameSize();
-    while (frameSizeLeft > 1024) {
-        masm.reserveStack(1024);
-        masm.store32(Imm32(0), Address(StackPointer, 0));
-        frameSizeLeft -= 1024;
-    }
-    masm.reserveStack(frameSizeLeft);
+    masm.reserveStack(frameSize());
 
     // No registers are allocated yet, so it's safe to grab anything.
     Register temp = GeneralRegisterSet(EntryTempMask).getAny();
 
     CompileInfo &info = gen->info();
 
     Label miss;
     for (uint32_t i = info.startArgSlot(); i < info.endArgSlot(); i++) {