Index: runtime/vm/instructions_arm.h |
diff --git a/runtime/vm/instructions_arm.h b/runtime/vm/instructions_arm.h |
index ad82da1daba779dc4473a399d3a3da44e93feba8..57d48244d55dcdbcafbee7f8c50877ceb7d5eb81 100644 |
--- a/runtime/vm/instructions_arm.h |
+++ b/runtime/vm/instructions_arm.h |
@@ -98,6 +98,27 @@ class NativeCallPattern : public ValueObject { |
}; |
+// Instance call that can switch from an IC call to a megamorphic call |
+// load ICData load MegamorphicCache |
+// call ICLookup stub -> call MegamorphicLookup stub |
+// call target call target |
+class SwitchableCallPattern : public ValueObject { |
+ public: |
+ SwitchableCallPattern(uword pc, const Code& code); |
+ |
+ RawObject* cache() const; |
+ void SetCache(const MegamorphicCache& cache) const; |
+ void SetLookupStub(const Code& stub) const; |
+ |
+ private: |
+ const ObjectPool& object_pool_; |
+ intptr_t cache_pool_index_; |
+ intptr_t stub_pool_index_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(SwitchableCallPattern); |
+}; |
+ |
+ |
class ReturnPattern : public ValueObject { |
public: |
explicit ReturnPattern(uword pc); |