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 5299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5310 | 5310 |
5311 BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset); | 5311 BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset); |
5312 | 5312 |
5313 #define DECLARE_CODE_AGE_ENUM(X) k##X##CodeAge, | 5313 #define DECLARE_CODE_AGE_ENUM(X) k##X##CodeAge, |
5314 enum Age { | 5314 enum Age { |
5315 kNotExecutedCodeAge = -2, | 5315 kNotExecutedCodeAge = -2, |
5316 kExecutedOnceCodeAge = -1, | 5316 kExecutedOnceCodeAge = -1, |
5317 kNoAgeCodeAge = 0, | 5317 kNoAgeCodeAge = 0, |
5318 CODE_AGE_LIST(DECLARE_CODE_AGE_ENUM) | 5318 CODE_AGE_LIST(DECLARE_CODE_AGE_ENUM) |
5319 kAfterLastCodeAge, | 5319 kAfterLastCodeAge, |
| 5320 kFirstCodeAge = kNotExecutedCodeAge, |
5320 kLastCodeAge = kAfterLastCodeAge - 1, | 5321 kLastCodeAge = kAfterLastCodeAge - 1, |
5321 kCodeAgeCount = kAfterLastCodeAge - 1, | 5322 kCodeAgeCount = kAfterLastCodeAge - kNotExecutedCodeAge - 1, |
5322 kIsOldCodeAge = kSexagenarianCodeAge, | 5323 kIsOldCodeAge = kSexagenarianCodeAge, |
5323 kPreAgedCodeAge = kIsOldCodeAge - 1 | 5324 kPreAgedCodeAge = kIsOldCodeAge - 1 |
5324 }; | 5325 }; |
5325 #undef DECLARE_CODE_AGE_ENUM | 5326 #undef DECLARE_CODE_AGE_ENUM |
5326 | 5327 |
5327 // Code aging. Indicates how many full GCs this code has survived without | 5328 // Code aging. Indicates how many full GCs this code has survived without |
5328 // being entered through the prologue. Used to determine when it is | 5329 // being entered through the prologue. Used to determine when it is |
5329 // relatively safe to flush this code object and replace it with the lazy | 5330 // relatively safe to flush this code object and replace it with the lazy |
5330 // compilation stub. | 5331 // compilation stub. |
5331 static void MakeCodeAgeSequenceYoung(byte* sequence, Isolate* isolate); | 5332 static void MakeCodeAgeSequenceYoung(byte* sequence, Isolate* isolate); |
5332 static void MarkCodeAsExecuted(byte* sequence, Isolate* isolate); | 5333 static void MarkCodeAsExecuted(byte* sequence, Isolate* isolate); |
5333 void MakeOlder(MarkingParity); | 5334 void MakeOlder(MarkingParity); |
5334 static bool IsYoungSequence(byte* sequence); | 5335 static bool IsYoungSequence(byte* sequence); |
5335 bool IsOld(); | 5336 bool IsOld(); |
5336 Age GetAge(); | 5337 Age GetAge(); |
| 5338 // Gets the raw code age, including psuedo code-age values such as |
| 5339 // kNotExecutedCodeAge and kExecutedOnceCodeAge. |
| 5340 Age GetRawAge(); |
5337 static inline Code* GetPreAgedCodeAgeStub(Isolate* isolate) { | 5341 static inline Code* GetPreAgedCodeAgeStub(Isolate* isolate) { |
5338 return GetCodeAgeStub(isolate, kNotExecutedCodeAge, NO_MARKING_PARITY); | 5342 return GetCodeAgeStub(isolate, kNotExecutedCodeAge, NO_MARKING_PARITY); |
5339 } | 5343 } |
5340 | 5344 |
5341 void PrintDeoptLocation(int bailout_id); | 5345 void PrintDeoptLocation(int bailout_id); |
5342 bool CanDeoptAt(Address pc); | 5346 bool CanDeoptAt(Address pc); |
5343 | 5347 |
5344 #ifdef VERIFY_HEAP | 5348 #ifdef VERIFY_HEAP |
5345 void VerifyEmbeddedObjectsDependency(); | 5349 void VerifyEmbeddedObjectsDependency(); |
5346 #endif | 5350 #endif |
(...skipping 5093 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10440 } else { | 10444 } else { |
10441 value &= ~(1 << bit_position); | 10445 value &= ~(1 << bit_position); |
10442 } | 10446 } |
10443 return value; | 10447 return value; |
10444 } | 10448 } |
10445 }; | 10449 }; |
10446 | 10450 |
10447 } } // namespace v8::internal | 10451 } } // namespace v8::internal |
10448 | 10452 |
10449 #endif // V8_OBJECTS_H_ | 10453 #endif // V8_OBJECTS_H_ |
OLD | NEW |