same optimization in disasam

This commit is contained in:
Stanislav Shwartsman 2008-06-11 21:05:38 +00:00
parent 8ea32b4279
commit 7d2df1b104

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: dis_decode.cc,v 1.46 2008-04-27 19:47:12 sshwarts Exp $
// $Id: dis_decode.cc,v 1.47 2008-06-11 21:05:38 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
#include <stdio.h>
@ -106,32 +106,16 @@ x86_insn disassembler::decode(bx_bool is_32, bx_bool is_64, bx_address base, bx_
continue;
case 0x26: // ES:
if (! is_64) insn.seg_override = ES_REG;
rex_prefix = 0;
continue;
case 0x2e: // CS:
if (! is_64) insn.seg_override = CS_REG;
rex_prefix = 0;
continue;
case 0x36: // SS:
if (! is_64) insn.seg_override = SS_REG;
rex_prefix = 0;
continue;
case 0x3e: // DS:
if (! is_64) insn.seg_override = DS_REG;
if (! is_64) insn.seg_override = (insn.b1 >> 3) & 3;
rex_prefix = 0;
continue;
case 0x64: // FS:
insn.seg_override = FS_REG;
rex_prefix = 0;
continue;
case 0x65: // GS:
insn.seg_override = GS_REG;
insn.seg_override = insn.b1 & 0xf;
rex_prefix = 0;
continue;
@ -152,11 +136,11 @@ x86_insn disassembler::decode(bx_bool is_32, bx_bool is_64, bx_address base, bx_
continue;
case 0xf2: // repne
sse_prefix = SSE_PREFIX_F2;
case 0xf3: // rep
sse_prefix = insn.b1 & 0xf;
rex_prefix = 0;
continue;
case 0xf3: // rep
sse_prefix = SSE_PREFIX_F3;
rex_prefix = 0;
continue;