All V8 and (ia32) mozilla tests pass with --multipass on, failures now
count as regressions.
Review URL: http://codereview.chromium.org/159698
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2598
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
__ push(ip);
}
}
+ if (FLAG_trace) {
+ __ CallRuntime(Runtime::kTraceEnter, 0);
+ }
if (FLAG_check_stack) {
StackCheckStub stub;
__ CallStub(&stub);
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));
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;
}
__ push(eax);
}
}
+ if (FLAG_trace) {
+ __ CallRuntime(Runtime::kTraceEnter, 0);
+ }
if (FLAG_check_stack) {
ExternalReference stack_limit =
ExternalReference::address_of_stack_guard_limit();
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);
__ push(kScratchRegister);
}
}
+ if (FLAG_trace) {
+ __ CallRuntime(Runtime::kTraceEnter, 0);
+ }
if (FLAG_check_stack) {
ExternalReference stack_limit =
ExternalReference::address_of_stack_guard_limit();
is_marked_ = true;
Comment cmnt(masm, "[ ExitNode");
+ if (FLAG_trace) {
+ __ push(rax);
+ __ CallRuntime(Runtime::kTraceExit, 1);
+ }
__ RecordJSReturn();
__ movq(rsp, rbp);
__ pop(rbp);