Index: src/ic/handler-compiler.cc |
diff --git a/src/ic/handler-compiler.cc b/src/ic/handler-compiler.cc |
index 6d153bbc256bd02df331e9c9541c961f375764f3..3ca7707d79410b5127d17a8a16b2c6c7857b3166 100644 |
--- a/src/ic/handler-compiler.cc |
+++ b/src/ic/handler-compiler.cc |
@@ -221,30 +221,26 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadNonexistent( |
return GetCode(kind(), name); |
} |
- |
Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback( |
- Handle<Name> name, Handle<AccessorInfo> callback) { |
- Register reg = Frontend(name); |
+ Handle<Name> name, Handle<AccessorInfo> callback, Handle<Code> slow_stub) { |
if (FLAG_runtime_call_stats) { |
- TailCallBuiltin(masm(), Builtins::kLoadIC_Slow); |
- } else { |
- GenerateLoadCallback(reg, callback); |
+ GenerateTailCall(masm(), slow_stub); |
} |
+ Register reg = Frontend(name); |
+ GenerateLoadCallback(reg, callback); |
return GetCode(kind(), name); |
} |
- |
Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback( |
Handle<Name> name, const CallOptimization& call_optimization, |
- int accessor_index) { |
+ int accessor_index, Handle<Code> slow_stub) { |
DCHECK(call_optimization.is_simple_api_call()); |
- Register holder = Frontend(name); |
if (FLAG_runtime_call_stats) { |
- TailCallBuiltin(masm(), Builtins::kLoadIC_Slow); |
- } else { |
- GenerateApiAccessorCall(masm(), call_optimization, map(), receiver(), |
- scratch2(), false, no_reg, holder, accessor_index); |
+ GenerateTailCall(masm(), slow_stub); |
} |
+ Register holder = Frontend(name); |
+ GenerateApiAccessorCall(masm(), call_optimization, map(), receiver(), |
+ scratch2(), false, no_reg, holder, accessor_index); |
return GetCode(kind(), name); |
} |
@@ -563,19 +559,17 @@ Handle<Code> NamedStoreHandlerCompiler::CompileStoreViaSetter( |
return GetCode(kind(), name); |
} |
- |
Handle<Code> NamedStoreHandlerCompiler::CompileStoreCallback( |
Handle<JSObject> object, Handle<Name> name, |
- const CallOptimization& call_optimization, int accessor_index) { |
- Register holder = Frontend(name); |
+ const CallOptimization& call_optimization, int accessor_index, |
+ Handle<Code> slow_stub) { |
if (FLAG_runtime_call_stats) { |
- GenerateRestoreName(name); |
- TailCallBuiltin(masm(), Builtins::kStoreIC_Slow); |
- } else { |
- GenerateApiAccessorCall(masm(), call_optimization, handle(object->map()), |
- receiver(), scratch2(), true, value(), holder, |
- accessor_index); |
+ GenerateTailCall(masm(), slow_stub); |
} |
+ Register holder = Frontend(name); |
+ GenerateApiAccessorCall(masm(), call_optimization, handle(object->map()), |
+ receiver(), scratch2(), true, value(), holder, |
+ accessor_index); |
return GetCode(kind(), name); |
} |