-/// NEONFuncPtrs - NEONFuncPtrs maps NSFormat to corresponding DisassembleFP.
-/// We divide the disassembly task into different categories, with each one
-/// corresponding to a specific instruction encoding format. There could be
-/// exceptions when handling a specific format, and that is why the Opcode is
-/// also present in the function prototype.
-static const DisassembleFP NEONFuncPtrs[] = {
- // This will assert().
- &DisassembleNSFormatNone,
-
- // VLD and VST (including one lane) Instructions.
- &DisassembleVLDSTLane,
-
- // VLD and VST (including one lane) Double-Spaced Instructions.
- &DisassembleVLDSTLaneDbl,
-
- // A8.6.319 VLDM & A8.6.399 VSTM
- // LLVM defines VLDRQ/VSTRQ to load/store a Q register as a D register pair.
- &DisassembleVLDSTRQ,
-
- // A7.4.6 One register and a modified immediate value
- // 1-Register Instructions with imm.
- // LLVM only defines VMOVv instructions.
- &DisassembleNVdImm,
-
- // 2-Register Instructions with no imm.
- &DisassembleNVdVmImm,
-
- // 2-Register Instructions with imm (vector convert float/fixed point).
- &DisassembleNVdVmImmVCVT,
-
- // 2-Register Instructions with imm (vector dup lane).
- &DisassembleNVdVmImmVDupLane,
-
- // 2-Register Instructions with imm (vector shift left long).
- &DisassembleNVdVmImmVSHLL,
-
- // Vector Transpose/Unzip/Zip Instructions.
- &DisassembleNVectorShuffle,
-
- // Vector Shift [Narrow Accumulate] Instructions.
- &DisassembleNVectorShift,
-
- // Vector Shift Instructions with different interpretation of shift amount.
- &DisassembleNVectorShift2,
-
- // 3-Register Data-Processing Instructions.
- &DisassembleNVdVnVmImm,
-
- // Vector Shift (Register) Instructions.
- // D:Vd M:Vm N:Vn (notice that M:Vm is the first operand)
- &DisassembleNVdVnVmImmVectorShift,
-
- // Vector Extract Instructions.
- &DisassembleNVdVnVmImmVectorExtract,
-
- // Vector [Saturating Rounding Doubling] Multiply [Accumulate/Subtract] [Long]
- // By Scalar Instructions.
- &DisassembleNVdVnVmImmMulScalar,
-
- // Vector Table Lookup uses byte indexes in a control vector to look up byte
- // values in a table and generate a new vector.
- &DisassembleVTBL,
- NULL,
-};
-