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); |