Index: src/arm/deoptimizer-arm.cc |
diff --git a/src/arm/deoptimizer-arm.cc b/src/arm/deoptimizer-arm.cc |
index 4714d647779434deb2aefabd1bec9394e2a76b26..aa769bc5b015c678d64846382f2f86cf1cd18cab 100644 |
--- a/src/arm/deoptimizer-arm.cc |
+++ b/src/arm/deoptimizer-arm.cc |
@@ -167,6 +167,13 @@ void Deoptimizer::PatchStackCheckCodeAt(Code* unoptimized_code, |
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); |
} |
@@ -191,6 +198,9 @@ void Deoptimizer::RevertStackCheckCodeAt(Address pc_after, |
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); |
} |