Chromium Code Reviews| Index: runtime/vm/code_patcher_x64.cc |
| =================================================================== |
| --- runtime/vm/code_patcher_x64.cc (revision 24431) |
| +++ 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); |
| +} |
|
siva
2013/06/25 21:21:05
This code seems pretty similar in all the target v
srdjan
2013/06/25 21:26:08
Next CL.
|
| + |
| } // namespace dart |
| #endif // defined TARGET_ARCH_X64 |