Backout 6f31bcbcdbf4 (bug 781859) for Android M8 failures

This commit is contained in:
Ed Morley 2012-10-03 15:39:08 +01:00
parent 3d83b94fcb
commit d04981b433
4 changed files with 3 additions and 75 deletions

View File

@ -1,25 +0,0 @@
// |jit-test| error:ReferenceError
function e() {
try {} catch (e) {
return (actual = "FAIL");
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
a.x + a.x + a.x + a.x + a.x + a.x + a.x + a.x
}
while (t) continue;
}
e();

View File

@ -1,9 +0,0 @@
mjitChunkLimit(42);
Function("\
switch (/x/) {\
case 8:\
break;\
t(function(){})\
}\
while (false)(function(){})\
")()

View File

@ -1,10 +0,0 @@
mjitChunkLimit(10);
function e() {
try {
var t = undefined;
} catch (e) { }
while (t)
continue;
}
for (var i = 0; i < 20; i++)
e();

View File

@ -866,22 +866,6 @@ MakeJITScript(JSContext *cx, JSScript *script)
}
}
currentEdges.clear();
/*
* A loop's LOOPHEAD instruction is usually marked as safepoint if
* either:
* (1) The whole loop is contained in a single chunk and tracked
* in the compiler (see shouldStartLoop).
* (2) The loop's backedge and LOOPHEAD are in different chunks.
*
* If a while loop follows an unreachable op, we may insert a chunk
* boundary between the loop's initial GOTO and LOOPHEAD. In this
* case we have to explicitly mark the LOOPHEAD as safepoint since
* both of these conditions don't apply.
*/
jsbytecode *nextpc = script->code + nextOffset;
if (JSOp(*nextpc) == JSOP_LOOPHEAD)
analysis->getCode(chunkStart).safePoint = true;
}
}
@ -2047,6 +2031,9 @@ mjit::Compiler::generateMethod()
{
SrcNoteLineScanner scanner(script_->notes(), script_->lineno);
/* For join points, whether there was fallthrough from the previous opcode. */
bool fallthrough = true;
/* Last bytecode processed. */
jsbytecode *lastPC = NULL;
@ -2095,9 +2082,6 @@ mjit::Compiler::generateMethod()
}
}
/* For join points, whether there was fallthrough from the previous opcode. */
bool fallthrough = (chunkIndex == 0 || analysis->maybeCode(PC)->fallthrough);
for (;;) {
JSOp op = JSOp(*PC);
int trap = stubs::JSTRAP_NONE;
@ -7115,18 +7099,6 @@ mjit::Compiler::finishLoop(jsbytecode *head)
if (!cx->typeInferenceEnabled() || !bytecodeInChunk(head))
return true;
/*
* Edge case: for a while loop, the initial GOTO and LOOPHEAD following it
* may be in different chunks. In that case bytecodeInChunk(head) may be
* true, but we didn't track this loop, since the GOTO is in the previous
* chunk.
*/
if (!loop) {
JS_ASSERT(chunkIndex > 0);
JS_ASSERT(head - outerScript->code == outerChunk.begin);
return true;
}
/*
* We're done processing the current loop. Every loop has exactly one backedge
* at the end ('continue' statements are forward jumps to the loop test),