Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index ec6f6051d5f0be9a49b7d8917f5ab3a768bf7936..311da46cfba7e4427327e0f2fa671c8399b69008 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -5664,6 +5664,9 @@ class Code: public HeapObject { |
// enough handlers can be found. |
bool FindHandlers(CodeHandleList* code_list, int length = -1); |
+ // Find the handler for |map|. |
+ MaybeHandle<Code> FindHandlerForMap(Map* map); |
+ |
// Find the first name in an IC stub. |
Name* FindFirstName(); |
@@ -5685,30 +5688,26 @@ class Code: public HeapObject { |
// Flags operations. |
static inline Flags ComputeFlags( |
- Kind kind, |
- InlineCacheState ic_state = UNINITIALIZED, |
- ExtraICState extra_ic_state = kNoExtraICState, |
- StubType type = NORMAL, |
- InlineCacheHolderFlag holder = OWN_MAP); |
+ Kind kind, InlineCacheState ic_state = UNINITIALIZED, |
+ ExtraICState extra_ic_state = kNoExtraICState, StubType type = NORMAL, |
+ CacheHolderFlag holder = kCacheOnReceiver); |
static inline Flags ComputeMonomorphicFlags( |
- Kind kind, |
- ExtraICState extra_ic_state = kNoExtraICState, |
- InlineCacheHolderFlag holder = OWN_MAP, |
- StubType type = NORMAL); |
+ Kind kind, ExtraICState extra_ic_state = kNoExtraICState, |
+ CacheHolderFlag holder = kCacheOnReceiver, StubType type = NORMAL); |
static inline Flags ComputeHandlerFlags( |
- Kind handler_kind, |
- StubType type = NORMAL, |
- InlineCacheHolderFlag holder = OWN_MAP); |
+ Kind handler_kind, StubType type = NORMAL, |
+ CacheHolderFlag holder = kCacheOnReceiver); |
static inline InlineCacheState ExtractICStateFromFlags(Flags flags); |
static inline StubType ExtractTypeFromFlags(Flags flags); |
+ static inline CacheHolderFlag ExtractCacheHolderFromFlags(Flags flags); |
static inline Kind ExtractKindFromFlags(Flags flags); |
- static inline InlineCacheHolderFlag ExtractCacheHolderFromFlags(Flags flags); |
static inline ExtraICState ExtractExtraICStateFromFlags(Flags flags); |
static inline Flags RemoveTypeFromFlags(Flags flags); |
+ static inline Flags RemoveTypeAndHolderFromFlags(Flags flags); |
// Convert a target address into a code object. |
static inline Code* GetCodeFromTargetAddress(Address address); |
@@ -5874,7 +5873,7 @@ class Code: public HeapObject { |
// Flags layout. BitField<type, shift, size>. |
class ICStateField: public BitField<InlineCacheState, 0, 3> {}; |
class TypeField: public BitField<StubType, 3, 1> {}; |
- class CacheHolderField: public BitField<InlineCacheHolderFlag, 5, 1> {}; |
+ class CacheHolderField : public BitField<CacheHolderFlag, 4, 2> {}; |
class KindField: public BitField<Kind, 6, 4> {}; |
// TODO(bmeurer): Bit 10 is available for free use. :-) |
class ExtraICStateField: public BitField<ExtraICState, 11, |