Index: src/arm/stub-cache-arm.cc |
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc |
index ff3007c444b6340abe605af0fc574d703ae99a6a..8c8e702d6c33cb8f28edb8557a1443570633d3f1 100644 |
--- a/src/arm/stub-cache-arm.cc |
+++ b/src/arm/stub-cache-arm.cc |
@@ -1252,9 +1252,11 @@ void CallStubCompiler::GenerateNameCheck(String* name, Label* miss) { |
} |
-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; |
} |
@@ -1286,7 +1288,8 @@ Object* CallStubCompiler::CompileCallField(JSObject* object, |
// Handle call cache miss. |
__ bind(&miss); |
- GenerateMissBranch(); |
+ Object* obj = GenerateMissBranch(); |
+ if (obj->IsFailure()) return obj; |
// Return the generated code. |
return GetCode(FIELD, name); |
@@ -1337,7 +1340,8 @@ Object* CallStubCompiler::CompileArrayPushCall(Object* object, |
// Handle call cache miss. |
__ bind(&miss); |
- GenerateMissBranch(); |
+ Object* obj = GenerateMissBranch(); |
+ if (obj->IsFailure()) return obj; |
// Return the generated code. |
return GetCode(function); |
@@ -1388,7 +1392,8 @@ Object* CallStubCompiler::CompileArrayPopCall(Object* object, |
// Handle call cache miss. |
__ bind(&miss); |
- GenerateMissBranch(); |
+ Object* obj = GenerateMissBranch(); |
+ if (obj->IsFailure()) return obj; |
// Return the generated code. |
return GetCode(function); |
@@ -1561,7 +1566,8 @@ Object* CallStubCompiler::CompileCallConstant(Object* object, |
} |
__ bind(&miss_in_smi_check); |
- GenerateMissBranch(); |
+ Object* obj = GenerateMissBranch(); |
+ if (obj->IsFailure()) return obj; |
// Return the generated code. |
return GetCode(function); |
@@ -1610,7 +1616,8 @@ Object* CallStubCompiler::CompileCallInterceptor(JSObject* object, |
// Handle call cache miss. |
__ bind(&miss); |
- GenerateMissBranch(); |
+ Object* obj = GenerateMissBranch(); |
+ if (obj->IsFailure()) return obj; |
// Return the generated code. |
return GetCode(INTERCEPTOR, name); |
@@ -1694,7 +1701,8 @@ Object* CallStubCompiler::CompileCallGlobal(JSObject* object, |
// Handle call cache miss. |
__ bind(&miss); |
__ IncrementCounter(&Counters::call_global_inline_miss, 1, r1, r3); |
- GenerateMissBranch(); |
+ Object* obj = GenerateMissBranch(); |
+ if (obj->IsFailure()) return obj; |
// Return the generated code. |
return GetCode(NORMAL, name); |