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

Reply via email to