Index: src/arm/deoptimizer-arm.cc |
=================================================================== |
--- src/arm/deoptimizer-arm.cc (revision 9327) |
+++ src/arm/deoptimizer-arm.cc (working copy) |
@@ -134,7 +134,8 @@ |
} |
-void Deoptimizer::PatchStackCheckCodeAt(Address pc_after, |
+void Deoptimizer::PatchStackCheckCodeAt(Code* unoptimized_code, |
+ Address pc_after, |
Code* check_code, |
Code* replacement_code) { |
const int kInstrSize = Assembler::kInstrSize; |
@@ -169,6 +170,13 @@ |
reinterpret_cast<uint32_t>(check_code->entry())); |
Memory::uint32_at(stack_check_address_pointer) = |
reinterpret_cast<uint32_t>(replacement_code->entry()); |
+ |
+ RelocInfo rinfo(pc_after - 2 * kInstrSize, |
+ RelocInfo::CODE_TARGET, |
+ NULL, |
+ unoptimized_code); |
+ unoptimized_code->GetHeap()->incremental_marking()->RecordWriteIntoCode( |
+ unoptimized_code, &rinfo, replacement_code); |
} |
@@ -193,6 +201,9 @@ |
reinterpret_cast<uint32_t>(replacement_code->entry())); |
Memory::uint32_at(stack_check_address_pointer) = |
reinterpret_cast<uint32_t>(check_code->entry()); |
+ |
+ check_code->GetHeap()->incremental_marking()-> |
+ RecordCodeTargetPatch(pc_after - 2 * kInstrSize, check_code); |
} |