| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 6838 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6849 DISALLOW_IMPLICIT_CONSTRUCTORS(PolymorphicCodeCacheHashTable); | 6849 DISALLOW_IMPLICIT_CONSTRUCTORS(PolymorphicCodeCacheHashTable); |
| 6850 }; | 6850 }; |
| 6851 | 6851 |
| 6852 | 6852 |
| 6853 class TypeFeedbackInfo: public Struct { | 6853 class TypeFeedbackInfo: public Struct { |
| 6854 public: | 6854 public: |
| 6855 inline int ic_total_count(); | 6855 inline int ic_total_count(); |
| 6856 inline void set_ic_total_count(int count); | 6856 inline void set_ic_total_count(int count); |
| 6857 | 6857 |
| 6858 inline int ic_with_type_info_count(); | 6858 inline int ic_with_type_info_count(); |
| 6859 inline void set_ic_with_type_info_count(int count); | 6859 inline void change_ic_with_type_info_count(int count); |
| 6860 |
| 6861 inline void initialize_storage(); |
| 6862 |
| 6863 inline void change_own_type_change_checksum(); |
| 6864 inline int own_type_change_checksum(); |
| 6865 |
| 6866 inline void set_inlined_type_change_checksum(int checksum); |
| 6867 inline bool matches_inlined_type_change_checksum(int checksum); |
| 6860 | 6868 |
| 6861 DECL_ACCESSORS(type_feedback_cells, TypeFeedbackCells) | 6869 DECL_ACCESSORS(type_feedback_cells, TypeFeedbackCells) |
| 6862 | 6870 |
| 6863 static inline TypeFeedbackInfo* cast(Object* obj); | 6871 static inline TypeFeedbackInfo* cast(Object* obj); |
| 6864 | 6872 |
| 6865 #ifdef OBJECT_PRINT | 6873 #ifdef OBJECT_PRINT |
| 6866 inline void TypeFeedbackInfoPrint() { | 6874 inline void TypeFeedbackInfoPrint() { |
| 6867 TypeFeedbackInfoPrint(stdout); | 6875 TypeFeedbackInfoPrint(stdout); |
| 6868 } | 6876 } |
| 6869 void TypeFeedbackInfoPrint(FILE* out); | 6877 void TypeFeedbackInfoPrint(FILE* out); |
| 6870 #endif | 6878 #endif |
| 6871 #ifdef DEBUG | 6879 #ifdef DEBUG |
| 6872 void TypeFeedbackInfoVerify(); | 6880 void TypeFeedbackInfoVerify(); |
| 6873 #endif | 6881 #endif |
| 6874 | 6882 |
| 6875 static const int kIcTotalCountOffset = HeapObject::kHeaderSize; | 6883 static const int kStorage1Offset = HeapObject::kHeaderSize; |
| 6876 static const int kIcWithTypeinfoCountOffset = | 6884 static const int kStorage2Offset = kStorage1Offset + kPointerSize; |
| 6877 kIcTotalCountOffset + kPointerSize; | 6885 static const int kTypeFeedbackCellsOffset = kStorage2Offset + kPointerSize; |
| 6878 static const int kTypeFeedbackCellsOffset = | |
| 6879 kIcWithTypeinfoCountOffset + kPointerSize; | |
| 6880 static const int kSize = kTypeFeedbackCellsOffset + kPointerSize; | 6886 static const int kSize = kTypeFeedbackCellsOffset + kPointerSize; |
| 6881 | 6887 |
| 6882 private: | 6888 private: |
| 6889 static const int kTypeChangeChecksumBits = 7; |
| 6890 |
| 6891 class ICTotalCountField: public BitField<int, 0, |
| 6892 kSmiValueSize - kTypeChangeChecksumBits> {}; // NOLINT |
| 6893 class OwnTypeChangeChecksum: public BitField<int, |
| 6894 kSmiValueSize - kTypeChangeChecksumBits, |
| 6895 kTypeChangeChecksumBits> {}; // NOLINT |
| 6896 class ICsWithTypeInfoCountField: public BitField<int, 0, |
| 6897 kSmiValueSize - kTypeChangeChecksumBits> {}; // NOLINT |
| 6898 class InlinedTypeChangeChecksum: public BitField<int, |
| 6899 kSmiValueSize - kTypeChangeChecksumBits, |
| 6900 kTypeChangeChecksumBits> {}; // NOLINT |
| 6901 |
| 6883 DISALLOW_IMPLICIT_CONSTRUCTORS(TypeFeedbackInfo); | 6902 DISALLOW_IMPLICIT_CONSTRUCTORS(TypeFeedbackInfo); |
| 6884 }; | 6903 }; |
| 6885 | 6904 |
| 6886 | 6905 |
| 6887 // Representation of a slow alias as part of a non-strict arguments objects. | 6906 // Representation of a slow alias as part of a non-strict arguments objects. |
| 6888 // For fast aliases (if HasNonStrictArgumentsElements()): | 6907 // For fast aliases (if HasNonStrictArgumentsElements()): |
| 6889 // - the parameter map contains an index into the context | 6908 // - the parameter map contains an index into the context |
| 6890 // - all attributes of the element have default values | 6909 // - all attributes of the element have default values |
| 6891 // For slow aliases (if HasDictionaryArgumentsElements()): | 6910 // For slow aliases (if HasDictionaryArgumentsElements()): |
| 6892 // - the parameter map contains no fast alias mapping (i.e. the hole) | 6911 // - the parameter map contains no fast alias mapping (i.e. the hole) |
| (...skipping 2022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8915 } else { | 8934 } else { |
| 8916 value &= ~(1 << bit_position); | 8935 value &= ~(1 << bit_position); |
| 8917 } | 8936 } |
| 8918 return value; | 8937 return value; |
| 8919 } | 8938 } |
| 8920 }; | 8939 }; |
| 8921 | 8940 |
| 8922 } } // namespace v8::internal | 8941 } } // namespace v8::internal |
| 8923 | 8942 |
| 8924 #endif // V8_OBJECTS_H_ | 8943 #endif // V8_OBJECTS_H_ |
| OLD | NEW |