disasm: 32-bit index registers were displayed as 64 bits

Fix bug where 32-bit index registers got incorrectly displayed as 64
bits:

00000000  678B040B          mov eax,[ebx+rcx]
00000004  678B044B          mov eax,[ebx+rcx*2]
00000008  678B045B          mov eax,[ebx+rbx*2]
This commit is contained in:
H. Peter Anvin 2007-12-26 19:10:20 -08:00
parent 292c615a95
commit 9e9a24253a

View File

@ -325,7 +325,7 @@ static uint8_t *do_ea(uint8_t *data, int modrm, int asize,
else if (a64)
op->indexreg = rd_reg64[index | ((rex & REX_X) ? 8 : 0)];
else
op->indexreg = rd_reg64[index | ((rex & REX_X) ? 8 : 0)];
op->indexreg = rd_reg32[index | ((rex & REX_X) ? 8 : 0)];
if (base == 5 && mod == 0) {
op->basereg = -1;