11cb0ef41Sopenharmony_ci// Copyright 2014 the V8 project authors. All rights reserved. 21cb0ef41Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be 31cb0ef41Sopenharmony_ci// found in the LICENSE file. 41cb0ef41Sopenharmony_ci 51cb0ef41Sopenharmony_ci#include "src/compiler/access-builder.h" 61cb0ef41Sopenharmony_ci 71cb0ef41Sopenharmony_ci#include "src/compiler/type-cache.h" 81cb0ef41Sopenharmony_ci#include "src/execution/frames.h" 91cb0ef41Sopenharmony_ci#include "src/handles/handles-inl.h" 101cb0ef41Sopenharmony_ci#include "src/heap/heap.h" 111cb0ef41Sopenharmony_ci#include "src/objects/arguments.h" 121cb0ef41Sopenharmony_ci#include "src/objects/cell.h" 131cb0ef41Sopenharmony_ci#include "src/objects/contexts.h" 141cb0ef41Sopenharmony_ci#include "src/objects/heap-number.h" 151cb0ef41Sopenharmony_ci#include "src/objects/js-collection.h" 161cb0ef41Sopenharmony_ci#include "src/objects/js-generator.h" 171cb0ef41Sopenharmony_ci#include "src/objects/objects-inl.h" 181cb0ef41Sopenharmony_ci#include "src/objects/ordered-hash-table.h" 191cb0ef41Sopenharmony_ci#include "src/objects/source-text-module.h" 201cb0ef41Sopenharmony_ci 211cb0ef41Sopenharmony_cinamespace v8 { 221cb0ef41Sopenharmony_cinamespace internal { 231cb0ef41Sopenharmony_cinamespace compiler { 241cb0ef41Sopenharmony_ci 251cb0ef41Sopenharmony_ci// static 261cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForExternalIntPtr() { 271cb0ef41Sopenharmony_ci FieldAccess access = {kUntaggedBase, 0, MaybeHandle<Name>(), 281cb0ef41Sopenharmony_ci MaybeHandle<Map>(), Type::Any(), MachineType::IntPtr(), 291cb0ef41Sopenharmony_ci kNoWriteBarrier}; 301cb0ef41Sopenharmony_ci return access; 311cb0ef41Sopenharmony_ci} 321cb0ef41Sopenharmony_ci 331cb0ef41Sopenharmony_ci// static 341cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForMap(WriteBarrierKind write_barrier) { 351cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, HeapObject::kMapOffset, 361cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 371cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::MapInHeader(), 381cb0ef41Sopenharmony_ci write_barrier}; 391cb0ef41Sopenharmony_ci return access; 401cb0ef41Sopenharmony_ci} 411cb0ef41Sopenharmony_ci 421cb0ef41Sopenharmony_ci// static 431cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForHeapNumberValue() { 441cb0ef41Sopenharmony_ci FieldAccess access = { 451cb0ef41Sopenharmony_ci kTaggedBase, HeapNumber::kValueOffset, MaybeHandle<Name>(), 461cb0ef41Sopenharmony_ci MaybeHandle<Map>(), TypeCache::Get()->kFloat64, MachineType::Float64(), 471cb0ef41Sopenharmony_ci kNoWriteBarrier}; 481cb0ef41Sopenharmony_ci return access; 491cb0ef41Sopenharmony_ci} 501cb0ef41Sopenharmony_ci 511cb0ef41Sopenharmony_ci// static 521cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForBigIntBitfield() { 531cb0ef41Sopenharmony_ci FieldAccess access = { 541cb0ef41Sopenharmony_ci kTaggedBase, BigInt::kBitfieldOffset, MaybeHandle<Name>(), 551cb0ef41Sopenharmony_ci MaybeHandle<Map>(), TypeCache::Get()->kInt32, MachineType::Uint32(), 561cb0ef41Sopenharmony_ci kNoWriteBarrier}; 571cb0ef41Sopenharmony_ci return access; 581cb0ef41Sopenharmony_ci} 591cb0ef41Sopenharmony_ci 601cb0ef41Sopenharmony_ci// static 611cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForBigIntOptionalPadding() { 621cb0ef41Sopenharmony_ci DCHECK_EQ(FIELD_SIZE(BigInt::kOptionalPaddingOffset), 4); 631cb0ef41Sopenharmony_ci FieldAccess access = { 641cb0ef41Sopenharmony_ci kTaggedBase, BigInt::kOptionalPaddingOffset, MaybeHandle<Name>(), 651cb0ef41Sopenharmony_ci MaybeHandle<Map>(), TypeCache::Get()->kInt32, MachineType::Uint32(), 661cb0ef41Sopenharmony_ci kNoWriteBarrier}; 671cb0ef41Sopenharmony_ci return access; 681cb0ef41Sopenharmony_ci} 691cb0ef41Sopenharmony_ci 701cb0ef41Sopenharmony_ci// static 711cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForBigIntLeastSignificantDigit64() { 721cb0ef41Sopenharmony_ci DCHECK_EQ(BigInt::SizeFor(1) - BigInt::SizeFor(0), 8); 731cb0ef41Sopenharmony_ci FieldAccess access = { 741cb0ef41Sopenharmony_ci kTaggedBase, BigInt::kDigitsOffset, MaybeHandle<Name>(), 751cb0ef41Sopenharmony_ci MaybeHandle<Map>(), TypeCache::Get()->kBigUint64, MachineType::Uint64(), 761cb0ef41Sopenharmony_ci kNoWriteBarrier}; 771cb0ef41Sopenharmony_ci return access; 781cb0ef41Sopenharmony_ci} 791cb0ef41Sopenharmony_ci 801cb0ef41Sopenharmony_ci// static 811cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSObjectPropertiesOrHash() { 821cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSObject::kPropertiesOrHashOffset, 831cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 841cb0ef41Sopenharmony_ci Type::Any(), MachineType::AnyTagged(), 851cb0ef41Sopenharmony_ci kFullWriteBarrier}; 861cb0ef41Sopenharmony_ci return access; 871cb0ef41Sopenharmony_ci} 881cb0ef41Sopenharmony_ci 891cb0ef41Sopenharmony_ci// static 901cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSObjectPropertiesOrHashKnownPointer() { 911cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSObject::kPropertiesOrHashOffset, 921cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 931cb0ef41Sopenharmony_ci Type::Any(), MachineType::TaggedPointer(), 941cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 951cb0ef41Sopenharmony_ci return access; 961cb0ef41Sopenharmony_ci} 971cb0ef41Sopenharmony_ci 981cb0ef41Sopenharmony_ci// static 991cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSObjectElements() { 1001cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSObject::kElementsOffset, 1011cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 1021cb0ef41Sopenharmony_ci Type::Internal(), MachineType::TaggedPointer(), 1031cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 1041cb0ef41Sopenharmony_ci return access; 1051cb0ef41Sopenharmony_ci} 1061cb0ef41Sopenharmony_ci 1071cb0ef41Sopenharmony_ci// static 1081cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSObjectInObjectProperty( 1091cb0ef41Sopenharmony_ci const MapRef& map, int index, MachineType machine_type) { 1101cb0ef41Sopenharmony_ci int const offset = map.GetInObjectPropertyOffset(index); 1111cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, offset, 1121cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 1131cb0ef41Sopenharmony_ci Type::NonInternal(), machine_type, 1141cb0ef41Sopenharmony_ci kFullWriteBarrier}; 1151cb0ef41Sopenharmony_ci return access; 1161cb0ef41Sopenharmony_ci} 1171cb0ef41Sopenharmony_ci 1181cb0ef41Sopenharmony_ci// static 1191cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSObjectOffset( 1201cb0ef41Sopenharmony_ci int offset, WriteBarrierKind write_barrier_kind) { 1211cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, offset, 1221cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 1231cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 1241cb0ef41Sopenharmony_ci write_barrier_kind}; 1251cb0ef41Sopenharmony_ci return access; 1261cb0ef41Sopenharmony_ci} 1271cb0ef41Sopenharmony_ci 1281cb0ef41Sopenharmony_ci// static 1291cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSCollectionTable() { 1301cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSCollection::kTableOffset, 1311cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 1321cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 1331cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 1341cb0ef41Sopenharmony_ci return access; 1351cb0ef41Sopenharmony_ci} 1361cb0ef41Sopenharmony_ci 1371cb0ef41Sopenharmony_ci// static 1381cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSCollectionIteratorTable() { 1391cb0ef41Sopenharmony_ci FieldAccess access = { 1401cb0ef41Sopenharmony_ci kTaggedBase, JSCollectionIterator::kTableOffset, 1411cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 1421cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 1431cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 1441cb0ef41Sopenharmony_ci return access; 1451cb0ef41Sopenharmony_ci} 1461cb0ef41Sopenharmony_ci 1471cb0ef41Sopenharmony_ci// static 1481cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSCollectionIteratorIndex() { 1491cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 1501cb0ef41Sopenharmony_ci JSCollectionIterator::kIndexOffset, 1511cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 1521cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 1531cb0ef41Sopenharmony_ci TypeCache::Get()->kFixedArrayLengthType, 1541cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 1551cb0ef41Sopenharmony_ci kNoWriteBarrier}; 1561cb0ef41Sopenharmony_ci return access; 1571cb0ef41Sopenharmony_ci} 1581cb0ef41Sopenharmony_ci 1591cb0ef41Sopenharmony_ci// static 1601cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSFunctionPrototypeOrInitialMap() { 1611cb0ef41Sopenharmony_ci FieldAccess access = { 1621cb0ef41Sopenharmony_ci kTaggedBase, JSFunction::kPrototypeOrInitialMapOffset, 1631cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 1641cb0ef41Sopenharmony_ci Type::Any(), MachineType::TaggedPointer(), 1651cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 1661cb0ef41Sopenharmony_ci return access; 1671cb0ef41Sopenharmony_ci} 1681cb0ef41Sopenharmony_ci 1691cb0ef41Sopenharmony_ci// static 1701cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSFunctionContext() { 1711cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSFunction::kContextOffset, 1721cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 1731cb0ef41Sopenharmony_ci Type::Internal(), MachineType::TaggedPointer(), 1741cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 1751cb0ef41Sopenharmony_ci return access; 1761cb0ef41Sopenharmony_ci} 1771cb0ef41Sopenharmony_ci 1781cb0ef41Sopenharmony_ci// static 1791cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() { 1801cb0ef41Sopenharmony_ci FieldAccess access = { 1811cb0ef41Sopenharmony_ci kTaggedBase, JSFunction::kSharedFunctionInfoOffset, 1821cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 1831cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 1841cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 1851cb0ef41Sopenharmony_ci return access; 1861cb0ef41Sopenharmony_ci} 1871cb0ef41Sopenharmony_ci 1881cb0ef41Sopenharmony_ci// static 1891cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSFunctionFeedbackCell() { 1901cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSFunction::kFeedbackCellOffset, 1911cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 1921cb0ef41Sopenharmony_ci Type::Internal(), MachineType::TaggedPointer(), 1931cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 1941cb0ef41Sopenharmony_ci return access; 1951cb0ef41Sopenharmony_ci} 1961cb0ef41Sopenharmony_ci 1971cb0ef41Sopenharmony_ci// static 1981cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSFunctionCode() { 1991cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSFunction::kCodeOffset, 2001cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 2011cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 2021cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 2031cb0ef41Sopenharmony_ci return access; 2041cb0ef41Sopenharmony_ci} 2051cb0ef41Sopenharmony_ci 2061cb0ef41Sopenharmony_ci// static 2071cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSBoundFunctionBoundTargetFunction() { 2081cb0ef41Sopenharmony_ci FieldAccess access = { 2091cb0ef41Sopenharmony_ci kTaggedBase, JSBoundFunction::kBoundTargetFunctionOffset, 2101cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 2111cb0ef41Sopenharmony_ci Type::Callable(), MachineType::TaggedPointer(), 2121cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 2131cb0ef41Sopenharmony_ci return access; 2141cb0ef41Sopenharmony_ci} 2151cb0ef41Sopenharmony_ci 2161cb0ef41Sopenharmony_ci// static 2171cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSBoundFunctionBoundThis() { 2181cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSBoundFunction::kBoundThisOffset, 2191cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 2201cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 2211cb0ef41Sopenharmony_ci kFullWriteBarrier}; 2221cb0ef41Sopenharmony_ci return access; 2231cb0ef41Sopenharmony_ci} 2241cb0ef41Sopenharmony_ci 2251cb0ef41Sopenharmony_ci// static 2261cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSBoundFunctionBoundArguments() { 2271cb0ef41Sopenharmony_ci FieldAccess access = { 2281cb0ef41Sopenharmony_ci kTaggedBase, JSBoundFunction::kBoundArgumentsOffset, 2291cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 2301cb0ef41Sopenharmony_ci Type::Internal(), MachineType::TaggedPointer(), 2311cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 2321cb0ef41Sopenharmony_ci return access; 2331cb0ef41Sopenharmony_ci} 2341cb0ef41Sopenharmony_ci 2351cb0ef41Sopenharmony_ci// static 2361cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSGeneratorObjectContext() { 2371cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSGeneratorObject::kContextOffset, 2381cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 2391cb0ef41Sopenharmony_ci Type::Internal(), MachineType::TaggedPointer(), 2401cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 2411cb0ef41Sopenharmony_ci return access; 2421cb0ef41Sopenharmony_ci} 2431cb0ef41Sopenharmony_ci 2441cb0ef41Sopenharmony_ci// static 2451cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSGeneratorObjectFunction() { 2461cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 2471cb0ef41Sopenharmony_ci JSGeneratorObject::kFunctionOffset, 2481cb0ef41Sopenharmony_ci Handle<Name>(), 2491cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 2501cb0ef41Sopenharmony_ci Type::CallableFunction(), 2511cb0ef41Sopenharmony_ci MachineType::TaggedPointer(), 2521cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 2531cb0ef41Sopenharmony_ci return access; 2541cb0ef41Sopenharmony_ci} 2551cb0ef41Sopenharmony_ci 2561cb0ef41Sopenharmony_ci// static 2571cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSGeneratorObjectReceiver() { 2581cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSGeneratorObject::kReceiverOffset, 2591cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 2601cb0ef41Sopenharmony_ci Type::Internal(), MachineType::TaggedPointer(), 2611cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 2621cb0ef41Sopenharmony_ci return access; 2631cb0ef41Sopenharmony_ci} 2641cb0ef41Sopenharmony_ci 2651cb0ef41Sopenharmony_ci// static 2661cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSGeneratorObjectContinuation() { 2671cb0ef41Sopenharmony_ci FieldAccess access = { 2681cb0ef41Sopenharmony_ci kTaggedBase, JSGeneratorObject::kContinuationOffset, 2691cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 2701cb0ef41Sopenharmony_ci Type::SignedSmall(), MachineType::TaggedSigned(), 2711cb0ef41Sopenharmony_ci kNoWriteBarrier}; 2721cb0ef41Sopenharmony_ci return access; 2731cb0ef41Sopenharmony_ci} 2741cb0ef41Sopenharmony_ci 2751cb0ef41Sopenharmony_ci// static 2761cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSGeneratorObjectInputOrDebugPos() { 2771cb0ef41Sopenharmony_ci FieldAccess access = { 2781cb0ef41Sopenharmony_ci kTaggedBase, JSGeneratorObject::kInputOrDebugPosOffset, 2791cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 2801cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 2811cb0ef41Sopenharmony_ci kFullWriteBarrier}; 2821cb0ef41Sopenharmony_ci return access; 2831cb0ef41Sopenharmony_ci} 2841cb0ef41Sopenharmony_ci 2851cb0ef41Sopenharmony_ci// static 2861cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSGeneratorObjectParametersAndRegisters() { 2871cb0ef41Sopenharmony_ci FieldAccess access = { 2881cb0ef41Sopenharmony_ci kTaggedBase, JSGeneratorObject::kParametersAndRegistersOffset, 2891cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 2901cb0ef41Sopenharmony_ci Type::Internal(), MachineType::TaggedPointer(), 2911cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 2921cb0ef41Sopenharmony_ci return access; 2931cb0ef41Sopenharmony_ci} 2941cb0ef41Sopenharmony_ci 2951cb0ef41Sopenharmony_ci// static 2961cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSGeneratorObjectResumeMode() { 2971cb0ef41Sopenharmony_ci FieldAccess access = { 2981cb0ef41Sopenharmony_ci kTaggedBase, JSGeneratorObject::kResumeModeOffset, 2991cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 3001cb0ef41Sopenharmony_ci Type::SignedSmall(), MachineType::TaggedSigned(), 3011cb0ef41Sopenharmony_ci kNoWriteBarrier}; 3021cb0ef41Sopenharmony_ci return access; 3031cb0ef41Sopenharmony_ci} 3041cb0ef41Sopenharmony_ci 3051cb0ef41Sopenharmony_ci// static 3061cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSAsyncFunctionObjectPromise() { 3071cb0ef41Sopenharmony_ci FieldAccess access = { 3081cb0ef41Sopenharmony_ci kTaggedBase, JSAsyncFunctionObject::kPromiseOffset, 3091cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 3101cb0ef41Sopenharmony_ci Type::OtherObject(), MachineType::TaggedPointer(), 3111cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 3121cb0ef41Sopenharmony_ci return access; 3131cb0ef41Sopenharmony_ci} 3141cb0ef41Sopenharmony_ci 3151cb0ef41Sopenharmony_ci// static 3161cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSAsyncGeneratorObjectQueue() { 3171cb0ef41Sopenharmony_ci FieldAccess access = { 3181cb0ef41Sopenharmony_ci kTaggedBase, JSAsyncGeneratorObject::kQueueOffset, 3191cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 3201cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 3211cb0ef41Sopenharmony_ci kFullWriteBarrier}; 3221cb0ef41Sopenharmony_ci return access; 3231cb0ef41Sopenharmony_ci} 3241cb0ef41Sopenharmony_ci 3251cb0ef41Sopenharmony_ci// static 3261cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSAsyncGeneratorObjectIsAwaiting() { 3271cb0ef41Sopenharmony_ci FieldAccess access = { 3281cb0ef41Sopenharmony_ci kTaggedBase, JSAsyncGeneratorObject::kIsAwaitingOffset, 3291cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 3301cb0ef41Sopenharmony_ci Type::SignedSmall(), MachineType::TaggedSigned(), 3311cb0ef41Sopenharmony_ci kNoWriteBarrier}; 3321cb0ef41Sopenharmony_ci return access; 3331cb0ef41Sopenharmony_ci} 3341cb0ef41Sopenharmony_ci 3351cb0ef41Sopenharmony_ci// static 3361cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) { 3371cb0ef41Sopenharmony_ci TypeCache const* type_cache = TypeCache::Get(); 3381cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 3391cb0ef41Sopenharmony_ci JSArray::kLengthOffset, 3401cb0ef41Sopenharmony_ci Handle<Name>(), 3411cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 3421cb0ef41Sopenharmony_ci type_cache->kJSArrayLengthType, 3431cb0ef41Sopenharmony_ci MachineType::AnyTagged(), 3441cb0ef41Sopenharmony_ci kFullWriteBarrier}; 3451cb0ef41Sopenharmony_ci if (IsDoubleElementsKind(elements_kind)) { 3461cb0ef41Sopenharmony_ci access.type = type_cache->kFixedDoubleArrayLengthType; 3471cb0ef41Sopenharmony_ci access.machine_type = MachineType::TaggedSigned(); 3481cb0ef41Sopenharmony_ci access.write_barrier_kind = kNoWriteBarrier; 3491cb0ef41Sopenharmony_ci } else if (IsFastElementsKind(elements_kind)) { 3501cb0ef41Sopenharmony_ci access.type = type_cache->kFixedArrayLengthType; 3511cb0ef41Sopenharmony_ci access.machine_type = MachineType::TaggedSigned(); 3521cb0ef41Sopenharmony_ci access.write_barrier_kind = kNoWriteBarrier; 3531cb0ef41Sopenharmony_ci } 3541cb0ef41Sopenharmony_ci return access; 3551cb0ef41Sopenharmony_ci} 3561cb0ef41Sopenharmony_ci 3571cb0ef41Sopenharmony_ci// static 3581cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSArrayBufferBitField() { 3591cb0ef41Sopenharmony_ci FieldAccess access = { 3601cb0ef41Sopenharmony_ci kTaggedBase, JSArrayBuffer::kBitFieldOffset, MaybeHandle<Name>(), 3611cb0ef41Sopenharmony_ci MaybeHandle<Map>(), TypeCache::Get()->kUint8, MachineType::Uint32(), 3621cb0ef41Sopenharmony_ci kNoWriteBarrier}; 3631cb0ef41Sopenharmony_ci return access; 3641cb0ef41Sopenharmony_ci} 3651cb0ef41Sopenharmony_ci 3661cb0ef41Sopenharmony_ci// static 3671cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() { 3681cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSArrayBufferView::kBufferOffset, 3691cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 3701cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 3711cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 3721cb0ef41Sopenharmony_ci return access; 3731cb0ef41Sopenharmony_ci} 3741cb0ef41Sopenharmony_ci 3751cb0ef41Sopenharmony_ci// static 3761cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSArrayBufferViewByteLength() { 3771cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 3781cb0ef41Sopenharmony_ci JSArrayBufferView::kByteLengthOffset, 3791cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 3801cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 3811cb0ef41Sopenharmony_ci TypeCache::Get()->kJSArrayBufferViewByteLengthType, 3821cb0ef41Sopenharmony_ci MachineType::UintPtr(), 3831cb0ef41Sopenharmony_ci kNoWriteBarrier}; 3841cb0ef41Sopenharmony_ci return access; 3851cb0ef41Sopenharmony_ci} 3861cb0ef41Sopenharmony_ci 3871cb0ef41Sopenharmony_ci// static 3881cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSArrayBufferViewByteOffset() { 3891cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 3901cb0ef41Sopenharmony_ci JSArrayBufferView::kByteOffsetOffset, 3911cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 3921cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 3931cb0ef41Sopenharmony_ci TypeCache::Get()->kJSArrayBufferViewByteOffsetType, 3941cb0ef41Sopenharmony_ci MachineType::UintPtr(), 3951cb0ef41Sopenharmony_ci kNoWriteBarrier}; 3961cb0ef41Sopenharmony_ci return access; 3971cb0ef41Sopenharmony_ci} 3981cb0ef41Sopenharmony_ci 3991cb0ef41Sopenharmony_ci// static 4001cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSTypedArrayLength() { 4011cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 4021cb0ef41Sopenharmony_ci JSTypedArray::kLengthOffset, 4031cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 4041cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 4051cb0ef41Sopenharmony_ci TypeCache::Get()->kJSTypedArrayLengthType, 4061cb0ef41Sopenharmony_ci MachineType::UintPtr(), 4071cb0ef41Sopenharmony_ci kNoWriteBarrier}; 4081cb0ef41Sopenharmony_ci return access; 4091cb0ef41Sopenharmony_ci} 4101cb0ef41Sopenharmony_ci 4111cb0ef41Sopenharmony_ci// static 4121cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSTypedArrayBasePointer() { 4131cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSTypedArray::kBasePointerOffset, 4141cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 4151cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::AnyTagged(), 4161cb0ef41Sopenharmony_ci kFullWriteBarrier}; 4171cb0ef41Sopenharmony_ci return access; 4181cb0ef41Sopenharmony_ci} 4191cb0ef41Sopenharmony_ci 4201cb0ef41Sopenharmony_ci// static 4211cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSTypedArrayExternalPointer() { 4221cb0ef41Sopenharmony_ci FieldAccess access = { 4231cb0ef41Sopenharmony_ci kTaggedBase, 4241cb0ef41Sopenharmony_ci JSTypedArray::kExternalPointerOffset, 4251cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 4261cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 4271cb0ef41Sopenharmony_ci#ifdef V8_SANDBOXED_POINTERS 4281cb0ef41Sopenharmony_ci Type::SandboxedPointer(), 4291cb0ef41Sopenharmony_ci MachineType::SandboxedPointer(), 4301cb0ef41Sopenharmony_ci#else 4311cb0ef41Sopenharmony_ci Type::ExternalPointer(), 4321cb0ef41Sopenharmony_ci MachineType::Pointer(), 4331cb0ef41Sopenharmony_ci#endif 4341cb0ef41Sopenharmony_ci kNoWriteBarrier, 4351cb0ef41Sopenharmony_ci ConstFieldInfo::None(), 4361cb0ef41Sopenharmony_ci false, 4371cb0ef41Sopenharmony_ci }; 4381cb0ef41Sopenharmony_ci return access; 4391cb0ef41Sopenharmony_ci} 4401cb0ef41Sopenharmony_ci 4411cb0ef41Sopenharmony_ci// static 4421cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSDataViewDataPointer() { 4431cb0ef41Sopenharmony_ci FieldAccess access = { 4441cb0ef41Sopenharmony_ci kTaggedBase, 4451cb0ef41Sopenharmony_ci JSDataView::kDataPointerOffset, 4461cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 4471cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 4481cb0ef41Sopenharmony_ci#ifdef V8_SANDBOXED_POINTERS 4491cb0ef41Sopenharmony_ci Type::SandboxedPointer(), 4501cb0ef41Sopenharmony_ci MachineType::SandboxedPointer(), 4511cb0ef41Sopenharmony_ci#else 4521cb0ef41Sopenharmony_ci Type::ExternalPointer(), 4531cb0ef41Sopenharmony_ci MachineType::Pointer(), 4541cb0ef41Sopenharmony_ci#endif 4551cb0ef41Sopenharmony_ci kNoWriteBarrier, 4561cb0ef41Sopenharmony_ci ConstFieldInfo::None(), 4571cb0ef41Sopenharmony_ci false, 4581cb0ef41Sopenharmony_ci }; 4591cb0ef41Sopenharmony_ci return access; 4601cb0ef41Sopenharmony_ci} 4611cb0ef41Sopenharmony_ci 4621cb0ef41Sopenharmony_ci// static 4631cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSDateValue() { 4641cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 4651cb0ef41Sopenharmony_ci JSDate::kValueOffset, 4661cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 4671cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 4681cb0ef41Sopenharmony_ci TypeCache::Get()->kJSDateValueType, 4691cb0ef41Sopenharmony_ci MachineType::AnyTagged(), 4701cb0ef41Sopenharmony_ci kFullWriteBarrier}; 4711cb0ef41Sopenharmony_ci return access; 4721cb0ef41Sopenharmony_ci} 4731cb0ef41Sopenharmony_ci 4741cb0ef41Sopenharmony_ci// static 4751cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) { 4761cb0ef41Sopenharmony_ci FieldAccess access = { 4771cb0ef41Sopenharmony_ci kTaggedBase, JSDate::kValueOffset + index * kTaggedSize, 4781cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 4791cb0ef41Sopenharmony_ci Type::Number(), MachineType::AnyTagged(), 4801cb0ef41Sopenharmony_ci kFullWriteBarrier}; 4811cb0ef41Sopenharmony_ci return access; 4821cb0ef41Sopenharmony_ci} 4831cb0ef41Sopenharmony_ci 4841cb0ef41Sopenharmony_ci// static 4851cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSIteratorResultDone() { 4861cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSIteratorResult::kDoneOffset, 4871cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 4881cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 4891cb0ef41Sopenharmony_ci kFullWriteBarrier}; 4901cb0ef41Sopenharmony_ci return access; 4911cb0ef41Sopenharmony_ci} 4921cb0ef41Sopenharmony_ci 4931cb0ef41Sopenharmony_ci// static 4941cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSIteratorResultValue() { 4951cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSIteratorResult::kValueOffset, 4961cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 4971cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 4981cb0ef41Sopenharmony_ci kFullWriteBarrier}; 4991cb0ef41Sopenharmony_ci return access; 5001cb0ef41Sopenharmony_ci} 5011cb0ef41Sopenharmony_ci 5021cb0ef41Sopenharmony_ci// static 5031cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSRegExpData() { 5041cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSRegExp::kDataOffset, 5051cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 5061cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 5071cb0ef41Sopenharmony_ci kFullWriteBarrier}; 5081cb0ef41Sopenharmony_ci return access; 5091cb0ef41Sopenharmony_ci} 5101cb0ef41Sopenharmony_ci 5111cb0ef41Sopenharmony_ci// static 5121cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSRegExpFlags() { 5131cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSRegExp::kFlagsOffset, 5141cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 5151cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 5161cb0ef41Sopenharmony_ci kFullWriteBarrier}; 5171cb0ef41Sopenharmony_ci return access; 5181cb0ef41Sopenharmony_ci} 5191cb0ef41Sopenharmony_ci 5201cb0ef41Sopenharmony_ci// static 5211cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSRegExpLastIndex() { 5221cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSRegExp::kLastIndexOffset, 5231cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 5241cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 5251cb0ef41Sopenharmony_ci kFullWriteBarrier}; 5261cb0ef41Sopenharmony_ci return access; 5271cb0ef41Sopenharmony_ci} 5281cb0ef41Sopenharmony_ci 5291cb0ef41Sopenharmony_ci// static 5301cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSRegExpSource() { 5311cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSRegExp::kSourceOffset, 5321cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 5331cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 5341cb0ef41Sopenharmony_ci kFullWriteBarrier}; 5351cb0ef41Sopenharmony_ci return access; 5361cb0ef41Sopenharmony_ci} 5371cb0ef41Sopenharmony_ci 5381cb0ef41Sopenharmony_ci// static 5391cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForFixedArrayLength() { 5401cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 5411cb0ef41Sopenharmony_ci FixedArray::kLengthOffset, 5421cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 5431cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 5441cb0ef41Sopenharmony_ci TypeCache::Get()->kFixedArrayLengthType, 5451cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 5461cb0ef41Sopenharmony_ci kNoWriteBarrier}; 5471cb0ef41Sopenharmony_ci return access; 5481cb0ef41Sopenharmony_ci} 5491cb0ef41Sopenharmony_ci 5501cb0ef41Sopenharmony_ci// static 5511cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForWeakFixedArrayLength() { 5521cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 5531cb0ef41Sopenharmony_ci WeakFixedArray::kLengthOffset, 5541cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 5551cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 5561cb0ef41Sopenharmony_ci TypeCache::Get()->kWeakFixedArrayLengthType, 5571cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 5581cb0ef41Sopenharmony_ci kNoWriteBarrier}; 5591cb0ef41Sopenharmony_ci return access; 5601cb0ef41Sopenharmony_ci} 5611cb0ef41Sopenharmony_ci 5621cb0ef41Sopenharmony_ci// static 5631cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForSloppyArgumentsElementsContext() { 5641cb0ef41Sopenharmony_ci FieldAccess access = { 5651cb0ef41Sopenharmony_ci kTaggedBase, SloppyArgumentsElements::kContextOffset, 5661cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 5671cb0ef41Sopenharmony_ci Type::Any(), MachineType::TaggedPointer(), 5681cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 5691cb0ef41Sopenharmony_ci return access; 5701cb0ef41Sopenharmony_ci} 5711cb0ef41Sopenharmony_ci 5721cb0ef41Sopenharmony_ci// static 5731cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForSloppyArgumentsElementsArguments() { 5741cb0ef41Sopenharmony_ci FieldAccess access = { 5751cb0ef41Sopenharmony_ci kTaggedBase, SloppyArgumentsElements::kArgumentsOffset, 5761cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 5771cb0ef41Sopenharmony_ci Type::Any(), MachineType::TaggedPointer(), 5781cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 5791cb0ef41Sopenharmony_ci return access; 5801cb0ef41Sopenharmony_ci} 5811cb0ef41Sopenharmony_ci 5821cb0ef41Sopenharmony_ci// static 5831cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForPropertyArrayLengthAndHash() { 5841cb0ef41Sopenharmony_ci FieldAccess access = { 5851cb0ef41Sopenharmony_ci kTaggedBase, PropertyArray::kLengthAndHashOffset, 5861cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 5871cb0ef41Sopenharmony_ci Type::SignedSmall(), MachineType::TaggedSigned(), 5881cb0ef41Sopenharmony_ci kNoWriteBarrier}; 5891cb0ef41Sopenharmony_ci return access; 5901cb0ef41Sopenharmony_ci} 5911cb0ef41Sopenharmony_ci 5921cb0ef41Sopenharmony_ci// static 5931cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForDescriptorArrayEnumCache() { 5941cb0ef41Sopenharmony_ci FieldAccess access = { 5951cb0ef41Sopenharmony_ci kTaggedBase, DescriptorArray::kEnumCacheOffset, 5961cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 5971cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 5981cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 5991cb0ef41Sopenharmony_ci return access; 6001cb0ef41Sopenharmony_ci} 6011cb0ef41Sopenharmony_ci 6021cb0ef41Sopenharmony_ci// static 6031cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForMapBitField() { 6041cb0ef41Sopenharmony_ci FieldAccess access = { 6051cb0ef41Sopenharmony_ci kTaggedBase, Map::kBitFieldOffset, Handle<Name>(), 6061cb0ef41Sopenharmony_ci MaybeHandle<Map>(), TypeCache::Get()->kUint8, MachineType::Uint8(), 6071cb0ef41Sopenharmony_ci kNoWriteBarrier}; 6081cb0ef41Sopenharmony_ci return access; 6091cb0ef41Sopenharmony_ci} 6101cb0ef41Sopenharmony_ci 6111cb0ef41Sopenharmony_ci// static 6121cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForMapBitField2() { 6131cb0ef41Sopenharmony_ci FieldAccess access = { 6141cb0ef41Sopenharmony_ci kTaggedBase, Map::kBitField2Offset, Handle<Name>(), 6151cb0ef41Sopenharmony_ci MaybeHandle<Map>(), TypeCache::Get()->kUint8, MachineType::Uint8(), 6161cb0ef41Sopenharmony_ci kNoWriteBarrier}; 6171cb0ef41Sopenharmony_ci return access; 6181cb0ef41Sopenharmony_ci} 6191cb0ef41Sopenharmony_ci 6201cb0ef41Sopenharmony_ci// static 6211cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForMapBitField3() { 6221cb0ef41Sopenharmony_ci FieldAccess access = { 6231cb0ef41Sopenharmony_ci kTaggedBase, Map::kBitField3Offset, Handle<Name>(), 6241cb0ef41Sopenharmony_ci MaybeHandle<Map>(), TypeCache::Get()->kInt32, MachineType::Int32(), 6251cb0ef41Sopenharmony_ci kNoWriteBarrier}; 6261cb0ef41Sopenharmony_ci return access; 6271cb0ef41Sopenharmony_ci} 6281cb0ef41Sopenharmony_ci 6291cb0ef41Sopenharmony_ci// static 6301cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForMapDescriptors() { 6311cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, Map::kInstanceDescriptorsOffset, 6321cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 6331cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 6341cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 6351cb0ef41Sopenharmony_ci return access; 6361cb0ef41Sopenharmony_ci} 6371cb0ef41Sopenharmony_ci 6381cb0ef41Sopenharmony_ci// static 6391cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForMapInstanceType() { 6401cb0ef41Sopenharmony_ci FieldAccess access = { 6411cb0ef41Sopenharmony_ci kTaggedBase, Map::kInstanceTypeOffset, Handle<Name>(), 6421cb0ef41Sopenharmony_ci MaybeHandle<Map>(), TypeCache::Get()->kUint16, MachineType::Uint16(), 6431cb0ef41Sopenharmony_ci kNoWriteBarrier}; 6441cb0ef41Sopenharmony_ci return access; 6451cb0ef41Sopenharmony_ci} 6461cb0ef41Sopenharmony_ci 6471cb0ef41Sopenharmony_ci// static 6481cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForMapPrototype() { 6491cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, Map::kPrototypeOffset, 6501cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 6511cb0ef41Sopenharmony_ci Type::Any(), MachineType::TaggedPointer(), 6521cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 6531cb0ef41Sopenharmony_ci return access; 6541cb0ef41Sopenharmony_ci} 6551cb0ef41Sopenharmony_ci 6561cb0ef41Sopenharmony_ci// static 6571cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForMapNativeContext() { 6581cb0ef41Sopenharmony_ci FieldAccess access = { 6591cb0ef41Sopenharmony_ci kTaggedBase, Map::kConstructorOrBackPointerOrNativeContextOffset, 6601cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 6611cb0ef41Sopenharmony_ci Type::Any(), MachineType::TaggedPointer(), 6621cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 6631cb0ef41Sopenharmony_ci return access; 6641cb0ef41Sopenharmony_ci} 6651cb0ef41Sopenharmony_ci 6661cb0ef41Sopenharmony_ci// static 6671cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForModuleRegularExports() { 6681cb0ef41Sopenharmony_ci FieldAccess access = { 6691cb0ef41Sopenharmony_ci kTaggedBase, SourceTextModule::kRegularExportsOffset, 6701cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 6711cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 6721cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 6731cb0ef41Sopenharmony_ci return access; 6741cb0ef41Sopenharmony_ci} 6751cb0ef41Sopenharmony_ci 6761cb0ef41Sopenharmony_ci// static 6771cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForModuleRegularImports() { 6781cb0ef41Sopenharmony_ci FieldAccess access = { 6791cb0ef41Sopenharmony_ci kTaggedBase, SourceTextModule::kRegularImportsOffset, 6801cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 6811cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 6821cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 6831cb0ef41Sopenharmony_ci return access; 6841cb0ef41Sopenharmony_ci} 6851cb0ef41Sopenharmony_ci 6861cb0ef41Sopenharmony_ci// static 6871cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForNameRawHashField() { 6881cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, Name::kRawHashFieldOffset, 6891cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 6901cb0ef41Sopenharmony_ci Type::Unsigned32(), MachineType::Uint32(), 6911cb0ef41Sopenharmony_ci kNoWriteBarrier}; 6921cb0ef41Sopenharmony_ci return access; 6931cb0ef41Sopenharmony_ci} 6941cb0ef41Sopenharmony_ci 6951cb0ef41Sopenharmony_ci// static 6961cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForStringLength() { 6971cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 6981cb0ef41Sopenharmony_ci String::kLengthOffset, 6991cb0ef41Sopenharmony_ci Handle<Name>(), 7001cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 7011cb0ef41Sopenharmony_ci TypeCache::Get()->kStringLengthType, 7021cb0ef41Sopenharmony_ci MachineType::Uint32(), 7031cb0ef41Sopenharmony_ci kNoWriteBarrier}; 7041cb0ef41Sopenharmony_ci return access; 7051cb0ef41Sopenharmony_ci} 7061cb0ef41Sopenharmony_ci 7071cb0ef41Sopenharmony_ci// static 7081cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForConsStringFirst() { 7091cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, ConsString::kFirstOffset, 7101cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 7111cb0ef41Sopenharmony_ci Type::String(), MachineType::TaggedPointer(), 7121cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 7131cb0ef41Sopenharmony_ci return access; 7141cb0ef41Sopenharmony_ci} 7151cb0ef41Sopenharmony_ci 7161cb0ef41Sopenharmony_ci// static 7171cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForConsStringSecond() { 7181cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, ConsString::kSecondOffset, 7191cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 7201cb0ef41Sopenharmony_ci Type::String(), MachineType::TaggedPointer(), 7211cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 7221cb0ef41Sopenharmony_ci return access; 7231cb0ef41Sopenharmony_ci} 7241cb0ef41Sopenharmony_ci 7251cb0ef41Sopenharmony_ci// static 7261cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForThinStringActual() { 7271cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, ThinString::kActualOffset, 7281cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 7291cb0ef41Sopenharmony_ci Type::String(), MachineType::TaggedPointer(), 7301cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 7311cb0ef41Sopenharmony_ci return access; 7321cb0ef41Sopenharmony_ci} 7331cb0ef41Sopenharmony_ci 7341cb0ef41Sopenharmony_ci// static 7351cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForSlicedStringOffset() { 7361cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, SlicedString::kOffsetOffset, 7371cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 7381cb0ef41Sopenharmony_ci Type::SignedSmall(), MachineType::TaggedSigned(), 7391cb0ef41Sopenharmony_ci kNoWriteBarrier}; 7401cb0ef41Sopenharmony_ci return access; 7411cb0ef41Sopenharmony_ci} 7421cb0ef41Sopenharmony_ci 7431cb0ef41Sopenharmony_ci// static 7441cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForSlicedStringParent() { 7451cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, SlicedString::kParentOffset, 7461cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 7471cb0ef41Sopenharmony_ci Type::String(), MachineType::TaggedPointer(), 7481cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 7491cb0ef41Sopenharmony_ci return access; 7501cb0ef41Sopenharmony_ci} 7511cb0ef41Sopenharmony_ci 7521cb0ef41Sopenharmony_ci// static 7531cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForExternalStringResourceData() { 7541cb0ef41Sopenharmony_ci FieldAccess access = { 7551cb0ef41Sopenharmony_ci kTaggedBase, 7561cb0ef41Sopenharmony_ci ExternalString::kResourceDataOffset, 7571cb0ef41Sopenharmony_ci Handle<Name>(), 7581cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 7591cb0ef41Sopenharmony_ci Type::ExternalPointer(), 7601cb0ef41Sopenharmony_ci MachineType::Pointer(), 7611cb0ef41Sopenharmony_ci kNoWriteBarrier, 7621cb0ef41Sopenharmony_ci ConstFieldInfo::None(), 7631cb0ef41Sopenharmony_ci false, 7641cb0ef41Sopenharmony_ci#ifdef V8_SANDBOXED_EXTERNAL_POINTERS 7651cb0ef41Sopenharmony_ci kExternalStringResourceDataTag, 7661cb0ef41Sopenharmony_ci#endif 7671cb0ef41Sopenharmony_ci }; 7681cb0ef41Sopenharmony_ci return access; 7691cb0ef41Sopenharmony_ci} 7701cb0ef41Sopenharmony_ci 7711cb0ef41Sopenharmony_ci// static 7721cb0ef41Sopenharmony_ciElementAccess AccessBuilder::ForSeqOneByteStringCharacter() { 7731cb0ef41Sopenharmony_ci ElementAccess access = {kTaggedBase, SeqOneByteString::kHeaderSize, 7741cb0ef41Sopenharmony_ci TypeCache::Get()->kUint8, MachineType::Uint8(), 7751cb0ef41Sopenharmony_ci kNoWriteBarrier}; 7761cb0ef41Sopenharmony_ci return access; 7771cb0ef41Sopenharmony_ci} 7781cb0ef41Sopenharmony_ci 7791cb0ef41Sopenharmony_ci// static 7801cb0ef41Sopenharmony_ciElementAccess AccessBuilder::ForSeqTwoByteStringCharacter() { 7811cb0ef41Sopenharmony_ci ElementAccess access = {kTaggedBase, SeqTwoByteString::kHeaderSize, 7821cb0ef41Sopenharmony_ci TypeCache::Get()->kUint16, MachineType::Uint16(), 7831cb0ef41Sopenharmony_ci kNoWriteBarrier}; 7841cb0ef41Sopenharmony_ci return access; 7851cb0ef41Sopenharmony_ci} 7861cb0ef41Sopenharmony_ci 7871cb0ef41Sopenharmony_ci// static 7881cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSGlobalProxyNativeContext() { 7891cb0ef41Sopenharmony_ci FieldAccess access = { 7901cb0ef41Sopenharmony_ci kTaggedBase, JSGlobalProxy::kNativeContextOffset, 7911cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 7921cb0ef41Sopenharmony_ci Type::Internal(), MachineType::TaggedPointer(), 7931cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 7941cb0ef41Sopenharmony_ci return access; 7951cb0ef41Sopenharmony_ci} 7961cb0ef41Sopenharmony_ci 7971cb0ef41Sopenharmony_ci// static 7981cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSArrayIteratorIteratedObject() { 7991cb0ef41Sopenharmony_ci FieldAccess access = { 8001cb0ef41Sopenharmony_ci kTaggedBase, JSArrayIterator::kIteratedObjectOffset, 8011cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 8021cb0ef41Sopenharmony_ci Type::Receiver(), MachineType::TaggedPointer(), 8031cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 8041cb0ef41Sopenharmony_ci return access; 8051cb0ef41Sopenharmony_ci} 8061cb0ef41Sopenharmony_ci 8071cb0ef41Sopenharmony_ci// static 8081cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSArrayIteratorNextIndex() { 8091cb0ef41Sopenharmony_ci // In generic case, cap to 2^53-1 (per ToLength() in spec) via 8101cb0ef41Sopenharmony_ci // kPositiveSafeInteger 8111cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 8121cb0ef41Sopenharmony_ci JSArrayIterator::kNextIndexOffset, 8131cb0ef41Sopenharmony_ci Handle<Name>(), 8141cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 8151cb0ef41Sopenharmony_ci TypeCache::Get()->kPositiveSafeInteger, 8161cb0ef41Sopenharmony_ci MachineType::AnyTagged(), 8171cb0ef41Sopenharmony_ci kFullWriteBarrier}; 8181cb0ef41Sopenharmony_ci return access; 8191cb0ef41Sopenharmony_ci} 8201cb0ef41Sopenharmony_ci 8211cb0ef41Sopenharmony_ci// static 8221cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSArrayIteratorKind() { 8231cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 8241cb0ef41Sopenharmony_ci JSArrayIterator::kKindOffset, 8251cb0ef41Sopenharmony_ci Handle<Name>(), 8261cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 8271cb0ef41Sopenharmony_ci TypeCache::Get()->kJSArrayIteratorKindType, 8281cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 8291cb0ef41Sopenharmony_ci kNoWriteBarrier}; 8301cb0ef41Sopenharmony_ci return access; 8311cb0ef41Sopenharmony_ci} 8321cb0ef41Sopenharmony_ci 8331cb0ef41Sopenharmony_ci// static 8341cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSStringIteratorString() { 8351cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, JSStringIterator::kStringOffset, 8361cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 8371cb0ef41Sopenharmony_ci Type::String(), MachineType::TaggedPointer(), 8381cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 8391cb0ef41Sopenharmony_ci return access; 8401cb0ef41Sopenharmony_ci} 8411cb0ef41Sopenharmony_ci 8421cb0ef41Sopenharmony_ci// static 8431cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForJSStringIteratorIndex() { 8441cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 8451cb0ef41Sopenharmony_ci JSStringIterator::kIndexOffset, 8461cb0ef41Sopenharmony_ci Handle<Name>(), 8471cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 8481cb0ef41Sopenharmony_ci TypeCache::Get()->kStringLengthType, 8491cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 8501cb0ef41Sopenharmony_ci kNoWriteBarrier}; 8511cb0ef41Sopenharmony_ci return access; 8521cb0ef41Sopenharmony_ci} 8531cb0ef41Sopenharmony_ci 8541cb0ef41Sopenharmony_ci// static 8551cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForArgumentsLength() { 8561cb0ef41Sopenharmony_ci constexpr int offset = JSStrictArgumentsObject::kLengthOffset; 8571cb0ef41Sopenharmony_ci STATIC_ASSERT(offset == JSSloppyArgumentsObject::kLengthOffset); 8581cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, offset, 8591cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 8601cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 8611cb0ef41Sopenharmony_ci kFullWriteBarrier}; 8621cb0ef41Sopenharmony_ci return access; 8631cb0ef41Sopenharmony_ci} 8641cb0ef41Sopenharmony_ci 8651cb0ef41Sopenharmony_ci// static 8661cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForArgumentsCallee() { 8671cb0ef41Sopenharmony_ci FieldAccess access = { 8681cb0ef41Sopenharmony_ci kTaggedBase, JSSloppyArgumentsObject::kCalleeOffset, 8691cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 8701cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::AnyTagged(), 8711cb0ef41Sopenharmony_ci kFullWriteBarrier}; 8721cb0ef41Sopenharmony_ci return access; 8731cb0ef41Sopenharmony_ci} 8741cb0ef41Sopenharmony_ci 8751cb0ef41Sopenharmony_ci// static 8761cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForFixedArraySlot( 8771cb0ef41Sopenharmony_ci size_t index, WriteBarrierKind write_barrier_kind) { 8781cb0ef41Sopenharmony_ci int offset = FixedArray::OffsetOfElementAt(static_cast<int>(index)); 8791cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, offset, 8801cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 8811cb0ef41Sopenharmony_ci Type::Any(), MachineType::AnyTagged(), 8821cb0ef41Sopenharmony_ci write_barrier_kind}; 8831cb0ef41Sopenharmony_ci return access; 8841cb0ef41Sopenharmony_ci} 8851cb0ef41Sopenharmony_ci 8861cb0ef41Sopenharmony_ci// static 8871cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForFeedbackVectorSlot(int index) { 8881cb0ef41Sopenharmony_ci int offset = FeedbackVector::OffsetOfElementAt(index); 8891cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, offset, 8901cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 8911cb0ef41Sopenharmony_ci Type::Any(), MachineType::AnyTagged(), 8921cb0ef41Sopenharmony_ci kFullWriteBarrier}; 8931cb0ef41Sopenharmony_ci return access; 8941cb0ef41Sopenharmony_ci} 8951cb0ef41Sopenharmony_ci 8961cb0ef41Sopenharmony_ci// static 8971cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForWeakFixedArraySlot(int index) { 8981cb0ef41Sopenharmony_ci int offset = WeakFixedArray::OffsetOfElementAt(index); 8991cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, offset, 9001cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 9011cb0ef41Sopenharmony_ci Type::Any(), MachineType::AnyTagged(), 9021cb0ef41Sopenharmony_ci kFullWriteBarrier}; 9031cb0ef41Sopenharmony_ci return access; 9041cb0ef41Sopenharmony_ci} 9051cb0ef41Sopenharmony_ci// static 9061cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForCellValue() { 9071cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, Cell::kValueOffset, 9081cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 9091cb0ef41Sopenharmony_ci Type::Any(), MachineType::AnyTagged(), 9101cb0ef41Sopenharmony_ci kFullWriteBarrier}; 9111cb0ef41Sopenharmony_ci return access; 9121cb0ef41Sopenharmony_ci} 9131cb0ef41Sopenharmony_ci 9141cb0ef41Sopenharmony_ci// static 9151cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForScopeInfoFlags() { 9161cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, ScopeInfo::kFlagsOffset, 9171cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 9181cb0ef41Sopenharmony_ci Type::SignedSmall(), MachineType::TaggedSigned(), 9191cb0ef41Sopenharmony_ci kNoWriteBarrier}; 9201cb0ef41Sopenharmony_ci return access; 9211cb0ef41Sopenharmony_ci} 9221cb0ef41Sopenharmony_ci 9231cb0ef41Sopenharmony_ci// static 9241cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForContextSlot(size_t index) { 9251cb0ef41Sopenharmony_ci int offset = Context::OffsetOfElementAt(static_cast<int>(index)); 9261cb0ef41Sopenharmony_ci DCHECK_EQ(offset, 9271cb0ef41Sopenharmony_ci Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag); 9281cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, offset, 9291cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 9301cb0ef41Sopenharmony_ci Type::Any(), MachineType::AnyTagged(), 9311cb0ef41Sopenharmony_ci kFullWriteBarrier}; 9321cb0ef41Sopenharmony_ci return access; 9331cb0ef41Sopenharmony_ci} 9341cb0ef41Sopenharmony_ci 9351cb0ef41Sopenharmony_ci// static 9361cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForContextSlotKnownPointer(size_t index) { 9371cb0ef41Sopenharmony_ci int offset = Context::OffsetOfElementAt(static_cast<int>(index)); 9381cb0ef41Sopenharmony_ci DCHECK_EQ(offset, 9391cb0ef41Sopenharmony_ci Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag); 9401cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, offset, 9411cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 9421cb0ef41Sopenharmony_ci Type::Any(), MachineType::TaggedPointer(), 9431cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 9441cb0ef41Sopenharmony_ci return access; 9451cb0ef41Sopenharmony_ci} 9461cb0ef41Sopenharmony_ci 9471cb0ef41Sopenharmony_ci// static 9481cb0ef41Sopenharmony_ciElementAccess AccessBuilder::ForFixedArrayElement() { 9491cb0ef41Sopenharmony_ci ElementAccess access = {kTaggedBase, FixedArray::kHeaderSize, Type::Any(), 9501cb0ef41Sopenharmony_ci MachineType::AnyTagged(), kFullWriteBarrier}; 9511cb0ef41Sopenharmony_ci return access; 9521cb0ef41Sopenharmony_ci} 9531cb0ef41Sopenharmony_ci 9541cb0ef41Sopenharmony_ci// static 9551cb0ef41Sopenharmony_ciElementAccess AccessBuilder::ForWeakFixedArrayElement() { 9561cb0ef41Sopenharmony_ci ElementAccess const access = {kTaggedBase, WeakFixedArray::kHeaderSize, 9571cb0ef41Sopenharmony_ci Type::Any(), MachineType::AnyTagged(), 9581cb0ef41Sopenharmony_ci kFullWriteBarrier}; 9591cb0ef41Sopenharmony_ci return access; 9601cb0ef41Sopenharmony_ci} 9611cb0ef41Sopenharmony_ci 9621cb0ef41Sopenharmony_ci// static 9631cb0ef41Sopenharmony_ciElementAccess AccessBuilder::ForSloppyArgumentsElementsMappedEntry() { 9641cb0ef41Sopenharmony_ci ElementAccess access = { 9651cb0ef41Sopenharmony_ci kTaggedBase, SloppyArgumentsElements::kMappedEntriesOffset, Type::Any(), 9661cb0ef41Sopenharmony_ci MachineType::AnyTagged(), kFullWriteBarrier}; 9671cb0ef41Sopenharmony_ci return access; 9681cb0ef41Sopenharmony_ci} 9691cb0ef41Sopenharmony_ci 9701cb0ef41Sopenharmony_ci// statics 9711cb0ef41Sopenharmony_ciElementAccess AccessBuilder::ForFixedArrayElement(ElementsKind kind) { 9721cb0ef41Sopenharmony_ci ElementAccess access = {kTaggedBase, FixedArray::kHeaderSize, Type::Any(), 9731cb0ef41Sopenharmony_ci MachineType::AnyTagged(), kFullWriteBarrier}; 9741cb0ef41Sopenharmony_ci switch (kind) { 9751cb0ef41Sopenharmony_ci case PACKED_SMI_ELEMENTS: 9761cb0ef41Sopenharmony_ci access.type = Type::SignedSmall(); 9771cb0ef41Sopenharmony_ci access.machine_type = MachineType::TaggedSigned(); 9781cb0ef41Sopenharmony_ci access.write_barrier_kind = kNoWriteBarrier; 9791cb0ef41Sopenharmony_ci break; 9801cb0ef41Sopenharmony_ci case HOLEY_SMI_ELEMENTS: 9811cb0ef41Sopenharmony_ci access.type = TypeCache::Get()->kHoleySmi; 9821cb0ef41Sopenharmony_ci break; 9831cb0ef41Sopenharmony_ci case PACKED_ELEMENTS: 9841cb0ef41Sopenharmony_ci access.type = Type::NonInternal(); 9851cb0ef41Sopenharmony_ci break; 9861cb0ef41Sopenharmony_ci case HOLEY_ELEMENTS: 9871cb0ef41Sopenharmony_ci break; 9881cb0ef41Sopenharmony_ci case PACKED_DOUBLE_ELEMENTS: 9891cb0ef41Sopenharmony_ci access.type = Type::Number(); 9901cb0ef41Sopenharmony_ci access.write_barrier_kind = kNoWriteBarrier; 9911cb0ef41Sopenharmony_ci access.machine_type = MachineType::Float64(); 9921cb0ef41Sopenharmony_ci break; 9931cb0ef41Sopenharmony_ci case HOLEY_DOUBLE_ELEMENTS: 9941cb0ef41Sopenharmony_ci access.type = Type::NumberOrHole(); 9951cb0ef41Sopenharmony_ci access.write_barrier_kind = kNoWriteBarrier; 9961cb0ef41Sopenharmony_ci access.machine_type = MachineType::Float64(); 9971cb0ef41Sopenharmony_ci break; 9981cb0ef41Sopenharmony_ci default: 9991cb0ef41Sopenharmony_ci UNREACHABLE(); 10001cb0ef41Sopenharmony_ci } 10011cb0ef41Sopenharmony_ci return access; 10021cb0ef41Sopenharmony_ci} 10031cb0ef41Sopenharmony_ci 10041cb0ef41Sopenharmony_ci// static 10051cb0ef41Sopenharmony_ciElementAccess AccessBuilder::ForStackArgument() { 10061cb0ef41Sopenharmony_ci ElementAccess access = { 10071cb0ef41Sopenharmony_ci kUntaggedBase, 10081cb0ef41Sopenharmony_ci CommonFrameConstants::kFixedFrameSizeAboveFp - kSystemPointerSize, 10091cb0ef41Sopenharmony_ci Type::NonInternal(), MachineType::Pointer(), 10101cb0ef41Sopenharmony_ci WriteBarrierKind::kNoWriteBarrier}; 10111cb0ef41Sopenharmony_ci return access; 10121cb0ef41Sopenharmony_ci} 10131cb0ef41Sopenharmony_ci 10141cb0ef41Sopenharmony_ci// static 10151cb0ef41Sopenharmony_ciElementAccess AccessBuilder::ForFixedDoubleArrayElement() { 10161cb0ef41Sopenharmony_ci ElementAccess access = {kTaggedBase, FixedDoubleArray::kHeaderSize, 10171cb0ef41Sopenharmony_ci TypeCache::Get()->kFloat64, MachineType::Float64(), 10181cb0ef41Sopenharmony_ci kNoWriteBarrier}; 10191cb0ef41Sopenharmony_ci return access; 10201cb0ef41Sopenharmony_ci} 10211cb0ef41Sopenharmony_ci 10221cb0ef41Sopenharmony_ci// static 10231cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForEnumCacheKeys() { 10241cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, EnumCache::kKeysOffset, 10251cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 10261cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 10271cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 10281cb0ef41Sopenharmony_ci return access; 10291cb0ef41Sopenharmony_ci} 10301cb0ef41Sopenharmony_ci 10311cb0ef41Sopenharmony_ci// static 10321cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForEnumCacheIndices() { 10331cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, EnumCache::kIndicesOffset, 10341cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 10351cb0ef41Sopenharmony_ci Type::OtherInternal(), MachineType::TaggedPointer(), 10361cb0ef41Sopenharmony_ci kPointerWriteBarrier}; 10371cb0ef41Sopenharmony_ci return access; 10381cb0ef41Sopenharmony_ci} 10391cb0ef41Sopenharmony_ci 10401cb0ef41Sopenharmony_ci// static 10411cb0ef41Sopenharmony_ciElementAccess AccessBuilder::ForTypedArrayElement(ExternalArrayType type, 10421cb0ef41Sopenharmony_ci bool is_external) { 10431cb0ef41Sopenharmony_ci BaseTaggedness taggedness = is_external ? kUntaggedBase : kTaggedBase; 10441cb0ef41Sopenharmony_ci int header_size = is_external ? 0 : ByteArray::kHeaderSize; 10451cb0ef41Sopenharmony_ci switch (type) { 10461cb0ef41Sopenharmony_ci case kExternalInt8Array: { 10471cb0ef41Sopenharmony_ci ElementAccess access = {taggedness, header_size, Type::Signed32(), 10481cb0ef41Sopenharmony_ci MachineType::Int8(), kNoWriteBarrier}; 10491cb0ef41Sopenharmony_ci return access; 10501cb0ef41Sopenharmony_ci } 10511cb0ef41Sopenharmony_ci case kExternalUint8Array: 10521cb0ef41Sopenharmony_ci case kExternalUint8ClampedArray: { 10531cb0ef41Sopenharmony_ci ElementAccess access = {taggedness, header_size, Type::Unsigned32(), 10541cb0ef41Sopenharmony_ci MachineType::Uint8(), kNoWriteBarrier}; 10551cb0ef41Sopenharmony_ci return access; 10561cb0ef41Sopenharmony_ci } 10571cb0ef41Sopenharmony_ci case kExternalInt16Array: { 10581cb0ef41Sopenharmony_ci ElementAccess access = {taggedness, header_size, Type::Signed32(), 10591cb0ef41Sopenharmony_ci MachineType::Int16(), kNoWriteBarrier}; 10601cb0ef41Sopenharmony_ci return access; 10611cb0ef41Sopenharmony_ci } 10621cb0ef41Sopenharmony_ci case kExternalUint16Array: { 10631cb0ef41Sopenharmony_ci ElementAccess access = {taggedness, header_size, Type::Unsigned32(), 10641cb0ef41Sopenharmony_ci MachineType::Uint16(), kNoWriteBarrier}; 10651cb0ef41Sopenharmony_ci return access; 10661cb0ef41Sopenharmony_ci } 10671cb0ef41Sopenharmony_ci case kExternalInt32Array: { 10681cb0ef41Sopenharmony_ci ElementAccess access = {taggedness, header_size, Type::Signed32(), 10691cb0ef41Sopenharmony_ci MachineType::Int32(), kNoWriteBarrier}; 10701cb0ef41Sopenharmony_ci return access; 10711cb0ef41Sopenharmony_ci } 10721cb0ef41Sopenharmony_ci case kExternalUint32Array: { 10731cb0ef41Sopenharmony_ci ElementAccess access = {taggedness, header_size, Type::Unsigned32(), 10741cb0ef41Sopenharmony_ci MachineType::Uint32(), kNoWriteBarrier}; 10751cb0ef41Sopenharmony_ci return access; 10761cb0ef41Sopenharmony_ci } 10771cb0ef41Sopenharmony_ci case kExternalFloat32Array: { 10781cb0ef41Sopenharmony_ci ElementAccess access = {taggedness, header_size, Type::Number(), 10791cb0ef41Sopenharmony_ci MachineType::Float32(), kNoWriteBarrier}; 10801cb0ef41Sopenharmony_ci return access; 10811cb0ef41Sopenharmony_ci } 10821cb0ef41Sopenharmony_ci case kExternalFloat64Array: { 10831cb0ef41Sopenharmony_ci ElementAccess access = {taggedness, header_size, Type::Number(), 10841cb0ef41Sopenharmony_ci MachineType::Float64(), kNoWriteBarrier}; 10851cb0ef41Sopenharmony_ci return access; 10861cb0ef41Sopenharmony_ci } 10871cb0ef41Sopenharmony_ci case kExternalBigInt64Array: 10881cb0ef41Sopenharmony_ci case kExternalBigUint64Array: 10891cb0ef41Sopenharmony_ci // TODO(neis/jkummerow): Define appropriate types. 10901cb0ef41Sopenharmony_ci UNIMPLEMENTED(); 10911cb0ef41Sopenharmony_ci } 10921cb0ef41Sopenharmony_ci UNREACHABLE(); 10931cb0ef41Sopenharmony_ci} 10941cb0ef41Sopenharmony_ci 10951cb0ef41Sopenharmony_ci// static 10961cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForHashTableBaseNumberOfElements() { 10971cb0ef41Sopenharmony_ci FieldAccess access = { 10981cb0ef41Sopenharmony_ci kTaggedBase, 10991cb0ef41Sopenharmony_ci FixedArray::OffsetOfElementAt(HashTableBase::kNumberOfElementsIndex), 11001cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 11011cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 11021cb0ef41Sopenharmony_ci Type::SignedSmall(), 11031cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 11041cb0ef41Sopenharmony_ci kNoWriteBarrier}; 11051cb0ef41Sopenharmony_ci return access; 11061cb0ef41Sopenharmony_ci} 11071cb0ef41Sopenharmony_ci 11081cb0ef41Sopenharmony_ci// static 11091cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForHashTableBaseNumberOfDeletedElement() { 11101cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 11111cb0ef41Sopenharmony_ci FixedArray::OffsetOfElementAt( 11121cb0ef41Sopenharmony_ci HashTableBase::kNumberOfDeletedElementsIndex), 11131cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 11141cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 11151cb0ef41Sopenharmony_ci Type::SignedSmall(), 11161cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 11171cb0ef41Sopenharmony_ci kNoWriteBarrier}; 11181cb0ef41Sopenharmony_ci return access; 11191cb0ef41Sopenharmony_ci} 11201cb0ef41Sopenharmony_ci 11211cb0ef41Sopenharmony_ci// static 11221cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForHashTableBaseCapacity() { 11231cb0ef41Sopenharmony_ci FieldAccess access = { 11241cb0ef41Sopenharmony_ci kTaggedBase, 11251cb0ef41Sopenharmony_ci FixedArray::OffsetOfElementAt(HashTableBase::kCapacityIndex), 11261cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 11271cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 11281cb0ef41Sopenharmony_ci Type::SignedSmall(), 11291cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 11301cb0ef41Sopenharmony_ci kNoWriteBarrier}; 11311cb0ef41Sopenharmony_ci return access; 11321cb0ef41Sopenharmony_ci} 11331cb0ef41Sopenharmony_ci 11341cb0ef41Sopenharmony_ci// static 11351cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForOrderedHashMapOrSetNextTable() { 11361cb0ef41Sopenharmony_ci // TODO(turbofan): This will be redundant with the HashTableBase 11371cb0ef41Sopenharmony_ci // methods above once the hash table unification is done. 11381cb0ef41Sopenharmony_ci STATIC_ASSERT(OrderedHashMap::NextTableOffset() == 11391cb0ef41Sopenharmony_ci OrderedHashSet::NextTableOffset()); 11401cb0ef41Sopenharmony_ci FieldAccess const access = { 11411cb0ef41Sopenharmony_ci kTaggedBase, OrderedHashMap::NextTableOffset(), 11421cb0ef41Sopenharmony_ci MaybeHandle<Name>(), MaybeHandle<Map>(), 11431cb0ef41Sopenharmony_ci Type::Any(), MachineType::AnyTagged(), 11441cb0ef41Sopenharmony_ci kFullWriteBarrier}; 11451cb0ef41Sopenharmony_ci return access; 11461cb0ef41Sopenharmony_ci} 11471cb0ef41Sopenharmony_ci 11481cb0ef41Sopenharmony_ci// static 11491cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForOrderedHashMapOrSetNumberOfBuckets() { 11501cb0ef41Sopenharmony_ci // TODO(turbofan): This will be redundant with the HashTableBase 11511cb0ef41Sopenharmony_ci // methods above once the hash table unification is done. 11521cb0ef41Sopenharmony_ci STATIC_ASSERT(OrderedHashMap::NumberOfBucketsOffset() == 11531cb0ef41Sopenharmony_ci OrderedHashSet::NumberOfBucketsOffset()); 11541cb0ef41Sopenharmony_ci FieldAccess const access = {kTaggedBase, 11551cb0ef41Sopenharmony_ci OrderedHashMap::NumberOfBucketsOffset(), 11561cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 11571cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 11581cb0ef41Sopenharmony_ci TypeCache::Get()->kFixedArrayLengthType, 11591cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 11601cb0ef41Sopenharmony_ci kNoWriteBarrier}; 11611cb0ef41Sopenharmony_ci return access; 11621cb0ef41Sopenharmony_ci} 11631cb0ef41Sopenharmony_ci 11641cb0ef41Sopenharmony_ci// static 11651cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForOrderedHashMapOrSetNumberOfDeletedElements() { 11661cb0ef41Sopenharmony_ci // TODO(turbofan): This will be redundant with the HashTableBase 11671cb0ef41Sopenharmony_ci // methods above once the hash table unification is done. 11681cb0ef41Sopenharmony_ci STATIC_ASSERT(OrderedHashMap::NumberOfDeletedElementsOffset() == 11691cb0ef41Sopenharmony_ci OrderedHashSet::NumberOfDeletedElementsOffset()); 11701cb0ef41Sopenharmony_ci FieldAccess const access = {kTaggedBase, 11711cb0ef41Sopenharmony_ci OrderedHashMap::NumberOfDeletedElementsOffset(), 11721cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 11731cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 11741cb0ef41Sopenharmony_ci TypeCache::Get()->kFixedArrayLengthType, 11751cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 11761cb0ef41Sopenharmony_ci kNoWriteBarrier}; 11771cb0ef41Sopenharmony_ci return access; 11781cb0ef41Sopenharmony_ci} 11791cb0ef41Sopenharmony_ci 11801cb0ef41Sopenharmony_ci// static 11811cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForOrderedHashMapOrSetNumberOfElements() { 11821cb0ef41Sopenharmony_ci // TODO(turbofan): This will be redundant with the HashTableBase 11831cb0ef41Sopenharmony_ci // methods above once the hash table unification is done. 11841cb0ef41Sopenharmony_ci STATIC_ASSERT(OrderedHashMap::NumberOfElementsOffset() == 11851cb0ef41Sopenharmony_ci OrderedHashSet::NumberOfElementsOffset()); 11861cb0ef41Sopenharmony_ci FieldAccess const access = {kTaggedBase, 11871cb0ef41Sopenharmony_ci OrderedHashMap::NumberOfElementsOffset(), 11881cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 11891cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 11901cb0ef41Sopenharmony_ci TypeCache::Get()->kFixedArrayLengthType, 11911cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 11921cb0ef41Sopenharmony_ci kNoWriteBarrier}; 11931cb0ef41Sopenharmony_ci return access; 11941cb0ef41Sopenharmony_ci} 11951cb0ef41Sopenharmony_ci 11961cb0ef41Sopenharmony_ci// static 11971cb0ef41Sopenharmony_ciElementAccess AccessBuilder::ForOrderedHashMapEntryValue() { 11981cb0ef41Sopenharmony_ci ElementAccess const access = {kTaggedBase, 11991cb0ef41Sopenharmony_ci OrderedHashMap::HashTableStartOffset() + 12001cb0ef41Sopenharmony_ci OrderedHashMap::kValueOffset * kTaggedSize, 12011cb0ef41Sopenharmony_ci Type::Any(), MachineType::AnyTagged(), 12021cb0ef41Sopenharmony_ci kFullWriteBarrier}; 12031cb0ef41Sopenharmony_ci return access; 12041cb0ef41Sopenharmony_ci} 12051cb0ef41Sopenharmony_ci 12061cb0ef41Sopenharmony_ci// static 12071cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForDictionaryNextEnumerationIndex() { 12081cb0ef41Sopenharmony_ci FieldAccess access = { 12091cb0ef41Sopenharmony_ci kTaggedBase, 12101cb0ef41Sopenharmony_ci FixedArray::OffsetOfElementAt(NameDictionary::kNextEnumerationIndexIndex), 12111cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 12121cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 12131cb0ef41Sopenharmony_ci Type::SignedSmall(), 12141cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 12151cb0ef41Sopenharmony_ci kNoWriteBarrier}; 12161cb0ef41Sopenharmony_ci return access; 12171cb0ef41Sopenharmony_ci} 12181cb0ef41Sopenharmony_ci 12191cb0ef41Sopenharmony_ci// static 12201cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForDictionaryObjectHashIndex() { 12211cb0ef41Sopenharmony_ci FieldAccess access = { 12221cb0ef41Sopenharmony_ci kTaggedBase, 12231cb0ef41Sopenharmony_ci FixedArray::OffsetOfElementAt(NameDictionary::kObjectHashIndex), 12241cb0ef41Sopenharmony_ci MaybeHandle<Name>(), 12251cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 12261cb0ef41Sopenharmony_ci Type::SignedSmall(), 12271cb0ef41Sopenharmony_ci MachineType::TaggedSigned(), 12281cb0ef41Sopenharmony_ci kNoWriteBarrier}; 12291cb0ef41Sopenharmony_ci return access; 12301cb0ef41Sopenharmony_ci} 12311cb0ef41Sopenharmony_ci 12321cb0ef41Sopenharmony_ci// static 12331cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForFeedbackCellInterruptBudget() { 12341cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 12351cb0ef41Sopenharmony_ci FeedbackCell::kInterruptBudgetOffset, 12361cb0ef41Sopenharmony_ci Handle<Name>(), 12371cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 12381cb0ef41Sopenharmony_ci TypeCache::Get()->kInt32, 12391cb0ef41Sopenharmony_ci MachineType::Int32(), 12401cb0ef41Sopenharmony_ci kNoWriteBarrier}; 12411cb0ef41Sopenharmony_ci return access; 12421cb0ef41Sopenharmony_ci} 12431cb0ef41Sopenharmony_ci 12441cb0ef41Sopenharmony_ci// static 12451cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForFeedbackVectorInvocationCount() { 12461cb0ef41Sopenharmony_ci FieldAccess access = {kTaggedBase, 12471cb0ef41Sopenharmony_ci FeedbackVector::kInvocationCountOffset, 12481cb0ef41Sopenharmony_ci Handle<Name>(), 12491cb0ef41Sopenharmony_ci MaybeHandle<Map>(), 12501cb0ef41Sopenharmony_ci TypeCache::Get()->kInt32, 12511cb0ef41Sopenharmony_ci MachineType::Int32(), 12521cb0ef41Sopenharmony_ci kNoWriteBarrier}; 12531cb0ef41Sopenharmony_ci return access; 12541cb0ef41Sopenharmony_ci} 12551cb0ef41Sopenharmony_ci 12561cb0ef41Sopenharmony_ci// static 12571cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForFeedbackVectorFlags() { 12581cb0ef41Sopenharmony_ci FieldAccess access = { 12591cb0ef41Sopenharmony_ci kTaggedBase, FeedbackVector::kFlagsOffset, Handle<Name>(), 12601cb0ef41Sopenharmony_ci MaybeHandle<Map>(), TypeCache::Get()->kUint32, MachineType::Uint32(), 12611cb0ef41Sopenharmony_ci kNoWriteBarrier}; 12621cb0ef41Sopenharmony_ci return access; 12631cb0ef41Sopenharmony_ci} 12641cb0ef41Sopenharmony_ci 12651cb0ef41Sopenharmony_ci// static 12661cb0ef41Sopenharmony_ciFieldAccess AccessBuilder::ForFeedbackVectorClosureFeedbackCellArray() { 12671cb0ef41Sopenharmony_ci FieldAccess access = { 12681cb0ef41Sopenharmony_ci kTaggedBase, FeedbackVector::kClosureFeedbackCellArrayOffset, 12691cb0ef41Sopenharmony_ci Handle<Name>(), MaybeHandle<Map>(), 12701cb0ef41Sopenharmony_ci Type::Any(), MachineType::TaggedPointer(), 12711cb0ef41Sopenharmony_ci kFullWriteBarrier}; 12721cb0ef41Sopenharmony_ci return access; 12731cb0ef41Sopenharmony_ci} 12741cb0ef41Sopenharmony_ci 12751cb0ef41Sopenharmony_ci} // namespace compiler 12761cb0ef41Sopenharmony_ci} // namespace internal 12771cb0ef41Sopenharmony_ci} // namespace v8 1278