Revision: 2598 Author: [email protected] Date: Fri Jul 31 04:27:14 2009 Log: 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.
Review URL: http://codereview.chromium.org/159698 http://code.google.com/p/v8/source/detail?r=2598 Modified: /branches/bleeding_edge/src/arm/cfg-arm.cc /branches/bleeding_edge/src/cfg.cc /branches/bleeding_edge/src/ia32/cfg-ia32.cc /branches/bleeding_edge/src/x64/cfg-x64.cc ======================================= --- /branches/bleeding_edge/src/arm/cfg-arm.cc Fri Jul 31 04:06:17 2009 +++ /branches/bleeding_edge/src/arm/cfg-arm.cc Fri Jul 31 04:27:14 2009 @@ -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)); ======================================= --- /branches/bleeding_edge/src/cfg.cc Fri Jul 31 04:06:17 2009 +++ /branches/bleeding_edge/src/cfg.cc Fri Jul 31 04:27:14 2009 @@ -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; } ======================================= --- /branches/bleeding_edge/src/ia32/cfg-ia32.cc Fri Jul 31 04:06:17 2009 +++ /branches/bleeding_edge/src/ia32/cfg-ia32.cc Fri Jul 31 04:27:14 2009 @@ -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); ======================================= --- /branches/bleeding_edge/src/x64/cfg-x64.cc Fri Jul 31 04:06:17 2009 +++ /branches/bleeding_edge/src/x64/cfg-x64.cc Fri Jul 31 04:27:14 2009 @@ -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); --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
