5#ifndef V8_WASM_WASM_OBJECTS_H_
6#define V8_WASM_WASM_OBJECTS_H_
8#if !V8_ENABLE_WEBASSEMBLY
9#error This header should only be included if WebAssembly is enabled.
54class SeqOneByteString;
55class StructBodyDescriptor;
56class WasmCapiFunction;
57class WasmExceptionTag;
58class WasmExportedFunction;
59class WasmExternalFunction;
62class WasmModuleObject;
66template <
typename CppType>
68template <
typename CppType>
71#include "torque-generated/src/wasm/wasm-objects-tq.inc"
73#define DECL_OPTIONAL_ACCESSORS(name, type) \
74 DECL_GETTER(has_##name, bool) \
75 DECL_ACCESSORS(name, type)
82 int target_func_index);
87#if V8_ENABLE_DRUMBRAKE
88 int target_func_index() {
return target_func_index_; }
95#if V8_ENABLE_DRUMBRAKE
96 int target_func_index_;
135#
if V8_ENABLE_DRUMBRAKE
137 int exported_function_index
146#if V8_ENABLE_DRUMBRAKE
147 int function_index_in_called_module();
159 :
public TorqueGeneratedWasmModuleObject<WasmModuleObject, JSObject> {
207#if V8_ENABLE_SANDBOX || DEBUG
215 :
public TorqueGeneratedWasmTableObject<WasmTableObject, JSObject> {
217 class BodyDescriptor;
242 uint32_t initial,
bool has_maximum, uint64_t maximum,
277#
if V8_ENABLE_DRUMBRAKE
279 int target_func_index
302 bool* is_valid,
bool* is_null,
318 :
public TorqueGeneratedWasmMemoryMapDescriptor<WasmMemoryMapDescriptor,
336 class BodyDescriptor;
343 :
public TorqueGeneratedWasmMemoryObject<WasmMemoryObject, JSObject> {
345 class BodyDescriptor;
358 int memory_index_in_instance);
400 std::shared_ptr<BackingStore> new_backing_store);
428 :
public TorqueGeneratedWasmGlobalObject<WasmGlobalObject, JSObject> {
430 class BodyDescriptor;
444 int32_t
offset,
bool is_mutable);
455 inline void SetI32(int32_t value);
456 inline void SetI64(int64_t value);
457 inline void SetF32(
float value);
458 inline void SetF64(
double value);
478#if V8_ENABLE_DRUMBRAKE
489#if V8_ENABLE_DRUMBRAKE
525 inline
void clear_padding();
528 inline uint8_t* memory_base(
int memory_index) const;
529 inline
size_t memory_size(
int memory_index) const;
531 inline
wasm::NativeModule* native_module() const;
541#define FIELD_LIST(V) \
544 V(kProtectedDispatchTable0Offset, kTaggedSize) \
545 V(kProtectedDispatchTableForImportsOffset, kTaggedSize) \
546 V(kImportedMutableGlobalsOffset, kTaggedSize) \
547 IF_WASM_DRUMBRAKE(V, kImportedFunctionIndicesOffset, kTaggedSize) \
549 V(kOptionalPaddingOffset, POINTER_SIZE_PADDING(kOptionalPaddingOffset)) \
550 V(kMemory0StartOffset, kSystemPointerSize) \
551 V(kMemory0SizeOffset, kSizetSize) \
552 V(kGlobalsStartOffset, kSystemPointerSize) \
553 V(kJumpTableStartOffset, kSystemPointerSize) \
556 V(kNewAllocationLimitAddressOffset, kSystemPointerSize) \
557 V(kNewAllocationTopAddressOffset, kSystemPointerSize) \
558 V(kOldAllocationLimitAddressOffset, kSystemPointerSize) \
559 V(kOldAllocationTopAddressOffset, kSystemPointerSize) \
560 V(kHookOnFunctionCallAddressOffset, kSystemPointerSize) \
561 V(kTieringBudgetArrayOffset, kSystemPointerSize) \
562 V(kStressDeoptCounterOffset, kSystemPointerSize) \
564 V(kProtectedMemoryBasesAndSizesOffset, kTaggedSize) \
565 V(kDataSegmentStartsOffset, kTaggedSize) \
566 V(kDataSegmentSizesOffset, kTaggedSize) \
567 V(kElementSegmentsOffset, kTaggedSize) \
568 V(kInstanceObjectOffset, kTaggedSize) \
569 V(kNativeContextOffset, kTaggedSize) \
570 V(kProtectedSharedPartOffset, kTaggedSize) \
571 V(kMemoryObjectsOffset, kTaggedSize) \
572 V(kUntaggedGlobalsBufferOffset, kTaggedSize) \
573 V(kTaggedGlobalsBufferOffset, kTaggedSize) \
574 V(kImportedMutableGlobalsBuffersOffset, kTaggedSize) \
575 IF_WASM_DRUMBRAKE(V, kInterpreterObjectOffset, kTaggedSize) \
576 V(kTablesOffset, kTaggedSize) \
577 V(kProtectedDispatchTablesOffset, kTaggedSize) \
578 V(kTagsTableOffset, kTaggedSize) \
579 V(kFuncRefsOffset, kTaggedSize) \
580 V(kManagedObjectMapsOffset, kTaggedSize) \
581 V(kFeedbackVectorsOffset, kTaggedSize) \
582 V(kWellKnownImportsOffset, kTaggedSize) \
583 V(kProtectedManagedNativeModuleOffset, kTaggedSize) \
584 V(kBreakOnEntryOffset, kUInt8Size) \
586 V(kHeaderPaddingOffset, POINTER_SIZE_PADDING(kHeaderPaddingOffset)) \
591 static_assert(
IsAligned(kHeaderSize, kTaggedSize));
596#define ASSERT_FIELD_ALIGNED(offset, size) \
597 static_assert(size == 0 || IsAligned(offset, size) || \
598 (COMPRESS_POINTERS_BOOL && (size == kSystemPointerSize) && \
599 IsAligned(offset, kTaggedSize)));
601#undef ASSERT_FIELD_ALIGNED
606#define WASM_TAGGED_INSTANCE_DATA_FIELDS(V) \
607 V(kInstanceObjectOffset, "instance_object") \
608 V(kNativeContextOffset, "native_context") \
609 V(kMemoryObjectsOffset, "memory_objects") \
610 V(kUntaggedGlobalsBufferOffset, "untagged_globals_buffer") \
611 V(kTaggedGlobalsBufferOffset, "tagged_globals_buffer") \
612 V(kImportedMutableGlobalsBuffersOffset, "imported_mutable_globals_buffers") \
613 IF_WASM_DRUMBRAKE(V, kInterpreterObjectOffset, "interpreter_object") \
614 V(kTablesOffset, "tables") \
615 V(kTagsTableOffset, "tags_table") \
616 V(kFuncRefsOffset, "func_refs") \
617 V(kManagedObjectMapsOffset, "managed_object_maps") \
618 V(kFeedbackVectorsOffset, "feedback_vectors") \
619 V(kWellKnownImportsOffset, "well_known_imports") \
620 V(kImportedMutableGlobalsOffset, "imported_mutable_globals") \
621 IF_WASM_DRUMBRAKE(V, kImportedFunctionIndicesOffset, \
622 "imported_function_indices") \
623 V(kDataSegmentStartsOffset, "data_segment_starts") \
624 V(kDataSegmentSizesOffset, "data_segment_sizes") \
625 V(kElementSegmentsOffset, "element_segments")
626#define WASM_PROTECTED_INSTANCE_DATA_FIELDS(V) \
627 V(kProtectedSharedPartOffset, "shared_part") \
628 V(kProtectedMemoryBasesAndSizesOffset, "memory_bases_and_sizes") \
629 V(kProtectedDispatchTable0Offset, "dispatch_table0") \
630 V(kProtectedDispatchTablesOffset, "dispatch_tables") \
631 V(kProtectedDispatchTableForImportsOffset, "dispatch_table_for_imports") \
632 V(kProtectedManagedNativeModuleOffset, "managed_native_module")
634#define WASM_INSTANCE_FIELD_OFFSET(offset, _) offset,
635#define WASM_INSTANCE_FIELD_NAME(_, name) name,
637#if V8_ENABLE_DRUMBRAKE
638 static constexpr size_t kWasmInterpreterAdditionalFields = 2;
640 static constexpr size_t kWasmInterpreterAdditionalFields = 0;
642 static constexpr size_t kTaggedFieldsCount =
643 16 + kWasmInterpreterAdditionalFields;
645 static constexpr std::array<uint16_t, kTaggedFieldsCount>
646 kTaggedFieldOffsets = {
648 static constexpr std::array<const char*, kTaggedFieldsCount>
649 kTaggedFieldNames = {
651 static constexpr std::array<uint16_t, 6> kProtectedFieldOffsets = {
653 static constexpr std::array<const char*, 6> kProtectedFieldNames = {
656#undef WASM_INSTANCE_FIELD_OFFSET
657#undef WASM_INSTANCE_FIELD_NAME
658#undef WASM_TAGGED_INSTANCE_DATA_FIELDS
659#undef WASM_PROTECTED_INSTANCE_DATA_FIELDS
661 static_assert(kTaggedFieldOffsets.size() == kTaggedFieldNames.size(),
662 "every tagged field offset needs a name");
663 static_assert(kProtectedFieldOffsets.size() == kProtectedFieldNames.size(),
664 "every protected field offset needs a name");
666 void SetRawMemory(
int memory_index, uint8_t* mem_start,
size_t mem_size);
668#if V8_ENABLE_DRUMBRAKE
683 inline bool has_dispatch_table(uint32_t table_index);
686 static bool CopyTableEntries(
689 uint32_t table_dst_index, uint32_t table_src_index, uint32_t dst,
695 static std::optional<MessageTemplate> InitTableEntries(
699 uint32_t table_index, uint32_t segment_index, uint32_t dst, uint32_t src,
702 class BodyDescriptor;
724 std::pair<Tagged<FixedArray>, uint32_t> GetGlobalBufferAndIndex(
740 :
public TorqueGeneratedWasmInstanceObject<WasmInstanceObject, JSObject> {
746 class BodyDescriptor;
756 class BodyDescriptor;
798 uint64_t signature_hash);
817#if V8_ENABLE_DRUMBRAKE
818 static const uint32_t kInvalidFunctionIndex = UINT_MAX;
823 class BodyDescriptor;
825 static constexpr size_t kLengthOffset = kHeaderSize;
826 static constexpr size_t kCapacityOffset = kLengthOffset +
kUInt32Size;
827 static constexpr size_t kProtectedOffheapDataOffset =
829 static constexpr size_t kProtectedUsesOffset =
831 static constexpr size_t kTableTypeOffset = kProtectedUsesOffset +
kTaggedSize;
833 static constexpr size_t kEntriesOffset =
838#if V8_ENABLE_DRUMBRAKE
843 static constexpr size_t kTargetBias = 0;
844#if V8_ENABLE_DRUMBRAKE
847 static constexpr size_t kFunctionIndexBias = kTargetBias;
850 static constexpr size_t kSigBias = kImplicitArgBias +
kTaggedSize;
851 static constexpr size_t kEntryPaddingOffset = kSigBias +
kInt32Size;
852 static constexpr size_t kEntryPaddingBytes =
854 static_assert(kEntryPaddingBytes == 4 || kEntryPaddingBytes == 0);
855 static constexpr size_t kEntrySize = kEntryPaddingOffset + kEntryPaddingBytes;
858 static_assert(
IsAligned(kEntriesOffset, kTaggedSize));
859 static_assert(
IsAligned(kEntrySize, kTaggedSize));
860 static_assert(
IsAligned(kTargetBias, kTaggedSize));
861 static_assert(
IsAligned(kImplicitArgBias, kTaggedSize));
868 static constexpr int kMaxLength = (
kMaxInt - kEntriesOffset) / kEntrySize;
872 return kEntriesOffset + length * kEntrySize;
877 return SizeFor(index);
882 inline void clear_entry_padding(
int index);
885 inline int length()
const;
889 inline int capacity()
const;
916#
if V8_ENABLE_DRUMBRAKE
917 uint32_t function_index,
928 uint64_t signature_hash,
929#
if V8_ENABLE_DRUMBRAKE
930 uint32_t function_index,
935#if V8_ENABLE_DRUMBRAKE
936 inline uint32_t function_index(
int index)
const;
988 enum { kTagIndex, kValuesIndex, kInObjectFieldCount };
989 static constexpr int kSize =
999 uint32_t* encoded_index, uint32_t value);
1003 uint32_t* encoded_index, uint64_t value);
1007 uint32_t* encoded_index, uint32_t* value);
1011 uint32_t* encoded_index, uint64_t* value);
1013bool UseGenericWasmToJSWrapper(
wasm::ImportCallKind
kind,
1014 const
wasm::CanonicalSig* sig,
1056 Address call_target,
1065 bool MatchesSignature(
1086 :
public TorqueGeneratedWasmFunctionData<WasmFunctionData,
1087 ExposedTrustedObject> {
1121 inline bool is_promising()
const;
1150 static constexpr
int kInvalidCallOrigin = 0;
1167 static constexpr
int kTableSlotBits = 24;
1168 static_assert(
wasm::kV8MaxWasmTableSize < (1u << kTableSlotBits));
1210 kWasmInternalFunctionIndirectPointerTag>>;
1229 : signature_hash_(signature_hash) {}
1252 bool MatchesSignature(
1297 static constexpr int kOnEntryBreakpointPosition = -1;
1364 :
public TorqueGeneratedWasmExceptionTag<WasmExceptionTag, Struct> {
1376class AsmWasmData :
public TorqueGeneratedAsmWasmData<AsmWasmData, Struct> {
1379 Isolate* isolate, std::shared_ptr<wasm::NativeModule> native_module,
1398 class BodyDescriptor;
1403class WasmObject :
public TorqueGeneratedWasmObject<WasmObject, JSReceiver> {
1413 template <
typename ElementType>
1419class WasmStruct :
public TorqueGeneratedWasmStruct<WasmStruct, WasmObject> {
1425 static inline void EncodeInstanceSizeInMap(
int instance_size,
1427 static inline int DecodeInstanceSizeFromMap(
Tagged<Map> map);
1430 inline Address RawFieldAddress(
int raw_offset);
1446 class BodyDescriptor;
1454 static_assert(Smi::kMaxValue <=
kMaxInt);
1455 DCHECK_LE(type->total_fields_size(), Smi::kMaxValue - kHeaderSize);
1456 return std::max(kHeaderSize +
static_cast<int>(type->total_fields_size()),
1463 static_assert(Smi::kMaxValue <=
kMaxInt);
1464 DCHECK_LE(type->total_fields_size(), Smi::kMaxValue - kHeaderSize);
1465 return std::max(kHeaderSize +
static_cast<int>(type->total_fields_size()),
1469class WasmArray :
public TorqueGeneratedWasmArray<WasmArray, WasmObject> {
1477 inline ObjectSlot ElementSlot(uint32_t index);
1480 static inline int SizeFor(
Tagged<Map> map,
int length);
1491 inline uint32_t element_offset(uint32_t index);
1492 inline Address ElementAddress(uint32_t index);
1494 static constexpr int MaxLength(uint32_t element_size_bytes) {
1502 return MaxLength(type->element_type().value_kind_size());
1505 static inline void EncodeElementSizeInMap(
int element_size,
Tagged<Map> map);
1506 static inline int DecodeElementSizeFromMap(
Tagged<Map> map);
1510 class BodyDescriptor;
1518 :
public TorqueGeneratedWasmSuspenderObject<WasmSuspenderObject,
1531 :
public TorqueGeneratedWasmSuspendingObject<WasmSuspendingObject,
1540class WasmNull :
public TorqueGeneratedWasmNull<WasmNull, HeapObject> {
1542#if V8_STATIC_ROOTS_BOOL || V8_STATIC_ROOTS_GENERATION_BOOL
1544 static constexpr int kSize = 64 * KB +
kTaggedSize;
1548 static_assert(kSize >=
1549 WasmStruct::kHeaderSize +
1550 (wasm::kMaxStructFieldIndexForImplicitNullCheck + 1) *
1553 Address payload() {
return ptr() + kHeaderSize -
kHeapObjectTag; }
1554 static constexpr size_t kPayloadSize = kSize -
kTaggedSize;
1561 class BodyDescriptor;
1566#undef DECL_OPTIONAL_ACCESSORS
1590 CanonicalValueType expected,
1591 const char** error_message);
1598 const char** error_message);
constexpr int kMinimumOSPageSize
int32_t WasmFileDescriptor
DirectHandle< TrustedObject > implicit_arg()
DirectHandle< TrustedObject > implicit_arg_
WasmCodePointer call_target()
WasmCodePointer call_target_
Tagged< JSReceiver > callable()
ImportedFunctionEntry(DirectHandle< WasmTrustedInstanceData >, int index)
Tagged< Object > implicit_arg()
Tagged< Object > maybe_callable()
V8_EXPORT_PRIVATE void SetCompiledWasmToJs(Isolate *, DirectHandle< JSReceiver > callable, wasm::WasmCode *wasm_to_js_wrapper, wasm::Suspend suspend, const wasm::CanonicalSig *sig, wasm::CanonicalTypeIndex sig_id)
void SetGenericWasmToJs(Isolate *, DirectHandle< JSReceiver > callable, wasm::Suspend suspend, const wasm::CanonicalSig *sig, wasm::CanonicalTypeIndex sig_id)
DirectHandle< WasmTrustedInstanceData > const instance_data_
void SetWasmToWasm(Tagged< WasmTrustedInstanceData > target_instance_object, WasmCodePointer call_target, wasm::CanonicalTypeIndex sig_id)
static int MaxLength(const wasm::ArrayType *type)
static constexpr int MaxLength(uint32_t element_size_bytes)
OBJECT_CONSTRUCTORS(WasmCapiFunction, JSFunction)
std::unordered_map< int, WrapperEntry > wrappers_
WasmDispatchTableData()=default
static constexpr int SizeFor(int length)
DECL_PROTECTED_POINTER_ACCESSORS(protected_offheap_data, TrustedManaged< WasmDispatchTableData >) inline WasmDispatchTableData *offheap_data() const
static constexpr int OffsetOf(int index)
OBJECT_CONSTRUCTORS(WasmExportedFunction, JSFunction)
OBJECT_CONSTRUCTORS(WasmExternalFunction, JSFunction)
void SetF64(double value)
uint8_t * GetS128RawBytes()
void SetI64(int64_t value)
DirectHandle< Object > GetRef()
void SetI32(int32_t value)
void SetRef(DirectHandle< Object > value)
static V8_EXPORT_PRIVATE MaybeDirectHandle< WasmGlobalObject > New(Isolate *isolate, DirectHandle< WasmTrustedInstanceData > instance_object, MaybeDirectHandle< JSArrayBuffer > maybe_untagged_buffer, MaybeDirectHandle< FixedArray > maybe_tagged_buffer, wasm::ValueType type, int32_t offset, bool is_mutable)
const wasm::WasmModule * module() const
const uint64_t signature_hash_
OffheapData(uint64_t signature_hash)
DECL_PROTECTED_POINTER_ACCESSORS(protected_offheap_data, TrustedManaged< OffheapData >) inline OffheapData *offheap_data() const
OBJECT_CONSTRUCTORS(WasmJSFunction, JSFunction)
V8_EXPORT_PRIVATE size_t MapDescriptor(DirectHandle< WasmMemoryObject > memory, size_t offset)
V8_EXPORT_PRIVATE bool UnmapDescriptor()
static V8_EXPORT_PRIVATE MaybeDirectHandle< WasmMemoryMapDescriptor > NewFromAnonymous(Isolate *isolate, size_t length)
static V8_EXPORT_PRIVATE DirectHandle< WasmMemoryMapDescriptor > NewFromFileDescriptor(Isolate *isolate, v8::WasmMemoryMapDescriptor::WasmFileDescriptor file_descriptor)
static DirectHandle< JSArrayBuffer > RefreshSharedBuffer(Isolate *isolate, DirectHandle< WasmMemoryObject > memory, ResizableFlag resizable_by_js)
static DirectHandle< JSArrayBuffer > ToFixedLengthBuffer(Isolate *isolate, DirectHandle< WasmMemoryObject > memory)
static DirectHandle< JSArrayBuffer > ToResizableBuffer(Isolate *isolate, DirectHandle< WasmMemoryObject > memory)
static DirectHandle< JSArrayBuffer > RefreshBuffer(Isolate *isolate, DirectHandle< WasmMemoryObject > memory, std::shared_ptr< BackingStore > new_backing_store)
static constexpr int kNoMaximum
static V8_EXPORT_PRIVATE void UseInInstance(Isolate *isolate, DirectHandle< WasmMemoryObject > memory, DirectHandle< WasmTrustedInstanceData > trusted_instance_data, DirectHandle< WasmTrustedInstanceData > shared_trusted_instance_data, int memory_index_in_instance)
void SetNewBuffer(Isolate *isolate, Tagged< JSArrayBuffer > new_buffer)
static V8_EXPORT_PRIVATE int32_t Grow(Isolate *, DirectHandle< WasmMemoryObject >, uint32_t pages)
static V8_EXPORT_PRIVATE DirectHandle< WasmMemoryObject > New(Isolate *isolate, DirectHandle< JSArrayBuffer > buffer, int maximum, wasm::AddressType address_type)
void UpdateInstances(Isolate *isolate)
void FixUpResizableArrayBuffer(Tagged< JSArrayBuffer > new_buffer)
const wasm::WasmModule * module() const
static V8_EXPORT_PRIVATE DirectHandle< WasmModuleObject > New(Isolate *isolate, std::shared_ptr< wasm::NativeModule > native_module, DirectHandle< Script > script)
static MaybeDirectHandle< String > GetFunctionNameOrNull(Isolate *, DirectHandle< WasmModuleObject >, uint32_t func_index)
static MaybeDirectHandle< String > GetModuleNameOrNull(Isolate *, DirectHandle< WasmModuleObject >)
wasm::NativeModule * native_module() const
const std::shared_ptr< wasm::NativeModule > & shared_native_module() const
base::Vector< const uint8_t > GetRawFunctionName(int func_index)
static DirectHandle< String > ExtractUtf8StringFromModuleBytes(Isolate *, DirectHandle< WasmModuleObject >, wasm::WireBytesRef, InternalizeString)
void ClearDispatchTable(int index)
static void GetFunctionTableEntry(Isolate *isolate, DirectHandle< WasmTableObject > table, int entry_index, bool *is_valid, bool *is_null, MaybeDirectHandle< WasmTrustedInstanceData > *instance_data, int *function_index, MaybeDirectHandle< WasmJSFunction > *maybe_js_function)
static void UpdateDispatchTable(Isolate *isolate, DirectHandle< WasmTableObject > table, int entry_index, const wasm::WasmFunction *func, DirectHandle< WasmTrustedInstanceData > target_instance)
static V8_EXPORT_PRIVATE DirectHandle< WasmTableObject > New(Isolate *isolate, DirectHandle< WasmTrustedInstanceData > trusted_data, wasm::ValueType type, wasm::CanonicalValueType canonical_type, uint32_t initial, bool has_maximum, uint64_t maximum, DirectHandle< Object > initial_value, wasm::AddressType address_type, DirectHandle< WasmDispatchTable > *out_dispatch_table=nullptr)
static void SetFunctionTableEntry(Isolate *isolate, DirectHandle< WasmTableObject > table, int entry_index, DirectHandle< Object > entry)
bool is_in_bounds(uint32_t entry_index)
wasm::CanonicalValueType canonical_type(const wasm::WasmModule *module)
static V8_EXPORT_PRIVATE DirectHandle< Object > Get(Isolate *isolate, DirectHandle< WasmTableObject > table, uint32_t index)
wasm::ValueType unsafe_type()
static MaybeDirectHandle< Object > JSToWasmElement(Isolate *isolate, DirectHandle< WasmTableObject > table, DirectHandle< Object > entry, const char **error_message)
static V8_EXPORT_PRIVATE void Fill(Isolate *isolate, DirectHandle< WasmTableObject > table, uint32_t start, DirectHandle< Object > entry, uint32_t count)
static V8_EXPORT_PRIVATE void Set(Isolate *isolate, DirectHandle< WasmTableObject > table, uint32_t index, DirectHandle< Object > entry)
static V8_EXPORT_PRIVATE int Grow(Isolate *isolate, DirectHandle< WasmTableObject > table, uint32_t count, DirectHandle< Object > init_value)
static V8_EXPORT_PRIVATE void SetFunctionTablePlaceholder(Isolate *isolate, DirectHandle< WasmTableObject > table, int entry_index, DirectHandle< WasmTrustedInstanceData > trusted_instance_data, int func_index)
std::optional< uint64_t > maximum_length_u64() const
OBJECT_CONSTRUCTORS(WasmTrustedInstanceData, ExposedTrustedObject)
#define TAGGED_SIZE_8_BYTES
#define USE_ALLOCATION_ALIGNMENT_BOOL
ZoneVector< RpoNumber > & result
Signature< ValueType > FunctionSig
DirectHandle< Map > CreateStructMap(Isolate *isolate, wasm::CanonicalTypeIndex struct_index, DirectHandle< Map > opt_rtt_parent, DirectHandle< NativeContext > opt_native_context)
constexpr int kTaggedSize
constexpr int kSimd128Size
kWasmInternalFunctionIndirectPointerTag WasmTrustedInstanceData
wasm::WasmModule WasmModule
kWasmInternalFunctionIndirectPointerTag instance_data
DirectHandle< Map > CreateArrayMap(Isolate *isolate, wasm::CanonicalTypeIndex array_index, DirectHandle< Map > opt_rtt_parent)
kWasmInternalFunctionIndirectPointerTag kProtectedInstanceDataOffset sig
kMemory0SizeOffset Address kNewAllocationLimitAddressOffset Address kOldAllocationLimitAddressOffset uint8_t kGlobalsStartOffset kJumpTableStartOffset std::atomic< uint32_t > kTieringBudgetArrayOffset kDataSegmentStartsOffset kElementSegmentsOffset kInstanceObjectOffset memory_objects
constexpr int kSystemPointerSize
kMemory0SizeOffset Address kNewAllocationLimitAddressOffset Address kOldAllocationLimitAddressOffset uint8_t kGlobalsStartOffset kJumpTableStartOffset std::atomic< uint32_t > kTieringBudgetArrayOffset kDataSegmentStartsOffset kElementSegmentsOffset kInstanceObjectOffset kMemoryObjectsOffset kTaggedGlobalsBufferOffset tables
kMemory0SizeOffset Address kNewAllocationLimitAddressOffset Address kOldAllocationLimitAddressOffset uint8_t kGlobalsStartOffset kJumpTableStartOffset std::atomic< uint32_t > kTieringBudgetArrayOffset kDataSegmentStartsOffset kElementSegmentsOffset kInstanceObjectOffset kMemoryObjectsOffset tagged_globals_buffer
constexpr int kUInt32Size
DirectHandle< Map > CreateFuncRefMap(Isolate *isolate, wasm::CanonicalTypeIndex type, DirectHandle< Map > opt_rtt_parent)
kMemory0SizeOffset Address kNewAllocationLimitAddressOffset Address kOldAllocationLimitAddressOffset uint8_t kGlobalsStartOffset kJumpTableStartOffset std::atomic< uint32_t > kTieringBudgetArrayOffset kDataSegmentStartsOffset kElementSegmentsOffset instance_object
wasm::WasmFunction WasmFunction
!IsContextMap !IsContextMap native_context
#define DECL_ACCESSORS(name,...)
#define DECL_EXTERNAL_POINTER_ACCESSORS(name, type)
#define DECL_TRUSTED_POINTER_ACCESSORS(name, type)
#define DECL_CODE_POINTER_ACCESSORS(name)
#define DECL_VERIFIER(Name)
#define DECL_PRIMITIVE_ACCESSORS(name, type)
#define DECL_PROTECTED_POINTER_ACCESSORS(name, type)
#define DECL_PRINTER(Name)
#define TQ_OBJECT_CONSTRUCTORS(Type)
#define OBJECT_CONSTRUCTORS(Type,...)
#define DCHECK_LE(v1, v2)
#define DCHECK_LT(v1, v2)
#define V8_EXPORT_PRIVATE
constexpr bool IsAligned(T value, U alignment)
WasmCodePointer call_target
#define DEFINE_FIELD_OFFSET_CONSTANTS(StartOffset, LIST_MACRO)
#define V8_WARN_UNUSED_RESULT
#define WASM_TAGGED_INSTANCE_DATA_FIELDS(V)
#define WASM_PROTECTED_INSTANCE_DATA_FIELDS(V)
#define WASM_INSTANCE_FIELD_NAME(_, name)
#define WASM_INSTANCE_FIELD_OFFSET(offset, _)
#define DECL_OPTIONAL_ACCESSORS(name, type)
#define ASSERT_FIELD_ALIGNED(offset, size)