5#ifndef V8_SNAPSHOT_EMBEDDED_EMBEDDED_DATA_H_
6#define V8_SNAPSHOT_EMBEDDED_EMBEDDED_DATA_H_
18class InstructionStream;
34 uint32_t* hashable_address);
73 isolate->embedded_blob_code(), isolate->embedded_blob_code_size(),
74 isolate->embedded_blob_data(), isolate->embedded_blob_data_size());
97 if (d.IsInCodeRange(maybe_builtin_pc))
return d;
98 if (isolate->is_short_builtin_calls_enabled()) {
102 if (global_d.
IsInCodeRange(maybe_builtin_pc))
return global_d;
104#if defined(V8_COMPRESS_POINTERS_IN_SHARED_CAGE) && \
105 defined(V8_SHORT_BUILTIN_CALLS)
116 if (remapped_d.
IsInCodeRange(maybe_builtin_pc))
return remapped_d;
150 return static_cast<uint32_t
>(addr -
start);
159 return *
reinterpret_cast<const size_t*
>(
data_ +
163 return *
reinterpret_cast<const size_t*
>(
data_ +
277 return descs[
static_cast<int>(
builtin)];
static constexpr int kBuiltinCount
uint8_t * embedded_blob_code_copy() const
Address InstructionEndOf(Builtin builtin) const
const uint8_t * code() const
void PrintStatistics() const
const LayoutDescription & LayoutDescription(Builtin builtin) const
static constexpr uint32_t FixedDataSize()
static EmbeddedData NewFromIsolate(Isolate *isolate)
EmbeddedData(const uint8_t *code, uint32_t code_size, const uint8_t *data, uint32_t data_size)
bool IsInCodeRange(Address pc) const
const BuiltinLookupEntry * BuiltinLookupEntry(ReorderedBuiltinIndex index) const
Address InstructionStartOf(Builtin builtin) const
size_t IsolateHash() const
static constexpr uint32_t BuiltinLookupEntryTableOffset()
Address MetadataStartOf(Builtin builtin) const
size_t EmbeddedBlobCodeHash() const
uint32_t InstructionSizeOf(Builtin builtin) const
uint32_t PaddedInstructionSizeOf(Builtin builtin) const
size_t EmbeddedBlobDataHash() const
static EmbeddedData FromBlob()
static constexpr uint32_t LayoutDescriptionTableSize()
static constexpr uint32_t EmbeddedBlobDataHashOffset()
static constexpr uint32_t EmbeddedBlobCodeHashOffset()
const uint8_t * data() const
static EmbeddedData FromBlob(Isolate *isolate)
size_t CreateEmbeddedBlobDataHash() const
Address InstructionEndOfBytecodeHandlers() const
static constexpr uint32_t IsolateHashOffset()
static constexpr uint32_t LayoutDescriptionTableOffset()
static EmbeddedData FromBlobForPc(Isolate *isolate, Address maybe_builtin_pc)
size_t CreateEmbeddedBlobCodeHash() const
Address InstructionStartOfBytecodeHandlers() const
static constexpr uint32_t RawMetadataOffset()
uint32_t AddressForHashing(Address addr)
static constexpr int PadAndAlignCode(int size)
static constexpr uint32_t BuiltinLookupEntryTableSize()
const uint8_t * RawCode() const
static EmbeddedData FromBlob(CodeRange *code_range)
Builtin TryLookupCode(Address address) const
uint32_t data_size() const
uint32_t code_size() const
Builtin GetBuiltinId(ReorderedBuiltinIndex embedded_index) const
static constexpr uint32_t kTableSize
static constexpr uint32_t IsolateHashSize()
static constexpr uint32_t EmbeddedBlobCodeHashSize()
const uint8_t * RawMetadata() const
static constexpr uint32_t EmbeddedBlobDataHashSize()
static constexpr int PadAndAlignData(int size)
static constexpr uint32_t RawCodeOffset()
static IsolateGroup * current()
CodeRange * GetCodeRange() const
static const uint8_t * CurrentEmbeddedBlobCode()
static uint32_t CurrentEmbeddedBlobCodeSize()
static const uint8_t * CurrentEmbeddedBlobData()
static uint32_t CurrentEmbeddedBlobDataSize()
static void FreeOffHeapOffHeapInstructionStream(uint8_t *code, uint32_t code_size, uint8_t *data, uint32_t data_size)
static bool TryGetAddressForHashing(Isolate *isolate, Address address, uint32_t *hashable_address)
static void CreateOffHeapOffHeapInstructionStream(Isolate *isolate, uint8_t **code, uint32_t *code_size, uint8_t **data, uint32_t *data_size)
static Builtin TryLookupCode(Isolate *isolate, Address address)
static bool PcIsOffHeap(Isolate *isolate, Address pc)
ZoneVector< Entry > entries
uint32_t ReorderedBuiltinIndex
constexpr int kUInt32Size
#define DCHECK_NOT_NULL(val)
#define DCHECK(condition)
#define DCHECK_LT(v1, v2)
constexpr T RoundUp(T x, intptr_t m)
uint32_t instruction_offset
uint32_t instruction_length