| Index: src/compiler/access-builder.cc
|
| diff --git a/src/compiler/access-builder.cc b/src/compiler/access-builder.cc
|
| index 57eb86a711bf1f5524a2c9b61e136b40fa745ae8..a299cbd1ba4928070455431884f0f3d140298db5 100644
|
| --- a/src/compiler/access-builder.cc
|
| +++ b/src/compiler/access-builder.cc
|
| @@ -16,55 +16,58 @@ namespace compiler {
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForExternalDoubleValue() {
|
| - FieldAccess access = {kUntaggedBase, 0,
|
| - MaybeHandle<Name>(), Type::Number(),
|
| - MachineType::Float64(), kNoWriteBarrier};
|
| + FieldAccess access = {kUntaggedBase, 0,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::Number(), MachineType::Float64(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForExternalUint8Value() {
|
| - FieldAccess access = {kUntaggedBase, 0,
|
| - MaybeHandle<Name>(), TypeCache::Get().kUint8,
|
| - MachineType::Uint8(), kNoWriteBarrier};
|
| + FieldAccess access = {kUntaggedBase, 0,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + TypeCache::Get().kUint8, MachineType::Uint8(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMap() {
|
| - FieldAccess access = {
|
| - kTaggedBase, HeapObject::kMapOffset, MaybeHandle<Name>(),
|
| - Type::OtherInternal(), MachineType::TaggedPointer(), kMapWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, HeapObject::kMapOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::TaggedPointer(),
|
| + kMapWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForHeapNumberValue() {
|
| - FieldAccess access = {kTaggedBase,
|
| - HeapNumber::kValueOffset,
|
| - MaybeHandle<Name>(),
|
| - TypeCache::Get().kFloat64,
|
| - MachineType::Float64(),
|
| - kNoWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, HeapNumber::kValueOffset, MaybeHandle<Name>(),
|
| + MaybeHandle<Map>(), TypeCache::Get().kFloat64, MachineType::Float64(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSObjectProperties() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSObject::kPropertiesOffset, MaybeHandle<Name>(),
|
| - Type::Internal(), MachineType::TaggedPointer(), kPointerWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSObject::kPropertiesOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::Internal(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSObjectElements() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSObject::kElementsOffset, MaybeHandle<Name>(),
|
| - Type::Internal(), MachineType::TaggedPointer(), kPointerWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSObject::kElementsOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::Internal(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -73,11 +76,9 @@ FieldAccess AccessBuilder::ForJSObjectElements() {
|
| FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map,
|
| int index) {
|
| int const offset = map->GetInObjectPropertyOffset(index);
|
| - FieldAccess access = {kTaggedBase,
|
| - offset,
|
| - MaybeHandle<Name>(),
|
| - Type::NonInternal(),
|
| - MachineType::AnyTagged(),
|
| + FieldAccess access = {kTaggedBase, offset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::NonInternal(), MachineType::AnyTagged(),
|
| kFullWriteBarrier};
|
| return access;
|
| }
|
| @@ -85,114 +86,108 @@ FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map,
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionPrototypeOrInitialMap() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSFunction::kPrototypeOrInitialMapOffset,
|
| - MaybeHandle<Name>(),
|
| - Type::Any(),
|
| - MachineType::AnyTagged(),
|
| - kFullWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSFunction::kPrototypeOrInitialMapOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::Any(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionContext() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSFunction::kContextOffset, MaybeHandle<Name>(),
|
| - Type::Internal(), MachineType::AnyTagged(), kPointerWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSFunction::kContextOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::Internal(), MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSFunction::kSharedFunctionInfoOffset,
|
| - Handle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::TaggedPointer(),
|
| - kPointerWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSFunction::kSharedFunctionInfoOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionLiterals() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSFunction::kLiteralsOffset, Handle<Name>(),
|
| - Type::Internal(), MachineType::TaggedPointer(), kPointerWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSFunction::kLiteralsOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Internal(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionCodeEntry() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSFunction::kCodeEntryOffset, Handle<Name>(),
|
| - Type::OtherInternal(), MachineType::Pointer(), kNoWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSFunction::kCodeEntryOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::Pointer(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionNextFunctionLink() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSFunction::kNextFunctionLinkOffset,
|
| - Handle<Name>(),
|
| - Type::Any(),
|
| - MachineType::AnyTagged(),
|
| - kPointerWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSFunction::kNextFunctionLinkOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Any(), MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSGeneratorObjectContext() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSGeneratorObject::kContextOffset,
|
| - Handle<Name>(),
|
| - Type::Internal(),
|
| - MachineType::TaggedPointer(),
|
| + FieldAccess access = {kTaggedBase, JSGeneratorObject::kContextOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Internal(), MachineType::TaggedPointer(),
|
| kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSGeneratorObjectContinuation() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSGeneratorObject::kContinuationOffset,
|
| - Handle<Name>(),
|
| - Type::SignedSmall(),
|
| - MachineType::TaggedSigned(),
|
| - kNoWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSGeneratorObject::kContinuationOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::SignedSmall(), MachineType::TaggedSigned(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSGeneratorObjectInputOrDebugPos() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSGeneratorObject::kInputOrDebugPosOffset,
|
| - Handle<Name>(),
|
| - Type::NonInternal(),
|
| - MachineType::AnyTagged(),
|
| - kFullWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSGeneratorObject::kInputOrDebugPosOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::NonInternal(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSGeneratorObjectRegisterFile() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSGeneratorObject::kRegisterFileOffset,
|
| - Handle<Name>(),
|
| - Type::Internal(),
|
| - MachineType::AnyTagged(),
|
| - kPointerWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSGeneratorObject::kRegisterFileOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Internal(), MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSGeneratorObjectResumeMode() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSGeneratorObject::kResumeModeOffset,
|
| - Handle<Name>(),
|
| - Type::SignedSmall(),
|
| - MachineType::TaggedSigned(),
|
| - kNoWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSGeneratorObject::kResumeModeOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::SignedSmall(), MachineType::TaggedSigned(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -202,6 +197,7 @@ FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) {
|
| FieldAccess access = {kTaggedBase,
|
| JSArray::kLengthOffset,
|
| Handle<Name>(),
|
| + MaybeHandle<Map>(),
|
| type_cache.kJSArrayLengthType,
|
| MachineType::TaggedSigned(),
|
| kFullWriteBarrier};
|
| @@ -218,30 +214,28 @@ FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) {
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSArrayBuffer::kBackingStoreOffset,
|
| - MaybeHandle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::Pointer(),
|
| - kNoWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSArrayBuffer::kBackingStoreOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::Pointer(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSArrayBufferBitField() {
|
| - FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset,
|
| - MaybeHandle<Name>(), TypeCache::Get().kUint8,
|
| - MachineType::Uint32(), kNoWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSArrayBuffer::kBitFieldOffset, MaybeHandle<Name>(),
|
| + MaybeHandle<Map>(), TypeCache::Get().kUint8, MachineType::Uint32(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSArrayBufferView::kBufferOffset,
|
| - MaybeHandle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::TaggedPointer(),
|
| + FieldAccess access = {kTaggedBase, JSArrayBufferView::kBufferOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::TaggedPointer(),
|
| kPointerWriteBarrier};
|
| return access;
|
| }
|
| @@ -251,6 +245,7 @@ FieldAccess AccessBuilder::ForJSArrayBufferViewByteLength() {
|
| FieldAccess access = {kTaggedBase,
|
| JSArrayBufferView::kByteLengthOffset,
|
| MaybeHandle<Name>(),
|
| + MaybeHandle<Map>(),
|
| TypeCache::Get().kPositiveInteger,
|
| MachineType::AnyTagged(),
|
| kFullWriteBarrier};
|
| @@ -262,6 +257,7 @@ FieldAccess AccessBuilder::ForJSArrayBufferViewByteOffset() {
|
| FieldAccess access = {kTaggedBase,
|
| JSArrayBufferView::kByteOffsetOffset,
|
| MaybeHandle<Name>(),
|
| + MaybeHandle<Map>(),
|
| TypeCache::Get().kPositiveInteger,
|
| MachineType::AnyTagged(),
|
| kFullWriteBarrier};
|
| @@ -273,6 +269,7 @@ FieldAccess AccessBuilder::ForJSTypedArrayLength() {
|
| FieldAccess access = {kTaggedBase,
|
| JSTypedArray::kLengthOffset,
|
| MaybeHandle<Name>(),
|
| + MaybeHandle<Map>(),
|
| TypeCache::Get().kJSTypedArrayLengthType,
|
| MachineType::TaggedSigned(),
|
| kNoWriteBarrier};
|
| @@ -284,6 +281,7 @@ FieldAccess AccessBuilder::ForJSDateValue() {
|
| FieldAccess access = {kTaggedBase,
|
| JSDate::kValueOffset,
|
| MaybeHandle<Name>(),
|
| + MaybeHandle<Map>(),
|
| TypeCache::Get().kJSDateValueType,
|
| MachineType::AnyTagged(),
|
| kFullWriteBarrier};
|
| @@ -292,48 +290,51 @@ FieldAccess AccessBuilder::ForJSDateValue() {
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSDate::kValueOffset + index * kPointerSize,
|
| - MaybeHandle<Name>(),
|
| - Type::Number(),
|
| - MachineType::AnyTagged(),
|
| - kFullWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSDate::kValueOffset + index * kPointerSize,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::Number(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSIteratorResultDone() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSIteratorResult::kDoneOffset, MaybeHandle<Name>(),
|
| - Type::NonInternal(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSIteratorResult::kDoneOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::NonInternal(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSIteratorResultValue() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSIteratorResult::kValueOffset, MaybeHandle<Name>(),
|
| - Type::NonInternal(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSIteratorResult::kValueOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::NonInternal(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSRegExpFlags() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSRegExp::kFlagsOffset, MaybeHandle<Name>(),
|
| - Type::NonInternal(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSRegExp::kFlagsOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::NonInternal(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSRegExpSource() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSRegExp::kSourceOffset, MaybeHandle<Name>(),
|
| - Type::NonInternal(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSRegExp::kSourceOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::NonInternal(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -343,6 +344,7 @@ FieldAccess AccessBuilder::ForFixedArrayLength() {
|
| FieldAccess access = {kTaggedBase,
|
| FixedArray::kLengthOffset,
|
| MaybeHandle<Name>(),
|
| + MaybeHandle<Map>(),
|
| TypeCache::Get().kFixedArrayLengthType,
|
| MachineType::TaggedSigned(),
|
| kNoWriteBarrier};
|
| @@ -351,12 +353,11 @@ FieldAccess AccessBuilder::ForFixedArrayLength() {
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForFixedTypedArrayBaseBasePointer() {
|
| - FieldAccess access = {kTaggedBase,
|
| - FixedTypedArrayBase::kBasePointerOffset,
|
| - MaybeHandle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::AnyTagged(),
|
| - kPointerWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, FixedTypedArrayBase::kBasePointerOffset,
|
| + MaybeHandle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -365,6 +366,7 @@ FieldAccess AccessBuilder::ForFixedTypedArrayBaseExternalPointer() {
|
| FieldAccess access = {kTaggedBase,
|
| FixedTypedArrayBase::kExternalPointerOffset,
|
| MaybeHandle<Name>(),
|
| + MaybeHandle<Map>(),
|
| Type::ExternalPointer(),
|
| MachineType::Pointer(),
|
| kNoWriteBarrier};
|
| @@ -373,53 +375,51 @@ FieldAccess AccessBuilder::ForFixedTypedArrayBaseExternalPointer() {
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() {
|
| - FieldAccess access = {kTaggedBase,
|
| - DescriptorArray::kEnumCacheOffset,
|
| - Handle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::TaggedPointer(),
|
| - kPointerWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, DescriptorArray::kEnumCacheOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForDescriptorArrayEnumCacheBridgeCache() {
|
| - FieldAccess access = {kTaggedBase,
|
| - DescriptorArray::kEnumCacheBridgeCacheOffset,
|
| - Handle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::TaggedPointer(),
|
| - kPointerWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, DescriptorArray::kEnumCacheBridgeCacheOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMapBitField() {
|
| - FieldAccess access = {kTaggedBase, Map::kBitFieldOffset,
|
| - Handle<Name>(), TypeCache::Get().kUint8,
|
| - MachineType::Uint8(), kNoWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, Map::kBitFieldOffset, Handle<Name>(),
|
| + MaybeHandle<Map>(), TypeCache::Get().kUint8, MachineType::Uint8(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMapBitField3() {
|
| - FieldAccess access = {kTaggedBase, Map::kBitField3Offset,
|
| - Handle<Name>(), TypeCache::Get().kInt32,
|
| - MachineType::Int32(), kNoWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, Map::kBitField3Offset, Handle<Name>(),
|
| + MaybeHandle<Map>(), TypeCache::Get().kInt32, MachineType::Int32(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMapDescriptors() {
|
| - FieldAccess access = {kTaggedBase,
|
| - Map::kDescriptorsOffset,
|
| - Handle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::TaggedPointer(),
|
| + FieldAccess access = {kTaggedBase, Map::kDescriptorsOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::TaggedPointer(),
|
| kPointerWriteBarrier};
|
| return access;
|
| }
|
| @@ -427,48 +427,47 @@ FieldAccess AccessBuilder::ForMapDescriptors() {
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMapInstanceType() {
|
| - FieldAccess access = {kTaggedBase, Map::kInstanceTypeOffset,
|
| - Handle<Name>(), TypeCache::Get().kUint8,
|
| - MachineType::Uint8(), kNoWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, Map::kInstanceTypeOffset, Handle<Name>(),
|
| + MaybeHandle<Map>(), TypeCache::Get().kUint8, MachineType::Uint8(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMapPrototype() {
|
| - FieldAccess access = {
|
| - kTaggedBase, Map::kPrototypeOffset, Handle<Name>(),
|
| - Type::Any(), MachineType::TaggedPointer(), kPointerWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, Map::kPrototypeOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Any(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForModuleRegularExports() {
|
| - FieldAccess access = {kTaggedBase,
|
| - Module::kRegularExportsOffset,
|
| - Handle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::TaggedPointer(),
|
| + FieldAccess access = {kTaggedBase, Module::kRegularExportsOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::TaggedPointer(),
|
| kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForModuleRegularImports() {
|
| - FieldAccess access = {kTaggedBase,
|
| - Module::kRegularImportsOffset,
|
| - Handle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::TaggedPointer(),
|
| + FieldAccess access = {kTaggedBase, Module::kRegularImportsOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::TaggedPointer(),
|
| kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForNameHashField() {
|
| - FieldAccess access = {kTaggedBase, Name::kHashFieldOffset,
|
| - Handle<Name>(), Type::Internal(),
|
| - MachineType::Uint32(), kNoWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, Name::kHashFieldOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Internal(), MachineType::Uint32(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -477,6 +476,7 @@ FieldAccess AccessBuilder::ForStringLength() {
|
| FieldAccess access = {kTaggedBase,
|
| String::kLengthOffset,
|
| Handle<Name>(),
|
| + MaybeHandle<Map>(),
|
| TypeCache::Get().kStringLengthType,
|
| MachineType::TaggedSigned(),
|
| kNoWriteBarrier};
|
| @@ -485,33 +485,37 @@ FieldAccess AccessBuilder::ForStringLength() {
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForConsStringFirst() {
|
| - FieldAccess access = {
|
| - kTaggedBase, ConsString::kFirstOffset, Handle<Name>(),
|
| - Type::String(), MachineType::TaggedPointer(), kPointerWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, ConsString::kFirstOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::String(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForConsStringSecond() {
|
| - FieldAccess access = {
|
| - kTaggedBase, ConsString::kSecondOffset, Handle<Name>(),
|
| - Type::String(), MachineType::TaggedPointer(), kPointerWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, ConsString::kSecondOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::String(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForSlicedStringOffset() {
|
| - FieldAccess access = {
|
| - kTaggedBase, SlicedString::kOffsetOffset, Handle<Name>(),
|
| - Type::SignedSmall(), MachineType::TaggedSigned(), kNoWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, SlicedString::kOffsetOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::SignedSmall(), MachineType::TaggedSigned(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForSlicedStringParent() {
|
| - FieldAccess access = {
|
| - kTaggedBase, SlicedString::kParentOffset, Handle<Name>(),
|
| - Type::String(), MachineType::TaggedPointer(), kPointerWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, SlicedString::kParentOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::String(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -520,6 +524,7 @@ FieldAccess AccessBuilder::ForExternalStringResourceData() {
|
| FieldAccess access = {kTaggedBase,
|
| ExternalString::kResourceDataOffset,
|
| Handle<Name>(),
|
| + MaybeHandle<Map>(),
|
| Type::ExternalPointer(),
|
| MachineType::Pointer(),
|
| kNoWriteBarrier};
|
| @@ -558,23 +563,20 @@ ElementAccess AccessBuilder::ForSeqTwoByteStringCharacter() {
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSGlobalObject::kGlobalProxyOffset,
|
| - Handle<Name>(),
|
| - Type::Receiver(),
|
| - MachineType::TaggedPointer(),
|
| + FieldAccess access = {kTaggedBase, JSGlobalObject::kGlobalProxyOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Receiver(), MachineType::TaggedPointer(),
|
| kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSGlobalObject::kNativeContextOffset,
|
| - Handle<Name>(),
|
| - Type::Internal(),
|
| - MachineType::TaggedPointer(),
|
| - kPointerWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSGlobalObject::kNativeContextOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Internal(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -583,6 +585,7 @@ FieldAccess AccessBuilder::ForJSArrayIteratorObject() {
|
| FieldAccess access = {kTaggedBase,
|
| JSArrayIterator::kIteratedObjectOffset,
|
| Handle<Name>(),
|
| + MaybeHandle<Map>(),
|
| Type::ReceiverOrUndefined(),
|
| MachineType::TaggedPointer(),
|
| kPointerWriteBarrier};
|
| @@ -597,6 +600,7 @@ FieldAccess AccessBuilder::ForJSArrayIteratorIndex(InstanceType instance_type,
|
| FieldAccess access = {kTaggedBase,
|
| JSArrayIterator::kNextIndexOffset,
|
| Handle<Name>(),
|
| + MaybeHandle<Map>(),
|
| TypeCache::Get().kPositiveSafeInteger,
|
| MachineType::AnyTagged(),
|
| kFullWriteBarrier};
|
| @@ -622,20 +626,20 @@ FieldAccess AccessBuilder::ForJSArrayIteratorIndex(InstanceType instance_type,
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSArrayIteratorObjectMap() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSArrayIterator::kIteratedObjectMapOffset,
|
| - Handle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::TaggedPointer(),
|
| - kPointerWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSArrayIterator::kIteratedObjectMapOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSStringIteratorString() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSStringIterator::kStringOffset, Handle<Name>(),
|
| - Type::String(), MachineType::TaggedPointer(), kPointerWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSStringIterator::kStringOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::String(), MachineType::TaggedPointer(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -644,6 +648,7 @@ FieldAccess AccessBuilder::ForJSStringIteratorIndex() {
|
| FieldAccess access = {kTaggedBase,
|
| JSStringIterator::kNextIndexOffset,
|
| Handle<Name>(),
|
| + MaybeHandle<Map>(),
|
| TypeCache::Get().kStringLengthType,
|
| MachineType::TaggedSigned(),
|
| kNoWriteBarrier};
|
| @@ -652,30 +657,31 @@ FieldAccess AccessBuilder::ForJSStringIteratorIndex() {
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForValue() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSValue::kValueOffset, Handle<Name>(),
|
| - Type::NonInternal(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSValue::kValueOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::NonInternal(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForArgumentsLength() {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSArgumentsObject::kLengthOffset, Handle<Name>(),
|
| - Type::NonInternal(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, JSArgumentsObject::kLengthOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::NonInternal(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForArgumentsCallee() {
|
| - FieldAccess access = {kTaggedBase,
|
| - JSSloppyArgumentsObject::kCalleeOffset,
|
| - Handle<Name>(),
|
| - Type::NonInternal(),
|
| - MachineType::AnyTagged(),
|
| - kPointerWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSSloppyArgumentsObject::kCalleeOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::NonInternal(), MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -683,11 +689,9 @@ FieldAccess AccessBuilder::ForArgumentsCallee() {
|
| // static
|
| FieldAccess AccessBuilder::ForFixedArraySlot(size_t index) {
|
| int offset = FixedArray::OffsetOfElementAt(static_cast<int>(index));
|
| - FieldAccess access = {kTaggedBase,
|
| - offset,
|
| - Handle<Name>(),
|
| - Type::NonInternal(),
|
| - MachineType::AnyTagged(),
|
| + FieldAccess access = {kTaggedBase, offset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::NonInternal(), MachineType::AnyTagged(),
|
| kFullWriteBarrier};
|
| return access;
|
| }
|
| @@ -695,9 +699,10 @@ FieldAccess AccessBuilder::ForFixedArraySlot(size_t index) {
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForCellValue() {
|
| - FieldAccess access = {
|
| - kTaggedBase, Cell::kValueOffset, Handle<Name>(),
|
| - Type::Any(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, Cell::kValueOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Any(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -706,31 +711,29 @@ FieldAccess AccessBuilder::ForContextSlot(size_t index) {
|
| int offset = Context::kHeaderSize + static_cast<int>(index) * kPointerSize;
|
| DCHECK_EQ(offset,
|
| Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag);
|
| - FieldAccess access = {kTaggedBase,
|
| - offset,
|
| - Handle<Name>(),
|
| - Type::Any(),
|
| - MachineType::AnyTagged(),
|
| + FieldAccess access = {kTaggedBase, offset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Any(), MachineType::AnyTagged(),
|
| kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForContextExtensionScopeInfo() {
|
| - FieldAccess access = {kTaggedBase,
|
| - ContextExtension::kScopeInfoOffset,
|
| - Handle<Name>(),
|
| - Type::OtherInternal(),
|
| - MachineType::AnyTagged(),
|
| - kFullWriteBarrier};
|
| + FieldAccess access = {
|
| + kTaggedBase, ContextExtension::kScopeInfoOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::OtherInternal(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForContextExtensionExtension() {
|
| - FieldAccess access = {
|
| - kTaggedBase, ContextExtension::kExtensionOffset, Handle<Name>(),
|
| - Type::Any(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| + FieldAccess access = {kTaggedBase, ContextExtension::kExtensionOffset,
|
| + Handle<Name>(), MaybeHandle<Map>(),
|
| + Type::Any(), MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|