| Index: src/objects.h
|
| ===================================================================
|
| --- src/objects.h (revision 5007)
|
| +++ src/objects.h (working copy)
|
| @@ -2765,11 +2765,13 @@
|
| InLoopFlag in_loop = NOT_IN_LOOP,
|
| InlineCacheState ic_state = UNINITIALIZED,
|
| PropertyType type = NORMAL,
|
| - int argc = -1);
|
| + int argc = -1,
|
| + InlineCacheHolderFlag holder = OWN_MAP);
|
|
|
| static inline Flags ComputeMonomorphicFlags(
|
| Kind kind,
|
| PropertyType type,
|
| + InlineCacheHolderFlag holder = OWN_MAP,
|
| InLoopFlag in_loop = NOT_IN_LOOP,
|
| int argc = -1);
|
|
|
| @@ -2778,6 +2780,7 @@
|
| static inline InLoopFlag ExtractICInLoopFromFlags(Flags flags);
|
| static inline PropertyType ExtractTypeFromFlags(Flags flags);
|
| static inline int ExtractArgumentsCountFromFlags(Flags flags);
|
| + static inline InlineCacheHolderFlag ExtractCacheHolderFromFlags(Flags flags);
|
| static inline Flags RemoveTypeFromFlags(Flags flags);
|
|
|
| // Convert a target address into a code object.
|
| @@ -2864,16 +2867,18 @@
|
| static const int kFlagsICInLoopShift = 3;
|
| static const int kFlagsTypeShift = 4;
|
| static const int kFlagsKindShift = 7;
|
| - static const int kFlagsArgumentsCountShift = 11;
|
| + static const int kFlagsICHolderShift = 11;
|
| + static const int kFlagsArgumentsCountShift = 12;
|
|
|
| static const int kFlagsICStateMask = 0x00000007; // 00000000111
|
| static const int kFlagsICInLoopMask = 0x00000008; // 00000001000
|
| static const int kFlagsTypeMask = 0x00000070; // 00001110000
|
| static const int kFlagsKindMask = 0x00000780; // 11110000000
|
| - static const int kFlagsArgumentsCountMask = 0xFFFFF800;
|
| + static const int kFlagsCacheInPrototypeMapMask = 0x00000800;
|
| + static const int kFlagsArgumentsCountMask = 0xFFFFF000;
|
|
|
| static const int kFlagsNotUsedInLookup =
|
| - (kFlagsICInLoopMask | kFlagsTypeMask);
|
| + (kFlagsICInLoopMask | kFlagsTypeMask | kFlagsCacheInPrototypeMapMask);
|
|
|
| private:
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(Code);
|
|
|