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 5136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5147 kAfterLastCodeAge, | 5147 kAfterLastCodeAge, |
5148 kLastCodeAge = kAfterLastCodeAge - 1, | 5148 kLastCodeAge = kAfterLastCodeAge - 1, |
5149 kCodeAgeCount = kAfterLastCodeAge - 1 | 5149 kCodeAgeCount = kAfterLastCodeAge - 1 |
5150 }; | 5150 }; |
5151 #undef DECLARE_CODE_AGE_ENUM | 5151 #undef DECLARE_CODE_AGE_ENUM |
5152 | 5152 |
5153 // Code aging. Indicates how many full GCs this code has survived without | 5153 // Code aging. Indicates how many full GCs this code has survived without |
5154 // being entered through the prologue. Used to determine when it is | 5154 // being entered through the prologue. Used to determine when it is |
5155 // relatively safe to flush this code object and replace it with the lazy | 5155 // relatively safe to flush this code object and replace it with the lazy |
5156 // compilation stub. | 5156 // compilation stub. |
5157 static void MakeCodeAgeSequenceYoung(byte* sequence); | 5157 static void MakeCodeAgeSequenceYoung(byte* sequence, Isolate* isolate); |
5158 void MakeOlder(MarkingParity); | 5158 void MakeOlder(MarkingParity); |
5159 static bool IsYoungSequence(byte* sequence); | 5159 static bool IsYoungSequence(byte* sequence); |
5160 bool IsOld(); | 5160 bool IsOld(); |
5161 int GetAge(); | 5161 int GetAge(); |
5162 | 5162 |
5163 void PrintDeoptLocation(int bailout_id); | 5163 void PrintDeoptLocation(int bailout_id); |
5164 bool CanDeoptAt(Address pc); | 5164 bool CanDeoptAt(Address pc); |
5165 | 5165 |
5166 #ifdef VERIFY_HEAP | 5166 #ifdef VERIFY_HEAP |
5167 void VerifyEmbeddedMapsDependency(); | 5167 void VerifyEmbeddedMapsDependency(); |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5293 | 5293 |
5294 private: | 5294 private: |
5295 friend class RelocIterator; | 5295 friend class RelocIterator; |
5296 | 5296 |
5297 // Code aging | 5297 // Code aging |
5298 byte* FindCodeAgeSequence(); | 5298 byte* FindCodeAgeSequence(); |
5299 static void GetCodeAgeAndParity(Code* code, Age* age, | 5299 static void GetCodeAgeAndParity(Code* code, Age* age, |
5300 MarkingParity* parity); | 5300 MarkingParity* parity); |
5301 static void GetCodeAgeAndParity(byte* sequence, Age* age, | 5301 static void GetCodeAgeAndParity(byte* sequence, Age* age, |
5302 MarkingParity* parity); | 5302 MarkingParity* parity); |
5303 static Code* GetCodeAgeStub(Age age, MarkingParity parity); | 5303 static Code* GetCodeAgeStub(Isolate* isolate, Age age, MarkingParity parity); |
5304 | 5304 |
5305 // Code aging -- platform-specific | 5305 // Code aging -- platform-specific |
5306 static void PatchPlatformCodeAge(byte* sequence, Age age, | 5306 static void PatchPlatformCodeAge(Isolate* isolate, |
| 5307 byte* sequence, Age age, |
5307 MarkingParity parity); | 5308 MarkingParity parity); |
5308 | 5309 |
5309 DISALLOW_IMPLICIT_CONSTRUCTORS(Code); | 5310 DISALLOW_IMPLICIT_CONSTRUCTORS(Code); |
5310 }; | 5311 }; |
5311 | 5312 |
5312 | 5313 |
5313 class CompilationInfo; | 5314 class CompilationInfo; |
5314 | 5315 |
5315 // This class describes the layout of dependent codes array of a map. The | 5316 // This class describes the layout of dependent codes array of a map. The |
5316 // array is partitioned into several groups of dependent codes. Each group | 5317 // array is partitioned into several groups of dependent codes. Each group |
(...skipping 4926 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10243 } else { | 10244 } else { |
10244 value &= ~(1 << bit_position); | 10245 value &= ~(1 << bit_position); |
10245 } | 10246 } |
10246 return value; | 10247 return value; |
10247 } | 10248 } |
10248 }; | 10249 }; |
10249 | 10250 |
10250 } } // namespace v8::internal | 10251 } } // namespace v8::internal |
10251 | 10252 |
10252 #endif // V8_OBJECTS_H_ | 10253 #endif // V8_OBJECTS_H_ |
OLD | NEW |