| Index: runtime/vm/instructions_dbc.h
|
| diff --git a/runtime/vm/instructions_dbc.h b/runtime/vm/instructions_dbc.h
|
| index 5eb0c6e5bf82af7df5b61430fde80c92272550d4..6db52052bc284427f4bc1694db642ab574b1faca 100644
|
| --- a/runtime/vm/instructions_dbc.h
|
| +++ b/runtime/vm/instructions_dbc.h
|
| @@ -98,19 +98,24 @@ class NativeCallPattern : public ValueObject {
|
| };
|
|
|
|
|
| -// Instance call that can switch from an IC call to a megamorphic call
|
| +// Instance call that can switch between a direct monomorphic call, an IC call,
|
| +// and a megamorphic call.
|
| +// load guarded cid load ICData load MegamorphicCache
|
| +// load monomorphic target <-> load ICLookup stub -> load MMLookup stub
|
| +// call target.entry call stub.entry call stub.entry
|
| 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;
|
| + RawObject* data() const;
|
| + RawCode* target() const;
|
| + void SetData(const Object& data) const;
|
| + void SetTarget(const Code& target) const;
|
|
|
| private:
|
| const ObjectPool& object_pool_;
|
| - intptr_t cache_pool_index_;
|
| - intptr_t stub_pool_index_;
|
| + intptr_t data_pool_index_;
|
| + intptr_t target_pool_index_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(SwitchableCallPattern);
|
| };
|
|
|