5#ifndef V8_COMPILER_BACKEND_CODE_GENERATOR_IMPL_H_
6#define V8_COMPILER_BACKEND_CODE_GENERATOR_IMPL_H_
70 return static_cast<int16_t
>(
InputInt32(index));
74 return static_cast<uint8_t
>(
InputInt32(index) & 0x7);
78 return static_cast<uint8_t
>(
InputInt32(index) & 0xF);
82 return static_cast<uint8_t
>(
InputInt32(index) & 0x1F);
86 return static_cast<uint8_t
>(
InputInt32(index) & 0x3F);
138#if defined(V8_TARGET_ARCH_X64)
176#ifdef V8_TARGET_ARCH_X64
178 return loc_op->GetSimd256RegisterAsSimd128();
184#if defined(V8_TARGET_ARCH_X64)
191 if (op->IsImmediate()) {
195 ConstantOperand::cast(op)->virtual_register());
constexpr double value() const
FrameAccessState * frame_access_state() const
Isolate * isolate() const
Linkage * linkage() const
InstructionSequence * instructions() const
Label * GetLabel(RpoNumber rpo)
const Frame * frame() const
base::Double ToFloat64() const
RpoNumber ToRpoNumber() const
ExternalReference ToExternalReference() const
IndirectHandle< Code > ToCode() const
bool has_deoptimization_id() const
void set_immediate_args(ZoneVector< ImmediateOperand * > *immediate_args)
int translation_id() const
const BytecodeOffset bailout_id_
void set_deoptimization_id(int deoptimization_id)
const DeoptimizeKind kind_
DeoptimizeReason reason() const
BytecodeOffset bailout_id() const
int deoptimization_id() const
SourcePosition pos() const
const ZoneVector< ImmediateOperand * > * immediate_args() const
DeoptimizationExit(SourcePosition pos, BytecodeOffset bailout_id, int translation_id, int pc_offset, DeoptimizeKind kind, DeoptimizeReason reason, NodeId node_id)
DeoptimizeKind kind() const
const DeoptimizeReason reason_
static const int kNoDeoptIndex
const int translation_id_
const SourcePosition pos_
ZoneVector< ImmediateOperand * > * immediate_args_
FloatRegister OutputFloatRegister(size_t index=0)
FrameAccessState * frame_access_state() const
DoubleRegister ToDoubleRegister(InstructionOperand *op)
Register OutputRegister(size_t index=0) const
double InputDouble(size_t index)
double ToDouble(InstructionOperand *op)
Register TempRegister(size_t index)
int8_t InputInt8(size_t index)
FloatRegister ToFloatRegister(InstructionOperand *op)
Simd128Register TempSimd128Register(size_t index)
Linkage * linkage() const
CodeEntrypointTag InputCodeEntrypointTag(size_t index)
float InputFloat32(size_t index)
int32_t InputInt32(size_t index)
Constant ToConstant(InstructionOperand *op) const
DoubleRegister OutputDoubleRegister(size_t index=0)
uint32_t InputUint32(size_t index)
int64_t InputInt64(size_t index)
Isolate * isolate() const
Simd128Register ToSimd128Register(InstructionOperand *op)
ExternalReference InputExternalReference(size_t index)
Simd128Register InputSimd128Register(size_t index)
uint8_t InputInt4(size_t index)
Label * InputLabel(size_t index)
int16_t InputInt16(size_t index)
float ToFloat32(InstructionOperand *op)
Handle< Code > InputCode(size_t index)
InstructionOperandConverter(CodeGenerator *gen, Instruction *instr)
Label * ToLabel(InstructionOperand *op)
const Frame * frame() const
uint8_t InputInt3(size_t index)
uint8_t InputInt6(size_t index)
FloatRegister InputFloatRegister(size_t index)
DoubleRegister InputDoubleRegister(size_t index)
uint8_t InputUint8(size_t index)
RpoNumber InputRpo(size_t index)
Register InputRegister(size_t index) const
DoubleRegister TempDoubleRegister(size_t index)
uint8_t InputInt5(size_t index)
Handle< Code > ToCode(InstructionOperand *op)
ExternalReference ToExternalReference(InstructionOperand *op)
Register ToRegister(InstructionOperand *op) const
Simd128Register OutputSimd128Register()
RpoNumber ToRpoNumber(InstructionOperand *op)
bool IsSimd256Register() const
Constant GetImmediate(const ImmediateOperand *op) const
Constant GetConstant(int virtual_register) const
const InstructionOperand * OutputAt(size_t i) const
const InstructionOperand * Output() const
const InstructionOperand * InputAt(size_t i) const
const InstructionOperand * TempAt(size_t i) const
Register GetRegister() const
Simd128Register GetSimd128Register() const
FloatRegister GetFloatRegister() const
static LocationOperand * cast(InstructionOperand *op)
DoubleRegister GetDoubleRegister() const
virtual void Generate()=0
MacroAssembler *const masm_
OutOfLineCode * next() const
OutOfLineCode *const next_
const Frame *const frame_
const Frame * frame() const
OutOfLineCode(CodeGenerator *gen)
V8_INLINE Dest bit_cast(Source const &source)
YMMRegister Simd256Register
constexpr int kCodeEntrypointTagShift
#define DCHECK(condition)