| Index: src/objects.h
|
| ===================================================================
|
| --- src/objects.h (revision 2034)
|
| +++ src/objects.h (working copy)
|
| @@ -2252,9 +2252,10 @@
|
|
|
| // [flags]: Access to specific code flags.
|
| inline Kind kind();
|
| - inline InlineCacheState ic_state(); // only valid for IC stubs
|
| - inline PropertyType type(); // only valid for monomorphic IC stubs
|
| - inline int arguments_count(); // only valid for call IC stubs
|
| + inline InlineCacheState ic_state(); // Only valid for IC stubs.
|
| + inline InlineCacheInLoop ic_in_loop(); // Only valid for IC stubs..
|
| + inline PropertyType type(); // Only valid for monomorphic IC stubs.
|
| + inline int arguments_count(); // Only valid for call IC stubs.
|
|
|
| // Testers for IC stub kinds.
|
| inline bool is_inline_cache_stub();
|
| @@ -2276,16 +2277,20 @@
|
|
|
| // Flags operations.
|
| static inline Flags ComputeFlags(Kind kind,
|
| + InlineCacheInLoop in_loop = NOT_IN_LOOP,
|
| InlineCacheState ic_state = UNINITIALIZED,
|
| PropertyType type = NORMAL,
|
| int argc = -1);
|
|
|
| - static inline Flags ComputeMonomorphicFlags(Kind kind,
|
| - PropertyType type,
|
| - int argc = -1);
|
| + static inline Flags ComputeMonomorphicFlags(
|
| + Kind kind,
|
| + PropertyType type,
|
| + InlineCacheInLoop in_loop = NOT_IN_LOOP,
|
| + int argc = -1);
|
|
|
| static inline Kind ExtractKindFromFlags(Flags flags);
|
| static inline InlineCacheState ExtractICStateFromFlags(Flags flags);
|
| + static inline InlineCacheInLoop ExtractICInLoopFromFlags(Flags flags);
|
| static inline PropertyType ExtractTypeFromFlags(Flags flags);
|
| static inline int ExtractArgumentsCountFromFlags(Flags flags);
|
| static inline Flags RemoveTypeFromFlags(Flags flags);
|
| @@ -2377,14 +2382,16 @@
|
|
|
| // Flags layout.
|
| static const int kFlagsICStateShift = 0;
|
| - static const int kFlagsKindShift = 3;
|
| - static const int kFlagsTypeShift = 6;
|
| - static const int kFlagsArgumentsCountShift = 9;
|
| + static const int kFlagsICInLoopShift = 3;
|
| + static const int kFlagsKindShift = 4;
|
| + static const int kFlagsTypeShift = 7;
|
| + static const int kFlagsArgumentsCountShift = 10;
|
|
|
| - static const int kFlagsICStateMask = 0x00000007; // 000000111
|
| - static const int kFlagsKindMask = 0x00000038; // 000111000
|
| - static const int kFlagsTypeMask = 0x000001C0; // 111000000
|
| - static const int kFlagsArgumentsCountMask = 0xFFFFFE00;
|
| + static const int kFlagsICStateMask = 0x00000007; // 0000000111
|
| + static const int kFlagsICInLoopMask = 0x00000008; // 0000001000
|
| + static const int kFlagsKindMask = 0x00000070; // 0001110000
|
| + static const int kFlagsTypeMask = 0x00000380; // 1110000000
|
| + static const int kFlagsArgumentsCountMask = 0xFFFFFC00;
|
|
|
| private:
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(Code);
|
|
|