From f6118dc0c4ae0a44cdd80c697e34a1e0718cb65e Mon Sep 17 00:00:00 2001 From: Artur K Date: Thu, 19 Jul 2012 19:50:34 +0200 Subject: [PATCH] Fixes to libdisasm, also use it a bit more --- src/scanner.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/scanner.cpp b/src/scanner.cpp index 99d30b0..1c1a365 100644 --- a/src/scanner.cpp +++ b/src/scanner.cpp @@ -414,13 +414,14 @@ eReg convertRegister(const x86_reg_t ®) eReg regmap[]={ rUNDEF, rUNDEF,rUNDEF,rUNDEF,rUNDEF, //eax ecx ebx edx - rUNDEF,rUNDEF,rUNDEF,rUNDEF, //esp ebp esi edi + rSP,rUNDEF,rUNDEF,rUNDEF, //esp ebp esi edi rAX,rCX,rDX,rBX, rSP,rBP,rSI,rDI, rAL,rCL,rDL,rBL, rAH,rCH,rDH,rBH }; assert(reg.iddst); + x86_op_t *dst_op = p.insn.get_dest(); + static int only_first=1; + if(dst_op && only_first) + { + only_first = 0; + LLOperand conv = convertOperand(*dst_op); + p.ll()->dst=conv; + //assert(conv==p.ll()->dst); + } if (p.ll()->getOpcode()) { /* Save bytes of image used */