Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 898b176215f57f98e7404a2c7e651bb67137a303..3ca89f08eab202ebf9e14531795a7fed54cd3f60 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -4327,7 +4327,6 @@ class Code: public HeapObject { |
V(FUNCTION) \ |
V(OPTIMIZED_FUNCTION) \ |
V(STUB) \ |
- V(COMPILED_STUB) \ |
V(BUILTIN) \ |
V(LOAD_IC) \ |
V(KEYED_LOAD_IC) \ |
@@ -4470,6 +4469,11 @@ class Code: public HeapObject { |
inline int major_key(); |
inline void set_major_key(int value); |
+ // For kind STUB or ICs, tells whether or not a code object was generated by |
+ // the optimizing compiler (but it may not be an optimized function). |
+ bool is_crankshafted(); |
+ inline void set_is_crankshafted(bool value); |
+ |
// For stubs, tells whether they should always exist, so that they can be |
// called from other stubs. |
inline bool is_pregenerated(); |
@@ -4785,15 +4789,22 @@ class Code: public HeapObject { |
kMarkedForDeoptimizationFirstBit, |
kMarkedForDeoptimizationBitCount> {}; // NOLINT |
+ // KindSpecificFlags2 layout (ALL) |
+ static const int kIsCrankshaftedBit = 0; |
+ class IsCrankshaftedField: public BitField<bool, |
+ kIsCrankshaftedBit, 1> {}; // NOLINT |
+ |
// KindSpecificFlags2 layout (STUB and OPTIMIZED_FUNCTION) |
- static const int kStubMajorKeyFirstBit = 0; |
+ static const int kStubMajorKeyFirstBit = kIsCrankshaftedBit + 1; |
static const int kSafepointTableOffsetFirstBit = |
kStubMajorKeyFirstBit + kStubMajorKeyBits; |
- static const int kSafepointTableOffsetBitCount = 26; |
+ static const int kSafepointTableOffsetBitCount = 25; |
STATIC_ASSERT(kStubMajorKeyFirstBit + kStubMajorKeyBits <= 32); |
STATIC_ASSERT(kSafepointTableOffsetFirstBit + |
kSafepointTableOffsetBitCount <= 32); |
+ STATIC_ASSERT(1 + kStubMajorKeyBits + |
+ kSafepointTableOffsetBitCount <= 32); |
class SafepointTableOffsetField: public BitField<int, |
kSafepointTableOffsetFirstBit, |
@@ -4802,8 +4813,10 @@ class Code: public HeapObject { |
kStubMajorKeyFirstBit, kStubMajorKeyBits> {}; // NOLINT |
// KindSpecificFlags2 layout (FUNCTION) |
- class BackEdgeTableOffsetField: public BitField<int, 0, 31> {}; |
- class BackEdgesPatchedForOSRField: public BitField<bool, 31, 1> {}; |
+ class BackEdgeTableOffsetField: public BitField<int, |
+ kIsCrankshaftedBit + 1, 29> {}; // NOLINT |
+ class BackEdgesPatchedForOSRField: public BitField<bool, |
+ kIsCrankshaftedBit + 1 + 29, 1> {}; // NOLINT |
// Signed field cannot be encoded using the BitField class. |
static const int kArgumentsCountShift = 17; |