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 5319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5330 int CodeSize() { return SizeFor(body_size()); } | 5330 int CodeSize() { return SizeFor(body_size()); } |
5331 inline void CodeIterateBody(ObjectVisitor* v); | 5331 inline void CodeIterateBody(ObjectVisitor* v); |
5332 | 5332 |
5333 template<typename StaticVisitor> | 5333 template<typename StaticVisitor> |
5334 inline void CodeIterateBody(Heap* heap); | 5334 inline void CodeIterateBody(Heap* heap); |
5335 | 5335 |
5336 DECLARE_PRINTER(Code) | 5336 DECLARE_PRINTER(Code) |
5337 DECLARE_VERIFIER(Code) | 5337 DECLARE_VERIFIER(Code) |
5338 | 5338 |
5339 void ClearInlineCaches(); | 5339 void ClearInlineCaches(); |
| 5340 void ClearInlineCaches(Kind kind); |
| 5341 |
5340 void ClearTypeFeedbackCells(Heap* heap); | 5342 void ClearTypeFeedbackCells(Heap* heap); |
5341 | 5343 |
5342 BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset); | 5344 BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset); |
5343 | 5345 |
5344 #define DECLARE_CODE_AGE_ENUM(X) k##X##CodeAge, | 5346 #define DECLARE_CODE_AGE_ENUM(X) k##X##CodeAge, |
5345 enum Age { | 5347 enum Age { |
5346 kNotExecutedCodeAge = -2, | 5348 kNotExecutedCodeAge = -2, |
5347 kExecutedOnceCodeAge = -1, | 5349 kExecutedOnceCodeAge = -1, |
5348 kNoAgeCodeAge = 0, | 5350 kNoAgeCodeAge = 0, |
5349 CODE_AGE_LIST(DECLARE_CODE_AGE_ENUM) | 5351 CODE_AGE_LIST(DECLARE_CODE_AGE_ENUM) |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5498 ExtendedExtraICStateField::kShift + | 5500 ExtendedExtraICStateField::kShift + |
5499 ExtendedExtraICStateField::kSize); | 5501 ExtendedExtraICStateField::kSize); |
5500 | 5502 |
5501 // This constant should be encodable in an ARM instruction. | 5503 // This constant should be encodable in an ARM instruction. |
5502 static const int kFlagsNotUsedInLookup = | 5504 static const int kFlagsNotUsedInLookup = |
5503 TypeField::kMask | CacheHolderField::kMask; | 5505 TypeField::kMask | CacheHolderField::kMask; |
5504 | 5506 |
5505 private: | 5507 private: |
5506 friend class RelocIterator; | 5508 friend class RelocIterator; |
5507 | 5509 |
| 5510 void ClearInlineCaches(Kind* kind); |
| 5511 |
5508 // Code aging | 5512 // Code aging |
5509 byte* FindCodeAgeSequence(); | 5513 byte* FindCodeAgeSequence(); |
5510 static void GetCodeAgeAndParity(Code* code, Age* age, | 5514 static void GetCodeAgeAndParity(Code* code, Age* age, |
5511 MarkingParity* parity); | 5515 MarkingParity* parity); |
5512 static void GetCodeAgeAndParity(byte* sequence, Age* age, | 5516 static void GetCodeAgeAndParity(byte* sequence, Age* age, |
5513 MarkingParity* parity); | 5517 MarkingParity* parity); |
5514 static Code* GetCodeAgeStub(Isolate* isolate, Age age, MarkingParity parity); | 5518 static Code* GetCodeAgeStub(Isolate* isolate, Age age, MarkingParity parity); |
5515 | 5519 |
5516 // Code aging -- platform-specific | 5520 // Code aging -- platform-specific |
5517 static void PatchPlatformCodeAge(Isolate* isolate, | 5521 static void PatchPlatformCodeAge(Isolate* isolate, |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5789 } | 5793 } |
5790 | 5794 |
5791 inline bool has_slow_elements_kind() { | 5795 inline bool has_slow_elements_kind() { |
5792 return elements_kind() == DICTIONARY_ELEMENTS | 5796 return elements_kind() == DICTIONARY_ELEMENTS |
5793 || elements_kind() == NON_STRICT_ARGUMENTS_ELEMENTS; | 5797 || elements_kind() == NON_STRICT_ARGUMENTS_ELEMENTS; |
5794 } | 5798 } |
5795 | 5799 |
5796 static bool IsValidElementsTransition(ElementsKind from_kind, | 5800 static bool IsValidElementsTransition(ElementsKind from_kind, |
5797 ElementsKind to_kind); | 5801 ElementsKind to_kind); |
5798 | 5802 |
| 5803 // Returns true if the current map doesn't have DICTIONARY_ELEMENTS but if a |
| 5804 // map with DICTIONARY_ELEMENTS was found in the prototype chain. |
| 5805 bool DictionaryElementsInPrototypeChainOnly(); |
| 5806 |
5799 inline bool HasTransitionArray(); | 5807 inline bool HasTransitionArray(); |
5800 inline bool HasElementsTransition(); | 5808 inline bool HasElementsTransition(); |
5801 inline Map* elements_transition_map(); | 5809 inline Map* elements_transition_map(); |
5802 MUST_USE_RESULT inline MaybeObject* set_elements_transition_map( | 5810 MUST_USE_RESULT inline MaybeObject* set_elements_transition_map( |
5803 Map* transitioned_map); | 5811 Map* transitioned_map); |
5804 inline void SetTransition(int transition_index, Map* target); | 5812 inline void SetTransition(int transition_index, Map* target); |
5805 inline Map* GetTransition(int transition_index); | 5813 inline Map* GetTransition(int transition_index); |
5806 | 5814 |
5807 static Handle<TransitionArray> AddTransition(Handle<Map> map, | 5815 static Handle<TransitionArray> AddTransition(Handle<Map> map, |
5808 Handle<Name> key, | 5816 Handle<Name> key, |
(...skipping 4663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10472 } else { | 10480 } else { |
10473 value &= ~(1 << bit_position); | 10481 value &= ~(1 << bit_position); |
10474 } | 10482 } |
10475 return value; | 10483 return value; |
10476 } | 10484 } |
10477 }; | 10485 }; |
10478 | 10486 |
10479 } } // namespace v8::internal | 10487 } } // namespace v8::internal |
10480 | 10488 |
10481 #endif // V8_OBJECTS_H_ | 10489 #endif // V8_OBJECTS_H_ |
OLD | NEW |