v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
instruction-selector-loong64.cc File Reference
Include dependency graph for instruction-selector-loong64.cc:

Go to the source code of this file.

Classes

class  v8::internal::compiler::Loong64OperandGeneratorT
 
struct  v8::internal::compiler::ExtendingLoadMatcher
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::compiler
 

Macros

#define TRACE(...)
 
#define VISIT_ATOMIC_BINOP(op)
 
#define VISIT_ATOMIC_BINOP(op)
 
#define SIMD_TYPE_LIST(V)
 
#define SIMD_UNOP_LIST(V)
 
#define SIMD_SHIFT_OP_LIST(V)
 
#define SIMD_BINOP_LIST(V)
 
#define SIMD_VISIT_SPLAT(Type)
 
#define SIMD_VISIT_EXTRACT_LANE(Type, Sign)
 
#define SIMD_VISIT_REPLACE_LANE(Type)
 
#define SIMD_VISIT_UNOP(Name, instruction)
 
#define SIMD_VISIT_SHIFT_OP(Name)
 
#define SIMD_VISIT_BINOP(Name, instruction)
 
#define SIMD_UNIMP_OP_LIST(V)
 
#define SIMD_VISIT_UNIMP_OP(Name)
 
#define UNIMPLEMENTED_SIMD_FP16_OP_LIST(V)
 
#define SIMD_VISIT_UNIMPL_FP16_OP(Name)
 
#define VISIT_EXT_MUL(OPCODE1, OPCODE2)
 
#define VISIT_EXTADD_PAIRWISE(OPCODE)
 

Functions

static void v8::internal::compiler::VisitRR (InstructionSelectorT *selector, ArchOpcode opcode, OpIndex node)
 
static void v8::internal::compiler::VisitRRI (InstructionSelectorT *selector, ArchOpcode opcode, OpIndex node)
 
static void v8::internal::compiler::VisitSimdShift (InstructionSelectorT *selector, ArchOpcode opcode, OpIndex node)
 
static void v8::internal::compiler::VisitRRIR (InstructionSelectorT *selector, ArchOpcode opcode, OpIndex node)
 
void v8::internal::compiler::VisitRRR (InstructionSelectorT *selector, ArchOpcode opcode, OpIndex node)
 
static void v8::internal::compiler::VisitUniqueRRR (InstructionSelectorT *selector, ArchOpcode opcode, OpIndex node)
 
void v8::internal::compiler::VisitRRRR (InstructionSelectorT *selector, ArchOpcode opcode, OpIndex node)
 
static void v8::internal::compiler::VisitRRO (InstructionSelectorT *selector, ArchOpcode opcode, OpIndex node)
 
bool v8::internal::compiler::TryEmitExtendingLoad (InstructionSelectorT *selector, OpIndex node, OpIndex output_node)
 
bool v8::internal::compiler::TryMatchImmediate (InstructionSelectorT *selector, InstructionCode *opcode_return, OpIndex node, size_t *input_count_return, InstructionOperand *inputs)
 
static void v8::internal::compiler::VisitBinop (InstructionSelectorT *selector, turboshaft::OpIndex node, InstructionCode opcode, bool has_reverse_opcode, InstructionCode reverse_opcode, FlagsContinuationT *cont)
 
static void v8::internal::compiler::VisitBinop (InstructionSelectorT *selector, turboshaft::OpIndex node, InstructionCode opcode, bool has_reverse_opcode, InstructionCode reverse_opcode)
 
static void v8::internal::compiler::VisitBinop (InstructionSelectorT *selector, turboshaft::OpIndex node, InstructionCode opcode, FlagsContinuationT *cont)
 
static void v8::internal::compiler::VisitBinop (InstructionSelectorT *selector, turboshaft::OpIndex node, InstructionCode opcode)
 
void v8::internal::compiler::EmitLoad (InstructionSelectorT *selector, turboshaft::OpIndex node, InstructionCode opcode, turboshaft::OpIndex output=OpIndex{})
 

Macro Definition Documentation

◆ SIMD_BINOP_LIST

#define SIMD_BINOP_LIST ( V)

Definition at line 2581 of file instruction-selector-loong64.cc.

◆ SIMD_SHIFT_OP_LIST

#define SIMD_SHIFT_OP_LIST ( V)
Value:
V(I64x2Shl) \
V(I64x2ShrS) \
V(I64x2ShrU) \
V(I32x4Shl) \
V(I32x4ShrS) \
V(I32x4ShrU) \
V(I16x8Shl) \
V(I16x8ShrS) \
V(I16x8ShrU) \
V(I8x16Shl) \
V(I8x16ShrS) \
V(I8x16ShrU)
#define V(Name)

Definition at line 2567 of file instruction-selector-loong64.cc.

◆ SIMD_TYPE_LIST

#define SIMD_TYPE_LIST ( V)
Value:
V(F64x2) \
V(F32x4) \
V(I64x2) \
V(I32x4) \
V(I16x8) \
V(I8x16)

Definition at line 2498 of file instruction-selector-loong64.cc.

◆ SIMD_UNIMP_OP_LIST

#define SIMD_UNIMP_OP_LIST ( V)
Value:
V(F64x2Qfma) \
V(F64x2Qfms) \
V(F32x4Qfma) \
V(F32x4Qfms) \
V(I16x8DotI8x16I7x16S) \
V(I32x4DotI8x16I7x16AddS)

Definition at line 2746 of file instruction-selector-loong64.cc.

◆ SIMD_UNOP_LIST

#define SIMD_UNOP_LIST ( V)

Definition at line 2506 of file instruction-selector-loong64.cc.

◆ SIMD_VISIT_BINOP

#define SIMD_VISIT_BINOP ( Name,
instruction )
Value:
void InstructionSelectorT::Visit##Name(OpIndex node) { \
VisitRRR(this, instruction, node); \
}

Definition at line 2719 of file instruction-selector-loong64.cc.

◆ SIMD_VISIT_EXTRACT_LANE

#define SIMD_VISIT_EXTRACT_LANE ( Type,
Sign )
Value:
void InstructionSelectorT::Visit##Type##ExtractLane##Sign(OpIndex node) { \
VisitRRI(this, kLoong64##Type##ExtractLane##Sign, node); \
}

Definition at line 2684 of file instruction-selector-loong64.cc.

◆ SIMD_VISIT_REPLACE_LANE

#define SIMD_VISIT_REPLACE_LANE ( Type)
Value:
void InstructionSelectorT::Visit##Type##ReplaceLane(OpIndex node) { \
VisitRRIR(this, kLoong64##Type##ReplaceLane, node); \
}

Definition at line 2698 of file instruction-selector-loong64.cc.

◆ SIMD_VISIT_SHIFT_OP

#define SIMD_VISIT_SHIFT_OP ( Name)
Value:
void InstructionSelectorT::Visit##Name(OpIndex node) { \
VisitSimdShift(this, kLoong64##Name, node); \
}

Definition at line 2712 of file instruction-selector-loong64.cc.

◆ SIMD_VISIT_SPLAT

#define SIMD_VISIT_SPLAT ( Type)
Value:
void InstructionSelectorT::Visit##Type##Splat(OpIndex node) { \
VisitRR(this, kLoong64##Type##Splat, node); \
}

Definition at line 2677 of file instruction-selector-loong64.cc.

◆ SIMD_VISIT_UNIMP_OP

#define SIMD_VISIT_UNIMP_OP ( Name)
Value:
void InstructionSelectorT::Visit##Name(OpIndex node) { UNIMPLEMENTED(); }
#define UNIMPLEMENTED()
Definition logging.h:66

Definition at line 2754 of file instruction-selector-loong64.cc.

◆ SIMD_VISIT_UNIMPL_FP16_OP

#define SIMD_VISIT_UNIMPL_FP16_OP ( Name)
Value:
void InstructionSelectorT::Visit##Name(OpIndex node) { UNIMPLEMENTED(); }

Definition at line 2794 of file instruction-selector-loong64.cc.

◆ SIMD_VISIT_UNOP

#define SIMD_VISIT_UNOP ( Name,
instruction )
Value:
void InstructionSelectorT::Visit##Name(OpIndex node) { \
VisitRR(this, instruction, node); \
}

Definition at line 2705 of file instruction-selector-loong64.cc.

◆ TRACE

#define TRACE ( ...)
Value:
PrintF(__VA_ARGS__)

Definition at line 21 of file instruction-selector-loong64.cc.

◆ UNIMPLEMENTED_SIMD_FP16_OP_LIST

#define UNIMPLEMENTED_SIMD_FP16_OP_LIST ( V)

Definition at line 2761 of file instruction-selector-loong64.cc.

◆ VISIT_ATOMIC_BINOP [1/2]

#define VISIT_ATOMIC_BINOP ( op)
Value:
void InstructionSelectorT::VisitWord32Atomic##op(OpIndex node) { \
VisitWord32AtomicBinaryOperation( \
node, kAtomic##op##Int8, kAtomic##op##Uint8, kAtomic##op##Int16, \
kAtomic##op##Uint16, kAtomic##op##Word32); \
}

Definition at line 2444 of file instruction-selector-loong64.cc.

◆ VISIT_ATOMIC_BINOP [2/2]

#define VISIT_ATOMIC_BINOP ( op)
Value:
void InstructionSelectorT::VisitWord64Atomic##op(OpIndex node) { \
VisitWord64AtomicBinaryOperation(node, kAtomic##op##Uint8, \
kAtomic##op##Uint16, kAtomic##op##Word32, \
kLoong64Word64Atomic##op##Uint64); \
}

Definition at line 2444 of file instruction-selector-loong64.cc.

◆ VISIT_EXT_MUL

#define VISIT_EXT_MUL ( OPCODE1,
OPCODE2 )
Value:
void InstructionSelectorT::Visit##OPCODE1##ExtMulLow##OPCODE2( \
OpIndex node) {} \
void InstructionSelectorT::Visit##OPCODE1##ExtMulHigh##OPCODE2( \
OpIndex node) {}

Definition at line 2853 of file instruction-selector-loong64.cc.

◆ VISIT_EXTADD_PAIRWISE

#define VISIT_EXTADD_PAIRWISE ( OPCODE)
Value:
void InstructionSelectorT::Visit##OPCODE(OpIndex node) { UNIMPLEMENTED(); }

Definition at line 2867 of file instruction-selector-loong64.cc.