v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
embedded-data-inl.h
Go to the documentation of this file.
1// Copyright 2022 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_SNAPSHOT_EMBEDDED_EMBEDDED_DATA_INL_H_
6#define V8_SNAPSHOT_EMBEDDED_EMBEDDED_DATA_INL_H_
7
9// Include the non-inl header before the rest of the headers.
10
11namespace v8 {
12namespace internal {
13
16 const struct LayoutDescription& desc = LayoutDescription(builtin);
17 const uint8_t* result = RawCode() + desc.instruction_offset;
19 return reinterpret_cast<Address>(result);
20}
21
24 const struct LayoutDescription& desc = LayoutDescription(builtin);
25 const uint8_t* result =
26 RawCode() + desc.instruction_offset + desc.instruction_length;
28 return reinterpret_cast<Address>(result);
29}
30
33 const struct LayoutDescription& desc = LayoutDescription(builtin);
34 return desc.instruction_length;
35}
36
39 const struct LayoutDescription& desc = LayoutDescription(builtin);
40 const uint8_t* result = RawMetadata() + desc.metadata_offset;
41 DCHECK_LE(desc.metadata_offset, data_size_);
42 return reinterpret_cast<Address>(result);
43}
44
46 return InstructionStartOf(Builtin::kFirstBytecodeHandler);
47}
48
51 // Note this also includes trailing padding, but that's fine for our purposes.
52 return reinterpret_cast<Address>(code_ + code_size_);
53}
54
56 uint32_t size = InstructionSizeOf(builtin);
57 CHECK_NE(size, 0);
58 return PadAndAlignCode(size);
59}
60
61} // namespace internal
62} // namespace v8
63
64#endif // V8_SNAPSHOT_EMBEDDED_EMBEDDED_DATA_INL_H_
static constexpr bool kBytecodeHandlersAreSortedLast
Definition builtins.h:124
static constexpr bool IsBuiltinId(Builtin builtin)
Definition builtins.h:128
Address InstructionEndOf(Builtin builtin) const
const LayoutDescription & LayoutDescription(Builtin builtin) const
Address InstructionStartOf(Builtin builtin) const
Address MetadataStartOf(Builtin builtin) const
uint32_t InstructionSizeOf(Builtin builtin) const
uint32_t PaddedInstructionSizeOf(Builtin builtin) const
Address InstructionEndOfBytecodeHandlers() const
Address InstructionStartOfBytecodeHandlers() const
static constexpr int PadAndAlignCode(int size)
const uint8_t * RawCode() const
const uint8_t * RawMetadata() const
ZoneVector< RpoNumber > & result
#define DCHECK_LE(v1, v2)
Definition logging.h:490
#define CHECK_NE(lhs, rhs)
#define DCHECK(condition)
Definition logging.h:482
#define DCHECK_LT(v1, v2)
Definition logging.h:489