| Index: src/compiler/access-builder.h
|
| diff --git a/src/compiler/access-builder.h b/src/compiler/access-builder.h
|
| index b3003303ae859f7fd3eec0c2df90bbef8bca8ebb..d545d2bc3cd8811feb0a7ba6cc4c8fe72c105a6e 100644
|
| --- a/src/compiler/access-builder.h
|
| +++ b/src/compiler/access-builder.h
|
| @@ -14,79 +14,35 @@ namespace compiler {
|
| // This access builder provides a set of static methods constructing commonly
|
| // used FieldAccess and ElementAccess descriptors. These descriptors server as
|
| // parameters to simplified load/store operators.
|
| -class AccessBuilder : public AllStatic {
|
| +class AccessBuilder FINAL : public AllStatic {
|
| public:
|
| // Provides access to HeapObject::map() field.
|
| - static FieldAccess ForMap() {
|
| - return {kTaggedBase, HeapObject::kMapOffset, Handle<Name>(), Type::Any(),
|
| - kMachAnyTagged};
|
| - }
|
| + static FieldAccess ForMap();
|
|
|
| // Provides access to JSObject::properties() field.
|
| - static FieldAccess ForJSObjectProperties() {
|
| - return {kTaggedBase, JSObject::kPropertiesOffset, Handle<Name>(),
|
| - Type::Any(), kMachAnyTagged};
|
| - }
|
| + static FieldAccess ForJSObjectProperties();
|
|
|
| // Provides access to JSObject::elements() field.
|
| - static FieldAccess ForJSObjectElements() {
|
| - return {kTaggedBase, JSObject::kElementsOffset, Handle<Name>(),
|
| - Type::Internal(), kMachAnyTagged};
|
| - }
|
| + static FieldAccess ForJSObjectElements();
|
|
|
| // Provides access to JSArrayBuffer::backing_store() field.
|
| - static FieldAccess ForJSArrayBufferBackingStore() {
|
| - return {kTaggedBase, JSArrayBuffer::kBackingStoreOffset, Handle<Name>(),
|
| - Type::UntaggedPtr(), kMachPtr};
|
| - }
|
| + static FieldAccess ForJSArrayBufferBackingStore();
|
|
|
| // Provides access to ExternalArray::external_pointer() field.
|
| - static FieldAccess ForExternalArrayPointer() {
|
| - return {kTaggedBase, ExternalArray::kExternalPointerOffset, Handle<Name>(),
|
| - Type::UntaggedPtr(), kMachPtr};
|
| - }
|
| + static FieldAccess ForExternalArrayPointer();
|
|
|
| // Provides access to FixedArray elements.
|
| - static ElementAccess ForFixedArrayElement() {
|
| - return {kTaggedBase, FixedArray::kHeaderSize, Type::Any(), kMachAnyTagged};
|
| - }
|
| + static ElementAccess ForFixedArrayElement();
|
|
|
| // TODO(mstarzinger): Raw access only for testing, drop me.
|
| - static ElementAccess ForBackingStoreElement(MachineType rep) {
|
| - return {kUntaggedBase, kNonHeapObjectHeaderSize - kHeapObjectTag,
|
| - Type::Any(), rep};
|
| - }
|
| + static ElementAccess ForBackingStoreElement(MachineType rep);
|
|
|
| // Provides access to Fixed{type}TypedArray and External{type}Array elements.
|
| static ElementAccess ForTypedArrayElement(ExternalArrayType type,
|
| - bool is_external) {
|
| - BaseTaggedness taggedness = is_external ? kUntaggedBase : kTaggedBase;
|
| - int header_size = is_external ? 0 : FixedTypedArrayBase::kDataOffset;
|
| - switch (type) {
|
| - case kExternalInt8Array:
|
| - return {taggedness, header_size, Type::Signed32(), kMachInt8};
|
| - case kExternalUint8Array:
|
| - case kExternalUint8ClampedArray:
|
| - return {taggedness, header_size, Type::Unsigned32(), kMachUint8};
|
| - case kExternalInt16Array:
|
| - return {taggedness, header_size, Type::Signed32(), kMachInt16};
|
| - case kExternalUint16Array:
|
| - return {taggedness, header_size, Type::Unsigned32(), kMachUint16};
|
| - case kExternalInt32Array:
|
| - return {taggedness, header_size, Type::Signed32(), kMachInt32};
|
| - case kExternalUint32Array:
|
| - return {taggedness, header_size, Type::Unsigned32(), kMachUint32};
|
| - case kExternalFloat32Array:
|
| - return {taggedness, header_size, Type::Number(), kRepFloat32};
|
| - case kExternalFloat64Array:
|
| - return {taggedness, header_size, Type::Number(), kRepFloat64};
|
| - }
|
| - UNREACHABLE();
|
| - return {kUntaggedBase, 0, Type::None(), kMachNone};
|
| - }
|
| + bool is_external);
|
|
|
| private:
|
| - DISALLOW_COPY_AND_ASSIGN(AccessBuilder);
|
| + DISALLOW_IMPLICIT_CONSTRUCTORS(AccessBuilder);
|
| };
|
|
|
| } // namespace compiler
|
|
|