diff --git a/irdb-libs/ir_builders/fill_in_indtargs.cpp b/irdb-libs/ir_builders/fill_in_indtargs.cpp index 1c10d9243813b7cfefcfd392ce3609ea8317c958..800d8bcccce3a7615a882d9834a5b4d81e2de23d 100644 --- a/irdb-libs/ir_builders/fill_in_indtargs.cpp +++ b/irdb-libs/ir_builders/fill_in_indtargs.cpp @@ -2496,11 +2496,11 @@ V2: */ if (!d6->getOperand(1)->hasBaseRegister()) return; - const auto base_reg = regNoToX8664Reg(d6->getOperand(1)->getBaseRegister()); + const auto base_reg = regNoToX8664Reg((int32_t) d6->getOperand(1)->getBaseRegister()); if (!d6->getOperand(1)->hasIndexRegister()) return; - index_reg_no = d6->getOperand(1)->getIndexRegister(); + index_reg_no = (int32_t) d6->getOperand(1)->getIndexRegister(); const auto index_reg_64bit = regNoToX8664Reg(index_reg_no); const auto index_reg_32bit = regNoToX8632Reg(index_reg_no); const auto index_reg_16bit = regNoToX8616Reg(index_reg_no); @@ -2809,10 +2809,15 @@ V2: // Do the same search again starting from this move and check for a comparison with the temporary register const auto index_reg_64bit = regNoToX8664Reg(index_reg_no); const auto index_reg_32bit = regNoToX8632Reg(index_reg_no); - const auto temp_index_reg_64bit = regNoToX8664Reg(decoded_instr->getOperand(1)->getRegNumber()); - const auto temp_index_reg_32bit = regNoToX8632Reg(decoded_instr->getOperand(1)->getRegNumber()); - const auto temp_index_reg_16bit = regNoToX8616Reg(decoded_instr->getOperand(1)->getRegNumber()); - const auto temp_index_reg_8bit = regNoToX868Reg(decoded_instr->getOperand(1)->getRegNumber()); + const auto temp_index_reg_64bit = + regNoToX8664Reg((int32_t) decoded_instr->getOperand(1)->getRegNumber()); + const auto temp_index_reg_32bit = + regNoToX8632Reg((int32_t) decoded_instr->getOperand(1)->getRegNumber()); + const auto temp_index_reg_16bit = + regNoToX8616Reg((int32_t) decoded_instr->getOperand(1)->getRegNumber()); + const auto temp_index_reg_8bit = + regNoToX868Reg((int32_t) decoded_instr->getOperand(1)->getRegNumber()); + if(index_reg_32bit.empty() || index_reg_64bit.empty()){ cout << "WARNING: Could not detect index register for table load at " << hex << table_load_instruction->getAddress()->getVirtualOffset() << endl;