Commit d09e119b authored by chunyang.dai's avatar chunyang.dai Committed by Commit bot

X87: VectorICs: built-in function apply should use an IC.

port 83a0af55 (r28165).

original commit message:

   VectorICs: built-in function apply should use an IC.

   Handled a TODO that sent builtin function apply to the runtime on property get.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#28189}
parent 906152b8
......@@ -1057,21 +1057,13 @@ static void Generate_PushAppliedArguments(MacroAssembler* masm,
__ bind(&loop);
__ mov(receiver, Operand(ebp, argumentsOffset)); // load arguments
if (FLAG_vector_ics) {
// TODO(mvstanton): Vector-based ics need additional infrastructure to
// be embedded here. For now, just call the runtime.
__ push(receiver);
__ push(key);
__ CallRuntime(Runtime::kGetProperty, 2);
} else {
// Use inline caching to speed up access to arguments.
Handle<Code> ic = CodeFactory::KeyedLoadIC(masm->isolate()).code();
__ call(ic, RelocInfo::CODE_TARGET);
// It is important that we do not have a test instruction after the
// call. A test instruction after the call is used to indicate that
// we have generated an inline version of the keyed load. In this
// case, we know that we are not generating a test instruction next.
}
// Use inline caching to speed up access to arguments.
Handle<Code> ic = masm->isolate()->builtins()->KeyedLoadIC_Megamorphic();
__ call(ic, RelocInfo::CODE_TARGET);
// It is important that we do not have a test instruction after the
// call. A test instruction after the call is used to indicate that
// we have generated an inline version of the keyed load. In this
// case, we know that we are not generating a test instruction next.
// Push the nth argument.
__ push(eax);
......
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