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

Go to the source code of this file.

Classes

class  v8::internal::wasm::liftoff::CacheStatePreservingTempRegisters
 

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 dop(name, ...)
 
#define __   assm->
 

Enumerations

enum  v8::internal::wasm::liftoff::Binop {
  v8::internal::wasm::liftoff::kAdd , v8::internal::wasm::liftoff::kSub , v8::internal::wasm::liftoff::kAnd , v8::internal::wasm::liftoff::kOr ,
  v8::internal::wasm::liftoff::kXor , v8::internal::wasm::liftoff::kExchange , v8::internal::wasm::liftoff::kAdd , v8::internal::wasm::liftoff::kSub ,
  v8::internal::wasm::liftoff::kAnd , v8::internal::wasm::liftoff::kOr , v8::internal::wasm::liftoff::kXor , v8::internal::wasm::liftoff::kExchange ,
  v8::internal::wasm::liftoff::kAdd , v8::internal::wasm::liftoff::kSub , v8::internal::wasm::liftoff::kAnd , v8::internal::wasm::liftoff::kOr ,
  v8::internal::wasm::liftoff::kXor , v8::internal::wasm::liftoff::kExchange
}
 
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)
 
MemOperand v8::internal::wasm::liftoff::GetHalfStackSlot (int offset, RegPairHalf half)
 
MemOperand v8::internal::wasm::liftoff::GetInstanceDataOperand ()
 
Operand v8::internal::wasm::liftoff::MemOperand (Register base, Register offset_reg, int offset_imm)
 
void v8::internal::wasm::liftoff::Load (LiftoffAssembler *assm, LiftoffRegister dst, Register base, int32_t offset, ValueKind kind)
 
void v8::internal::wasm::liftoff::Store (LiftoffAssembler *assm, Register base, int32_t offset, LiftoffRegister src, ValueKind kind)
 
void v8::internal::wasm::liftoff::push (LiftoffAssembler *assm, LiftoffRegister reg, ValueKind kind, int padding=0)
 
void v8::internal::wasm::liftoff::SignExtendI32ToI64 (Assembler *assm, LiftoffRegister reg)
 
Register v8::internal::wasm::liftoff::GetTmpByteRegister (LiftoffAssembler *assm, Register candidate)
 
void v8::internal::wasm::liftoff::MoveStackValue (LiftoffAssembler *assm, const Operand &src, const Operand &dst)
 
void v8::internal::wasm::liftoff::AtomicAddOrSubOrExchange32 (LiftoffAssembler *lasm, Binop binop, Register dst_addr, Register offset_reg, uint32_t offset_imm, LiftoffRegister value, LiftoffRegister result, StoreType type)
 
void v8::internal::wasm::liftoff::AtomicBinop32 (LiftoffAssembler *lasm, Binop op, Register dst_addr, Register offset_reg, uint32_t offset_imm, LiftoffRegister value, LiftoffRegister result, StoreType type)
 
void v8::internal::wasm::liftoff::AtomicBinop64 (LiftoffAssembler *lasm, Binop op, Register dst_addr, Register offset_reg, uint32_t offset_imm, LiftoffRegister value, LiftoffRegister result)
 
template<void(Assembler::*)(Register, Register) op>
void v8::internal::wasm::liftoff::EmitCommutativeBinOp (LiftoffAssembler *assm, Register dst, Register lhs, Register rhs)
 
template<void(Assembler::*)(Register, int32_t) op>
void v8::internal::wasm::liftoff::EmitCommutativeBinOpImm (LiftoffAssembler *assm, Register dst, Register lhs, int32_t imm)
 
template<bool is_signed, DivOrRem div_or_rem>
void v8::internal::wasm::liftoff::EmitInt32DivOrRem (LiftoffAssembler *assm, Register dst, Register lhs, Register rhs, Label *trap_div_by_zero, Label *trap_div_unrepresentable)
 
void v8::internal::wasm::liftoff::EmitShiftOperation (LiftoffAssembler *assm, Register dst, Register src, Register amount, void(Assembler::*emit_shift)(Register))
 
template<void(Assembler::*)(Register, Register) op, void(Assembler::*)(Register, Register) op_with_carry>
void v8::internal::wasm::liftoff::OpWithCarry (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, LiftoffRegister rhs)
 
template<void(Assembler::*)(Register, const Immediate &) op, void(Assembler::*)(Register, int32_t) op_with_carry>
void v8::internal::wasm::liftoff::OpWithCarryI (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister lhs, int64_t imm)
 
bool v8::internal::wasm::liftoff::PairContains (LiftoffRegister pair, Register reg)
 
LiftoffRegister v8::internal::wasm::liftoff::ReplaceInPair (LiftoffRegister pair, Register old_reg, Register new_reg)
 
void v8::internal::wasm::liftoff::Emit64BitShiftOperation (LiftoffAssembler *assm, LiftoffRegister dst, LiftoffRegister src, Register amount, void(MacroAssembler::*emit_shift)(Register, 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, LiftoffRegList pinned)
 
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)
 
void v8::internal::wasm::liftoff::setcc_32_no_spill (LiftoffAssembler *assm, Condition cond, Register dst, Register tmp_byte_reg)
 
void v8::internal::wasm::liftoff::setcc_32 (LiftoffAssembler *assm, Condition cond, Register dst)
 
Condition v8::internal::wasm::liftoff::cond_make_unsigned (Condition cond)
 
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)
 

Variables

static constexpr LiftoffRegList v8::internal::wasm::liftoff::kByteRegs
 
constexpr DoubleRegister v8::internal::wasm::liftoff::kScratchDoubleReg = xmm7
 
constexpr DoubleRegister v8::internal::wasm::liftoff::kScratchDoubleReg2 = xmm0
 
constexpr int v8::internal::wasm::liftoff::kSubSpSize = 6
 

Macro Definition Documentation

◆ __ [1/2]

#define __   lasm->

Definition at line 823 of file liftoff-assembler-ia32-inl.h.

◆ __ [2/2]

#define __   assm->

Definition at line 823 of file liftoff-assembler-ia32-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

◆ 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 23 of file liftoff-assembler-ia32-inl.h.