5 #ifndef V8_LAYOUT_DESCRIPTOR_H_ 6 #define V8_LAYOUT_DESCRIPTOR_H_ 10 #include "src/objects/fixed-array.h" 13 #include "src/objects/object-macros.h" 32 V8_INLINE
bool IsTagged(
int field_index);
39 bool IsTagged(
int field_index,
int max_sequence_length,
40 int* out_sequence_length);
43 V8_INLINE
bool IsFastPointerLayout();
44 V8_INLINE
static bool IsFastPointerLayout(
Object* layout_descriptor);
47 V8_INLINE
bool IsSlowLayout();
77 bool IsConsistentWithMap(
Map map,
bool check_tail =
false);
90 void ShortPrint(std::ostream& os);
91 void Print(std::ostream& os);
95 V8_INLINE
int capacity();
102 static constexpr
int kBitsInSmiLayout =
103 SmiValuesAre32Bits() ? 32 : kSmiValueSize - 1;
105 static const int kBitsPerLayoutWord = 32;
107 V8_INLINE
int number_of_layout_words();
108 V8_INLINE
uint32_t get_layout_word(
int index)
const;
109 V8_INLINE
void set_layout_word(
int index,
uint32_t value);
114 V8_INLINE
static bool InobjectUnboxedField(
int inobject_properties,
120 int num_descriptors);
124 V8_INLINE
static int GetSlowModeBackingStoreLength(
int length);
130 int num_descriptors);
137 V8_INLINE
bool GetIndexes(
int field_index,
int* layout_word_index,
138 int* layout_bit_index);
140 V8_INLINE V8_WARN_UNUSED_RESULT
LayoutDescriptor SetRawData(
int field_index);
155 bool all_fields_tagged() {
return all_fields_tagged_; }
156 inline bool IsTagged(
int offset_in_bytes);
163 bool IsTagged(
int offset_in_bytes,
int end_offset,
164 int* out_end_of_contiguous_region_offset);
167 bool all_fields_tagged_;
174 #include "src/objects/object-macros-undef.h" 176 #endif // V8_LAYOUT_DESCRIPTOR_H_