Fixed decoding of VEX/EVEX instructions with high-register-specifiers

This commit is contained in:
flobernd 2017-04-25 17:46:02 +02:00
parent 40d6c39dbe
commit baa1bc243a
1 changed files with 3 additions and 2 deletions

View File

@ -1795,7 +1795,8 @@ static ZydisStatus ZydisNodeHandlerOpcode(ZydisDecoderContext* ctx,
{
uint8_t nextInput;
ZYDIS_CHECK(ZydisInputPeek(ctx, info, &nextInput));
if ((nextInput & 0xF0) >= 0xC0)
if (((nextInput & 0xF0) >= 0xC0) ||
(ctx->operatingMode == ZYDIS_OPERATING_MODE_64BIT))
{
if (info->attributes & ZYDIS_ATTRIB_HAS_REX)
{
@ -1856,7 +1857,7 @@ static ZydisStatus ZydisNodeHandlerOpcode(ZydisDecoderContext* ctx,
{
uint8_t nextInput;
ZYDIS_CHECK(ZydisInputPeek(ctx, info, &nextInput));
if (((nextInput >> 0) & 0x1F) >= 8)
if ((nextInput & 0x1F) >= 8)
{
if (info->attributes & ZYDIS_ATTRIB_HAS_REX)
{