I think there is an issue with deoptimization, below.


http://codereview.chromium.org/8318014/diff/4001/src/hydrogen.cc
File src/hydrogen.cc (right):

http://codereview.chromium.org/8318014/diff/4001/src/hydrogen.cc#newcode5100
src/hydrogen.cc:5100: HValue* function = Pop();
I don't think this is right.  In the unoptimized code, this value is on
the stack until the function returns (e.g., during argument evaluation)
and will be dropped at the return site.

So we need it in the environment in case we deopt during argument
evaluation (or have lazy deopt to the return site of this call).

I think

HValue* function = Top();
...
Drop(argument_count + 1);

is what we need for now.

http://codereview.chromium.org/8318014/

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

Reply via email to