| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 9c3d0f81fc243126c447e6ba29d601266e70a537..2b6e2f8fd90cf104755bee21bad1ba7911c3eeb6 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -4199,6 +4199,17 @@ class Code: public HeapObject {
|
| LAST_IC_KIND = TO_BOOLEAN_IC
|
| };
|
|
|
| + // Types of stubs.
|
| + enum StubType {
|
| + NORMAL,
|
| + FIELD,
|
| + CONSTANT_FUNCTION,
|
| + CALLBACKS,
|
| + INTERCEPTOR,
|
| + MAP_TRANSITION,
|
| + NONEXISTENT
|
| + };
|
| +
|
| enum {
|
| NUMBER_OF_KINDS = LAST_IC_KIND + 1
|
| };
|
| @@ -4211,7 +4222,7 @@ class Code: public HeapObject {
|
| // Printing
|
| static const char* Kind2String(Kind kind);
|
| static const char* ICState2String(InlineCacheState state);
|
| - static const char* PropertyType2String(PropertyType type);
|
| + static const char* StubType2String(StubType type);
|
| static void PrintExtraICState(FILE* out, Kind kind, ExtraICState extra);
|
| inline void Disassemble(const char* name) {
|
| Disassemble(name, stdout);
|
| @@ -4261,7 +4272,7 @@ class Code: public HeapObject {
|
| inline Kind kind();
|
| inline InlineCacheState ic_state(); // Only valid for IC stubs.
|
| inline ExtraICState extra_ic_state(); // Only valid for IC stubs.
|
| - inline PropertyType type(); // Only valid for monomorphic IC stubs.
|
| + inline StubType type(); // Only valid for monomorphic IC stubs.
|
| inline int arguments_count(); // Only valid for call IC stubs.
|
|
|
| // Testers for IC stub kinds.
|
| @@ -4404,19 +4415,19 @@ class Code: public HeapObject {
|
| Kind kind,
|
| InlineCacheState ic_state = UNINITIALIZED,
|
| ExtraICState extra_ic_state = kNoExtraICState,
|
| - PropertyType type = NORMAL,
|
| + StubType type = NORMAL,
|
| int argc = -1,
|
| InlineCacheHolderFlag holder = OWN_MAP);
|
|
|
| static inline Flags ComputeMonomorphicFlags(
|
| Kind kind,
|
| - PropertyType type,
|
| + StubType type,
|
| ExtraICState extra_ic_state = kNoExtraICState,
|
| InlineCacheHolderFlag holder = OWN_MAP,
|
| int argc = -1);
|
|
|
| static inline InlineCacheState ExtractICStateFromFlags(Flags flags);
|
| - static inline PropertyType ExtractTypeFromFlags(Flags flags);
|
| + static inline StubType ExtractTypeFromFlags(Flags flags);
|
| static inline Kind ExtractKindFromFlags(Flags flags);
|
| static inline InlineCacheHolderFlag ExtractCacheHolderFromFlags(Flags flags);
|
| static inline ExtraICState ExtractExtraICStateFromFlags(Flags flags);
|
| @@ -4552,14 +4563,14 @@ class Code: public HeapObject {
|
|
|
| // Flags layout. BitField<type, shift, size>.
|
| class ICStateField: public BitField<InlineCacheState, 0, 3> {};
|
| - class TypeField: public BitField<PropertyType, 3, 4> {};
|
| - class CacheHolderField: public BitField<InlineCacheHolderFlag, 7, 1> {};
|
| - class KindField: public BitField<Kind, 8, 4> {};
|
| - class ExtraICStateField: public BitField<ExtraICState, 12, 2> {};
|
| - class IsPregeneratedField: public BitField<bool, 14, 1> {};
|
| + class TypeField: public BitField<StubType, 3, 3> {};
|
| + class CacheHolderField: public BitField<InlineCacheHolderFlag, 6, 1> {};
|
| + class KindField: public BitField<Kind, 7, 4> {};
|
| + class ExtraICStateField: public BitField<ExtraICState, 11, 2> {};
|
| + class IsPregeneratedField: public BitField<bool, 13, 1> {};
|
|
|
| // Signed field cannot be encoded using the BitField class.
|
| - static const int kArgumentsCountShift = 15;
|
| + static const int kArgumentsCountShift = 14;
|
| static const int kArgumentsCountMask = ~((1 << kArgumentsCountShift) - 1);
|
|
|
| // This constant should be encodable in an ARM instruction.
|
|
|