5#ifndef V8_CODEGEN_ARM64_DECODER_ARM64_H_
6#define V8_CODEGEN_ARM64_DECODER_ARM64_H_
18#define VISITOR_LIST(V) \
22 V(MoveWideImmediate) \
25 V(UnconditionalBranch) \
26 V(UnconditionalBranchToRegister) \
29 V(ConditionalBranch) \
32 V(LoadStorePairPostIndex) \
33 V(LoadStorePairOffset) \
34 V(LoadStorePairPreIndex) \
36 V(LoadStoreUnscaledOffset) \
37 V(LoadStorePostIndex) \
38 V(LoadStorePreIndex) \
39 V(LoadStoreRegisterOffset) \
40 V(LoadStoreUnsignedOffset) \
41 V(LoadStoreAcquireRelease) \
47 V(ConditionalCompareRegister) \
48 V(ConditionalCompareImmediate) \
49 V(ConditionalSelect) \
50 V(DataProcessing1Source) \
51 V(DataProcessing2Source) \
52 V(DataProcessing3Source) \
54 V(FPConditionalCompare) \
55 V(FPConditionalSelect) \
57 V(FPDataProcessing1Source) \
58 V(FPDataProcessing2Source) \
59 V(FPDataProcessing3Source) \
61 V(FPFixedPointConvert) \
68 V(NEONByIndexedElement) \
71 V(NEONLoadStoreMultiStruct) \
72 V(NEONLoadStoreMultiStructPostIndex) \
73 V(NEONLoadStoreSingleStruct) \
74 V(NEONLoadStoreSingleStructPostIndex) \
75 V(NEONModifiedImmediate) \
76 V(NEONScalar2RegMisc) \
79 V(NEONScalarByIndexedElement) \
81 V(NEONScalarPairwise) \
82 V(NEONScalarShiftImmediate) \
83 V(NEONShiftImmediate) \
96#define DECLARE(A) virtual void Visit##A(Instruction* instr) = 0;
138#define DECLARE(A) void Visit##A(Instruction* instr);
virtual ~DecoderVisitor()
void DecodePCRelAddressing(Instruction *instr)
void DecodeNEONLoadStore(Instruction *instr)
void DecodeDataProcessing(Instruction *instr)
void DecodeLogical(Instruction *instr)
void DecodeAddSubImmediate(Instruction *instr)
void DecodeLoadStore(Instruction *instr)
virtual void Decode(Instruction *instr)
void DecodeFP(Instruction *instr)
void DecodeBitfieldExtract(Instruction *instr)
void DecodeBranchSystemException(Instruction *instr)
void DecodeNEONVectorDataProcessing(Instruction *instr)
void DecodeNEONScalarDataProcessing(Instruction *instr)
void InsertVisitorBefore(DecoderVisitor *new_visitor, DecoderVisitor *registered_visitor)
void AppendVisitor(DecoderVisitor *visitor)
std::list< DecoderVisitor * > visitors_
void InsertVisitorAfter(DecoderVisitor *new_visitor, DecoderVisitor *registered_visitor)
DispatchingDecoderVisitor()
void PrependVisitor(DecoderVisitor *visitor)
virtual ~DispatchingDecoderVisitor()
void VisitNEONShiftImmediate(const Instruction *instr)
void RemoveVisitor(DecoderVisitor *visitor)
#define V8_EXPORT_PRIVATE