| Index: src/x64/deoptimizer-x64.cc
|
| ===================================================================
|
| --- src/x64/deoptimizer-x64.cc (revision 9327)
|
| +++ src/x64/deoptimizer-x64.cc (working copy)
|
| @@ -220,7 +220,8 @@
|
| }
|
|
|
|
|
| -void Deoptimizer::PatchStackCheckCodeAt(Address pc_after,
|
| +void Deoptimizer::PatchStackCheckCodeAt(Code* unoptimized_code,
|
| + Address pc_after,
|
| Code* check_code,
|
| Code* replacement_code) {
|
| Address call_target_address = pc_after - kIntSize;
|
| @@ -250,6 +251,13 @@
|
| *(call_target_address - 2) = 0x90; // nop
|
| Assembler::set_target_address_at(call_target_address,
|
| replacement_code->entry());
|
| +
|
| + RelocInfo rinfo(call_target_address,
|
| + RelocInfo::CODE_TARGET,
|
| + NULL,
|
| + unoptimized_code);
|
| + unoptimized_code->GetHeap()->incremental_marking()->RecordWriteIntoCode(
|
| + unoptimized_code, &rinfo, replacement_code);
|
| }
|
|
|
|
|
| @@ -268,6 +276,8 @@
|
| *(call_target_address - 2) = 0x07; // offset
|
| Assembler::set_target_address_at(call_target_address,
|
| check_code->entry());
|
| + check_code->GetHeap()->incremental_marking()->
|
| + RecordCodeTargetPatch(call_target_address, check_code);
|
| }
|
|
|
|
|
|
|