Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 6e3e94132def173e13fcfbaf03b797a5796c5aa9..2a081a51650d9367dffd7065fcf65f911b335913 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -1038,7 +1038,6 @@ class MaybeObject BASE_EMBEDDED { |
V(DeoptimizationInputData) \ |
V(DeoptimizationOutputData) \ |
V(DependentCode) \ |
- V(TypeFeedbackCells) \ |
V(FixedArray) \ |
V(FixedDoubleArray) \ |
V(ConstantPoolArray) \ |
@@ -1149,10 +1148,12 @@ class MaybeObject BASE_EMBEDDED { |
V(kExpectedAllocationSite, "expected allocation site") \ |
V(kExpectedPropertyCellInRegisterA2, \ |
"Expected property cell in register a2") \ |
- V(kExpectedPropertyCellInRegisterEbx, \ |
- "Expected property cell in register ebx") \ |
- V(kExpectedPropertyCellInRegisterRbx, \ |
- "Expected property cell in register rbx") \ |
+ V(kExpectedFixedArrayInRegisterEbx, \ |
+ "Expected fixed array in register ebx") \ |
+ V(kExpectedFixedArrayInRegisterR2, \ |
+ "Expected fixed array in register r2") \ |
+ V(kExpectedFixedArrayInRegisterRbx, \ |
+ "Expected fixed array in register rbx") \ |
V(kExpectingAlignmentForCopyBytes, \ |
"Expecting alignment for CopyBytes") \ |
V(kExportDeclaration, "Export declaration") \ |
@@ -5069,49 +5070,6 @@ class DeoptimizationOutputData: public FixedArray { |
// Forward declaration. |
class Cell; |
class PropertyCell; |
- |
-// TypeFeedbackCells is a fixed array used to hold the association between |
-// cache cells and AST ids for code generated by the full compiler. |
-// The format of the these objects is |
-// [i * 2]: Global property cell of ith cache cell. |
-// [i * 2 + 1]: Ast ID for ith cache cell. |
-class TypeFeedbackCells: public FixedArray { |
- public: |
- int CellCount() { return length() / 2; } |
- static int LengthOfFixedArray(int cell_count) { return cell_count * 2; } |
- |
- // Accessors for AST ids associated with cache values. |
- inline TypeFeedbackId AstId(int index); |
- inline void SetAstId(int index, TypeFeedbackId id); |
- |
- // Accessors for global property cells holding the cache values. |
- inline Cell* GetCell(int index); |
- inline void SetCell(int index, Cell* cell); |
- |
- // The object that indicates an uninitialized cache. |
- static inline Handle<Object> UninitializedSentinel(Isolate* isolate); |
- |
- // The object that indicates a megamorphic state. |
- static inline Handle<Object> MegamorphicSentinel(Isolate* isolate); |
- |
- // The object that indicates a monomorphic state of Array with |
- // ElementsKind |
- static inline Handle<Object> MonomorphicArraySentinel(Isolate* isolate, |
- ElementsKind elements_kind); |
- |
- // A raw version of the uninitialized sentinel that's safe to read during |
- // garbage collection (e.g., for patching the cache). |
- static inline Object* RawUninitializedSentinel(Heap* heap); |
- |
- // Casting. |
- static inline TypeFeedbackCells* cast(Object* obj); |
- |
- static const int kForInFastCaseMarker = 0; |
- static const int kForInSlowCaseMarker = 1; |
-}; |
- |
- |
-// Forward declaration. |
class SafepointEntry; |
class TypeFeedbackInfo; |
@@ -5472,7 +5430,7 @@ class Code: public HeapObject { |
void ClearInlineCaches(); |
void ClearInlineCaches(Kind kind); |
- void ClearTypeFeedbackCells(Heap* heap); |
+ void ClearTypeFeedbackInfo(Heap* heap); |
BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset); |
uint32_t TranslateAstIdToPcOffset(BailoutId ast_id); |
@@ -8186,7 +8144,7 @@ class TypeFeedbackInfo: public Struct { |
inline void set_inlined_type_change_checksum(int checksum); |
inline bool matches_inlined_type_change_checksum(int checksum); |
- DECL_ACCESSORS(type_feedback_cells, TypeFeedbackCells) |
+ DECL_ACCESSORS(feedback_vector, FixedArray) |
static inline TypeFeedbackInfo* cast(Object* obj); |
@@ -8196,8 +8154,27 @@ class TypeFeedbackInfo: public Struct { |
static const int kStorage1Offset = HeapObject::kHeaderSize; |
static const int kStorage2Offset = kStorage1Offset + kPointerSize; |
- static const int kTypeFeedbackCellsOffset = kStorage2Offset + kPointerSize; |
- static const int kSize = kTypeFeedbackCellsOffset + kPointerSize; |
+ static const int kFeedbackVectorOffset = |
+ kStorage2Offset + kPointerSize; |
+ static const int kSize = kFeedbackVectorOffset + kPointerSize; |
+ |
+ // The object that indicates an uninitialized cache. |
+ static inline Handle<Object> UninitializedSentinel(Isolate* isolate); |
+ |
+ // The object that indicates a megamorphic state. |
+ static inline Handle<Object> MegamorphicSentinel(Isolate* isolate); |
+ |
+ // The object that indicates a monomorphic state of Array with |
+ // ElementsKind |
+ static inline Handle<Object> MonomorphicArraySentinel(Isolate* isolate, |
+ ElementsKind elements_kind); |
+ |
+ // A raw version of the uninitialized sentinel that's safe to read during |
+ // garbage collection (e.g., for patching the cache). |
+ static inline Object* RawUninitializedSentinel(Heap* heap); |
+ |
+ static const int kForInFastCaseMarker = 0; |
+ static const int kForInSlowCaseMarker = 1; |
private: |
static const int kTypeChangeChecksumBits = 7; |