mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-21 18:24:23 +00:00
Pass an ArrayRef to MCDisassembler::getInstruction.
With this patch MCDisassembler::getInstruction takes an ArrayRef<uint8_t> instead of a MemoryObject. Even on X86 there is a maximum size an instruction can have. Given that, it seems way simpler and more efficient to just pass an ArrayRef to the disassembler instead of a MemoryObject and have it do a virtual call every time it wants some extra bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221751 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -245,8 +245,7 @@ size_t LLVMDisasmInstruction(LLVMDisasmContextRef DCR, uint8_t *Bytes,
|
||||
size_t OutStringSize){
|
||||
LLVMDisasmContext *DC = (LLVMDisasmContext *)DCR;
|
||||
// Wrap the pointer to the Bytes, BytesSize and PC in a MemoryObject.
|
||||
StringRef Data((const char*) Bytes, BytesSize);
|
||||
StringRefMemoryObject MemoryObject(Data, PC);
|
||||
ArrayRef<uint8_t> Data(Bytes, BytesSize);
|
||||
|
||||
uint64_t Size;
|
||||
MCInst Inst;
|
||||
@ -255,7 +254,7 @@ size_t LLVMDisasmInstruction(LLVMDisasmContextRef DCR, uint8_t *Bytes,
|
||||
MCDisassembler::DecodeStatus S;
|
||||
SmallVector<char, 64> InsnStr;
|
||||
raw_svector_ostream Annotations(InsnStr);
|
||||
S = DisAsm->getInstruction(Inst, Size, MemoryObject, PC,
|
||||
S = DisAsm->getInstruction(Inst, Size, Data, 0,
|
||||
/*REMOVE*/ nulls(), Annotations);
|
||||
switch (S) {
|
||||
case MCDisassembler::Fail:
|
||||
|
Reference in New Issue
Block a user