| Index: src/compiler/access-builder.cc
|
| diff --git a/src/compiler/access-builder.cc b/src/compiler/access-builder.cc
|
| index d6fc2263baaa7ac950122a7cd7c69e1f2ed35ab8..d4187faaaddd512d3f6bf4eb51d16d2515e425cc 100644
|
| --- a/src/compiler/access-builder.cc
|
| +++ b/src/compiler/access-builder.cc
|
| @@ -16,36 +16,39 @@
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMap() {
|
| - FieldAccess access = {kTaggedBase, HeapObject::kMapOffset,
|
| - MaybeHandle<Name>(), Type::Any(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, HeapObject::kMapOffset, MaybeHandle<Name>(),
|
| + Type::Any(), MachineType::AnyTagged(), kMapWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForHeapNumberValue() {
|
| - FieldAccess access = {kTaggedBase, HeapNumber::kValueOffset,
|
| - MaybeHandle<Name>(), TypeCache::Get().kFloat64,
|
| - MachineType::Float64()};
|
| + FieldAccess access = {kTaggedBase,
|
| + HeapNumber::kValueOffset,
|
| + MaybeHandle<Name>(),
|
| + TypeCache::Get().kFloat64,
|
| + MachineType::Float64(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSObjectProperties() {
|
| - FieldAccess access = {kTaggedBase, JSObject::kPropertiesOffset,
|
| - MaybeHandle<Name>(), Type::Internal(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSObject::kPropertiesOffset, MaybeHandle<Name>(),
|
| + Type::Internal(), MachineType::AnyTagged(), kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSObjectElements() {
|
| - FieldAccess access = {kTaggedBase, JSObject::kElementsOffset,
|
| - MaybeHandle<Name>(), Type::Internal(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSObject::kElementsOffset, MaybeHandle<Name>(),
|
| + Type::Internal(), MachineType::AnyTagged(), kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -54,70 +57,93 @@
|
| FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map,
|
| int index) {
|
| int const offset = map->GetInObjectPropertyOffset(index);
|
| - FieldAccess access = {kTaggedBase, offset, MaybeHandle<Name>(),
|
| - Type::Tagged(), MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + offset,
|
| + MaybeHandle<Name>(),
|
| + Type::Tagged(),
|
| + MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionPrototypeOrInitialMap() {
|
| - FieldAccess access = {kTaggedBase, JSFunction::kPrototypeOrInitialMapOffset,
|
| - MaybeHandle<Name>(), Type::Any(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + JSFunction::kPrototypeOrInitialMapOffset,
|
| + MaybeHandle<Name>(),
|
| + Type::Any(),
|
| + MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionContext() {
|
| - FieldAccess access = {kTaggedBase, JSFunction::kContextOffset,
|
| - MaybeHandle<Name>(), Type::Internal(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSFunction::kContextOffset, MaybeHandle<Name>(),
|
| + Type::Internal(), MachineType::AnyTagged(), kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() {
|
| - FieldAccess access = {kTaggedBase, JSFunction::kSharedFunctionInfoOffset,
|
| - Handle<Name>(), Type::Any(), MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + JSFunction::kSharedFunctionInfoOffset,
|
| + Handle<Name>(),
|
| + Type::Any(),
|
| + MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionLiterals() {
|
| - FieldAccess access = {kTaggedBase, JSFunction::kLiteralsOffset,
|
| - Handle<Name>(), Type::Internal(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSFunction::kLiteralsOffset, Handle<Name>(),
|
| + Type::Internal(), MachineType::AnyTagged(), kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionCodeEntry() {
|
| - FieldAccess access = {kTaggedBase, JSFunction::kCodeEntryOffset,
|
| - Handle<Name>(), Type::UntaggedPointer(),
|
| - MachineType::Pointer()};
|
| + FieldAccess access = {kTaggedBase,
|
| + JSFunction::kCodeEntryOffset,
|
| + Handle<Name>(),
|
| + Type::UntaggedPointer(),
|
| + MachineType::Pointer(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSFunctionNextFunctionLink() {
|
| - FieldAccess access = {kTaggedBase, JSFunction::kNextFunctionLinkOffset,
|
| - Handle<Name>(), Type::Any(), MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + JSFunction::kNextFunctionLinkOffset,
|
| + Handle<Name>(),
|
| + Type::Any(),
|
| + MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) {
|
| TypeCache const& type_cache = TypeCache::Get();
|
| - FieldAccess access = {kTaggedBase, JSArray::kLengthOffset, Handle<Name>(),
|
| + FieldAccess access = {kTaggedBase,
|
| + JSArray::kLengthOffset,
|
| + Handle<Name>(),
|
| type_cache.kJSArrayLengthType,
|
| - MachineType::AnyTagged()};
|
| + MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| if (IsFastDoubleElementsKind(elements_kind)) {
|
| access.type = type_cache.kFixedDoubleArrayLengthType;
|
| + access.write_barrier_kind = kNoWriteBarrier;
|
| } else if (IsFastElementsKind(elements_kind)) {
|
| access.type = type_cache.kFixedArrayLengthType;
|
| + access.write_barrier_kind = kNoWriteBarrier;
|
| }
|
| return access;
|
| }
|
| @@ -125,190 +151,228 @@
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() {
|
| - FieldAccess access = {kTaggedBase, JSArrayBuffer::kBackingStoreOffset,
|
| - MaybeHandle<Name>(), Type::UntaggedPointer(),
|
| - MachineType::Pointer()};
|
| + FieldAccess access = {kTaggedBase,
|
| + JSArrayBuffer::kBackingStoreOffset,
|
| + MaybeHandle<Name>(),
|
| + Type::UntaggedPointer(),
|
| + MachineType::Pointer(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSArrayBufferBitField() {
|
| - FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset,
|
| + FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset,
|
| MaybeHandle<Name>(), TypeCache::Get().kInt8,
|
| - MachineType::Int8()};
|
| + MachineType::Int8(), kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() {
|
| - FieldAccess access = {kTaggedBase, JSArrayBufferView::kBufferOffset,
|
| - MaybeHandle<Name>(), Type::TaggedPointer(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + JSArrayBufferView::kBufferOffset,
|
| + MaybeHandle<Name>(),
|
| + Type::TaggedPointer(),
|
| + MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) {
|
| - FieldAccess access = {
|
| - kTaggedBase, JSDate::kValueOffset + index * kPointerSize,
|
| - MaybeHandle<Name>(), Type::Number(), MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + JSDate::kValueOffset + index * kPointerSize,
|
| + MaybeHandle<Name>(),
|
| + Type::Number(),
|
| + MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSIteratorResultDone() {
|
| - FieldAccess access = {kTaggedBase, JSIteratorResult::kDoneOffset,
|
| - MaybeHandle<Name>(), Type::Any(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSIteratorResult::kDoneOffset, MaybeHandle<Name>(),
|
| + Type::Any(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSIteratorResultValue() {
|
| - FieldAccess access = {kTaggedBase, JSIteratorResult::kValueOffset,
|
| - MaybeHandle<Name>(), Type::Any(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSIteratorResult::kValueOffset, MaybeHandle<Name>(),
|
| + Type::Any(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSRegExpFlags() {
|
| - FieldAccess access = {kTaggedBase, JSRegExp::kFlagsOffset,
|
| - MaybeHandle<Name>(), Type::Tagged(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSRegExp::kFlagsOffset, MaybeHandle<Name>(),
|
| + Type::Tagged(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSRegExpSource() {
|
| - FieldAccess access = {kTaggedBase, JSRegExp::kSourceOffset,
|
| - MaybeHandle<Name>(), Type::Tagged(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSRegExp::kSourceOffset, MaybeHandle<Name>(),
|
| + Type::Tagged(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForFixedArrayLength() {
|
| - FieldAccess access = {
|
| - kTaggedBase, FixedArray::kLengthOffset, MaybeHandle<Name>(),
|
| - TypeCache::Get().kFixedArrayLengthType, MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + FixedArray::kLengthOffset,
|
| + MaybeHandle<Name>(),
|
| + TypeCache::Get().kFixedArrayLengthType,
|
| + MachineType::AnyTagged(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() {
|
| - FieldAccess access = {kTaggedBase, DescriptorArray::kEnumCacheOffset,
|
| - Handle<Name>(), Type::TaggedPointer(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + DescriptorArray::kEnumCacheOffset,
|
| + Handle<Name>(),
|
| + Type::TaggedPointer(),
|
| + MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForDescriptorArrayEnumCacheBridgeCache() {
|
| - FieldAccess access = {
|
| - kTaggedBase, DescriptorArray::kEnumCacheBridgeCacheOffset, Handle<Name>(),
|
| - Type::TaggedPointer(), MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + DescriptorArray::kEnumCacheBridgeCacheOffset,
|
| + Handle<Name>(),
|
| + Type::TaggedPointer(),
|
| + MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMapBitField() {
|
| - FieldAccess access = {kTaggedBase, Map::kBitFieldOffset, Handle<Name>(),
|
| - TypeCache::Get().kUint8, MachineType::Uint8()};
|
| + FieldAccess access = {kTaggedBase, Map::kBitFieldOffset,
|
| + Handle<Name>(), TypeCache::Get().kUint8,
|
| + MachineType::Uint8(), kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMapBitField3() {
|
| - FieldAccess access = {kTaggedBase, Map::kBitField3Offset, Handle<Name>(),
|
| - TypeCache::Get().kInt32, MachineType::Int32()};
|
| + FieldAccess access = {kTaggedBase, Map::kBitField3Offset,
|
| + Handle<Name>(), TypeCache::Get().kInt32,
|
| + MachineType::Int32(), kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMapDescriptors() {
|
| - FieldAccess access = {kTaggedBase, Map::kDescriptorsOffset, Handle<Name>(),
|
| - Type::TaggedPointer(), MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, Map::kDescriptorsOffset, Handle<Name>(),
|
| + Type::TaggedPointer(), MachineType::AnyTagged(), kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMapInstanceType() {
|
| - FieldAccess access = {kTaggedBase, Map::kInstanceTypeOffset, Handle<Name>(),
|
| - TypeCache::Get().kUint8, MachineType::Uint8()};
|
| + FieldAccess access = {kTaggedBase, Map::kInstanceTypeOffset,
|
| + Handle<Name>(), TypeCache::Get().kUint8,
|
| + MachineType::Uint8(), kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForMapPrototype() {
|
| - FieldAccess access = {kTaggedBase, Map::kPrototypeOffset, Handle<Name>(),
|
| - Type::TaggedPointer(), MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, Map::kPrototypeOffset, Handle<Name>(),
|
| + Type::TaggedPointer(), MachineType::AnyTagged(), kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForStringLength() {
|
| - FieldAccess access = {kTaggedBase, String::kLengthOffset, Handle<Name>(),
|
| + FieldAccess access = {kTaggedBase,
|
| + String::kLengthOffset,
|
| + Handle<Name>(),
|
| TypeCache::Get().kStringLengthType,
|
| - MachineType::AnyTagged()};
|
| + MachineType::AnyTagged(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() {
|
| - FieldAccess access = {kTaggedBase, JSGlobalObject::kGlobalProxyOffset,
|
| - Handle<Name>(), Type::Receiver(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + JSGlobalObject::kGlobalProxyOffset,
|
| + Handle<Name>(),
|
| + Type::Receiver(),
|
| + MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() {
|
| - FieldAccess access = {kTaggedBase, JSGlobalObject::kNativeContextOffset,
|
| - Handle<Name>(), Type::Internal(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + JSGlobalObject::kNativeContextOffset,
|
| + Handle<Name>(),
|
| + Type::Internal(),
|
| + MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForValue() {
|
| - FieldAccess access = {kTaggedBase, JSValue::kValueOffset, Handle<Name>(),
|
| - Type::Any(), MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSValue::kValueOffset, Handle<Name>(),
|
| + Type::Any(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForArgumentsLength() {
|
| - FieldAccess access = {kTaggedBase, JSArgumentsObject::kLengthOffset,
|
| - Handle<Name>(), Type::Any(), MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, JSArgumentsObject::kLengthOffset, Handle<Name>(),
|
| + Type::Any(), MachineType::AnyTagged(), kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForArgumentsCallee() {
|
| - FieldAccess access = {kTaggedBase, JSSloppyArgumentsObject::kCalleeOffset,
|
| - Handle<Name>(), Type::Any(), MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + JSSloppyArgumentsObject::kCalleeOffset,
|
| + Handle<Name>(),
|
| + Type::Any(),
|
| + MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -316,8 +380,12 @@
|
| // static
|
| FieldAccess AccessBuilder::ForFixedArraySlot(size_t index) {
|
| int offset = FixedArray::OffsetOfElementAt(static_cast<int>(index));
|
| - FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(),
|
| - MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + offset,
|
| + Handle<Name>(),
|
| + Type::Any(),
|
| + MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -327,8 +395,12 @@
|
| 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>(),
|
| + Type::Any(),
|
| + MachineType::AnyTagged(),
|
| + kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -341,16 +413,21 @@
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForPropertyCellValue(Type* type) {
|
| - FieldAccess access = {kTaggedBase, PropertyCell::kValueOffset, Handle<Name>(),
|
| - type, MachineType::AnyTagged()};
|
| + FieldAccess access = {
|
| + kTaggedBase, PropertyCell::kValueOffset, Handle<Name>(),
|
| + type, MachineType::AnyTagged(), kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|
| // static
|
| FieldAccess AccessBuilder::ForSharedFunctionInfoTypeFeedbackVector() {
|
| - FieldAccess access = {kTaggedBase, SharedFunctionInfo::kFeedbackVectorOffset,
|
| - Handle<Name>(), Type::Any(), MachineType::AnyTagged()};
|
| + FieldAccess access = {kTaggedBase,
|
| + SharedFunctionInfo::kFeedbackVectorOffset,
|
| + Handle<Name>(),
|
| + Type::Any(),
|
| + MachineType::AnyTagged(),
|
| + kPointerWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -358,7 +435,7 @@
|
| // static
|
| ElementAccess AccessBuilder::ForFixedArrayElement() {
|
| ElementAccess access = {kTaggedBase, FixedArray::kHeaderSize, Type::Tagged(),
|
| - MachineType::AnyTagged()};
|
| + MachineType::AnyTagged(), kFullWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -366,7 +443,8 @@
|
| // static
|
| ElementAccess AccessBuilder::ForFixedDoubleArrayElement() {
|
| ElementAccess access = {kTaggedBase, FixedDoubleArray::kHeaderSize,
|
| - TypeCache::Get().kFloat64, MachineType::Float64()};
|
| + TypeCache::Get().kFloat64, MachineType::Float64(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
| @@ -379,56 +457,49 @@
|
| switch (type) {
|
| case kExternalInt8Array: {
|
| ElementAccess access = {taggedness, header_size, Type::Signed32(),
|
| - MachineType::Int8()};
|
| + MachineType::Int8(), kNoWriteBarrier};
|
| return access;
|
| }
|
| case kExternalUint8Array:
|
| case kExternalUint8ClampedArray: {
|
| ElementAccess access = {taggedness, header_size, Type::Unsigned32(),
|
| - MachineType::Uint8()};
|
| + MachineType::Uint8(), kNoWriteBarrier};
|
| return access;
|
| }
|
| case kExternalInt16Array: {
|
| ElementAccess access = {taggedness, header_size, Type::Signed32(),
|
| - MachineType::Int16()};
|
| + MachineType::Int16(), kNoWriteBarrier};
|
| return access;
|
| }
|
| case kExternalUint16Array: {
|
| ElementAccess access = {taggedness, header_size, Type::Unsigned32(),
|
| - MachineType::Uint16()};
|
| + MachineType::Uint16(), kNoWriteBarrier};
|
| return access;
|
| }
|
| case kExternalInt32Array: {
|
| ElementAccess access = {taggedness, header_size, Type::Signed32(),
|
| - MachineType::Int32()};
|
| + MachineType::Int32(), kNoWriteBarrier};
|
| return access;
|
| }
|
| case kExternalUint32Array: {
|
| ElementAccess access = {taggedness, header_size, Type::Unsigned32(),
|
| - MachineType::Uint32()};
|
| + MachineType::Uint32(), kNoWriteBarrier};
|
| return access;
|
| }
|
| case kExternalFloat32Array: {
|
| ElementAccess access = {taggedness, header_size, Type::Number(),
|
| - MachineType::Float32()};
|
| + MachineType::Float32(), kNoWriteBarrier};
|
| return access;
|
| }
|
| case kExternalFloat64Array: {
|
| ElementAccess access = {taggedness, header_size, Type::Number(),
|
| - MachineType::Float64()};
|
| + MachineType::Float64(), kNoWriteBarrier};
|
| return access;
|
| }
|
| }
|
| UNREACHABLE();
|
| - ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None()};
|
| - return access;
|
| -}
|
| -
|
| -
|
| -// static
|
| -FieldAccess AccessBuilder::ForStatsCounter() {
|
| - FieldAccess access = {kUntaggedBase, 0, MaybeHandle<Name>(),
|
| - TypeCache::Get().kInt32, MachineType::Int32()};
|
| + ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None(),
|
| + kNoWriteBarrier};
|
| return access;
|
| }
|
|
|
|
|