diff --git a/src/Decoder.c b/src/Decoder.c index 70d32f22..27c3c8ae 100644 --- a/src/Decoder.c +++ b/src/Decoder.c @@ -4460,7 +4460,9 @@ static ZyanStatus ZydisCheckErrorConditions(ZydisDecoderContext* context, has_VSIB = ZYAN_TRUE; break; case ZYDIS_REG_CONSTRAINTS_NO_REL: - if (instruction->raw.modrm.mod == 0 && instruction->raw.modrm.rm == 5) + if ((context->decoder->machine_mode == ZYDIS_MACHINE_MODE_LONG_64) && + (instruction->raw.modrm.mod == 0) && + (instruction->raw.modrm.rm == 5)) { return ZYDIS_STATUS_DECODING_ERROR; }