| Index: src/arm/stub-cache-arm.cc
|
| diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc
|
| index 32f8506388997ee7fde124d3cee69f75c4eee290..35eba634ef6c31025676738a20478706f5ff8395 100644
|
| --- a/src/arm/stub-cache-arm.cc
|
| +++ b/src/arm/stub-cache-arm.cc
|
| @@ -391,23 +391,6 @@ static void GenerateCallFunction(MacroAssembler* masm,
|
| }
|
|
|
|
|
| -static void GenerateCallConstFunction(MacroAssembler* masm,
|
| - JSFunction* function,
|
| - const ParameterCount& arguments) {
|
| - ASSERT(function->is_compiled());
|
| -
|
| - // Get the function and setup the context.
|
| - __ mov(r1, Operand(Handle<JSFunction>(function)));
|
| - __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset));
|
| -
|
| - // Jump to the cached code (tail call).
|
| - Handle<Code> code(function->code());
|
| - ParameterCount expected(function->shared()->formal_parameter_count());
|
| - __ InvokeCode(code, expected, arguments,
|
| - RelocInfo::CODE_TARGET, JUMP_FUNCTION);
|
| -}
|
| -
|
| -
|
| template <class Compiler>
|
| static void CompileLoadInterceptor(Compiler* compiler,
|
| StubCompiler* stub_compiler,
|
| @@ -503,7 +486,7 @@ class LoadInterceptorCompiler BASE_EMBEDDED {
|
| LookupResult* lookup,
|
| String* name,
|
| Label* miss_label) {
|
| - AccessorInfo* callback = 0;
|
| + AccessorInfo* callback = NULL;
|
| bool optimize = false;
|
| // So far the most popular follow ups for interceptor loads are FIELD
|
| // and CALLBACKS, so inline only them, other cases may be added
|
| @@ -622,7 +605,7 @@ class LoadInterceptorCompiler BASE_EMBEDDED {
|
| class CallInterceptorCompiler BASE_EMBEDDED {
|
| public:
|
| CallInterceptorCompiler(const ParameterCount& arguments, Register name)
|
| - : arguments_(arguments), argc_(arguments.immediate()), name_(name) {}
|
| + : arguments_(arguments), name_(name) {}
|
|
|
| void CompileCacheable(MacroAssembler* masm,
|
| StubCompiler* stub_compiler,
|
| @@ -682,7 +665,7 @@ class CallInterceptorCompiler BASE_EMBEDDED {
|
| scratch2,
|
| name,
|
| miss_label);
|
| - GenerateCallConstFunction(masm, function, arguments_);
|
| + __ InvokeFunction(function, arguments_);
|
|
|
| __ bind(&invoke);
|
| }
|
| @@ -703,13 +686,9 @@ class CallInterceptorCompiler BASE_EMBEDDED {
|
| name_,
|
| holder_obj);
|
|
|
| - ExternalReference ref = ExternalReference(
|
| - IC_Utility(IC::kLoadPropertyWithInterceptorForCall));
|
| - __ mov(r0, Operand(5));
|
| - __ mov(r1, Operand(ref));
|
| -
|
| - CEntryStub stub(1);
|
| - __ CallStub(&stub);
|
| + __ CallExternalReference(
|
| + ExternalReference(IC_Utility(IC::kLoadPropertyWithInterceptorForCall)),
|
| + 5);
|
|
|
| // Restore the name_ register.
|
| __ pop(name_);
|
| @@ -718,7 +697,6 @@ class CallInterceptorCompiler BASE_EMBEDDED {
|
|
|
| private:
|
| const ParameterCount& arguments_;
|
| - int argc_;
|
| Register name_;
|
| };
|
|
|
| @@ -1053,7 +1031,7 @@ Object* CallStubCompiler::CompileCallConstant(Object* object,
|
| UNREACHABLE();
|
| }
|
|
|
| - GenerateCallConstFunction(masm(), function, arguments());
|
| + __ InvokeFunction(function, arguments());
|
|
|
| // Handle call cache miss.
|
| __ bind(&miss);
|
|
|