15 #ifndef LLVM_C_DISASSEMBLER_H
16 #define LLVM_C_DISASSEMBLER_H
18 #include "llvm/Support/DataTypes.h"
51 uint64_t Offset, uint64_t Size,
52 int TagType,
void *TagBuf);
90 #define LLVMDisassembler_VariantKind_None 0
95 #define LLVMDisassembler_VariantKind_ARM_HI16 1
96 #define LLVMDisassembler_VariantKind_ARM_LO16 2
110 typedef const char *(*LLVMSymbolLookupCallback)(
void *DisInfo,
111 uint64_t ReferenceValue,
112 uint64_t *ReferenceType,
113 uint64_t ReferencePC,
114 const char **ReferenceName);
119 #define LLVMDisassembler_ReferenceType_InOut_None 0
122 #define LLVMDisassembler_ReferenceType_In_Branch 1
124 #define LLVMDisassembler_ReferenceType_In_PCrel_Load 2
127 #define LLVMDisassembler_ReferenceType_Out_SymbolStub 1
129 #define LLVMDisassembler_ReferenceType_Out_LitPool_SymAddr 2
131 #define LLVMDisassembler_ReferenceType_Out_LitPool_CstrAddr 3
134 #define LLVMDisassembler_ReferenceType_Out_Objc_CFString_Ref 4
136 #define LLVMDisassembler_ReferenceType_Out_Objc_Message 5
138 #define LLVMDisassembler_ReferenceType_Out_Objc_Message_Ref 6
140 #define LLVMDisassembler_ReferenceType_Out_Objc_Selector_Ref 7
142 #define LLVMDisassembler_ReferenceType_Out_Objc_Class_Ref 8
168 void *DisInfo,
int TagType,
179 #define LLVMDisassembler_Option_UseMarkup 1
181 #define LLVMDisassembler_Option_PrintImmHex 2
183 #define LLVMDisassembler_Option_AsmPrinterVariant 4
185 #define LLVMDisassembler_Option_SetInstrComments 8
187 #define LLVMDisassembler_Option_PrintLatency 16
205 uint64_t BytesSize, uint64_t PC,
206 char *OutString,
size_t OutStringSize);
LLVMDisasmContextRef LLVMCreateDisasm(const char *TripleName, void *DisInfo, int TagType, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp)
const char *(* LLVMSymbolLookupCallback)(void *DisInfo, uint64_t ReferenceValue, uint64_t *ReferenceType, uint64_t ReferencePC, const char **ReferenceName)
LLVMDisasmContextRef LLVMCreateDisasmCPU(const char *Triple, const char *CPU, void *DisInfo, int TagType, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp)
void * LLVMDisasmContextRef
struct LLVMOpInfoSymbol1 AddSymbol
struct LLVMOpInfoSymbol1 SubtractSymbol
size_t LLVMDisasmInstruction(LLVMDisasmContextRef DC, uint8_t *Bytes, uint64_t BytesSize, uint64_t PC, char *OutString, size_t OutStringSize)
int LLVMSetDisasmOptions(LLVMDisasmContextRef DC, uint64_t Options)
void LLVMDisasmDispose(LLVMDisasmContextRef DC)
int(* LLVMOpInfoCallback)(void *DisInfo, uint64_t PC, uint64_t Offset, uint64_t Size, int TagType, void *TagBuf)