| Index: src/ic/access-compiler.cc
|
| diff --git a/src/ic/access-compiler.cc b/src/ic/access-compiler.cc
|
| index c99219201a00f14ae1401de37ab5b21d1153709b..7570d3b311808d6ba37bef87f386114f24fbbe53 100644
|
| --- a/src/ic/access-compiler.cc
|
| +++ b/src/ic/access-compiler.cc
|
| @@ -35,13 +35,34 @@ Handle<Code> PropertyAccessCompiler::GetCodeWithFlags(Code::Flags flags,
|
| : GetCodeWithFlags(flags, NULL);
|
| }
|
|
|
| +namespace {
|
|
|
| -void PropertyAccessCompiler::TailCallBuiltin(MacroAssembler* masm,
|
| - Builtins::Name name) {
|
| - Handle<Code> code(masm->isolate()->builtins()->builtin(name));
|
| - GenerateTailCall(masm, code);
|
| +Handle<Code> MissHandler(Isolate* isolate, Code::Kind kind) {
|
| + switch (kind) {
|
| + case Code::LOAD_IC: {
|
| + LoadICMissStub stub(isolate);
|
| + return stub.GetCode();
|
| + }
|
| + case Code::STORE_IC:
|
| + return isolate->builtins()->StoreIC_Miss();
|
| + case Code::KEYED_LOAD_IC:
|
| + return isolate->builtins()->KeyedLoadIC_Miss();
|
| + case Code::KEYED_STORE_IC:
|
| + return isolate->builtins()->KeyedStoreIC_Miss();
|
| + default:
|
| + UNREACHABLE();
|
| + }
|
| + LoadICMissStub stub(isolate);
|
| + return stub.GetCode();
|
| }
|
|
|
| +} // namespace
|
| +
|
| +void PropertyAccessCompiler::TailCallMissHandler(MacroAssembler* masm,
|
| + Code::Kind kind) {
|
| + Handle<Code> code = MissHandler(masm->isolate(), kind);
|
| + GenerateTailCall(masm, code);
|
| +}
|
|
|
| Register* PropertyAccessCompiler::GetCallingConvention(Code::Kind kind) {
|
| if (kind == Code::LOAD_IC || kind == Code::KEYED_LOAD_IC) {
|
|
|