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