v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
liftoff-assembler-x64-inl.h File Reference
Include dependency graph for liftoff-assembler-x64-inl.h:

Go to the source code of this file.

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::wasm
 
namespace  v8::internal::wasm::liftoff
 

Macros

#define RETURN_FALSE_IF_MISSING_CPU_FEATURE(name)
 
#define __   lasm->
 
#define iop(name, ...)
 
#define dop(name, ...)
 
#define __   assm->
 

Enumerations

enum class  v8::internal::wasm::liftoff::DivOrRem : uint8_t { v8::internal::wasm::liftoff::kDiv , v8::internal::wasm::liftoff::kRem , v8::internal::wasm::liftoff::kDiv , v8::internal::wasm::liftoff::kRem }
 
enum class  v8::internal::wasm::liftoff::MinOrMax : uint8_t {
  v8::internal::wasm::liftoff::kMin , v8::internal::wasm::liftoff::kMax , v8::internal::wasm::liftoff::kMin , v8::internal::wasm::liftoff::kMax ,
  v8::internal::wasm::liftoff::kMin , v8::internal::wasm::liftoff::kMax
}
 

Functions

MemOperand v8::internal::wasm::liftoff::GetStackSlot (int offset)
 
Operand v8::internal::wasm::liftoff::GetMemOp (LiftoffAssembler *assm, Register addr, Register offset_reg, uintptr_t offset_imm, ScaleFactor scale_factor=times_1)
 
void v8::internal::wasm::liftoff::LoadFromStack (LiftoffAssembler *assm, LiftoffRegister dst, Operand src, ValueKind kind)
 
void v8::internal::wasm::liftoff::StoreToMemory (LiftoffAssembler *assm, Operand dst, LiftoffRegister src, ValueKind kind)
 
void v8::internal::wasm::liftoff::StoreToMemory (LiftoffAssembler *assm, Operand dst, const LiftoffAssembler::VarState &src)
 
void v8::internal::wasm::liftoff::push (LiftoffAssembler *assm, LiftoffRegister reg, ValueKind kind, int padding=0)
 
void v8::internal::wasm::liftoff::AtomicBinop (LiftoffAssembler *lasm, void(Assembler::*opl)(Register, Register), void(Assembler::*opq)(Register, Register), Register dst_addr, Register offset_reg, uintptr_t offset_imm, LiftoffRegister value, LiftoffRegister result, StoreType type, bool i64_offset)
 
template<void(Assembler::*)(Register, Register) op, void(Assembler::*)(Register, Register) mov>
void v8::internal::wasm::liftoff::EmitCommutativeBinOp (LiftoffAssembler *assm, Register dst, Register lhs, Register rhs)
 
template<void(Assembler::*)(Register, Immediate) op, void(Assembler::*)(Register, Register) mov>
void v8::internal::wasm::liftoff::EmitCommutativeBinOpImm (LiftoffAssembler *assm, Register dst, Register lhs, int32_t imm)
 
template<typename type , DivOrRem div_or_rem>
void v8::internal::wasm::liftoff::EmitIntDivOrRem (LiftoffAssembler *assm, Register dst, Register lhs, Register rhs, Label *trap_div_by_zero, Label *trap_div_unrepresentable)
 
template<ValueKind kind>
void v8::internal::wasm::liftoff::EmitShiftOperation (LiftoffAssembler *assm, Register dst, Register src, Register amount, void(Assembler::*emit_shift)(Register))
 
template<typename type >
void v8::internal::wasm::liftoff::EmitFloatMinOrMax (LiftoffAssembler *assm, DoubleRegister dst, DoubleRegister lhs, DoubleRegister rhs, MinOrMax min_or_max)
 
template<typename dst_type , typename src_type >
void v8::internal::wasm::liftoff::ConvertFloatToIntAndBack (LiftoffAssembler *assm, Register dst, DoubleRegister src, DoubleRegister converted_back)
 
template<typename dst_type , typename src_type >
void v8::internal::wasm::liftoff::EmitTruncateFloatToInt (LiftoffAssembler *assm, Register dst, DoubleRegister src, Label *trap)
 
template<typename dst_type , typename src_type >
void v8::internal::wasm::liftoff::EmitSatTruncateFloatToInt (LiftoffAssembler *assm, Register dst, DoubleRegister src)
 
template<typename src_type >
void v8::internal::wasm::liftoff::EmitSatTruncateFloatToUInt64 (LiftoffAssembler *assm, Register dst, DoubleRegister src)
 
template<void(Assembler::*)(DoubleRegister, DoubleRegister) cmp_op>
void v8::internal::wasm::liftoff::EmitFloatSetCond (LiftoffAssembler *assm, Condition cond, Register dst, DoubleRegister lhs, DoubleRegister rhs)
 
template<void(Assembler::*)(XMMRegister, XMMRegister, XMMRegister) avx_op, void(Assembler::*)(XMMRegister, XMMRegister) sse_op>
void v8::internal::wasm::liftoff::EmitSimdCommutativeBinOp (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs, std::optional< CpuFeature > feature=std::nullopt)
 
template<void(Assembler::*)(XMMRegister, XMMRegister, XMMRegister) avx_op, void(Assembler::*)(XMMRegister, XMMRegister) sse_op>
void v8::internal::wasm::liftoff::EmitSimdNonCommutativeBinOp (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs, std::optional< CpuFeature > feature=std::nullopt)
 
template<void(Assembler::*)(XMMRegister, XMMRegister, XMMRegister) avx_op, void(Assembler::*)(XMMRegister, XMMRegister) sse_op, uint8_t width>
void v8::internal::wasm::liftoff::EmitSimdShiftOp (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister operand, LiftoffRegister count)
 
template<void(Assembler::*)(XMMRegister, XMMRegister, uint8_t) avx_op, void(Assembler::*)(XMMRegister, uint8_t) sse_op, uint8_t width>
void v8::internal::wasm::liftoff::EmitSimdShiftOpImm (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister operand, int32_t count)
 
void v8::internal::wasm::liftoff::EmitAnyTrue (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister src)
 
template<void(SharedMacroAssemblerBase::*)(XMMRegister, XMMRegister) pcmp>
void v8::internal::wasm::liftoff::EmitAllTrue (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister src, std::optional< CpuFeature > feature=std::nullopt)
 
void v8::internal::wasm::liftoff::I32x4ExtMulHelper (LiftoffAssembler *assm, XMMRegister dst, XMMRegister src1, XMMRegister src2, bool low, bool is_signed)
 
template<void(Assembler::*)(YMMRegister, YMMRegister, YMMRegister) avx_op>
bool v8::internal::wasm::F16x8CmpOpViaF32 (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs)
 
template<void(Assembler::*)(YMMRegister, YMMRegister, YMMRegister) avx_op>
bool v8::internal::wasm::F16x8BinOpViaF32 (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs)
 

Variables

constexpr Register v8::internal::wasm::liftoff::kScratchRegister2 = r11
 
constexpr Operand v8::internal::wasm::liftoff::kInstanceDataOperand
 
constexpr Operand v8::internal::wasm::liftoff::kOSRTargetSlot = GetStackSlot(kOSRTargetOffset)
 

Macro Definition Documentation

◆ __ [1/2]

#define __   lasm->

Definition at line 798 of file liftoff-assembler-x64-inl.h.

◆ __ [2/2]

#define __   assm->

Definition at line 798 of file liftoff-assembler-x64-inl.h.

◆ dop

#define dop ( name,
... )
Value:
do { \
if (sizeof(type) == 4) { \
assm->name##s(__VA_ARGS__); \
} else { \
assm->name##d(__VA_ARGS__); \
} \
} while (false)
int s
Definition mul-fft.cc:297

◆ iop

#define iop ( name,
... )
Value:
do { \
if (sizeof(type) == 4) { \
assm->name##l(__VA_ARGS__); \
} else { \
assm->name##q(__VA_ARGS__); \
} \
} while (false)

◆ RETURN_FALSE_IF_MISSING_CPU_FEATURE

#define RETURN_FALSE_IF_MISSING_CPU_FEATURE ( name)
Value:
if (!CpuFeatures::IsSupported(name)) return false; \
CpuFeatureScope feature(this, name);

Definition at line 29 of file liftoff-assembler-x64-inl.h.