38 write_barrier,
"Map"};
79 "HeapInt32ValueUpperValue"};
86 offsetof(
Oddball, to_number_raw_));
88 Hole::kRawNumericValueOffset);
95 offsetof(
BigInt, bitfield_),
105#ifdef BIGINT_NEEDS_PADDING
107FieldAccess AccessBuilder::ForBigIntOptionalPadding() {
108 static_assert(
arraysize(BigInt::padding_) ==
sizeof(uint32_t));
158 int const offset = map.GetInObjectPropertyOffset(index);
161 Type::NonInternal(), machine_type,
172 write_barrier_kind,
"JSObjectOffset"};
198 JSCollectionIterator::kIndexOffset,
204 "JSCollectionIteratorIndex"};
212 JSExternalObject::kValueOffset,
215 Type::ExternalPointer(),
218 "JSExternalObjectValue",
226#ifdef V8_ENABLE_SANDBOX
228FieldAccess AccessBuilder::ForJSExternalObjectPointerHandle() {
240 kTaggedBase, JSFunction::kPrototypeOrInitialMapOffset,
259 kTaggedBase, JSFunction::kSharedFunctionInfoOffset,
275#ifdef V8_ENABLE_LEAPTIERING
277FieldAccess AccessBuilder::ForJSFunctionDispatchHandleNoWriteBarrier() {
289#ifdef V8_ENABLE_SANDBOX
293 JSFunction::kCodeOffset,
296 Type::OtherInternal(),
318 kTaggedBase, JSBoundFunction::kBoundTargetFunctionOffset,
337 kTaggedBase, JSBoundFunction::kBoundArgumentsOffset,
356 JSGeneratorObject::kFunctionOffset,
359 Type::CallableFunction(),
362 "JSGeneratorObjectFunction"};
379 kTaggedBase, JSGeneratorObject::kContinuationOffset,
389 kTaggedBase, JSGeneratorObject::kInputOrDebugPosOffset,
399 kTaggedBase, JSGeneratorObject::kParametersAndRegistersOffset,
419 kTaggedBase, JSAsyncFunctionObject::kPromiseOffset,
439 kTaggedBase, JSAsyncGeneratorObject::kIsAwaitingOffset,
450 JSArray::kLengthOffset,
481 JSArrayBuffer::kRawByteLengthOffset,
487 "JSArrayBufferByteLength"};
488#ifdef V8_ENABLE_SANDBOX
507 JSArrayBufferView::kRawByteLengthOffset,
513 "JSArrayBufferViewByteLength"};
514#ifdef V8_ENABLE_SANDBOX
523 JSArrayBufferView::kRawByteOffsetOffset,
529 "JSArrayBufferViewByteOffset"};
530#ifdef V8_ENABLE_SANDBOX
539 JSArrayBufferView::kBitFieldOffset,
545 "JSArrayBufferViewBitField"};
552 JSTypedArray::kRawLengthOffset,
558 "JSTypedArrayLength"};
559#ifdef V8_ENABLE_SANDBOX
578 JSTypedArray::kExternalPointerOffset,
581#ifdef V8_ENABLE_SANDBOX
582 Type::SandboxedPointer(),
585 Type::ExternalPointer(),
589 "JSTypedArrayExternalPointer",
600 JSDataView::kDataPointerOffset,
603#ifdef V8_ENABLE_SANDBOX
604 Type::SandboxedPointer(),
607 Type::ExternalPointer(),
611 "JSDataViewDataPointer",
621 JSDate::kValueOffset,
668#ifdef V8_ENABLE_SANDBOX
672 JSRegExp::kDataOffset,
675 Type::OtherInternal(),
743 "WeakFixedArrayLength"};
791 Map::kBitFieldOffset,
804 Map::kBitField2Offset,
817 Map::kBitField3Offset,
858 kTaggedBase, Map::kConstructorOrBackPointerOrNativeContextOffset,
868 kTaggedBase, SourceTextModule::kRegularExportsOffset,
878 kTaggedBase, SourceTextModule::kRegularImportsOffset,
976 Type::ExternalPointer(),
979 "ExternalStringResourceData",
1006 kTaggedBase, JSArrayIterator::kIteratedObjectOffset,
1018 JSArrayIterator::kNextIndexOffset,
1024 "JSArrayIteratorNextIndex"};
1031 JSArrayIterator::kKindOffset,
1037 "JSArrayIteratorKind"};
1053 JSStringIterator::kIndexOffset,
1059 "JSStringIteratorIndex"};
1065 constexpr int offset = JSStrictArgumentsObject::kLengthOffset;
1066 static_assert(
offset == JSSloppyArgumentsObject::kLengthOffset);
1077 kTaggedBase, JSSloppyArgumentsObject::kCalleeOffset,
1091 write_barrier_kind,
"FixedArraySlot"};
1217 access.type = Type::NonInternal();
1222 access.type = Type::Number();
1227 access.type = Type::NumberOrHole();
1270 ElementAccess access = {taggedness, header_size, Type::Signed32(),
1276 ElementAccess access = {taggedness, header_size, Type::Unsigned32(),
1281 ElementAccess access = {taggedness, header_size, Type::Signed32(),
1286 ElementAccess access = {taggedness, header_size, Type::Unsigned32(),
1291 ElementAccess access = {taggedness, header_size, Type::Signed32(),
1296 ElementAccess access = {taggedness, header_size, Type::Unsigned32(),
1305 ElementAccess access = {taggedness, header_size, Type::Number(),
1310 ElementAccess access = {taggedness, header_size, Type::Number(),
1315 ElementAccess access = {taggedness, header_size, Type::Number(),
1320 ElementAccess access = {taggedness, header_size, Type::SignedBigInt64(),
1325 ElementAccess access = {taggedness, header_size, Type::UnsignedBigInt64(),
1338 : Type::InternalizedString()),
1353 "HashTableBaseNumberOfElements"};
1367 "HashTableBaseNumberOfDeletedElement"};
1381 "HashTableBaseCapacity"};
1412 "OrderedHashMapOrSetNumberOfBuckets"};
1429 "OrderedHashMapOrSetNumberOfDeletedElements"};
1446 "OrderedHashMapOrSetNumberOfElements"};
1470 "DictionaryNextEnumerationIndex"};
1484 "DictionaryObjectHashIndex"};
1498 "NameDictionaryFlagsIndex"};
1505 FeedbackCell::kInterruptBudgetOffset,
1511 "FeedbackCellInterruptBudget"};
1515#ifdef V8_ENABLE_LEAPTIERING
1517FieldAccess AccessBuilder::ForFeedbackCellDispatchHandleNoWriteBarrier() {
1522 FeedbackCell::kDispatchHandleOffset,
1528 "FeedbackCellDispatchHandle"};
1536 FeedbackVector::kInvocationCountOffset,
1542 "FeedbackVectorInvocationCount"};
1558 kTaggedBase, FeedbackVector::kClosureFeedbackCellArrayOffset,
1565#if V8_ENABLE_WEBASSEMBLY
1569 WasmArray::kLengthOffset,
1571 compiler::OptionalMapRef(),
1572 compiler::Type::OtherInternal(),
1579FieldAccess AccessBuilder::ForWasmDispatchTableLength() {
1582 MaybeHandle<Name>{},
1583 compiler::OptionalMapRef{},
1584 compiler::Type::OtherInternal(),
1587 "WasmDispatchTableLength"};
1594 kTaggedBase, ContextSidePropertyCell::kPropertyDetailsRawOffset,
static uint32_t SizeFor(uint32_t length)
static V8_INLINE constexpr int OffsetOfElementAt(int index)
static V8_INLINE constexpr int SlotOffset(int index)
static constexpr int OffsetOfElementAt(int index)
static const int kCapacityIndex
static const int kNumberOfDeletedElementsIndex
static const int kNumberOfElementsIndex
static constexpr int kMapOffset
static constexpr int kLastIndexOffset
static constexpr MachineType MapInHeader()
static constexpr MachineType Float64()
static constexpr MachineType Pointer()
static constexpr MachineType Uint8()
static constexpr MachineType Int32()
static constexpr MachineType AnyTagged()
static constexpr MachineType Uint64()
static constexpr MachineType Uint32()
static constexpr MachineType SandboxedPointer()
static constexpr MachineType TaggedSigned()
static constexpr MachineType IndirectPointer()
static constexpr MachineType Uint16()
static constexpr MachineType Int16()
static constexpr MachineType Float32()
static constexpr MachineType Int64()
static constexpr MachineType TaggedPointer()
static constexpr MachineType UintPtr()
static constexpr MachineType Int8()
static constexpr MachineType IntPtr()
static const int kFlagsIndex
static const int kValueOffset
static constexpr int NextTableOffset()
static constexpr int NumberOfBucketsOffset()
static constexpr int HashTableStartOffset()
static constexpr int NumberOfElementsOffset()
static constexpr int NumberOfDeletedElementsOffset()
static constexpr int OffsetOfElementAt(int index)
static constexpr int OffsetOfElementAt(int index)
static constexpr size_t kLengthOffset
static FieldAccess ForJSArrayBufferViewBuffer()
static ElementAccess ForFixedArrayElement()
static ElementAccess ForSloppyArgumentsElementsMappedEntry()
static ElementAccess ForSeqTwoByteStringCharacter()
static FieldAccess ForJSCollectionIteratorTable()
static FieldAccess ForJSArrayBufferViewByteLength()
static FieldAccess ForBigIntBitfield()
static FieldAccess ForMap(WriteBarrierKind write_barrier=kMapWriteBarrier)
static FieldAccess ForJSArrayBufferViewByteOffset()
static FieldAccess ForCellValue()
static FieldAccess ForContextSlotSmi(size_t index)
static FieldAccess ForJSExternalObjectValue()
static FieldAccess ForHeapNumberValue()
static FieldAccess ForJSCollectionTable()
static ElementAccess ForSeqOneByteStringCharacter()
static FieldAccess ForJSBoundFunctionBoundTargetFunction()
static FieldAccess ForJSStringIteratorString()
static FieldAccess ForScopeInfoFlags()
static FieldAccess ForArgumentsLength()
static FieldAccess ForJSBoundFunctionBoundArguments()
static FieldAccess ForJSObjectOffset(int offset, WriteBarrierKind write_barrier_kind=kFullWriteBarrier)
static FieldAccess ForSloppyArgumentsElementsArguments()
static FieldAccess ForFixedArraySlot(size_t index, WriteBarrierKind write_barrier_kind=kFullWriteBarrier)
static FieldAccess ForJSArrayIteratorNextIndex()
static FieldAccess ForJSObjectPropertiesOrHashKnownPointer()
static FieldAccess ForJSArrayIteratorIteratedObject()
static FieldAccess ForHeapInt32UpperValue()
static FieldAccess ForJSArrayBufferByteLength()
static FieldAccess ForJSStringIteratorIndex()
static FieldAccess ForHashTableBaseNumberOfElements()
static FieldAccess ForJSBoundFunctionBoundThis()
static FieldAccess ForJSCollectionIteratorIndex()
static FieldAccess ForModuleRegularExports()
static FieldAccess ForThinStringActual()
static FieldAccess ForOrderedHashMapOrSetNextTable()
static FieldAccess ForEnumCacheKeys()
static FieldAccess ForJSArrayBufferBitField()
static FieldAccess ForHeapInt32Value()
static FieldAccess ForExternalIntPtr()
static FieldAccess ForFeedbackVectorFlags()
static FieldAccess ForFeedbackVectorSlot(int index)
static FieldAccess ForJSObjectInObjectProperty(MapRef map, int index, MachineType machine_type=MachineType::AnyTagged())
static FieldAccess ForModuleRegularImports()
static FieldAccess ForExternalStringResourceData()
static FieldAccess ForContextSlotKnownPointer(size_t index)
static FieldAccess ForJSGeneratorObjectContext()
static FieldAccess ForSlicedStringParent()
static FieldAccess ForSlicedStringOffset()
static FieldAccess ForFixedArrayLength()
static FieldAccess ForHashTableBaseCapacity()
static FieldAccess ForJSFunctionSharedFunctionInfo()
static FieldAccess ForStringLength()
static FieldAccess ForJSDateField(JSDate::FieldIndex index)
static FieldAccess ForJSGeneratorObjectInputOrDebugPos()
static FieldAccess ForMapBitField2()
static FieldAccess ForFeedbackVectorInvocationCount()
static FieldAccess ForArgumentsCallee()
static FieldAccess ForJSArrayLength(ElementsKind elements_kind)
static ElementAccess ForOrderedHashMapEntryValue()
static FieldAccess ForJSIteratorResultValue()
static ElementAccess ForJSForInCacheArrayElement(ForInMode mode)
static FieldAccess ForFeedbackCellInterruptBudget()
static FieldAccess ForJSPrimitiveWrapperValue()
static FieldAccess ForFeedbackVectorClosureFeedbackCellArray()
static FieldAccess ForOrderedHashMapOrSetNumberOfBuckets()
static FieldAccess ForJSAsyncFunctionObjectPromise()
static FieldAccess ForEnumCacheIndices()
static FieldAccess ForContextSlot(size_t index)
static FieldAccess ForJSFunctionContext()
static FieldAccess ForJSObjectPropertiesOrHash()
static FieldAccess ForJSFunctionFeedbackCell()
static FieldAccess ForMapPrototype()
static FieldAccess ForJSIteratorResultDone()
static FieldAccess ForJSDateValue()
static ElementAccess ForFixedDoubleArrayElement()
static FieldAccess ForJSRegExpLastIndex()
static FieldAccess ForBigIntLeastSignificantDigit64()
static FieldAccess ForJSGeneratorObjectReceiver()
static FieldAccess ForHashTableBaseNumberOfDeletedElement()
static FieldAccess ForJSTypedArrayExternalPointer()
static FieldAccess ForNameDictionaryFlagsIndex()
static FieldAccess ForMapInstanceType()
static FieldAccess ForHeapNumberOrOddballOrHoleValue()
static FieldAccess ForJSRegExpData()
static FieldAccess ForConsStringFirst()
static FieldAccess ForWeakFixedArraySlot(int index)
static FieldAccess ForJSArrayIteratorKind()
static FieldAccess ForJSGeneratorObjectFunction()
static FieldAccess ForDictionaryNextEnumerationIndex()
static FieldAccess ForJSGeneratorObjectResumeMode()
static FieldAccess ForSloppyArgumentsElementsContext()
static FieldAccess ForConsStringSecond()
static ElementAccess ForTypedArrayElement(ExternalArrayType type, bool is_external)
static FieldAccess ForMapBitField()
static FieldAccess ForMapDescriptors()
static FieldAccess ForJSAsyncGeneratorObjectQueue()
static FieldAccess ForContextSideProperty()
static FieldAccess ForMapBitField3()
static FieldAccess ForJSAsyncGeneratorObjectIsAwaiting()
static FieldAccess ForJSTypedArrayLength()
static FieldAccess ForWeakFixedArrayLength()
static FieldAccess ForPropertyArraySlot(int index)
static FieldAccess ForPropertyArrayLengthAndHash()
static FieldAccess ForJSGeneratorObjectContinuation()
static FieldAccess ForJSRegExpFlags()
static ElementAccess ForWeakFixedArrayElement()
static FieldAccess ForJSTypedArrayBasePointer()
static FieldAccess ForJSFunctionPrototypeOrInitialMap()
static FieldAccess ForFreeSpaceSize()
static FieldAccess ForNameRawHashField()
static FieldAccess ForDescriptorArrayEnumCache()
static FieldAccess ForJSDataViewDataPointer()
static FieldAccess ForJSArrayBufferViewBitField()
static FieldAccess ForOrderedHashMapOrSetNumberOfDeletedElements()
static FieldAccess ForJSFunctionCode()
static FieldAccess ForOrderedHashMapOrSetNumberOfElements()
static FieldAccess ForDictionaryObjectHashIndex()
static FieldAccess ForJSRegExpSource()
static FieldAccess ForJSObjectElements()
static FieldAccess ForMapNativeContext()
static FieldAccess ForJSGeneratorObjectParametersAndRegisters()
Type const kFixedDoubleArrayLengthType
Type const kJSArrayLengthType
Type const kStringLengthType
Type const kJSArrayBufferViewByteOffsetType
Type const kJSTypedArrayLengthType
Type const kWeakFixedArrayLengthType
Type const kJSDateValueType
Type const kFixedArrayLengthType
static TypeCache const * Get()
Type const kPositiveSafeInteger
Type const kJSArrayBufferViewByteLengthType
Type const kJSArrayBufferByteLengthType
Type const kJSArrayIteratorKindType
static Type SignedSmall()
Handle< Context > context_
@ kIndirectPointerWriteBarrier
constexpr int kTaggedSize
DONT_OVERRIDE DISABLE_ALLOCATION_SITES HOLEY_ELEMENTS
bool IsFastElementsKind(ElementsKind kind)
DONT_OVERRIDE DISABLE_ALLOCATION_SITES DISABLE_ALLOCATION_SITES HOLEY_DOUBLE_ELEMENTS
@ kExternalObjectValueTag
@ kExternalStringResourceDataTag
@ kExternalUint8ClampedArray
@ kExternalBigUint64Array
constexpr int kIeeeDoubleExponentWordOffset
constexpr bool IsDoubleElementsKind(ElementsKind kind)
constexpr int kIeeeDoubleMantissaWordOffset
BytecodeSequenceNode * parent_
#define DCHECK_EQ(v1, v2)
static ConstFieldInfo None()
IndirectPointerTag indirect_pointer_tag
bool is_bounded_size_access
#define OFFSET_OF_DATA_START(Type)
#define STATIC_ASSERT_FIELD_OFFSETS_EQUAL(Offset1, Offset2)