Index: src/compiler/access-builder.cc |
diff --git a/src/compiler/access-builder.cc b/src/compiler/access-builder.cc |
index 0eac1097d34a8796b7677336634087d8d4f2ee89..976e051527c1b79a16848c3dc3a4990be170ca9d 100644 |
--- a/src/compiler/access-builder.cc |
+++ b/src/compiler/access-builder.cc |
@@ -386,6 +386,78 @@ FieldAccess AccessBuilder::ForStringLength() { |
return access; |
} |
+// static |
+FieldAccess AccessBuilder::ForConsStringFirst() { |
+ FieldAccess access = { |
+ kTaggedBase, ConsString::kFirstOffset, Handle<Name>(), |
+ Type::String(), MachineType::AnyTagged(), kPointerWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+FieldAccess AccessBuilder::ForConsStringSecond() { |
+ FieldAccess access = { |
+ kTaggedBase, ConsString::kSecondOffset, Handle<Name>(), |
+ Type::String(), MachineType::AnyTagged(), kPointerWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+FieldAccess AccessBuilder::ForSlicedStringOffset() { |
+ FieldAccess access = { |
+ kTaggedBase, SlicedString::kOffsetOffset, Handle<Name>(), |
+ Type::SignedSmall(), MachineType::AnyTagged(), kNoWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+FieldAccess AccessBuilder::ForSlicedStringParent() { |
+ FieldAccess access = { |
+ kTaggedBase, SlicedString::kParentOffset, Handle<Name>(), |
+ Type::String(), MachineType::AnyTagged(), kPointerWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+FieldAccess AccessBuilder::ForExternalStringResourceData() { |
+ FieldAccess access = {kTaggedBase, |
+ ExternalString::kResourceDataOffset, |
+ Handle<Name>(), |
+ Type::UntaggedPointer(), |
+ MachineType::Pointer(), |
+ kNoWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+ElementAccess AccessBuilder::ForExternalOneByteStringCharacter() { |
+ ElementAccess access = {kUntaggedBase, 0, TypeCache::Get().kUint8, |
+ MachineType::Uint8(), kNoWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+ElementAccess AccessBuilder::ForExternalTwoByteStringCharacter() { |
+ ElementAccess access = {kUntaggedBase, 0, TypeCache::Get().kUint16, |
+ MachineType::Uint16(), kNoWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+ElementAccess AccessBuilder::ForSeqOneByteStringCharacter() { |
+ ElementAccess access = {kTaggedBase, SeqOneByteString::kHeaderSize, |
+ TypeCache::Get().kUint8, MachineType::Uint8(), |
+ kNoWriteBarrier}; |
+ return access; |
+} |
+ |
+// static |
+ElementAccess AccessBuilder::ForSeqTwoByteStringCharacter() { |
+ ElementAccess access = {kTaggedBase, SeqTwoByteString::kHeaderSize, |
+ TypeCache::Get().kUint16, MachineType::Uint16(), |
+ kNoWriteBarrier}; |
+ return access; |
+} |
// static |
FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() { |
@@ -398,7 +470,6 @@ FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() { |
return access; |
} |
- |
// static |
FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() { |
FieldAccess access = {kTaggedBase, |