Try this. (http://codereview.chromium.org/12673)
On Thu, Nov 27, 2008 at 12:18 PM, <[EMAIL PROTECTED]> wrote: > If we can perform the runtime call without removing the arguments from > the stack, we can simplify this quite a bit. Other than that it LGTM. > > > http://codereview.chromium.org/12673/diff/401/611 > File src/codegen-arm.cc (right): > > http://codereview.chromium.org/12673/diff/401/611#newcode2438 > Line 2438: if (FLAG_debug_info) RecordStatementPosition(node); > RecordStatementPosition checks the debug_info flag, so no need to do it > here. The rest of the code just calls without the check. > > http://codereview.chromium.org/12673/diff/401/611#newcode2447 > Line 2447: __ CallRuntime(Runtime::kResolvePossiblyDirectEval, > args->length() + 1); > We should try to avoid copying all the arguments to the heap and then > immediately copying them back to the stack. Can we make a runtime call > that does not touch the arguments and then patch the function and > receiver when we return? > > http://codereview.chromium.org/12673/diff/401/611#newcode2466 > Line 2466: Label args_0, args_1, args_n, after_call; > We should be able to just do > > CallFunctionStub stub(args->length()) > __ CallStub(&stub); > > here. > > That would certainly be the case if we can do the runtime call without > popping the arguments. > > http://codereview.chromium.org/12673/diff/401/615 > File src/codegen-ia32.cc (right): > > http://codereview.chromium.org/12673/diff/401/615#newcode2839 > Line 2839: void CodeGenerator::VisitCallEval(CallEval* node) { > See comments to ARM version. > > > http://codereview.chromium.org/12673 > -- -- Ole I Hougaard Google Aarhus, Denmark +45 8745 9215 --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
