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
-~----------~----~----~----~------~----~------~--~---

Reply via email to