Commit b8f49a27 authored by zhengxing.li's avatar zhengxing.li Committed by Commit bot

X87: Rework CallApi*Stubs.

  port 5096492f (r34627)

  original commit message:
  - Eliminate stubs with a variable number of arguments.
    (That only worked due to their very limited use. These
     stubs' interface descriptors were basically lying
     about their number of args, which will fail when used
     generically.)
  - Fix all CallApi*Stubs' interface descriptors to no
    longer lie about their arguments.
  - Unify CallApi*Stub, for * in Function, Accessor,
    FunctionWithFixedArgs.
    (Since these are now all doing the same thing.)
  - Rename the unified stub (and interface descriptors) to
    *ApiCallback*, since that's really what they're doing.
  - Refuse inlining an API callback if its number of
    parameters exceeds the supported number of args.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34700}
parent 7d0252db
......@@ -5391,8 +5391,6 @@ void CallApiCallbackStub::Generate(MacroAssembler* masm) {
STATIC_ASSERT(FCA::kHolderIndex == 0);
STATIC_ASSERT(FCA::kArgsLength == 7);
DCHECK(argc.is_immediate() || eax.is(argc.reg()));
__ pop(return_address);
// context save.
__ push(context);
......@@ -5448,7 +5446,7 @@ void CallApiCallbackStub::Generate(MacroAssembler* masm) {
// FunctionCallbackInfo::values_.
__ mov(ApiParameterOperand(3), scratch);
// FunctionCallbackInfo::length_.
__ Move(ApiParameterOperand(4), Immediate(argc));
__ Move(ApiParameterOperand(4), Immediate(argc()));
// FunctionCallbackInfo::is_construct_call_.
__ Move(ApiParameterOperand(5), Immediate(0));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment