Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 0d1b2510cdde6539967242941ad0f320165e9920..1a140188801a61a96873e5c0d4e03ef6b6296136 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -4877,6 +4877,8 @@ class Code: public HeapObject { |
static const ExtraICState kNoExtraICState = 0; |
+ static const int kPrologueOffsetNotSet = -1; |
+ |
#ifdef ENABLE_DISASSEMBLER |
// Printing |
static const char* ICState2String(InlineCacheState state); |
@@ -5196,11 +5198,15 @@ class Code: public HeapObject { |
#define DECLARE_CODE_AGE_ENUM(X) k##X##CodeAge, |
enum Age { |
+ kNotExecutedCodeAge = -2, |
+ kExecutedOnceCodeAge = -1, |
kNoAge = 0, |
CODE_AGE_LIST(DECLARE_CODE_AGE_ENUM) |
kAfterLastCodeAge, |
kLastCodeAge = kAfterLastCodeAge - 1, |
- kCodeAgeCount = kAfterLastCodeAge - 1 |
+ kCodeAgeCount = kAfterLastCodeAge - 1, |
+ kIsOldCodeAge = kSexagenarianCodeAge, |
+ kPreAgedCodeAge = kIsOldCodeAge - 1 |
}; |
#undef DECLARE_CODE_AGE_ENUM |
@@ -5209,10 +5215,14 @@ class Code: public HeapObject { |
// relatively safe to flush this code object and replace it with the lazy |
// compilation stub. |
static void MakeCodeAgeSequenceYoung(byte* sequence, Isolate* isolate); |
+ static void MarkCodeAsExecuted(byte* sequence, Isolate* isolate); |
void MakeOlder(MarkingParity); |
static bool IsYoungSequence(byte* sequence); |
bool IsOld(); |
- int GetAge(); |
+ Age GetAge(); |
+ static inline Code* GetPreAgedCodeAgeStub(Isolate* isolate) { |
+ return GetCodeAgeStub(isolate, kNotExecutedCodeAge, NO_MARKING_PARITY); |
+ } |
void PrintDeoptLocation(int bailout_id); |
bool CanDeoptAt(Address pc); |