Lines Matching refs:Instruction
94 const Instruction& instruction = pair.Inst(); in FindBranches()
165 int VeriFlowAnalysis::GetBranchFlags(const Instruction& instruction) const { in GetBranchFlags()
168 case Instruction::IF_##cond: { \ in GetBranchFlags()
173 return Instruction::kBranch; \ in GetBranchFlags()
175 return Instruction::kContinue; \ in GetBranchFlags()
180 case Instruction::IF_##cond##Z: { \ in GetBranchFlags()
184 return Instruction::kBranch; \ in GetBranchFlags()
186 return Instruction::kContinue; \ in GetBranchFlags()
205 return Instruction::FlagsOf(instruction.Opcode()); in GetBranchFlags()
227 const Instruction& inst = *Instruction::At(insns); in AnalyzeCode()
233 if ((branch_flags & Instruction::kContinue) != 0) { in AnalyzeCode()
234 if ((branch_flags & Instruction::kBranch) != 0) { in AnalyzeCode()
241 } else if ((branch_flags & Instruction::kBranch) != 0) { in AnalyzeCode()
259 void VeriFlowAnalysis::ProcessDexInstruction(const Instruction& instruction) { in ProcessDexInstruction()
261 case Instruction::CONST_4: { in ProcessDexInstruction()
267 case Instruction::CONST_16: { in ProcessDexInstruction()
274 case Instruction::CONST: { in ProcessDexInstruction()
281 case Instruction::CONST_HIGH16: { in ProcessDexInstruction()
288 case Instruction::CONST_WIDE_16: in ProcessDexInstruction()
289 case Instruction::CONST_WIDE_32: in ProcessDexInstruction()
290 case Instruction::CONST_WIDE: in ProcessDexInstruction()
291 case Instruction::CONST_WIDE_HIGH16: { in ProcessDexInstruction()
297 case Instruction::MOVE: in ProcessDexInstruction()
298 case Instruction::MOVE_FROM16: in ProcessDexInstruction()
299 case Instruction::MOVE_16: { in ProcessDexInstruction()
304 case Instruction::MOVE_WIDE: in ProcessDexInstruction()
305 case Instruction::MOVE_WIDE_FROM16: in ProcessDexInstruction()
306 case Instruction::MOVE_WIDE_16: { in ProcessDexInstruction()
311 case Instruction::MOVE_OBJECT: in ProcessDexInstruction()
312 case Instruction::MOVE_OBJECT_16: in ProcessDexInstruction()
313 case Instruction::MOVE_OBJECT_FROM16: { in ProcessDexInstruction()
317 case Instruction::CONST_CLASS: { in ProcessDexInstruction()
324 case Instruction::CONST_STRING: { in ProcessDexInstruction()
332 case Instruction::CONST_STRING_JUMBO: { in ProcessDexInstruction()
339 case Instruction::INVOKE_DIRECT: in ProcessDexInstruction()
340 case Instruction::INVOKE_INTERFACE: in ProcessDexInstruction()
341 case Instruction::INVOKE_STATIC: in ProcessDexInstruction()
342 case Instruction::INVOKE_SUPER: in ProcessDexInstruction()
343 case Instruction::INVOKE_VIRTUAL: { in ProcessDexInstruction()
348 case Instruction::INVOKE_DIRECT_RANGE: in ProcessDexInstruction()
349 case Instruction::INVOKE_INTERFACE_RANGE: in ProcessDexInstruction()
350 case Instruction::INVOKE_STATIC_RANGE: in ProcessDexInstruction()
351 case Instruction::INVOKE_SUPER_RANGE: in ProcessDexInstruction()
352 case Instruction::INVOKE_VIRTUAL_RANGE: { in ProcessDexInstruction()
357 case Instruction::MOVE_RESULT: in ProcessDexInstruction()
358 case Instruction::MOVE_RESULT_WIDE: in ProcessDexInstruction()
359 case Instruction::MOVE_RESULT_OBJECT: { in ProcessDexInstruction()
363 case Instruction::RETURN_VOID: in ProcessDexInstruction()
364 case Instruction::RETURN_OBJECT: in ProcessDexInstruction()
365 case Instruction::RETURN_WIDE: in ProcessDexInstruction()
366 case Instruction::RETURN: { in ProcessDexInstruction()
372 case Instruction::IF_##cond: break; \ in ProcessDexInstruction()
373 case Instruction::IF_##cond##Z: break in ProcessDexInstruction()
384 case Instruction::GOTO: in ProcessDexInstruction()
385 case Instruction::GOTO_16: in ProcessDexInstruction()
386 case Instruction::GOTO_32: { in ProcessDexInstruction()
389 case Instruction::INVOKE_POLYMORPHIC: { in ProcessDexInstruction()
394 case Instruction::INVOKE_POLYMORPHIC_RANGE: { in ProcessDexInstruction()
399 case Instruction::NEG_INT: in ProcessDexInstruction()
400 case Instruction::NEG_LONG: in ProcessDexInstruction()
401 case Instruction::NEG_FLOAT: in ProcessDexInstruction()
402 case Instruction::NEG_DOUBLE: in ProcessDexInstruction()
403 case Instruction::NOT_INT: in ProcessDexInstruction()
404 case Instruction::NOT_LONG: { in ProcessDexInstruction()
409 case Instruction::INT_TO_LONG: in ProcessDexInstruction()
410 case Instruction::INT_TO_FLOAT: in ProcessDexInstruction()
411 case Instruction::INT_TO_DOUBLE: in ProcessDexInstruction()
412 case Instruction::LONG_TO_INT: in ProcessDexInstruction()
413 case Instruction::LONG_TO_FLOAT: in ProcessDexInstruction()
414 case Instruction::LONG_TO_DOUBLE: in ProcessDexInstruction()
415 case Instruction::FLOAT_TO_INT: in ProcessDexInstruction()
416 case Instruction::FLOAT_TO_LONG: in ProcessDexInstruction()
417 case Instruction::FLOAT_TO_DOUBLE: in ProcessDexInstruction()
418 case Instruction::DOUBLE_TO_INT: in ProcessDexInstruction()
419 case Instruction::DOUBLE_TO_LONG: in ProcessDexInstruction()
420 case Instruction::DOUBLE_TO_FLOAT: in ProcessDexInstruction()
421 case Instruction::INT_TO_BYTE: in ProcessDexInstruction()
422 case Instruction::INT_TO_SHORT: in ProcessDexInstruction()
423 case Instruction::INT_TO_CHAR: { in ProcessDexInstruction()
428 case Instruction::ADD_INT: in ProcessDexInstruction()
429 case Instruction::ADD_LONG: in ProcessDexInstruction()
430 case Instruction::ADD_DOUBLE: in ProcessDexInstruction()
431 case Instruction::ADD_FLOAT: in ProcessDexInstruction()
432 case Instruction::SUB_INT: in ProcessDexInstruction()
433 case Instruction::SUB_LONG: in ProcessDexInstruction()
434 case Instruction::SUB_FLOAT: in ProcessDexInstruction()
435 case Instruction::SUB_DOUBLE: in ProcessDexInstruction()
436 case Instruction::MUL_INT: in ProcessDexInstruction()
437 case Instruction::MUL_LONG: in ProcessDexInstruction()
438 case Instruction::MUL_FLOAT: in ProcessDexInstruction()
439 case Instruction::MUL_DOUBLE: in ProcessDexInstruction()
440 case Instruction::DIV_INT: in ProcessDexInstruction()
441 case Instruction::DIV_LONG: in ProcessDexInstruction()
442 case Instruction::DIV_FLOAT: in ProcessDexInstruction()
443 case Instruction::DIV_DOUBLE: in ProcessDexInstruction()
444 case Instruction::REM_INT: in ProcessDexInstruction()
445 case Instruction::REM_LONG: in ProcessDexInstruction()
446 case Instruction::REM_FLOAT: in ProcessDexInstruction()
447 case Instruction::REM_DOUBLE: in ProcessDexInstruction()
448 case Instruction::AND_INT: in ProcessDexInstruction()
449 case Instruction::AND_LONG: in ProcessDexInstruction()
450 case Instruction::SHL_INT: in ProcessDexInstruction()
451 case Instruction::SHL_LONG: in ProcessDexInstruction()
452 case Instruction::SHR_INT: in ProcessDexInstruction()
453 case Instruction::SHR_LONG: in ProcessDexInstruction()
454 case Instruction::USHR_INT: in ProcessDexInstruction()
455 case Instruction::USHR_LONG: in ProcessDexInstruction()
456 case Instruction::OR_INT: in ProcessDexInstruction()
457 case Instruction::OR_LONG: in ProcessDexInstruction()
458 case Instruction::XOR_INT: in ProcessDexInstruction()
459 case Instruction::XOR_LONG: { in ProcessDexInstruction()
464 case Instruction::ADD_INT_2ADDR: in ProcessDexInstruction()
465 case Instruction::ADD_LONG_2ADDR: in ProcessDexInstruction()
466 case Instruction::ADD_DOUBLE_2ADDR: in ProcessDexInstruction()
467 case Instruction::ADD_FLOAT_2ADDR: in ProcessDexInstruction()
468 case Instruction::SUB_INT_2ADDR: in ProcessDexInstruction()
469 case Instruction::SUB_LONG_2ADDR: in ProcessDexInstruction()
470 case Instruction::SUB_FLOAT_2ADDR: in ProcessDexInstruction()
471 case Instruction::SUB_DOUBLE_2ADDR: in ProcessDexInstruction()
472 case Instruction::MUL_INT_2ADDR: in ProcessDexInstruction()
473 case Instruction::MUL_LONG_2ADDR: in ProcessDexInstruction()
474 case Instruction::MUL_FLOAT_2ADDR: in ProcessDexInstruction()
475 case Instruction::MUL_DOUBLE_2ADDR: in ProcessDexInstruction()
476 case Instruction::DIV_INT_2ADDR: in ProcessDexInstruction()
477 case Instruction::DIV_LONG_2ADDR: in ProcessDexInstruction()
478 case Instruction::REM_INT_2ADDR: in ProcessDexInstruction()
479 case Instruction::REM_LONG_2ADDR: in ProcessDexInstruction()
480 case Instruction::REM_FLOAT_2ADDR: in ProcessDexInstruction()
481 case Instruction::REM_DOUBLE_2ADDR: in ProcessDexInstruction()
482 case Instruction::SHL_INT_2ADDR: in ProcessDexInstruction()
483 case Instruction::SHL_LONG_2ADDR: in ProcessDexInstruction()
484 case Instruction::SHR_INT_2ADDR: in ProcessDexInstruction()
485 case Instruction::SHR_LONG_2ADDR: in ProcessDexInstruction()
486 case Instruction::USHR_INT_2ADDR: in ProcessDexInstruction()
487 case Instruction::USHR_LONG_2ADDR: in ProcessDexInstruction()
488 case Instruction::DIV_FLOAT_2ADDR: in ProcessDexInstruction()
489 case Instruction::DIV_DOUBLE_2ADDR: in ProcessDexInstruction()
490 case Instruction::AND_INT_2ADDR: in ProcessDexInstruction()
491 case Instruction::AND_LONG_2ADDR: in ProcessDexInstruction()
492 case Instruction::OR_INT_2ADDR: in ProcessDexInstruction()
493 case Instruction::OR_LONG_2ADDR: in ProcessDexInstruction()
494 case Instruction::XOR_INT_2ADDR: in ProcessDexInstruction()
495 case Instruction::XOR_LONG_2ADDR: { in ProcessDexInstruction()
500 case Instruction::ADD_INT_LIT16: in ProcessDexInstruction()
501 case Instruction::AND_INT_LIT16: in ProcessDexInstruction()
502 case Instruction::OR_INT_LIT16: in ProcessDexInstruction()
503 case Instruction::XOR_INT_LIT16: in ProcessDexInstruction()
504 case Instruction::RSUB_INT: in ProcessDexInstruction()
505 case Instruction::MUL_INT_LIT16: in ProcessDexInstruction()
506 case Instruction::DIV_INT_LIT16: in ProcessDexInstruction()
507 case Instruction::REM_INT_LIT16: { in ProcessDexInstruction()
512 case Instruction::ADD_INT_LIT8: in ProcessDexInstruction()
513 case Instruction::AND_INT_LIT8: in ProcessDexInstruction()
514 case Instruction::OR_INT_LIT8: in ProcessDexInstruction()
515 case Instruction::XOR_INT_LIT8: in ProcessDexInstruction()
516 case Instruction::RSUB_INT_LIT8: in ProcessDexInstruction()
517 case Instruction::MUL_INT_LIT8: in ProcessDexInstruction()
518 case Instruction::DIV_INT_LIT8: in ProcessDexInstruction()
519 case Instruction::REM_INT_LIT8: in ProcessDexInstruction()
520 case Instruction::SHL_INT_LIT8: in ProcessDexInstruction()
521 case Instruction::SHR_INT_LIT8: in ProcessDexInstruction()
522 case Instruction::USHR_INT_LIT8: { in ProcessDexInstruction()
527 case Instruction::NEW_INSTANCE: { in ProcessDexInstruction()
533 case Instruction::NEW_ARRAY: { in ProcessDexInstruction()
540 case Instruction::FILLED_NEW_ARRAY: { in ProcessDexInstruction()
547 case Instruction::FILLED_NEW_ARRAY_RANGE: { in ProcessDexInstruction()
555 case Instruction::FILL_ARRAY_DATA: { in ProcessDexInstruction()
559 case Instruction::CMP_LONG: in ProcessDexInstruction()
560 case Instruction::CMPG_FLOAT: in ProcessDexInstruction()
561 case Instruction::CMPG_DOUBLE: in ProcessDexInstruction()
562 case Instruction::CMPL_FLOAT: in ProcessDexInstruction()
563 case Instruction::CMPL_DOUBLE: { in ProcessDexInstruction()
568 case Instruction::NOP: in ProcessDexInstruction()
571 case Instruction::IGET: in ProcessDexInstruction()
572 case Instruction::IGET_WIDE: in ProcessDexInstruction()
573 case Instruction::IGET_OBJECT: in ProcessDexInstruction()
574 case Instruction::IGET_BOOLEAN: in ProcessDexInstruction()
575 case Instruction::IGET_BYTE: in ProcessDexInstruction()
576 case Instruction::IGET_CHAR: in ProcessDexInstruction()
577 case Instruction::IGET_SHORT: { in ProcessDexInstruction()
582 case Instruction::IPUT: in ProcessDexInstruction()
583 case Instruction::IPUT_WIDE: in ProcessDexInstruction()
584 case Instruction::IPUT_OBJECT: in ProcessDexInstruction()
585 case Instruction::IPUT_BOOLEAN: in ProcessDexInstruction()
586 case Instruction::IPUT_BYTE: in ProcessDexInstruction()
587 case Instruction::IPUT_CHAR: in ProcessDexInstruction()
588 case Instruction::IPUT_SHORT: { in ProcessDexInstruction()
593 case Instruction::SGET: in ProcessDexInstruction()
594 case Instruction::SGET_WIDE: in ProcessDexInstruction()
595 case Instruction::SGET_OBJECT: in ProcessDexInstruction()
596 case Instruction::SGET_BOOLEAN: in ProcessDexInstruction()
597 case Instruction::SGET_BYTE: in ProcessDexInstruction()
598 case Instruction::SGET_CHAR: in ProcessDexInstruction()
599 case Instruction::SGET_SHORT: { in ProcessDexInstruction()
610 case Instruction::SPUT: in ProcessDexInstruction()
611 case Instruction::SPUT_WIDE: in ProcessDexInstruction()
612 case Instruction::SPUT_OBJECT: in ProcessDexInstruction()
613 case Instruction::SPUT_BOOLEAN: in ProcessDexInstruction()
614 case Instruction::SPUT_BYTE: in ProcessDexInstruction()
615 case Instruction::SPUT_CHAR: in ProcessDexInstruction()
616 case Instruction::SPUT_SHORT: { in ProcessDexInstruction()
622 case Instruction::AGET##kind: { \ in ProcessDexInstruction()
626 case Instruction::APUT##kind: { \ in ProcessDexInstruction()
637 case Instruction::AGET_OBJECT: { in ProcessDexInstruction()
643 case Instruction::APUT_OBJECT: { in ProcessDexInstruction()
647 case Instruction::ARRAY_LENGTH: { in ProcessDexInstruction()
652 case Instruction::MOVE_EXCEPTION: { in ProcessDexInstruction()
657 case Instruction::THROW: { in ProcessDexInstruction()
661 case Instruction::INSTANCE_OF: { in ProcessDexInstruction()
667 case Instruction::CHECK_CAST: { in ProcessDexInstruction()
674 case Instruction::MONITOR_ENTER: in ProcessDexInstruction()
675 case Instruction::MONITOR_EXIT: { in ProcessDexInstruction()
679 case Instruction::SPARSE_SWITCH: in ProcessDexInstruction()
680 case Instruction::PACKED_SWITCH: in ProcessDexInstruction()
703 static uint32_t GetParameterAt(const Instruction& instruction, in GetParameterAt()
710 RegisterValue FlowAnalysisCollector::AnalyzeInvoke(const Instruction& instruction, bool is_range) { in AnalyzeInvoke()
763 void FlowAnalysisCollector::AnalyzeFieldSet(const Instruction& instruction ATTRIBUTE_UNUSED) { in AnalyzeFieldSet()
767 RegisterValue FlowAnalysisSubstitutor::AnalyzeInvoke(const Instruction& instruction, in AnalyzeInvoke()
795 void FlowAnalysisSubstitutor::AnalyzeFieldSet(const Instruction& instruction ATTRIBUTE_UNUSED) { in AnalyzeFieldSet()