diff --git a/irdb-libs/libIRDB-core/src/operand_csx86.cpp b/irdb-libs/libIRDB-core/src/operand_csx86.cpp index 73574862bcc778b5cd9dc5676a98523dee81f7fe..080c6ff412cebe07a121a3cb52041303fec7cd42 100644 --- a/irdb-libs/libIRDB-core/src/operand_csx86.cpp +++ b/irdb-libs/libIRDB-core/src/operand_csx86.cpp @@ -449,17 +449,17 @@ bool DecodedOperandCapstoneX86_t::isMemory() const bool DecodedOperandCapstoneX86_t::hasBaseRegister() const { - const auto the_insn=static_cast<cs_insn*>(my_insn.get()); - const auto &op = (the_insn->detail->x86.operands[op_num]); - const auto br_is_pc = - op.mem.base==X86_REG_RIP || - op.mem.base==X86_REG_EIP || - op.mem.base==X86_REG_IP; - const auto br_is_valid = + const auto the_insn=static_cast<cs_insn*>(my_insn.get()); + const auto &op = (the_insn->detail->x86.operands[op_num]); + const auto br_is_pc = + op.mem.base==X86_REG_RIP || + op.mem.base==X86_REG_EIP || + op.mem.base==X86_REG_IP; + const auto br_is_valid = op.mem.base != X86_REG_INVALID && op.mem.base != X86_REG_EIZ && op.mem.base != X86_REG_RIZ; - return isMemory() && br_is_valid && !br_is_pc; + return isMemory() && br_is_valid && !br_is_pc; } bool DecodedOperandCapstoneX86_t::hasIndexRegister() const