author | Jan de Mooij <jdemooij@mozilla.com> |
Thu, 06 Mar 2014 11:30:36 +0100 | |
changeset 172190 | 4c9d799155d2461f1362f5c488bc299a77c43e94 |
parent 172189 | 6fb8bc793891a8a2309b37e651e407bb50ea59c6 |
child 172191 | 22e34e33e9eec059b1f1c4999e2fb399c9e1ab20 |
push id | 40668 |
push user | jandemooij@gmail.com |
push date | Thu, 06 Mar 2014 10:30:58 +0000 |
treeherder | mozilla-inbound@4c9d799155d2 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | djvj |
bugs | 979721 |
milestone | 30.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
|
--- a/js/src/jit/BaselineBailouts.cpp +++ b/js/src/jit/BaselineBailouts.cpp @@ -1356,34 +1356,34 @@ jit::BailoutIonToBaseline(JSContext *cx, BailoutKind bailoutKind = snapIter.bailoutKind(); if (!startFrameFormals.empty()) { // Set the first frame's formals, see the comment in InitFromBailout. Value *argv = builder.startFrame()->argv() + 1; // +1 to skip |this|. mozilla::PodCopy(argv, startFrameFormals.begin(), startFrameFormals.length()); } - // Take the reconstructed baseline stack so it doesn't get freed when builder destructs. - BaselineBailoutInfo *info = builder.takeBuffer(); - info->numFrames = frameNo + 1; - // Do stack check. bool overRecursed = false; + BaselineBailoutInfo *info = builder.info(); uint8_t *newsp = info->incomingStack - (info->copyStackTop - info->copyStackBottom); #ifdef JS_ARM_SIMULATOR if (Simulator::Current()->overRecursed(uintptr_t(newsp))) overRecursed = true; #else JS_CHECK_RECURSION_WITH_SP_DONT_REPORT(cx, newsp, overRecursed = true); #endif if (overRecursed) { IonSpew(IonSpew_BaselineBailouts, " Overrecursion check failed!"); return BAILOUT_RETURN_OVERRECURSED; } + // Take the reconstructed baseline stack so it doesn't get freed when builder destructs. + info = builder.takeBuffer(); + info->numFrames = frameNo + 1; info->bailoutKind = bailoutKind; *bailoutInfo = info; return BAILOUT_RETURN_OK; } static bool HandleBoundsCheckFailure(JSContext *cx, HandleScript outerScript, HandleScript innerScript) {