Index: runtime/vm/instructions_mips.h |
diff --git a/runtime/vm/instructions_mips.h b/runtime/vm/instructions_mips.h |
index fb2e22ba673aaea9f3510b67c1b844bcec83eb37..607e835e524d1ddba2ac5c1d4f13d47dfb667353 100644 |
--- a/runtime/vm/instructions_mips.h |
+++ b/runtime/vm/instructions_mips.h |
@@ -97,6 +97,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); |