Index: src/a64/deoptimizer-a64.cc |
diff --git a/src/a64/deoptimizer-a64.cc b/src/a64/deoptimizer-a64.cc |
index be57f21cd0ba37076de13a1749fb90f3f66d4046..95c5d3b1adde2fa1e50aed8b2b88b3c45a70e883 100644 |
--- a/src/a64/deoptimizer-a64.cc |
+++ b/src/a64/deoptimizer-a64.cc |
@@ -44,21 +44,8 @@ int Deoptimizer::patch_size() { |
} |
-void Deoptimizer::DeoptimizeFunctionWithPreparedFunctionList( |
- JSFunction* function) { |
- Isolate* isolate = function->GetIsolate(); |
- HandleScope scope(isolate); |
- DisallowHeapAllocation no_allocation; |
- |
- ASSERT(function->IsOptimized()); |
- ASSERT(function->FunctionsInFunctionListShareSameCode()); |
- |
- // Get the optimized code. |
- Code* code = function->code(); |
- |
- // The optimized code is going to be patched, so we cannot use it any more. |
- function->shared()->EvictFromOptimizedCodeMap(code, "deoptimized function"); |
+void Deoptimizer::PatchCodeForDeoptimization(Isolate* isolate, Code* code) { |
// Invalidate the relocation information, as it will become invalid by the |
// code patching below, and is not needed any more. |
code->InvalidateRelocation(); |
@@ -90,25 +77,6 @@ void Deoptimizer::DeoptimizeFunctionWithPreparedFunctionList( |
prev_call_address = call_address; |
#endif |
} |
- |
- // Add the deoptimizing code to the list. |
- DeoptimizingCodeListNode* node = new DeoptimizingCodeListNode(code); |
- DeoptimizerData* data = isolate->deoptimizer_data(); |
- node->set_next(data->deoptimizing_code_list_); |
- data->deoptimizing_code_list_ = node; |
- |
- // We might be in the middle of incremental marking with compaction. |
- // Tell collector to treat this code object in a special way and |
- // ignore all slots that might have been recorded on it. |
- isolate->heap()->mark_compact_collector()->InvalidateCode(code); |
- |
- ReplaceCodeForRelatedFunctions(function, code); |
- |
- if (FLAG_trace_deopt) { |
- PrintF("[forced deoptimization: "); |
- function->PrintName(); |
- PrintF(" / %" V8PRIxPTR "]\n", reinterpret_cast<intptr_t>(function)); |
- } |
} |
@@ -619,6 +587,17 @@ void Deoptimizer::TableEntryGenerator::GeneratePrologue() { |
__ Push(masm()->Tmp0()); |
} |
+ |
+void FrameDescription::SetCallerPc(unsigned offset, intptr_t value) { |
+ SetFrameSlot(offset, value); |
+} |
+ |
+ |
+void FrameDescription::SetCallerFp(unsigned offset, intptr_t value) { |
+ SetFrameSlot(offset, value); |
+} |
+ |
+ |
#undef __ |
} } // namespace v8::internal |