Reviewers: Kasper Lund, Description: Enable --trace when --multipass is on. Bugfix in bailout condition. All V8 and (ia32) mozilla tests pass with --multipass on, failures now count as regressions.
Please review this at http://codereview.chromium.org/159698 SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/arm/cfg-arm.cc M src/cfg.cc M src/ia32/cfg-ia32.cc M src/x64/cfg-x64.cc Index: src/ia32/cfg-ia32.cc =================================================================== --- src/ia32/cfg-ia32.cc (revision 2596) +++ src/ia32/cfg-ia32.cc (working copy) @@ -65,6 +65,9 @@ __ push(eax); } } + if (FLAG_trace) { + __ CallRuntime(Runtime::kTraceEnter, 0); + } if (FLAG_check_stack) { ExternalReference stack_limit = ExternalReference::address_of_stack_guard_limit(); @@ -87,6 +90,10 @@ ASSERT(!is_marked()); is_marked_ = true; Comment cmnt(masm, "[ ExitNode"); + if (FLAG_trace) { + __ push(eax); + __ CallRuntime(Runtime::kTraceExit, 1); + } __ RecordJSReturn(); __ mov(esp, ebp); __ pop(ebp); Index: src/cfg.cc =================================================================== --- src/cfg.cc (revision 2596) +++ src/cfg.cc (working copy) @@ -68,8 +68,9 @@ if (cfg == NULL) { BAILOUT("unsupported statement type"); } - - ASSERT(!cfg->has_exit()); // Return on all paths. + if (cfg->has_exit()) { + BAILOUT("control path without explicit return"); + } cfg->PrependEntryNode(fun); return cfg; } Index: src/x64/cfg-x64.cc =================================================================== --- src/x64/cfg-x64.cc (revision 2596) +++ src/x64/cfg-x64.cc (working copy) @@ -67,6 +67,9 @@ __ push(kScratchRegister); } } + if (FLAG_trace) { + __ CallRuntime(Runtime::kTraceEnter, 0); + } if (FLAG_check_stack) { ExternalReference stack_limit = ExternalReference::address_of_stack_guard_limit(); @@ -91,6 +94,10 @@ is_marked_ = true; Comment cmnt(masm, "[ ExitNode"); + if (FLAG_trace) { + __ push(rax); + __ CallRuntime(Runtime::kTraceExit, 1); + } __ RecordJSReturn(); __ movq(rsp, rbp); __ pop(rbp); Index: src/arm/cfg-arm.cc =================================================================== --- src/arm/cfg-arm.cc (revision 2596) +++ src/arm/cfg-arm.cc (working copy) @@ -62,6 +62,9 @@ __ push(ip); } } + if (FLAG_trace) { + __ CallRuntime(Runtime::kTraceEnter, 0); + } if (FLAG_check_stack) { StackCheckStub stub; __ CallStub(&stub); @@ -75,6 +78,10 @@ ASSERT(!is_marked()); is_marked_ = true; Comment cmnt(masm, "[ ExitNode"); + if (FLAG_trace) { + __ push(r0); + __ CallRuntime(Runtime::kTraceExit, 1); + } __ mov(sp, fp); __ ldm(ia_w, sp, fp.bit() | lr.bit()); __ add(sp, sp, Operand((parameter_count_ + 1) * kPointerSize)); --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
