Index: src/compiler/access-builder.cc |
diff --git a/src/compiler/access-builder.cc b/src/compiler/access-builder.cc |
index 6ad041df3bb69d24a092707759932f3a58fd7abf..e5b91ec62068afd5cbf26c3af53bf558ec8c605a 100644 |
--- a/src/compiler/access-builder.cc |
+++ b/src/compiler/access-builder.cc |
@@ -84,6 +84,15 @@ FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map, |
return access; |
} |
+// static |
+FieldAccess AccessBuilder::ForJSObjectOffset( |
+ int offset, WriteBarrierKind write_barrier_kind) { |
+ FieldAccess access = {kTaggedBase, offset, |
+ MaybeHandle<Name>(), MaybeHandle<Map>(), |
+ Type::NonInternal(), MachineType::AnyTagged(), |
+ write_barrier_kind}; |
+ return access; |
+} |
// static |
FieldAccess AccessBuilder::ForJSFunctionPrototypeOrInitialMap() { |
@@ -688,12 +697,13 @@ FieldAccess AccessBuilder::ForArgumentsCallee() { |
// static |
-FieldAccess AccessBuilder::ForFixedArraySlot(size_t index) { |
+FieldAccess AccessBuilder::ForFixedArraySlot( |
+ size_t index, WriteBarrierKind write_barrier_kind) { |
int offset = FixedArray::OffsetOfElementAt(static_cast<int>(index)); |
FieldAccess access = {kTaggedBase, offset, |
Handle<Name>(), MaybeHandle<Map>(), |
Type::NonInternal(), MachineType::AnyTagged(), |
- kFullWriteBarrier}; |
+ write_barrier_kind}; |
return access; |
} |
@@ -843,6 +853,68 @@ ElementAccess AccessBuilder::ForTypedArrayElement(ExternalArrayType type, |
return access; |
} |
+// static |
+FieldAccess AccessBuilder::ForHashTableBaseNumberOfElements() { |
+ FieldAccess access = { |
+ kTaggedBase, |
+ FixedArray::OffsetOfElementAt(HashTableBase::kNumberOfElementsIndex), |
+ MaybeHandle<Name>(), |
+ MaybeHandle<Map>(), |
+ Type::SignedSmall(), |
+ MachineType::TaggedSigned(), |
+ kNoWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+FieldAccess AccessBuilder::ForHashTableBaseNumberOfDeletedElement() { |
+ FieldAccess access = { |
+ kTaggedBase, FixedArray::OffsetOfElementAt( |
+ HashTableBase::kNumberOfDeletedElementsIndex), |
+ MaybeHandle<Name>(), MaybeHandle<Map>(), Type::SignedSmall(), |
+ MachineType::TaggedSigned(), kNoWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+FieldAccess AccessBuilder::ForHashTableBaseCapacity() { |
+ FieldAccess access = { |
+ kTaggedBase, |
+ FixedArray::OffsetOfElementAt(HashTableBase::kCapacityIndex), |
+ MaybeHandle<Name>(), |
+ MaybeHandle<Map>(), |
+ Type::SignedSmall(), |
+ MachineType::TaggedSigned(), |
+ kNoWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+FieldAccess AccessBuilder::ForDictionaryMaxNumberKey() { |
+ FieldAccess access = { |
+ kTaggedBase, |
+ FixedArray::OffsetOfElementAt(NameDictionary::kMaxNumberKeyIndex), |
+ MaybeHandle<Name>(), |
+ MaybeHandle<Map>(), |
+ Type::Any(), |
+ MachineType::AnyTagged(), |
+ kNoWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+FieldAccess AccessBuilder::ForDictionaryNextEnumerationIndex() { |
+ FieldAccess access = { |
+ kTaggedBase, |
+ FixedArray::OffsetOfElementAt(NameDictionary::kNextEnumerationIndexIndex), |
+ MaybeHandle<Name>(), |
+ MaybeHandle<Map>(), |
+ Type::SignedSmall(), |
+ MachineType::TaggedSigned(), |
+ kNoWriteBarrier}; |
+ return access; |
+} |
+ |
} // namespace compiler |
} // namespace internal |
} // namespace v8 |