#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/signature-hashing.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"
namespace v8::internal::wasm {
VarState;
constexpr auto kRegister = …;
constexpr auto kIntConst = …;
constexpr auto kStack = …;
namespace {
#define __ …
#define FREEZE_STATE(witness_name) …
#define TRACE(...) …
#define WASM_TRUSTED_INSTANCE_DATA_FIELD_OFFSET(name) …
template <int expected_size, int actual_size>
struct assert_field_size { … };
#define WASM_TRUSTED_INSTANCE_DATA_FIELD_SIZE(name) …
#define LOAD_INSTANCE_FIELD(dst, name, load_size, pinned) …
#define LOAD_TAGGED_PTR_INSTANCE_FIELD(dst, name, pinned) …
#define LOAD_PROTECTED_PTR_INSTANCE_FIELD(dst, name, pinned) …
#ifdef V8_CODE_COMMENTS
#define CODE_COMMENT(str) …
#define SCOPED_CODE_COMMENT(str) …
#else
#define CODE_COMMENT …
#define SCOPED_CODE_COMMENT …
#endif
constexpr int kHeavyInstructionSteps = …;
constexpr ValueKind kIntPtrKind = …;
constexpr ValueKind kSmiKind = …;
using MakeSig = FixedSizeSignature<ValueKind>;
#if V8_TARGET_ARCH_ARM64
class MovableLabel {
public:
MOVE_ONLY_NO_DEFAULT_CONSTRUCTOR(MovableLabel);
explicit MovableLabel(Zone* zone) : label_(zone->New<Label>()) {}
Label* get() { return label_; }
private:
Label* label_;
};
#else
class MovableLabel { … };
#endif
compiler::CallDescriptor* GetLoweredCallDescriptor(
Zone* zone, compiler::CallDescriptor* call_desc) { … }
constexpr Condition GetCompareCondition(WasmOpcode opcode) { … }
class DebugSideTableBuilder { … };
void CheckBailoutAllowed(LiftoffBailoutReason reason, const char* detail,
const CompilationEnv* env) { … }
class TempRegisterScope { … };
class ScopedTempRegister { … };
class LiftoffCompiler { … };
constexpr WasmOpcode LiftoffCompiler::kNoOutstandingOp;
constexpr base::EnumSet<ValueKind> LiftoffCompiler::kUnconditionallySupported;
std::unique_ptr<AssemblerBuffer> NewLiftoffAssemblerBuffer(int func_body_size) { … }
}
WasmCompilationResult ExecuteLiftoffCompilation(
CompilationEnv* env, const FunctionBody& func_body,
const LiftoffOptions& compiler_options) { … }
std::unique_ptr<DebugSideTable> GenerateLiftoffDebugSideTable(
const WasmCode* code) { … }
}