![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include "src/wasm/baseline/liftoff-compiler.h"
#include <optional>
#include "src/base/enum-set.h"
#include "src/codegen/assembler-inl.h"
#include "src/codegen/external-reference.h"
#include "src/codegen/interface-descriptors-inl.h"
#include "src/codegen/machine-type.h"
#include "src/codegen/macro-assembler-inl.h"
#include "src/codegen/register-configuration.h"
#include "src/compiler/access-builder.h"
#include "src/compiler/wasm-compiler.h"
#include "src/logging/counters.h"
#include "src/logging/log.h"
#include "src/objects/contexts.h"
#include "src/objects/smi.h"
#include "src/roots/roots.h"
#include "src/tracing/trace-event.h"
#include "src/utils/ostreams.h"
#include "src/utils/utils.h"
#include "src/wasm/baseline/liftoff-assembler-inl.h"
#include "src/wasm/baseline/liftoff-register.h"
#include "src/wasm/compilation-environment-inl.h"
#include "src/wasm/function-body-decoder-impl.h"
#include "src/wasm/function-compiler.h"
#include "src/wasm/memory-tracing.h"
#include "src/wasm/object-access.h"
#include "src/wasm/simd-shuffle.h"
#include "src/wasm/wasm-debug.h"
#include "src/wasm/wasm-engine.h"
#include "src/wasm/wasm-linkage.h"
#include "src/wasm/wasm-objects.h"
#include "src/wasm/wasm-opcodes-inl.h"
Go to the source code of this file.
Namespaces | |
namespace | v8 |
namespace | v8::internal |
namespace | v8::internal::wasm |
Functions | |
WasmCompilationResult | v8::internal::wasm::ExecuteLiftoffCompilation (CompilationEnv *env, const FunctionBody &func_body, const LiftoffOptions &compiler_options) |
std::unique_ptr< DebugSideTable > | v8::internal::wasm::GenerateLiftoffDebugSideTable (const WasmCode *code) |
Variables | |
constexpr auto | v8::internal::wasm::kRegister = VarState::kRegister |
constexpr auto | v8::internal::wasm::kIntConst = VarState::kIntConst |
constexpr auto | v8::internal::wasm::kStack = VarState::kStack |
#define __ asm_. |
Definition at line 50 of file liftoff-compiler.cc.
#define ATOMIC_BINOP_INSTRUCTION_LIST | ( | V | ) |
Definition at line 6003 of file liftoff-compiler.cc.
#define ATOMIC_BINOP_OP | ( | op, | |
name, | |||
type ) |
#define ATOMIC_COMPARE_EXCHANGE_LIST | ( | V | ) |
Definition at line 6047 of file liftoff-compiler.cc.
#define ATOMIC_COMPARE_EXCHANGE_OP | ( | name, | |
type ) |
#define ATOMIC_LOAD_LIST | ( | V | ) |
Definition at line 5994 of file liftoff-compiler.cc.
#define ATOMIC_LOAD_OP | ( | name, | |
type ) |
#define ATOMIC_STORE_LIST | ( | V | ) |
Definition at line 5985 of file liftoff-compiler.cc.
#define ATOMIC_STORE_OP | ( | name, | |
type ) |
#define CASE_I32_UNOP | ( | opcode, | |
fn ) |
#define CASE_I64_UNOP | ( | opcode, | |
fn ) |
#define CASE_TYPE_CONVERSION | ( | opcode, | |
dst_kind, | |||
src_kind, | |||
ext_ref, | |||
can_trap ) |
#define CODE_COMMENT | ( | str | ) |
Definition at line 110 of file liftoff-compiler.cc.
#define FREEZE_STATE | ( | witness_name | ) |
Definition at line 59 of file liftoff-compiler.cc.
#define FUZZER_HEAVY_INSTRUCTION |
Definition at line 1248 of file liftoff-compiler.cc.
#define LIST_FEATURE | ( | name, | |
... ) |
#define LOAD_INSTANCE_FIELD | ( | dst, | |
name, | |||
load_size, | |||
pinned ) |
Definition at line 79 of file liftoff-compiler.cc.
#define LOAD_PROTECTED_PTR_INSTANCE_FIELD | ( | dst, | |
name, | |||
pinned ) |
Definition at line 94 of file liftoff-compiler.cc.
#define LOAD_TAGGED_PTR_INSTANCE_FIELD | ( | dst, | |
name, | |||
pinned ) |
Definition at line 86 of file liftoff-compiler.cc.
#define RUNTIME_STUB_FOR_TRAP | ( | trap_reason | ) |
#define SCOPED_CODE_COMMENT | ( | str | ) |
Definition at line 111 of file liftoff-compiler.cc.
#define TRACE | ( | ... | ) |
Definition at line 61 of file liftoff-compiler.cc.
#define WASM_TRUSTED_INSTANCE_DATA_FIELD_OFFSET | ( | name | ) |
Definition at line 66 of file liftoff-compiler.cc.
#define WASM_TRUSTED_INSTANCE_DATA_FIELD_SIZE | ( | name | ) |
Definition at line 76 of file liftoff-compiler.cc.
|
private |
Definition at line 9426 of file liftoff-compiler.cc.
|
private |
Definition at line 9439 of file liftoff-compiler.cc.
Builtin builtin |
Definition at line 530 of file liftoff-compiler.cc.
Register cached_instance_data |
Definition at line 533 of file liftoff-compiler.cc.
Label catch_label |
Definition at line 459 of file liftoff-compiler.cc.
bool catch_reached = false |
Definition at line 460 of file liftoff-compiler.cc.
LiftoffAssembler::CacheState catch_state |
Definition at line 458 of file liftoff-compiler.cc.
|
private |
Definition at line 237 of file liftoff-compiler.cc.
|
private |
Definition at line 839 of file liftoff-compiler.cc.
MovableLabel continuation |
Definition at line 529 of file liftoff-compiler.cc.
|
private |
Definition at line 9461 of file liftoff-compiler.cc.
|
private |
Definition at line 9436 of file liftoff-compiler.cc.
DebugSideTableBuilder::EntryBuilder* debug_sidetable_entry_builder |
Definition at line 537 of file liftoff-compiler.cc.
|
private |
Definition at line 9497 of file liftoff-compiler.cc.
|
private |
Definition at line 9498 of file liftoff-compiler.cc.
|
private |
Definition at line 9434 of file liftoff-compiler.cc.
|
private |
Definition at line 9494 of file liftoff-compiler.cc.
|
private |
Definition at line 9466 of file liftoff-compiler.cc.
ElseState* else_state = nullptr |
Definition at line 465 of file liftoff-compiler.cc.
|
private |
Definition at line 9488 of file liftoff-compiler.cc.
ZoneVector<Entry> entries |
Definition at line 515 of file liftoff-compiler.cc.
|
private |
Definition at line 304 of file liftoff-compiler.cc.
|
private |
Definition at line 9435 of file liftoff-compiler.cc.
ArgType first_arg |
Definition at line 2031 of file liftoff-compiler.cc.
EmitFn fn |
Definition at line 2030 of file liftoff-compiler.cc.
|
private |
Definition at line 9438 of file liftoff-compiler.cc.
|
private |
Definition at line 9500 of file liftoff-compiler.cc.
|
private |
Definition at line 391 of file liftoff-compiler.cc.
|
private |
Definition at line 3380 of file liftoff-compiler.cc.
|
private |
Definition at line 9440 of file liftoff-compiler.cc.
MovableLabel handler |
Definition at line 9469 of file liftoff-compiler.cc.
|
private |
Definition at line 9474 of file liftoff-compiler.cc.
|
private |
Definition at line 9473 of file liftoff-compiler.cc.
bool in_handler = false |
Definition at line 461 of file liftoff-compiler.cc.
|
private |
Definition at line 504 of file liftoff-compiler.cc.
|
private |
Definition at line 842 of file liftoff-compiler.cc.
|
staticconstexprprivate |
Definition at line 837 of file liftoff-compiler.cc.
ValueKind kind |
Definition at line 513 of file liftoff-compiler.cc.
|
private |
Definition at line 843 of file liftoff-compiler.cc.
|
staticconstexprprivate |
Definition at line 491 of file liftoff-compiler.cc.
|
staticconstexprprivate |
Definition at line 9419 of file liftoff-compiler.cc.
|
staticconstexpr |
Definition at line 447 of file liftoff-compiler.cc.
|
staticconstexpr |
Definition at line 448 of file liftoff-compiler.cc.
|
staticconstexprprivate |
Definition at line 9420 of file liftoff-compiler.cc.
|
staticconstexpr |
Definition at line 435 of file liftoff-compiler.cc.
MovableLabel label |
Definition at line 452 of file liftoff-compiler.cc.
|
private |
Definition at line 150 of file liftoff-compiler.cc.
LiftoffAssembler::CacheState label_state |
Definition at line 466 of file liftoff-compiler.cc.
|
private |
Definition at line 309 of file liftoff-compiler.cc.
|
private |
Definition at line 9481 of file liftoff-compiler.cc.
|
private |
Definition at line 303 of file liftoff-compiler.cc.
|
private |
Definition at line 847 of file liftoff-compiler.cc.
|
private |
Definition at line 9492 of file liftoff-compiler.cc.
|
private |
Definition at line 844 of file liftoff-compiler.cc.
|
private |
Definition at line 9457 of file liftoff-compiler.cc.
|
private |
Definition at line 9456 of file liftoff-compiler.cc.
Label* no_match |
Definition at line 7527 of file liftoff-compiler.cc.
Builtin no_match_trap |
Definition at line 7528 of file liftoff-compiler.cc.
|
private |
Definition at line 9502 of file liftoff-compiler.cc.
bool null_succeeds |
Definition at line 7530 of file liftoff-compiler.cc.
int num_exceptions = 0 |
Definition at line 470 of file liftoff-compiler.cc.
|
private |
Definition at line 9477 of file liftoff-compiler.cc.
|
private |
Definition at line 300 of file liftoff-compiler.cc.
|
private |
Definition at line 840 of file liftoff-compiler.cc.
Register obj_reg = no_reg |
Definition at line 7524 of file liftoff-compiler.cc.
ValueType obj_type |
Definition at line 7525 of file liftoff-compiler.cc.
int offset |
Definition at line 511 of file liftoff-compiler.cc.
|
private |
Definition at line 310 of file liftoff-compiler.cc.
|
private |
Definition at line 9441 of file liftoff-compiler.cc.
|
private |
Definition at line 9430 of file liftoff-compiler.cc.
|
private |
Definition at line 841 of file liftoff-compiler.cc.
|
private |
Definition at line 848 of file liftoff-compiler.cc.
int pc_offset |
Definition at line 9470 of file liftoff-compiler.cc.
|
private |
Definition at line 235 of file liftoff-compiler.cc.
|
private |
Definition at line 9451 of file liftoff-compiler.cc.
WasmCodePosition position |
Definition at line 531 of file liftoff-compiler.cc.
|
private |
Definition at line 9443 of file liftoff-compiler.cc.
|
private |
Definition at line 846 of file liftoff-compiler.cc.
LiftoffRegister reg |
Definition at line 512 of file liftoff-compiler.cc.
|
private |
Definition at line 427 of file liftoff-compiler.cc.
|
private |
Definition at line 845 of file liftoff-compiler.cc.
LiftoffRegList regs_to_save |
Definition at line 532 of file liftoff-compiler.cc.
OutOfLineSafepointInfo* safepoint_info |
Definition at line 534 of file liftoff-compiler.cc.
|
private |
Definition at line 9448 of file liftoff-compiler.cc.
|
staticconstexpr |
Definition at line 73 of file liftoff-compiler.cc.
ZoneVector<int> slots |
Definition at line 521 of file liftoff-compiler.cc.
|
private |
Definition at line 9442 of file liftoff-compiler.cc.
SpilledRegistersForInspection* spilled_registers |
Definition at line 536 of file liftoff-compiler.cc.
LiftoffRegList spills |
Definition at line 522 of file liftoff-compiler.cc.
|
private |
Definition at line 236 of file liftoff-compiler.cc.
|
private |
Definition at line 9437 of file liftoff-compiler.cc.
LiftoffAssembler::CacheState state |
Definition at line 453 of file liftoff-compiler.cc.
|
private |
Definition at line 9433 of file liftoff-compiler.cc.
|
private |
Definition at line 428 of file liftoff-compiler.cc.
Register tmp = no_reg |
Definition at line 7526 of file liftoff-compiler.cc.
std::optional<OolTrapLabel> trap |
Definition at line 7529 of file liftoff-compiler.cc.
TryInfo* try_info = nullptr |
Definition at line 468 of file liftoff-compiler.cc.
|
private |
Definition at line 9447 of file liftoff-compiler.cc.