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; |
} |