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