Lines Matching refs:eval_info
439 EvalInfo<AddressType>* eval_info = reinterpret_cast<EvalInfo<AddressType>*>(info); in EvalRegister() local
440 Memory* regular_memory = eval_info->regular_memory; in EvalRegister()
443 … if (!regular_memory->ReadFully(eval_info->cfa + loc->values[0], reg_ptr, sizeof(AddressType))) { in EvalRegister()
445 last_error_.address = eval_info->cfa + loc->values[0]; in EvalRegister()
450 *reg_ptr = eval_info->cfa + loc->values[0]; in EvalRegister()
453 uint16_t cur_reg = eval_info->regs_info.regs->Convert(loc->values[0]); in EvalRegister()
454 if (cur_reg >= eval_info->regs_info.Total()) { in EvalRegister()
458 *reg_ptr = eval_info->regs_info.Get(cur_reg) + loc->values[1]; in EvalRegister()
465 if (!EvalExpression(*loc, regular_memory, &value, &eval_info->regs_info, &is_dex_pc)) { in EvalRegister()
477 eval_info->regs_info.regs->set_dex_pc(value); in EvalRegister()
483 if (reg == eval_info->cie->return_address_register) { in EvalRegister()
484 eval_info->return_address_undefined = true; in EvalRegister()
521 EvalInfo<AddressType> eval_info{.loc_regs = &loc_regs, in Eval() local
533 eval_info.cfa = (*cur_regs)[loc->values[0]]; in Eval()
534 eval_info.cfa += loc->values[1]; in Eval()
538 if (!EvalExpression(*loc, regular_memory, &value, &eval_info.regs_info, nullptr)) { in Eval()
542 eval_info.cfa = value; in Eval()
561 if (!eval_info.regs_info.regs->SetPseudoRegister(reg, entry.second.values[0])) { in Eval()
566 reg_ptr = eval_info.regs_info.Save(reg); in Eval()
567 if (!EvalRegister(&entry.second, reg, reg_ptr, &eval_info)) { in Eval()
574 if (eval_info.return_address_undefined) { in Eval()
585 cur_regs->set_sp(eval_info.cfa); in Eval()