| Index: src/x64/assembler-x64-inl.h
|
| diff --git a/src/x64/assembler-x64-inl.h b/src/x64/assembler-x64-inl.h
|
| index a7bce5b73da0d0b3e4da084ab3344f70a716f449..d2546102e465e377b967ae19e71cbb5397239e3c 100644
|
| --- a/src/x64/assembler-x64-inl.h
|
| +++ b/src/x64/assembler-x64-inl.h
|
| @@ -274,6 +274,30 @@ void RelocInfo::set_target_object(Object* target) {
|
| }
|
|
|
|
|
| +Handle<JSGlobalPropertyCell> RelocInfo::target_cell_handle() {
|
| + ASSERT(rmode_ == RelocInfo::GLOBAL_PROPERTY_CELL);
|
| + Address address = Memory::Address_at(pc_);
|
| + return Handle<JSGlobalPropertyCell>(
|
| + reinterpret_cast<JSGlobalPropertyCell**>(address));
|
| +}
|
| +
|
| +
|
| +JSGlobalPropertyCell* RelocInfo::target_cell() {
|
| + ASSERT(rmode_ == RelocInfo::GLOBAL_PROPERTY_CELL);
|
| + Address address = Memory::Address_at(pc_);
|
| + Object* object = HeapObject::FromAddress(
|
| + address - JSGlobalPropertyCell::kValueOffset);
|
| + return reinterpret_cast<JSGlobalPropertyCell*>(object);
|
| +}
|
| +
|
| +
|
| +void RelocInfo::set_target_cell(JSGlobalPropertyCell* cell) {
|
| + ASSERT(rmode_ == RelocInfo::GLOBAL_PROPERTY_CELL);
|
| + Address address = cell->address() + JSGlobalPropertyCell::kValueOffset;
|
| + Memory::Address_at(pc_) = address;
|
| +}
|
| +
|
| +
|
| bool RelocInfo::IsPatchedReturnSequence() {
|
| // The recognized call sequence is:
|
| // movq(kScratchRegister, immediate64); call(kScratchRegister);
|
|
|