xref: /aosp_15_r20/external/capstone/MCFixedLenDisassembler.h (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimi //===-- llvm/MC/MCFixedLenDisassembler.h - Decoder driver -------*- C++ -*-===//
2*9a0e4156SSadaf Ebrahimi //
3*9a0e4156SSadaf Ebrahimi //                     The LLVM Compiler Infrastructure
4*9a0e4156SSadaf Ebrahimi //
5*9a0e4156SSadaf Ebrahimi // This file is distributed under the University of Illinois Open Source
6*9a0e4156SSadaf Ebrahimi // License. See LICENSE.TXT for details.
7*9a0e4156SSadaf Ebrahimi //
8*9a0e4156SSadaf Ebrahimi //===----------------------------------------------------------------------===//
9*9a0e4156SSadaf Ebrahimi // Fixed length disassembler decoder state machine driver.
10*9a0e4156SSadaf Ebrahimi //===----------------------------------------------------------------------===//
11*9a0e4156SSadaf Ebrahimi 
12*9a0e4156SSadaf Ebrahimi /* Capstone Disassembly Engine */
13*9a0e4156SSadaf Ebrahimi /* By Nguyen Anh Quynh <[email protected]>, 2013-2015 */
14*9a0e4156SSadaf Ebrahimi 
15*9a0e4156SSadaf Ebrahimi #ifndef CS_LLVM_MC_MCFIXEDLENDISASSEMBLER_H
16*9a0e4156SSadaf Ebrahimi #define CS_LLVM_MC_MCFIXEDLENDISASSEMBLER_H
17*9a0e4156SSadaf Ebrahimi 
18*9a0e4156SSadaf Ebrahimi // Disassembler state machine opcodes.
19*9a0e4156SSadaf Ebrahimi enum DecoderOps {
20*9a0e4156SSadaf Ebrahimi 	MCD_OPC_ExtractField = 1, // OPC_ExtractField(uint8_t Start, uint8_t Len)
21*9a0e4156SSadaf Ebrahimi 	MCD_OPC_FilterValue,      // OPC_FilterValue(uleb128 Val, uint16_t NumToSkip)
22*9a0e4156SSadaf Ebrahimi 	MCD_OPC_CheckField,       // OPC_CheckField(uint8_t Start, uint8_t Len,
23*9a0e4156SSadaf Ebrahimi 							  //                uleb128 Val, uint16_t NumToSkip)
24*9a0e4156SSadaf Ebrahimi 	MCD_OPC_CheckPredicate,   // OPC_CheckPredicate(uleb128 PIdx, uint16_t NumToSkip)
25*9a0e4156SSadaf Ebrahimi 	MCD_OPC_Decode,           // OPC_Decode(uleb128 Opcode, uleb128 DIdx)
26*9a0e4156SSadaf Ebrahimi 	MCD_OPC_SoftFail,         // OPC_SoftFail(uleb128 PMask, uleb128 NMask)
27*9a0e4156SSadaf Ebrahimi 	MCD_OPC_Fail              // OPC_Fail()
28*9a0e4156SSadaf Ebrahimi };
29*9a0e4156SSadaf Ebrahimi 
30*9a0e4156SSadaf Ebrahimi #endif
31