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 5288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5299 int CodeSize() { return SizeFor(body_size()); } | 5299 int CodeSize() { return SizeFor(body_size()); } |
5300 inline void CodeIterateBody(ObjectVisitor* v); | 5300 inline void CodeIterateBody(ObjectVisitor* v); |
5301 | 5301 |
5302 template<typename StaticVisitor> | 5302 template<typename StaticVisitor> |
5303 inline void CodeIterateBody(Heap* heap); | 5303 inline void CodeIterateBody(Heap* heap); |
5304 | 5304 |
5305 DECLARE_PRINTER(Code) | 5305 DECLARE_PRINTER(Code) |
5306 DECLARE_VERIFIER(Code) | 5306 DECLARE_VERIFIER(Code) |
5307 | 5307 |
5308 void ClearInlineCaches(); | 5308 void ClearInlineCaches(); |
| 5309 void ClearInlineCaches(Kind kind); |
| 5310 |
5309 void ClearTypeFeedbackCells(Heap* heap); | 5311 void ClearTypeFeedbackCells(Heap* heap); |
5310 | 5312 |
5311 BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset); | 5313 BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset); |
5312 | 5314 |
5313 #define DECLARE_CODE_AGE_ENUM(X) k##X##CodeAge, | 5315 #define DECLARE_CODE_AGE_ENUM(X) k##X##CodeAge, |
5314 enum Age { | 5316 enum Age { |
5315 kNotExecutedCodeAge = -2, | 5317 kNotExecutedCodeAge = -2, |
5316 kExecutedOnceCodeAge = -1, | 5318 kExecutedOnceCodeAge = -1, |
5317 kNoAgeCodeAge = 0, | 5319 kNoAgeCodeAge = 0, |
5318 CODE_AGE_LIST(DECLARE_CODE_AGE_ENUM) | 5320 CODE_AGE_LIST(DECLARE_CODE_AGE_ENUM) |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5467 ExtendedExtraICStateField::kShift + | 5469 ExtendedExtraICStateField::kShift + |
5468 ExtendedExtraICStateField::kSize); | 5470 ExtendedExtraICStateField::kSize); |
5469 | 5471 |
5470 // This constant should be encodable in an ARM instruction. | 5472 // This constant should be encodable in an ARM instruction. |
5471 static const int kFlagsNotUsedInLookup = | 5473 static const int kFlagsNotUsedInLookup = |
5472 TypeField::kMask | CacheHolderField::kMask; | 5474 TypeField::kMask | CacheHolderField::kMask; |
5473 | 5475 |
5474 private: | 5476 private: |
5475 friend class RelocIterator; | 5477 friend class RelocIterator; |
5476 | 5478 |
| 5479 void ClearInlineCaches(Kind* kind); |
| 5480 |
5477 // Code aging | 5481 // Code aging |
5478 byte* FindCodeAgeSequence(); | 5482 byte* FindCodeAgeSequence(); |
5479 static void GetCodeAgeAndParity(Code* code, Age* age, | 5483 static void GetCodeAgeAndParity(Code* code, Age* age, |
5480 MarkingParity* parity); | 5484 MarkingParity* parity); |
5481 static void GetCodeAgeAndParity(byte* sequence, Age* age, | 5485 static void GetCodeAgeAndParity(byte* sequence, Age* age, |
5482 MarkingParity* parity); | 5486 MarkingParity* parity); |
5483 static Code* GetCodeAgeStub(Isolate* isolate, Age age, MarkingParity parity); | 5487 static Code* GetCodeAgeStub(Isolate* isolate, Age age, MarkingParity parity); |
5484 | 5488 |
5485 // Code aging -- platform-specific | 5489 // Code aging -- platform-specific |
5486 static void PatchPlatformCodeAge(Isolate* isolate, | 5490 static void PatchPlatformCodeAge(Isolate* isolate, |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5758 } | 5762 } |
5759 | 5763 |
5760 inline bool has_slow_elements_kind() { | 5764 inline bool has_slow_elements_kind() { |
5761 return elements_kind() == DICTIONARY_ELEMENTS | 5765 return elements_kind() == DICTIONARY_ELEMENTS |
5762 || elements_kind() == NON_STRICT_ARGUMENTS_ELEMENTS; | 5766 || elements_kind() == NON_STRICT_ARGUMENTS_ELEMENTS; |
5763 } | 5767 } |
5764 | 5768 |
5765 static bool IsValidElementsTransition(ElementsKind from_kind, | 5769 static bool IsValidElementsTransition(ElementsKind from_kind, |
5766 ElementsKind to_kind); | 5770 ElementsKind to_kind); |
5767 | 5771 |
| 5772 bool DictionaryElementsInPrototypeChain(); |
5768 inline bool HasTransitionArray(); | 5773 inline bool HasTransitionArray(); |
5769 inline bool HasElementsTransition(); | 5774 inline bool HasElementsTransition(); |
5770 inline Map* elements_transition_map(); | 5775 inline Map* elements_transition_map(); |
5771 MUST_USE_RESULT inline MaybeObject* set_elements_transition_map( | 5776 MUST_USE_RESULT inline MaybeObject* set_elements_transition_map( |
5772 Map* transitioned_map); | 5777 Map* transitioned_map); |
5773 inline void SetTransition(int transition_index, Map* target); | 5778 inline void SetTransition(int transition_index, Map* target); |
5774 inline Map* GetTransition(int transition_index); | 5779 inline Map* GetTransition(int transition_index); |
5775 | 5780 |
5776 static Handle<TransitionArray> AddTransition(Handle<Map> map, | 5781 static Handle<TransitionArray> AddTransition(Handle<Map> map, |
5777 Handle<Name> key, | 5782 Handle<Name> key, |
(...skipping 4662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10440 } else { | 10445 } else { |
10441 value &= ~(1 << bit_position); | 10446 value &= ~(1 << bit_position); |
10442 } | 10447 } |
10443 return value; | 10448 return value; |
10444 } | 10449 } |
10445 }; | 10450 }; |
10446 | 10451 |
10447 } } // namespace v8::internal | 10452 } } // namespace v8::internal |
10448 | 10453 |
10449 #endif // V8_OBJECTS_H_ | 10454 #endif // V8_OBJECTS_H_ |
OLD | NEW |