From 24ece63fe7ce0be4b66d684c7311caf55c291eb9 Mon Sep 17 00:00:00 2001 From: Stanislav Shwartsman Date: Sun, 13 Aug 2006 09:40:07 +0000 Subject: [PATCH] Fixed disasm bug --- bochs/disasm/dis_groups.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/bochs/disasm/dis_groups.cc b/bochs/disasm/dis_groups.cc index 3c5e1bc7c..f2c2b0c85 100644 --- a/bochs/disasm/dis_groups.cc +++ b/bochs/disasm/dis_groups.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: dis_groups.cc,v 1.32 2006-04-27 15:11:45 sshwarts Exp $ +// $Id: dis_groups.cc,v 1.33 2006-08-13 09:40:07 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// #include @@ -420,7 +420,12 @@ void disassembler::OP_O(const x86_insn *insn, unsigned size) print_datasize(size); - if (insn->as_32) { + if (insn->as_64) { + Bit64u imm64 = fetch_qword(); + dis_sprintf("%s:0x%08x%08x", seg, + (unsigned)(imm64>>32), (unsigned)(imm64 & 0xffffffff)); + } + else if (insn->as_32) { Bit32u imm32 = fetch_dword(); dis_sprintf("%s:0x%x", seg, (unsigned) imm32); }