Lines Matching refs:dex_pc

38 void VeriFlowAnalysis::SetAsBranchTarget(uint32_t dex_pc) {  in SetAsBranchTarget()  argument
39 if (dex_registers_[dex_pc] == nullptr) { in SetAsBranchTarget()
40 dex_registers_[dex_pc].reset( in SetAsBranchTarget()
45 bool VeriFlowAnalysis::IsBranchTarget(uint32_t dex_pc) { in IsBranchTarget() argument
46 return dex_registers_[dex_pc] != nullptr; in IsBranchTarget()
49 bool VeriFlowAnalysis::MergeRegisterValues(uint32_t dex_pc) { in MergeRegisterValues() argument
52 if (!instruction_infos_[dex_pc].has_been_visited) { in MergeRegisterValues()
53 dex_registers_[dex_pc]->assign(current_registers_.begin(), current_registers_.end()); in MergeRegisterValues()
59 void VeriFlowAnalysis::SetVisited(uint32_t dex_pc) { in SetVisited() argument
60 instruction_infos_[dex_pc].has_been_visited = true; in SetVisited()
89 const uint32_t dex_pc = pair.DexPc(); in FindBranches() local
93 SetAsBranchTarget(dex_pc + instruction.GetTargetOffset()); in FindBranches()
95 DexSwitchTable table(instruction, dex_pc); in FindBranches()
97 SetAsBranchTarget(dex_pc + s_it.CurrentTargetOffset()); in FindBranches()
198 uint32_t dex_pc = work_list.back(); in AnalyzeCode() local
200 CHECK(IsBranchTarget(dex_pc)); in AnalyzeCode()
201 current_registers_ = *dex_registers_[dex_pc].get(); in AnalyzeCode()
203 const uint16_t* insns = code_item_accessor_.Insns() + dex_pc; in AnalyzeCode()
206 SetVisited(dex_pc); in AnalyzeCode()
212 uint32_t branch_dex_pc = dex_pc + inst.GetTargetOffset(); in AnalyzeCode()
217 dex_pc += inst.SizeInCodeUnits(); in AnalyzeCode()
219 dex_pc += inst.GetTargetOffset(); in AnalyzeCode()
220 DCHECK(IsBranchTarget(dex_pc)); in AnalyzeCode()
225 if (IsBranchTarget(dex_pc)) { in AnalyzeCode()
226 if (MergeRegisterValues(dex_pc)) { in AnalyzeCode()
227 current_registers_ = *dex_registers_[dex_pc].get(); in AnalyzeCode()