Kasper & Søren,

I'd like you to do a code review.  To review this change, run

  gvn review --project https://v8.googlecode.com/svn [EMAIL PROTECTED]/[EMAIL 
PROTECTED]

Alternatively, to review the latest snapshot of this change
branch, run

  gvn --project https://v8.googlecode.com/svn review [EMAIL 
PROTECTED]/runtime_calls

to review the following change:

[EMAIL PROTECTED]/[EMAIL PROTECTED] | [EMAIL PROTECTED] | 2008-10-24 10:28:30 
+-100 (Fri, 24 Oct 2008)

Description:

Change a few runtime functions that took and returned a dummy argument
to instead take no arguments and return the undefined value.



Affected Paths:
   M //branches/bleeding_edge/src/codegen-arm.cc
   M //branches/bleeding_edge/src/codegen-ia32.cc
   M //branches/bleeding_edge/src/runtime.cc
   M //branches/bleeding_edge/src/runtime.h


This is a semiautomated message from "gvn mail".  See
<http://code.google.com/p/gvn/> to learn more.

Index: src/codegen-arm.cc
===================================================================
--- src/codegen-arm.cc  (^/branches/bleeding_edge/src/[EMAIL PROTECTED])
+++ src/codegen-arm.cc  (^/changes/[EMAIL 
PROTECTED]/runtime_calls/bleeding_edge/src/[EMAIL PROTECTED])
@@ -226,9 +226,7 @@ void CodeGenerator::GenCode(FunctionLiteral* fun)
     if (FLAG_trace) {
       // Push a valid value as the parameter. The runtime call only uses
       // it as the return value to indicate non-failure.
-      __ mov(r0, Operand(Smi::FromInt(0)));
-      __ push(r0);
-      __ CallRuntime(Runtime::kTraceEnter, 1);
+      __ CallRuntime(Runtime::kTraceEnter, 0);
     }
     CheckStack();
 
@@ -242,11 +240,7 @@ void CodeGenerator::GenCode(FunctionLiteral* fun)
       bool should_trace =
           is_builtin ? FLAG_trace_builtin_calls : FLAG_trace_calls;
       if (should_trace) {
-        // Push a valid value as the parameter. The runtime call only uses
-        // it as the return value to indicate non-failure.
-        __ mov(r0, Operand(Smi::FromInt(0)));
-        __ push(r0);
-        __ CallRuntime(Runtime::kDebugTrace, 1);
+        __ CallRuntime(Runtime::kDebugTrace, 0);
       }
 #endif
       VisitStatements(body);
@@ -1846,8 +1840,8 @@ void CodeGenerator::VisitTryFinally(TryFinally* no
 void CodeGenerator::VisitDebuggerStatement(DebuggerStatement* node) {
   Comment cmnt(masm_, "[ DebuggerStatament");
   if (FLAG_debug_info) RecordStatementPosition(node);
-  __ CallRuntime(Runtime::kDebugBreak, 1);
-  __ push(r0);
+  __ CallRuntime(Runtime::kDebugBreak, 0);
+  // Ignore the return value.
 }
 
 
Index: src/codegen-ia32.cc
===================================================================
--- src/codegen-ia32.cc (^/branches/bleeding_edge/src/[EMAIL PROTECTED])
+++ src/codegen-ia32.cc (^/changes/[EMAIL 
PROTECTED]/runtime_calls/bleeding_edge/src/[EMAIL PROTECTED])
@@ -356,8 +356,8 @@ void CodeGenerator::GenCode(FunctionLiteral* fun)
     }
 
     if (FLAG_trace) {
-      __ CallRuntime(Runtime::kTraceEnter, 1);
-      frame_->Push(eax);
+      __ CallRuntime(Runtime::kTraceEnter, 0);
+      // Ignore the return value.
     }
     CheckStack();
 
@@ -371,8 +371,8 @@ void CodeGenerator::GenCode(FunctionLiteral* fun)
       bool should_trace =
           is_builtin ? FLAG_trace_builtin_calls : FLAG_trace_calls;
       if (should_trace) {
-        __ CallRuntime(Runtime::kDebugTrace, 1);
-        frame_->Push(eax);
+        __ CallRuntime(Runtime::kDebugTrace, 0);
+        // Ignore the return value.
       }
 #endif
       VisitStatements(body);
@@ -2218,8 +2218,8 @@ void CodeGenerator::VisitTryFinally(TryFinally* no
 void CodeGenerator::VisitDebuggerStatement(DebuggerStatement* node) {
   Comment cmnt(masm_, "[ DebuggerStatement");
   RecordStatementPosition(node);
-  __ CallRuntime(Runtime::kDebugBreak, 1);
-  frame_->Push(eax);
+  __ CallRuntime(Runtime::kDebugBreak, 0);
+  // Ignore the return value.
 }
 
 
Index: src/runtime.cc
===================================================================
--- src/runtime.cc      (^/branches/bleeding_edge/src/[EMAIL PROTECTED])
+++ src/runtime.cc      (^/changes/[EMAIL 
PROTECTED]/runtime_calls/bleeding_edge/src/[EMAIL PROTECTED])
@@ -3581,10 +3581,10 @@ static Object* RuntimePreempt(Arguments args) {
 }
 
 
-static Object* Runtime_DebugBreak(Arguments args) {
+static Object* DebugBreakHelper() {
   // Just continue if breaks are disabled.
   if (Debug::disable_break()) {
-    return args[0];
+    return Heap::undefined_value();
   }
 
   // Don't break in system functions. If the current function is
@@ -3596,7 +3596,7 @@ static Object* RuntimePreempt(Arguments args) {
   if (fun->IsJSFunction()) {
     GlobalObject* global = JSFunction::cast(fun)->context()->global();
     if (global->IsJSBuiltinsObject() || Debug::IsDebugGlobal(global)) {
-      return args[0];
+      return Heap::undefined_value();
     }
   }
 
@@ -3607,17 +3607,23 @@ static Object* RuntimePreempt(Arguments args) {
   // Enter the debugger. Just continue if we fail to enter the debugger.
   EnterDebugger debugger;
   if (debugger.FailedToEnter()) {
-    return args[0];
+    return Heap::undefined_value();
   }
 
   // Notify the debug event listeners.
   Debugger::OnDebugBreak(Factory::undefined_value());
 
   // Return to continue execution.
-  return args[0];
+  return Heap::undefined_value();
 }
 
 
+static Object* Runtime_DebugBreak(Arguments args) {
+  ASSERT(args.length() == 0);
+  return DebugBreakHelper();
+}
+
+
 static Object* Runtime_StackGuard(Arguments args) {
   ASSERT(args.length() == 1);
 
@@ -3626,7 +3632,7 @@ static Object* Runtime_StackGuard(Arguments args)
 
   // If not real stack overflow the stack guard was used to interrupt
   // execution for another purpose.
-  if (StackGuard::IsDebugBreak()) Runtime_DebugBreak(args);
+  if (StackGuard::IsDebugBreak()) DebugBreakHelper();
   if (StackGuard::IsPreempted()) RuntimePreempt(args);
   if (StackGuard::IsInterrupted()) {
     // interrupt
@@ -3724,9 +3730,10 @@ static void PrintTransition(Object* result) {
 
 
 static Object* Runtime_TraceEnter(Arguments args) {
+  ASSERT(args.length() == 0);
   NoHandleAllocation ha;
   PrintTransition(NULL);
-  return args[0];  // return TOS
+  return Heap::undefined_value();
 }
 
 
@@ -3765,10 +3772,10 @@ static Object* Runtime_DebugPrint(Arguments args)
 
 
 static Object* Runtime_DebugTrace(Arguments args) {
-  ASSERT(args.length() == 1);
+  ASSERT(args.length() == 0);
   NoHandleAllocation ha;
   Top::PrintStack();
-  return args[0];  // return TOS
+  return Heap::undefined_value();
 }
 
 
Index: src/runtime.h
===================================================================
--- src/runtime.h       (^/branches/bleeding_edge/src/[EMAIL PROTECTED])
+++ src/runtime.h       (^/changes/[EMAIL 
PROTECTED]/runtime_calls/bleeding_edge/src/[EMAIL PROTECTED])
@@ -277,10 +277,10 @@ namespace v8 { namespace internal {
   \
   /* Debugging */ \
   F(DebugPrint, 1) \
-  F(DebugTrace, 1) \
-  F(TraceEnter, 1) \
+  F(DebugTrace, 0) \
+  F(TraceEnter, 0) \
   F(TraceExit, 1) \
-  F(DebugBreak, 1) \
+  F(DebugBreak, 0) \
   F(FunctionGetAssemblerCode, 1) \
   F(Abort, 2) \
   \


--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to