Class LLVMDisassembler
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classContains the function pointers loaded fromLLVMCore.getLibrary(). -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final longstatic final longstatic final longstatic final longstatic final longstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final int -
Method Summary
Modifier and TypeMethodDescriptionstatic longLLVMCreateDisasm(CharSequence TripleName, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleName.static longLLVMCreateDisasm(ByteBuffer TripleName, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleName.static longLLVMCreateDisasmCPU(CharSequence Triple, CharSequence CPU, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleNameand a specific CPU.static longLLVMCreateDisasmCPU(ByteBuffer Triple, ByteBuffer CPU, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleNameand a specific CPU.static longLLVMCreateDisasmCPUFeatures(CharSequence Triple, CharSequence CPU, CharSequence Features, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleName, a specific CPU and specific feature string.static longLLVMCreateDisasmCPUFeatures(ByteBuffer Triple, ByteBuffer CPU, ByteBuffer Features, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleName, a specific CPU and specific feature string.static voidLLVMDisasmDispose(long DC) Dispose of a disassembler context.static longLLVMDisasmInstruction(long DC, ByteBuffer Bytes, long PC, ByteBuffer OutString) Disassemble a single instruction using the disassembler context specified in the parameter DC.static intLLVMSetDisasmOptions(long DC, long Options) Set the disassembler's options.static longnLLVMCreateDisasm(long TripleName, long DisInfo, int TagType, long GetOpInfo, long SymbolLookUp) Unsafe version of:CreateDisasmstatic longnLLVMCreateDisasmCPU(long Triple, long CPU, long DisInfo, int TagType, long GetOpInfo, long SymbolLookUp) Unsafe version of:CreateDisasmCPUstatic longnLLVMCreateDisasmCPUFeatures(long Triple, long CPU, long Features, long DisInfo, int TagType, long GetOpInfo, long SymbolLookUp) Unsafe version of:CreateDisasmCPUFeaturesstatic longnLLVMDisasmInstruction(long DC, long Bytes, long BytesSize, long PC, long OutString, long OutStringSize) Unsafe version of:DisasmInstruction
-
Field Details
-
LLVMDisassembler_VariantKind_None
public static final int LLVMDisassembler_VariantKind_None- See Also:
-
LLVMDisassembler_VariantKind_ARM_HI16
public static final int LLVMDisassembler_VariantKind_ARM_HI16- See Also:
-
LLVMDisassembler_VariantKind_ARM_LO16
public static final int LLVMDisassembler_VariantKind_ARM_LO16- See Also:
-
LLVMDisassembler_VariantKind_ARM64_PAGE
public static final int LLVMDisassembler_VariantKind_ARM64_PAGE- See Also:
-
LLVMDisassembler_VariantKind_ARM64_PAGEOFF
public static final int LLVMDisassembler_VariantKind_ARM64_PAGEOFF- See Also:
-
LLVMDisassembler_VariantKind_ARM64_GOTPAGE
public static final int LLVMDisassembler_VariantKind_ARM64_GOTPAGE- See Also:
-
LLVMDisassembler_VariantKind_ARM64_GOTPAGEOFF
public static final int LLVMDisassembler_VariantKind_ARM64_GOTPAGEOFF- See Also:
-
LLVMDisassembler_VariantKind_ARM64_TLVP
public static final int LLVMDisassembler_VariantKind_ARM64_TLVP- See Also:
-
LLVMDisassembler_VariantKind_ARM64_TLVOFF
public static final int LLVMDisassembler_VariantKind_ARM64_TLVOFF- See Also:
-
LLVMDisassembler_ReferenceType_InOut_None
public static final int LLVMDisassembler_ReferenceType_InOut_None- See Also:
-
LLVMDisassembler_ReferenceType_In_Branch
public static final int LLVMDisassembler_ReferenceType_In_Branch- See Also:
-
LLVMDisassembler_ReferenceType_In_PCrel_Load
public static final int LLVMDisassembler_ReferenceType_In_PCrel_Load- See Also:
-
LLVMDisassembler_ReferenceType_Out_SymbolStub
public static final int LLVMDisassembler_ReferenceType_Out_SymbolStub- See Also:
-
LLVMDisassembler_ReferenceType_Out_LitPool_SymAddr
public static final int LLVMDisassembler_ReferenceType_Out_LitPool_SymAddr- See Also:
-
LLVMDisassembler_ReferenceType_Out_LitPool_CstrAddr
public static final int LLVMDisassembler_ReferenceType_Out_LitPool_CstrAddr- See Also:
-
LLVMDisassembler_ReferenceType_Out_Objc_CFString_Ref
public static final int LLVMDisassembler_ReferenceType_Out_Objc_CFString_Ref- See Also:
-
LLVMDisassembler_ReferenceType_Out_Objc_Message
public static final int LLVMDisassembler_ReferenceType_Out_Objc_Message- See Also:
-
LLVMDisassembler_ReferenceType_Out_Objc_Message_Ref
public static final int LLVMDisassembler_ReferenceType_Out_Objc_Message_Ref- See Also:
-
LLVMDisassembler_ReferenceType_Out_Objc_Selector_Ref
public static final int LLVMDisassembler_ReferenceType_Out_Objc_Selector_Ref- See Also:
-
LLVMDisassembler_ReferenceType_Out_Objc_Class_Ref
public static final int LLVMDisassembler_ReferenceType_Out_Objc_Class_Ref- See Also:
-
LLVMDisassembler_ReferenceType_DeMangled_Name
public static final int LLVMDisassembler_ReferenceType_DeMangled_Name- See Also:
-
LLVMDisassembler_ReferenceType_In_ARM64_ADRP
public static final long LLVMDisassembler_ReferenceType_In_ARM64_ADRP- See Also:
-
LLVMDisassembler_ReferenceType_In_ARM64_ADDXri
public static final long LLVMDisassembler_ReferenceType_In_ARM64_ADDXri- See Also:
-
LLVMDisassembler_ReferenceType_In_ARM64_LDRXui
public static final long LLVMDisassembler_ReferenceType_In_ARM64_LDRXui- See Also:
-
LLVMDisassembler_ReferenceType_In_ARM64_LDRXl
public static final long LLVMDisassembler_ReferenceType_In_ARM64_LDRXl- See Also:
-
LLVMDisassembler_ReferenceType_In_ARM64_ADR
public static final long LLVMDisassembler_ReferenceType_In_ARM64_ADR- See Also:
-
LLVMDisassembler_Option_UseMarkup
public static final int LLVMDisassembler_Option_UseMarkup- See Also:
-
LLVMDisassembler_Option_PrintImmHex
public static final int LLVMDisassembler_Option_PrintImmHex- See Also:
-
LLVMDisassembler_Option_AsmPrinterVariant
public static final int LLVMDisassembler_Option_AsmPrinterVariant- See Also:
-
LLVMDisassembler_Option_SetInstrComments
public static final int LLVMDisassembler_Option_SetInstrComments- See Also:
-
LLVMDisassembler_Option_PrintLatency
public static final int LLVMDisassembler_Option_PrintLatency- See Also:
-
-
Method Details
-
nLLVMCreateDisasm
public static long nLLVMCreateDisasm(long TripleName, long DisInfo, int TagType, long GetOpInfo, long SymbolLookUp) Unsafe version of:CreateDisasm -
LLVMCreateDisasm
public static long LLVMCreateDisasm(ByteBuffer TripleName, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleName.Symbolic disassembly is supported by passing a block of information in the
DisInfoparameter and specifying theTagTypeand callback functions as described above. These can all be passed asNULL. If successful, this returns a disassembler context. If not, it returnsNULL. This function is equivalent to callingCreateDisasmCPUFeatureswith an empty CPU name and feature set. -
LLVMCreateDisasm
public static long LLVMCreateDisasm(CharSequence TripleName, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleName.Symbolic disassembly is supported by passing a block of information in the
DisInfoparameter and specifying theTagTypeand callback functions as described above. These can all be passed asNULL. If successful, this returns a disassembler context. If not, it returnsNULL. This function is equivalent to callingCreateDisasmCPUFeatureswith an empty CPU name and feature set. -
nLLVMCreateDisasmCPU
public static long nLLVMCreateDisasmCPU(long Triple, long CPU, long DisInfo, int TagType, long GetOpInfo, long SymbolLookUp) Unsafe version of:CreateDisasmCPU -
LLVMCreateDisasmCPU
public static long LLVMCreateDisasmCPU(ByteBuffer Triple, ByteBuffer CPU, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleNameand a specific CPU.Symbolic disassembly is supported by passing a block of information in the
DisInfoparameter and specifying theTagTypeand callback functions as described above. These can all be passed asNULL. If successful, this returns a disassembler context. If not, it returnsNULL. This function is equivalent to callingCreateDisasmCPUFeatureswith an empty feature set. -
LLVMCreateDisasmCPU
public static long LLVMCreateDisasmCPU(CharSequence Triple, CharSequence CPU, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleNameand a specific CPU.Symbolic disassembly is supported by passing a block of information in the
DisInfoparameter and specifying theTagTypeand callback functions as described above. These can all be passed asNULL. If successful, this returns a disassembler context. If not, it returnsNULL. This function is equivalent to callingCreateDisasmCPUFeatureswith an empty feature set. -
nLLVMCreateDisasmCPUFeatures
public static long nLLVMCreateDisasmCPUFeatures(long Triple, long CPU, long Features, long DisInfo, int TagType, long GetOpInfo, long SymbolLookUp) Unsafe version of:CreateDisasmCPUFeatures -
LLVMCreateDisasmCPUFeatures
public static long LLVMCreateDisasmCPUFeatures(ByteBuffer Triple, ByteBuffer CPU, ByteBuffer Features, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleName, a specific CPU and specific feature string.Symbolic disassembly is supported by passing a block of information in the
DisInfoparameter and specifying theTagTypeand callback functions as described above. These can all be passed asNULL. If successful, this returns a disassembler context. If not, it returnsNULL. -
LLVMCreateDisasmCPUFeatures
public static long LLVMCreateDisasmCPUFeatures(CharSequence Triple, CharSequence CPU, CharSequence Features, long DisInfo, int TagType, @Nullable LLVMOpInfoCallbackI GetOpInfo, @Nullable LLVMSymbolLookupCallbackI SymbolLookUp) Create a disassembler for theTripleName, a specific CPU and specific feature string.Symbolic disassembly is supported by passing a block of information in the
DisInfoparameter and specifying theTagTypeand callback functions as described above. These can all be passed asNULL. If successful, this returns a disassembler context. If not, it returnsNULL. -
LLVMSetDisasmOptions
public static int LLVMSetDisasmOptions(long DC, long Options) Set the disassembler's options. Returns 1 if it can set theOptionsand 0 otherwise. -
LLVMDisasmDispose
public static void LLVMDisasmDispose(long DC) Dispose of a disassembler context. -
nLLVMDisasmInstruction
public static long nLLVMDisasmInstruction(long DC, long Bytes, long BytesSize, long PC, long OutString, long OutStringSize) Unsafe version of:DisasmInstruction -
LLVMDisasmInstruction
Disassemble a single instruction using the disassembler context specified in the parameter DC.The bytes of the instruction are specified in the parameter
Bytes, and contains at leastBytesSizenumber of bytes. The instruction is at the address specified by thePCparameter. If a valid instruction can be disassembled, its string is returned indirectly inOutStringwhose size is specified in the parameterOutStringSize. This function returns the number of bytes in the instruction or zero if there was no valid instruction.
-