Fix pp field in readPrefix for VEX3 and EVEX (#1015) (#1016)

This commit is contained in:
Richard Henderson 2017-09-18 14:46:00 -10:00 committed by Nguyen Anh Quynh
parent 881f9201d9
commit 629ae6653b
1 changed files with 14 additions and 1 deletions

View File

@ -722,7 +722,13 @@ static int readPrefixes(struct InternalInstruction *insn)
| (xFromEVEX2of4(insn->vectorExtensionPrefix[1]) << 1)
| (bFromEVEX2of4(insn->vectorExtensionPrefix[1]) << 0);
}
switch (ppFromEVEX3of4(insn->vectorExtensionPrefix[2])) {
default:
break;
case VEX_PREFIX_66:
hasOpSize = true;
break;
}
//dbgprintf(insn, "Found EVEX prefix 0x%hhx 0x%hhx 0x%hhx 0x%hhx",
// insn->vectorExtensionPrefix[0], insn->vectorExtensionPrefix[1],
// insn->vectorExtensionPrefix[2], insn->vectorExtensionPrefix[3]);
@ -764,6 +770,13 @@ static int readPrefixes(struct InternalInstruction *insn)
| (bFromVEX2of3(insn->vectorExtensionPrefix[1]) << 0);
}
switch (ppFromVEX3of3(insn->vectorExtensionPrefix[2])) {
default:
break;
case VEX_PREFIX_66:
hasOpSize = true;
break;
}
}
} else if (byte == 0xc5) {
uint8_t byte1;