| Index: src/x64/stub-cache-x64.cc
|
| ===================================================================
|
| --- src/x64/stub-cache-x64.cc (revision 5173)
|
| +++ src/x64/stub-cache-x64.cc (working copy)
|
| @@ -820,9 +820,11 @@
|
| }
|
|
|
|
|
| -void CallStubCompiler::GenerateMissBranch() {
|
| - Handle<Code> ic = ComputeCallMiss(arguments().immediate(), kind_);
|
| - __ Jump(ic, RelocInfo::CODE_TARGET);
|
| +Object* CallStubCompiler::GenerateMissBranch() {
|
| + Object* obj = StubCache::ComputeCallMiss(arguments().immediate(), kind_);
|
| + if (obj->IsFailure()) return obj;
|
| + __ Jump(Handle<Code>(Code::cast(obj)), RelocInfo::CODE_TARGET);
|
| + return obj;
|
| }
|
|
|
|
|
| @@ -975,7 +977,8 @@
|
|
|
| // Handle call cache miss.
|
| __ bind(&miss_in_smi_check);
|
| - GenerateMissBranch();
|
| + Object* obj = GenerateMissBranch();
|
| + if (obj->IsFailure()) return obj;
|
|
|
| // Return the generated code.
|
| return GetCode(function);
|
| @@ -1029,7 +1032,8 @@
|
|
|
| // Handle call cache miss.
|
| __ bind(&miss);
|
| - GenerateMissBranch();
|
| + Object* obj = GenerateMissBranch();
|
| + if (obj->IsFailure()) return obj;
|
|
|
| // Return the generated code.
|
| return GetCode(FIELD, name);
|
| @@ -1186,9 +1190,9 @@
|
| }
|
|
|
| __ bind(&miss);
|
| + Object* obj = GenerateMissBranch();
|
| + if (obj->IsFailure()) return obj;
|
|
|
| - GenerateMissBranch();
|
| -
|
| // Return the generated code.
|
| return GetCode(function);
|
| }
|
| @@ -1270,9 +1274,9 @@
|
| argc + 1,
|
| 1);
|
| __ bind(&miss);
|
| + Object* obj = GenerateMissBranch();
|
| + if (obj->IsFailure()) return obj;
|
|
|
| - GenerateMissBranch();
|
| -
|
| // Return the generated code.
|
| return GetCode(function);
|
| }
|
| @@ -1357,7 +1361,8 @@
|
|
|
| // Handle load cache miss.
|
| __ bind(&miss);
|
| - GenerateMissBranch();
|
| + Object* obj = GenerateMissBranch();
|
| + if (obj->IsFailure()) return obj;
|
|
|
| // Return the generated code.
|
| return GetCode(INTERCEPTOR, name);
|
| @@ -1442,7 +1447,8 @@
|
| // Handle call cache miss.
|
| __ bind(&miss);
|
| __ IncrementCounter(&Counters::call_global_inline_miss, 1);
|
| - GenerateMissBranch();
|
| + Object* obj = GenerateMissBranch();
|
| + if (obj->IsFailure()) return obj;
|
|
|
| // Return the generated code.
|
| return GetCode(NORMAL, name);
|
|
|