Lines Matching refs:Instruction

90     const Instruction& instruction = pair.Inst();  in FindBranches()
147 int VeriFlowAnalysis::GetBranchFlags(const Instruction& instruction) const { in GetBranchFlags()
150 case Instruction::IF_##cond: { \ in GetBranchFlags()
155 return Instruction::kBranch; \ in GetBranchFlags()
157 return Instruction::kContinue; \ in GetBranchFlags()
162 case Instruction::IF_##cond##Z: { \ in GetBranchFlags()
166 return Instruction::kBranch; \ in GetBranchFlags()
168 return Instruction::kContinue; \ in GetBranchFlags()
187 return Instruction::FlagsOf(instruction.Opcode()); in GetBranchFlags()
204 const Instruction& inst = *Instruction::At(insns); in AnalyzeCode()
210 if ((branch_flags & Instruction::kContinue) != 0) { in AnalyzeCode()
211 if ((branch_flags & Instruction::kBranch) != 0) { in AnalyzeCode()
218 } else if ((branch_flags & Instruction::kBranch) != 0) { in AnalyzeCode()
236 void VeriFlowAnalysis::ProcessDexInstruction(const Instruction& instruction) { in ProcessDexInstruction()
238 case Instruction::CONST_4: { in ProcessDexInstruction()
244 case Instruction::CONST_16: { in ProcessDexInstruction()
251 case Instruction::CONST: { in ProcessDexInstruction()
258 case Instruction::CONST_HIGH16: { in ProcessDexInstruction()
265 case Instruction::CONST_WIDE_16: in ProcessDexInstruction()
266 case Instruction::CONST_WIDE_32: in ProcessDexInstruction()
267 case Instruction::CONST_WIDE: in ProcessDexInstruction()
268 case Instruction::CONST_WIDE_HIGH16: { in ProcessDexInstruction()
274 case Instruction::MOVE: in ProcessDexInstruction()
275 case Instruction::MOVE_FROM16: in ProcessDexInstruction()
276 case Instruction::MOVE_16: { in ProcessDexInstruction()
281 case Instruction::MOVE_WIDE: in ProcessDexInstruction()
282 case Instruction::MOVE_WIDE_FROM16: in ProcessDexInstruction()
283 case Instruction::MOVE_WIDE_16: { in ProcessDexInstruction()
288 case Instruction::MOVE_OBJECT: in ProcessDexInstruction()
289 case Instruction::MOVE_OBJECT_16: in ProcessDexInstruction()
290 case Instruction::MOVE_OBJECT_FROM16: { in ProcessDexInstruction()
294 case Instruction::CONST_CLASS: { in ProcessDexInstruction()
301 case Instruction::CONST_STRING: { in ProcessDexInstruction()
309 case Instruction::CONST_STRING_JUMBO: { in ProcessDexInstruction()
316 case Instruction::INVOKE_DIRECT: in ProcessDexInstruction()
317 case Instruction::INVOKE_INTERFACE: in ProcessDexInstruction()
318 case Instruction::INVOKE_STATIC: in ProcessDexInstruction()
319 case Instruction::INVOKE_SUPER: in ProcessDexInstruction()
320 case Instruction::INVOKE_VIRTUAL: { in ProcessDexInstruction()
325 case Instruction::INVOKE_DIRECT_RANGE: in ProcessDexInstruction()
326 case Instruction::INVOKE_INTERFACE_RANGE: in ProcessDexInstruction()
327 case Instruction::INVOKE_STATIC_RANGE: in ProcessDexInstruction()
328 case Instruction::INVOKE_SUPER_RANGE: in ProcessDexInstruction()
329 case Instruction::INVOKE_VIRTUAL_RANGE: { in ProcessDexInstruction()
334 case Instruction::MOVE_RESULT: in ProcessDexInstruction()
335 case Instruction::MOVE_RESULT_WIDE: in ProcessDexInstruction()
336 case Instruction::MOVE_RESULT_OBJECT: { in ProcessDexInstruction()
340 case Instruction::RETURN_VOID: in ProcessDexInstruction()
341 case Instruction::RETURN_OBJECT: in ProcessDexInstruction()
342 case Instruction::RETURN_WIDE: in ProcessDexInstruction()
343 case Instruction::RETURN: { in ProcessDexInstruction()
349 case Instruction::IF_##cond: break; \ in ProcessDexInstruction()
350 case Instruction::IF_##cond##Z: break in ProcessDexInstruction()
361 case Instruction::GOTO: in ProcessDexInstruction()
362 case Instruction::GOTO_16: in ProcessDexInstruction()
363 case Instruction::GOTO_32: { in ProcessDexInstruction()
366 case Instruction::INVOKE_POLYMORPHIC: { in ProcessDexInstruction()
371 case Instruction::INVOKE_POLYMORPHIC_RANGE: { in ProcessDexInstruction()
376 case Instruction::NEG_INT: in ProcessDexInstruction()
377 case Instruction::NEG_LONG: in ProcessDexInstruction()
378 case Instruction::NEG_FLOAT: in ProcessDexInstruction()
379 case Instruction::NEG_DOUBLE: in ProcessDexInstruction()
380 case Instruction::NOT_INT: in ProcessDexInstruction()
381 case Instruction::NOT_LONG: { in ProcessDexInstruction()
386 case Instruction::INT_TO_LONG: in ProcessDexInstruction()
387 case Instruction::INT_TO_FLOAT: in ProcessDexInstruction()
388 case Instruction::INT_TO_DOUBLE: in ProcessDexInstruction()
389 case Instruction::LONG_TO_INT: in ProcessDexInstruction()
390 case Instruction::LONG_TO_FLOAT: in ProcessDexInstruction()
391 case Instruction::LONG_TO_DOUBLE: in ProcessDexInstruction()
392 case Instruction::FLOAT_TO_INT: in ProcessDexInstruction()
393 case Instruction::FLOAT_TO_LONG: in ProcessDexInstruction()
394 case Instruction::FLOAT_TO_DOUBLE: in ProcessDexInstruction()
395 case Instruction::DOUBLE_TO_INT: in ProcessDexInstruction()
396 case Instruction::DOUBLE_TO_LONG: in ProcessDexInstruction()
397 case Instruction::DOUBLE_TO_FLOAT: in ProcessDexInstruction()
398 case Instruction::INT_TO_BYTE: in ProcessDexInstruction()
399 case Instruction::INT_TO_SHORT: in ProcessDexInstruction()
400 case Instruction::INT_TO_CHAR: { in ProcessDexInstruction()
405 case Instruction::ADD_INT: in ProcessDexInstruction()
406 case Instruction::ADD_LONG: in ProcessDexInstruction()
407 case Instruction::ADD_DOUBLE: in ProcessDexInstruction()
408 case Instruction::ADD_FLOAT: in ProcessDexInstruction()
409 case Instruction::SUB_INT: in ProcessDexInstruction()
410 case Instruction::SUB_LONG: in ProcessDexInstruction()
411 case Instruction::SUB_FLOAT: in ProcessDexInstruction()
412 case Instruction::SUB_DOUBLE: in ProcessDexInstruction()
413 case Instruction::MUL_INT: in ProcessDexInstruction()
414 case Instruction::MUL_LONG: in ProcessDexInstruction()
415 case Instruction::MUL_FLOAT: in ProcessDexInstruction()
416 case Instruction::MUL_DOUBLE: in ProcessDexInstruction()
417 case Instruction::DIV_INT: in ProcessDexInstruction()
418 case Instruction::DIV_LONG: in ProcessDexInstruction()
419 case Instruction::DIV_FLOAT: in ProcessDexInstruction()
420 case Instruction::DIV_DOUBLE: in ProcessDexInstruction()
421 case Instruction::REM_INT: in ProcessDexInstruction()
422 case Instruction::REM_LONG: in ProcessDexInstruction()
423 case Instruction::REM_FLOAT: in ProcessDexInstruction()
424 case Instruction::REM_DOUBLE: in ProcessDexInstruction()
425 case Instruction::AND_INT: in ProcessDexInstruction()
426 case Instruction::AND_LONG: in ProcessDexInstruction()
427 case Instruction::SHL_INT: in ProcessDexInstruction()
428 case Instruction::SHL_LONG: in ProcessDexInstruction()
429 case Instruction::SHR_INT: in ProcessDexInstruction()
430 case Instruction::SHR_LONG: in ProcessDexInstruction()
431 case Instruction::USHR_INT: in ProcessDexInstruction()
432 case Instruction::USHR_LONG: in ProcessDexInstruction()
433 case Instruction::OR_INT: in ProcessDexInstruction()
434 case Instruction::OR_LONG: in ProcessDexInstruction()
435 case Instruction::XOR_INT: in ProcessDexInstruction()
436 case Instruction::XOR_LONG: { in ProcessDexInstruction()
441 case Instruction::ADD_INT_2ADDR: in ProcessDexInstruction()
442 case Instruction::ADD_LONG_2ADDR: in ProcessDexInstruction()
443 case Instruction::ADD_DOUBLE_2ADDR: in ProcessDexInstruction()
444 case Instruction::ADD_FLOAT_2ADDR: in ProcessDexInstruction()
445 case Instruction::SUB_INT_2ADDR: in ProcessDexInstruction()
446 case Instruction::SUB_LONG_2ADDR: in ProcessDexInstruction()
447 case Instruction::SUB_FLOAT_2ADDR: in ProcessDexInstruction()
448 case Instruction::SUB_DOUBLE_2ADDR: in ProcessDexInstruction()
449 case Instruction::MUL_INT_2ADDR: in ProcessDexInstruction()
450 case Instruction::MUL_LONG_2ADDR: in ProcessDexInstruction()
451 case Instruction::MUL_FLOAT_2ADDR: in ProcessDexInstruction()
452 case Instruction::MUL_DOUBLE_2ADDR: in ProcessDexInstruction()
453 case Instruction::DIV_INT_2ADDR: in ProcessDexInstruction()
454 case Instruction::DIV_LONG_2ADDR: in ProcessDexInstruction()
455 case Instruction::REM_INT_2ADDR: in ProcessDexInstruction()
456 case Instruction::REM_LONG_2ADDR: in ProcessDexInstruction()
457 case Instruction::REM_FLOAT_2ADDR: in ProcessDexInstruction()
458 case Instruction::REM_DOUBLE_2ADDR: in ProcessDexInstruction()
459 case Instruction::SHL_INT_2ADDR: in ProcessDexInstruction()
460 case Instruction::SHL_LONG_2ADDR: in ProcessDexInstruction()
461 case Instruction::SHR_INT_2ADDR: in ProcessDexInstruction()
462 case Instruction::SHR_LONG_2ADDR: in ProcessDexInstruction()
463 case Instruction::USHR_INT_2ADDR: in ProcessDexInstruction()
464 case Instruction::USHR_LONG_2ADDR: in ProcessDexInstruction()
465 case Instruction::DIV_FLOAT_2ADDR: in ProcessDexInstruction()
466 case Instruction::DIV_DOUBLE_2ADDR: in ProcessDexInstruction()
467 case Instruction::AND_INT_2ADDR: in ProcessDexInstruction()
468 case Instruction::AND_LONG_2ADDR: in ProcessDexInstruction()
469 case Instruction::OR_INT_2ADDR: in ProcessDexInstruction()
470 case Instruction::OR_LONG_2ADDR: in ProcessDexInstruction()
471 case Instruction::XOR_INT_2ADDR: in ProcessDexInstruction()
472 case Instruction::XOR_LONG_2ADDR: { in ProcessDexInstruction()
477 case Instruction::ADD_INT_LIT16: in ProcessDexInstruction()
478 case Instruction::AND_INT_LIT16: in ProcessDexInstruction()
479 case Instruction::OR_INT_LIT16: in ProcessDexInstruction()
480 case Instruction::XOR_INT_LIT16: in ProcessDexInstruction()
481 case Instruction::RSUB_INT: in ProcessDexInstruction()
482 case Instruction::MUL_INT_LIT16: in ProcessDexInstruction()
483 case Instruction::DIV_INT_LIT16: in ProcessDexInstruction()
484 case Instruction::REM_INT_LIT16: { in ProcessDexInstruction()
489 case Instruction::ADD_INT_LIT8: in ProcessDexInstruction()
490 case Instruction::AND_INT_LIT8: in ProcessDexInstruction()
491 case Instruction::OR_INT_LIT8: in ProcessDexInstruction()
492 case Instruction::XOR_INT_LIT8: in ProcessDexInstruction()
493 case Instruction::RSUB_INT_LIT8: in ProcessDexInstruction()
494 case Instruction::MUL_INT_LIT8: in ProcessDexInstruction()
495 case Instruction::DIV_INT_LIT8: in ProcessDexInstruction()
496 case Instruction::REM_INT_LIT8: in ProcessDexInstruction()
497 case Instruction::SHL_INT_LIT8: in ProcessDexInstruction()
498 case Instruction::SHR_INT_LIT8: in ProcessDexInstruction()
499 case Instruction::USHR_INT_LIT8: { in ProcessDexInstruction()
504 case Instruction::NEW_INSTANCE: { in ProcessDexInstruction()
510 case Instruction::NEW_ARRAY: { in ProcessDexInstruction()
517 case Instruction::FILLED_NEW_ARRAY: { in ProcessDexInstruction()
524 case Instruction::FILLED_NEW_ARRAY_RANGE: { in ProcessDexInstruction()
532 case Instruction::FILL_ARRAY_DATA: { in ProcessDexInstruction()
536 case Instruction::CMP_LONG: in ProcessDexInstruction()
537 case Instruction::CMPG_FLOAT: in ProcessDexInstruction()
538 case Instruction::CMPG_DOUBLE: in ProcessDexInstruction()
539 case Instruction::CMPL_FLOAT: in ProcessDexInstruction()
540 case Instruction::CMPL_DOUBLE: { in ProcessDexInstruction()
545 case Instruction::NOP: in ProcessDexInstruction()
548 case Instruction::IGET: in ProcessDexInstruction()
549 case Instruction::IGET_WIDE: in ProcessDexInstruction()
550 case Instruction::IGET_OBJECT: in ProcessDexInstruction()
551 case Instruction::IGET_BOOLEAN: in ProcessDexInstruction()
552 case Instruction::IGET_BYTE: in ProcessDexInstruction()
553 case Instruction::IGET_CHAR: in ProcessDexInstruction()
554 case Instruction::IGET_SHORT: { in ProcessDexInstruction()
559 case Instruction::IPUT: in ProcessDexInstruction()
560 case Instruction::IPUT_WIDE: in ProcessDexInstruction()
561 case Instruction::IPUT_OBJECT: in ProcessDexInstruction()
562 case Instruction::IPUT_BOOLEAN: in ProcessDexInstruction()
563 case Instruction::IPUT_BYTE: in ProcessDexInstruction()
564 case Instruction::IPUT_CHAR: in ProcessDexInstruction()
565 case Instruction::IPUT_SHORT: { in ProcessDexInstruction()
570 case Instruction::SGET: in ProcessDexInstruction()
571 case Instruction::SGET_WIDE: in ProcessDexInstruction()
572 case Instruction::SGET_OBJECT: in ProcessDexInstruction()
573 case Instruction::SGET_BOOLEAN: in ProcessDexInstruction()
574 case Instruction::SGET_BYTE: in ProcessDexInstruction()
575 case Instruction::SGET_CHAR: in ProcessDexInstruction()
576 case Instruction::SGET_SHORT: { in ProcessDexInstruction()
587 case Instruction::SPUT: in ProcessDexInstruction()
588 case Instruction::SPUT_WIDE: in ProcessDexInstruction()
589 case Instruction::SPUT_OBJECT: in ProcessDexInstruction()
590 case Instruction::SPUT_BOOLEAN: in ProcessDexInstruction()
591 case Instruction::SPUT_BYTE: in ProcessDexInstruction()
592 case Instruction::SPUT_CHAR: in ProcessDexInstruction()
593 case Instruction::SPUT_SHORT: { in ProcessDexInstruction()
599 case Instruction::AGET##kind: { \ in ProcessDexInstruction()
603 case Instruction::APUT##kind: { \ in ProcessDexInstruction()
614 case Instruction::AGET_OBJECT: { in ProcessDexInstruction()
620 case Instruction::APUT_OBJECT: { in ProcessDexInstruction()
624 case Instruction::ARRAY_LENGTH: { in ProcessDexInstruction()
629 case Instruction::MOVE_EXCEPTION: { in ProcessDexInstruction()
634 case Instruction::THROW: { in ProcessDexInstruction()
638 case Instruction::INSTANCE_OF: { in ProcessDexInstruction()
644 case Instruction::CHECK_CAST: { in ProcessDexInstruction()
651 case Instruction::MONITOR_ENTER: in ProcessDexInstruction()
652 case Instruction::MONITOR_EXIT: { in ProcessDexInstruction()
656 case Instruction::SPARSE_SWITCH: in ProcessDexInstruction()
657 case Instruction::PACKED_SWITCH: in ProcessDexInstruction()
680 static uint32_t GetParameterAt(const Instruction& instruction, in GetParameterAt()
687 RegisterValue FlowAnalysisCollector::AnalyzeInvoke(const Instruction& instruction, bool is_range) { in AnalyzeInvoke()
740 void FlowAnalysisCollector::AnalyzeFieldSet(const Instruction& instruction ATTRIBUTE_UNUSED) { in AnalyzeFieldSet()
744 RegisterValue FlowAnalysisSubstitutor::AnalyzeInvoke(const Instruction& instruction, in AnalyzeInvoke()
772 void FlowAnalysisSubstitutor::AnalyzeFieldSet(const Instruction& instruction ATTRIBUTE_UNUSED) { in AnalyzeFieldSet()