Index: runtime/vm/simulator_arm.cc |
diff --git a/runtime/vm/simulator_arm.cc b/runtime/vm/simulator_arm.cc |
index 399079c9efd65c9645567764da5601f1db1eee04..6532308ca0a7b6613798f7be60bd4530c9edb701 100644 |
--- a/runtime/vm/simulator_arm.cc |
+++ b/runtime/vm/simulator_arm.cc |
@@ -786,6 +786,16 @@ class Redirection { |
return reinterpret_cast<Redirection*>(addr_of_redirection); |
} |
+ static uword FunctionForRedirect(uword address_of_svc) { |
+ Redirection* current; |
+ for (current = list_; current != NULL; current = current->next_) { |
+ if (current->address_of_svc_instruction() == address_of_svc) { |
+ return current->external_function_; |
+ } |
+ } |
+ return 0; |
+ } |
+ |
private: |
static const int32_t kRedirectSvcInstruction = |
((AL << kConditionShift) | (0xf << 24) | kRedirectionSvcCode); |
@@ -821,6 +831,11 @@ uword Simulator::RedirectExternalReference(uword function, |
} |
+uword Simulator::FunctionForRedirect(uword redirect) { |
+ return Redirection::FunctionForRedirect(redirect); |
+} |
+ |
+ |
// Get the active Simulator for the current isolate. |
Simulator* Simulator::Current() { |
Simulator* simulator = Isolate::Current()->simulator(); |