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 02f7296a33
commit a279481dbf
1 changed files with 14 additions and 1 deletions

View File

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