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