Index: runtime/vm/code_patcher_arm.cc |
diff --git a/runtime/vm/code_patcher_arm.cc b/runtime/vm/code_patcher_arm.cc |
index 7e0e8eaddbbcb6bc1d4ba99cd2b2762b7119f924..62775bf903be24e40288798cd397aefef32bcfbe 100644 |
--- a/runtime/vm/code_patcher_arm.cc |
+++ b/runtime/vm/code_patcher_arm.cc |
@@ -70,15 +70,29 @@ RawFunction* CodePatcher::GetUnoptimizedStaticCallAt( |
void CodePatcher::PatchSwitchableCallAt(uword return_address, |
- const Code& code, |
- const ICData& ic_data, |
- const MegamorphicCache& cache, |
- const Code& lookup_stub) { |
- ASSERT(code.ContainsInstructionAt(return_address)); |
- SwitchableCallPattern call(return_address, code); |
- ASSERT(call.cache() == ic_data.raw()); |
- call.SetLookupStub(lookup_stub); |
- call.SetCache(cache); |
+ const Code& caller_code, |
+ const Object& data, |
+ const Code& target) { |
+ ASSERT(caller_code.ContainsInstructionAt(return_address)); |
+ SwitchableCallPattern call(return_address, caller_code); |
+ call.SetData(data); |
+ call.SetTarget(target); |
+} |
+ |
+ |
+RawCode* CodePatcher::GetSwitchableCallTargetAt(uword return_address, |
+ const Code& caller_code) { |
+ ASSERT(caller_code.ContainsInstructionAt(return_address)); |
+ SwitchableCallPattern call(return_address, caller_code); |
+ return call.target(); |
+} |
+ |
+ |
+RawObject* CodePatcher::GetSwitchableCallDataAt(uword return_address, |
+ const Code& caller_code) { |
+ ASSERT(caller_code.ContainsInstructionAt(return_address)); |
+ SwitchableCallPattern call(return_address, caller_code); |
+ return call.data(); |
} |