| Index: runtime/vm/code_patcher_x64.cc
|
| ===================================================================
|
| --- runtime/vm/code_patcher_x64.cc (revision 24432)
|
| +++ runtime/vm/code_patcher_x64.cc (working copy)
|
| @@ -214,16 +214,6 @@
|
| }
|
|
|
|
|
| -RawFunction* CodePatcher::GetUnoptimizedStaticCallTargetAt(
|
| - uword return_address, const Code& code) {
|
| - ASSERT(code.ContainsInstructionAt(return_address));
|
| - UnoptimizedStaticCall static_call(return_address);
|
| - ICData& ic_data = ICData::Handle();
|
| - ic_data ^= static_call.ic_data();
|
| - return ic_data.GetTargetAt(0);
|
| -}
|
| -
|
| -
|
| void CodePatcher::InsertCallAt(uword start, uword target) {
|
| // The inserted call should not overlap the lazy deopt jump code.
|
| ASSERT(start + ShortCallPattern::InstructionLength() <= target);
|
| @@ -234,6 +224,18 @@
|
| }
|
|
|
|
|
| +RawFunction* CodePatcher::GetUnoptimizedStaticCallAt(
|
| + uword return_address, const Code& code, ICData* ic_data_result) {
|
| + ASSERT(code.ContainsInstructionAt(return_address));
|
| + UnoptimizedStaticCall static_call(return_address);
|
| + ICData& ic_data = ICData::Handle();
|
| + ic_data ^= static_call.ic_data();
|
| + if (ic_data_result != NULL) {
|
| + *ic_data_result = ic_data.raw();
|
| + }
|
| + return ic_data.GetTargetAt(0);
|
| +}
|
| +
|
| } // namespace dart
|
|
|
| #endif // defined TARGET_ARCH_X64
|
|
|