X87: [builtins] Unify the various versions of [[Call]] with a Call builtin.
authorchunyang.dai <chunyang.dai@intel.com>
Thu, 10 Sep 2015 05:41:33 +0000 (22:41 -0700)
committerCommit bot <commit-bot@chromium.org>
Thu, 10 Sep 2015 05:41:51 +0000 (05:41 +0000)
commit20c9749b5ed9ecc4ce4631f14639007d36040284
tree60ed81055406ebd84556e665237c2c811df8d882
parent0cfa52d055586fe632564812e0a05b2a65612b90
X87: [builtins] Unify the various versions of [[Call]] with a Call builtin.

port ccbb4ff00f1d8f32fd9227cd7aba1723791e5744 (r30629)

original commit message:

    The new Call and CallFunction builtins supersede the current
    CallFunctionStub (and CallIC magic) and will be the single bottleneck
    for all calling, including the currently special Function.prototype.call
    and Function.prototype.apply builtins, which had handwritten (and
    not fully compliant) versions of CallFunctionStub, and also the
    CallIC(s), which where also slightly different.

    This also reduces the overhead for API function calls, which is still
    unnecessary high, but let's do that step-by-step.

    This also fixes a bunch of cases where the implicit ToObject for
    sloppy receivers was done in the wrong context (in the caller
    context instead of the callee context), which basically meant
    that we allowed cross context access to %ObjectPrototype%.

BUG=

Review URL: https://codereview.chromium.org/1332703002

Cr-Commit-Position: refs/heads/master@{#30668}
src/x87/assembler-x87.cc
src/x87/assembler-x87.h
src/x87/builtins-x87.cc
src/x87/code-stubs-x87.cc
src/x87/macro-assembler-x87.cc
src/x87/macro-assembler-x87.h