Lines Matching refs:Instruction
579 const Instruction* inst = Instruction::At(code_item->insns_); in HasMonitorEnterInstructions()
583 if (inst->Opcode() == Instruction::MONITOR_ENTER) { in HasMonitorEnterInstructions()
646 const Instruction* inst = Instruction::At(code_item_->insns_ + dex_pc); in FindAccessedFieldAtDexPc()
686 const Instruction* inst = Instruction::At(code_item_->insns_ + dex_pc); in FindInvokedMethodAtDexPc()
687 const bool is_range = (inst->Opcode() == Instruction::INVOKE_VIRTUAL_RANGE_QUICK); in FindInvokedMethodAtDexPc()
890 const Instruction* inst = Instruction::At(insns); in Fail()
891 int opcode_flags = Instruction::FlagsOf(inst->Opcode()); in Fail()
893 if ((opcode_flags & Instruction::kThrow) == 0 && CurrentInsnFlags()->IsInTry()) { in Fail()
952 const Instruction* inst = Instruction::At(insns); in ComputeWidthsAndCountOps()
958 Instruction::Code opcode = inst->Opcode(); in ComputeWidthsAndCountOps()
960 case Instruction::APUT_OBJECT: in ComputeWidthsAndCountOps()
961 case Instruction::CHECK_CAST: in ComputeWidthsAndCountOps()
964 case Instruction::INVOKE_VIRTUAL: in ComputeWidthsAndCountOps()
965 case Instruction::INVOKE_VIRTUAL_RANGE: in ComputeWidthsAndCountOps()
966 case Instruction::INVOKE_INTERFACE: in ComputeWidthsAndCountOps()
967 case Instruction::INVOKE_INTERFACE_RANGE: in ComputeWidthsAndCountOps()
970 case Instruction::MONITOR_ENTER: in ComputeWidthsAndCountOps()
973 case Instruction::NEW_INSTANCE: in ComputeWidthsAndCountOps()
1019 const Instruction* inst = Instruction::At(code_item_->insns_ + dex_pc); in ScanTryCatchBlocks()
1064 const Instruction* inst = Instruction::At(code_item_->insns_); in VerifyInstructions()
1099 bool MethodVerifier::VerifyInstruction(const Instruction* inst, uint32_t code_offset) { in VerifyInstruction()
1113 case Instruction::kVerifyRegA: in VerifyInstruction()
1116 case Instruction::kVerifyRegAWide: in VerifyInstruction()
1121 case Instruction::kVerifyRegB: in VerifyInstruction()
1124 case Instruction::kVerifyRegBField: in VerifyInstruction()
1127 case Instruction::kVerifyRegBMethod: in VerifyInstruction()
1130 case Instruction::kVerifyRegBNewInstance: in VerifyInstruction()
1133 case Instruction::kVerifyRegBString: in VerifyInstruction()
1136 case Instruction::kVerifyRegBType: in VerifyInstruction()
1139 case Instruction::kVerifyRegBWide: in VerifyInstruction()
1144 case Instruction::kVerifyRegC: in VerifyInstruction()
1147 case Instruction::kVerifyRegCField: in VerifyInstruction()
1150 case Instruction::kVerifyRegCNewArray: in VerifyInstruction()
1153 case Instruction::kVerifyRegCType: in VerifyInstruction()
1156 case Instruction::kVerifyRegCWide: in VerifyInstruction()
1159 case Instruction::kVerifyRegCString: in VerifyInstruction()
1164 case Instruction::kVerifyArrayData: in VerifyInstruction()
1167 case Instruction::kVerifyBranchTarget: in VerifyInstruction()
1170 case Instruction::kVerifySwitchTargets: in VerifyInstruction()
1173 case Instruction::kVerifyVarArgNonZero: in VerifyInstruction()
1175 case Instruction::kVerifyVarArg: { in VerifyInstruction()
1178 if ((inst->GetVerifyExtraFlags() == Instruction::kVerifyVarArgNonZero && v_a == 0) || in VerifyInstruction()
1179 v_a > Instruction::kMaxVarArgRegs) { in VerifyInstruction()
1185 uint32_t args[Instruction::kMaxVarArgRegs]; in VerifyInstruction()
1190 case Instruction::kVerifyVarArgRangeNonZero: in VerifyInstruction()
1192 case Instruction::kVerifyVarArgRange: in VerifyInstruction()
1193 if (inst->GetVerifyExtraFlags() == Instruction::kVerifyVarArgRangeNonZero && in VerifyInstruction()
1201 case Instruction::kVerifyError: in VerifyInstruction()
1393 case Instruction::GOTO: in GetBranchOffset()
1396 case Instruction::GOTO_32: in GetBranchOffset()
1400 case Instruction::GOTO_16: in GetBranchOffset()
1403 case Instruction::IF_EQ: in GetBranchOffset()
1404 case Instruction::IF_NE: in GetBranchOffset()
1405 case Instruction::IF_LT: in GetBranchOffset()
1406 case Instruction::IF_GE: in GetBranchOffset()
1407 case Instruction::IF_GT: in GetBranchOffset()
1408 case Instruction::IF_LE: in GetBranchOffset()
1409 case Instruction::IF_EQZ: in GetBranchOffset()
1410 case Instruction::IF_NEZ: in GetBranchOffset()
1411 case Instruction::IF_LTZ: in GetBranchOffset()
1412 case Instruction::IF_GEZ: in GetBranchOffset()
1413 case Instruction::IF_GTZ: in GetBranchOffset()
1414 case Instruction::IF_LEZ: in GetBranchOffset()
1454 bool is_packed_switch = (*insns & 0xff) == Instruction::PACKED_SWITCH; in CheckSwitchTargets()
1462 expected_signature = Instruction::kPackedSwitchSignature; in CheckSwitchTargets()
1466 expected_signature = Instruction::kSparseSwitchSignature; in CheckSwitchTargets()
1614 const Instruction* inst = Instruction::At(code_item_->insns_); in Dump()
1881 insn_idx += Instruction::At(code_item_->insns_ + insn_idx)->SizeInCodeUnits()) { in CodeFlowVerifyMethod()
1886 if (insns[insn_idx] == Instruction::kPackedSwitchSignature || in CodeFlowVerifyMethod()
1887 insns[insn_idx] == Instruction::kSparseSwitchSignature || in CodeFlowVerifyMethod()
1888 insns[insn_idx] == Instruction::kArrayDataSignature || in CodeFlowVerifyMethod()
1889 (insns[insn_idx] == Instruction::NOP && (insn_idx + 1 < insns_size) && in CodeFlowVerifyMethod()
1890 (insns[insn_idx + 1] == Instruction::kPackedSwitchSignature || in CodeFlowVerifyMethod()
1891 insns[insn_idx + 1] == Instruction::kSparseSwitchSignature || in CodeFlowVerifyMethod()
1892 insns[insn_idx + 1] == Instruction::kArrayDataSignature))) { in CodeFlowVerifyMethod()
1941 const Instruction* ret_inst, in AdjustReturnLine()
1943 Instruction::Code opcode = ret_inst->Opcode(); in AdjustReturnLine()
1946 case Instruction::RETURN_VOID: in AdjustReturnLine()
1947 case Instruction::RETURN_VOID_NO_BARRIER: in AdjustReturnLine()
1951 case Instruction::RETURN: in AdjustReturnLine()
1952 case Instruction::RETURN_OBJECT: in AdjustReturnLine()
1956 case Instruction::RETURN_WIDE: in AdjustReturnLine()
1997 const Instruction* inst = Instruction::At(insns); in CodeFlowVerifyInstruction()
1998 int opcode_flags = Instruction::FlagsOf(inst->Opcode()); in CodeFlowVerifyInstruction()
2015 if ((opcode_flags & Instruction::kThrow) != 0 && CurrentInsnFlags()->IsInTry()) { in CodeFlowVerifyInstruction()
2030 case Instruction::NOP: in CodeFlowVerifyInstruction()
2041 case Instruction::MOVE: in CodeFlowVerifyInstruction()
2044 case Instruction::MOVE_FROM16: in CodeFlowVerifyInstruction()
2047 case Instruction::MOVE_16: in CodeFlowVerifyInstruction()
2050 case Instruction::MOVE_WIDE: in CodeFlowVerifyInstruction()
2053 case Instruction::MOVE_WIDE_FROM16: in CodeFlowVerifyInstruction()
2056 case Instruction::MOVE_WIDE_16: in CodeFlowVerifyInstruction()
2059 case Instruction::MOVE_OBJECT: in CodeFlowVerifyInstruction()
2062 case Instruction::MOVE_OBJECT_FROM16: in CodeFlowVerifyInstruction()
2065 case Instruction::MOVE_OBJECT_16: in CodeFlowVerifyInstruction()
2080 case Instruction::MOVE_RESULT: in CodeFlowVerifyInstruction()
2083 case Instruction::MOVE_RESULT_WIDE: in CodeFlowVerifyInstruction()
2086 case Instruction::MOVE_RESULT_OBJECT: in CodeFlowVerifyInstruction()
2090 case Instruction::MOVE_EXCEPTION: { in CodeFlowVerifyInstruction()
2105 case Instruction::RETURN_VOID: in CodeFlowVerifyInstruction()
2112 case Instruction::RETURN: in CodeFlowVerifyInstruction()
2137 case Instruction::RETURN_WIDE: in CodeFlowVerifyInstruction()
2153 case Instruction::RETURN_OBJECT: in CodeFlowVerifyInstruction()
2204 case Instruction::CONST_4: { in CodeFlowVerifyInstruction()
2210 case Instruction::CONST_16: { in CodeFlowVerifyInstruction()
2216 case Instruction::CONST: { in CodeFlowVerifyInstruction()
2222 case Instruction::CONST_HIGH16: { in CodeFlowVerifyInstruction()
2229 case Instruction::CONST_WIDE_16: { in CodeFlowVerifyInstruction()
2236 case Instruction::CONST_WIDE_32: { in CodeFlowVerifyInstruction()
2243 case Instruction::CONST_WIDE: { in CodeFlowVerifyInstruction()
2250 case Instruction::CONST_WIDE_HIGH16: { in CodeFlowVerifyInstruction()
2257 case Instruction::CONST_STRING: in CodeFlowVerifyInstruction()
2261 case Instruction::CONST_STRING_JUMBO: in CodeFlowVerifyInstruction()
2265 case Instruction::CONST_CLASS: { in CodeFlowVerifyInstruction()
2275 case Instruction::MONITOR_ENTER: in CodeFlowVerifyInstruction()
2284 const Instruction* prev_inst = Instruction::At(code_item_->insns_ + prev_idx); in CodeFlowVerifyInstruction()
2286 case Instruction::MOVE_OBJECT: in CodeFlowVerifyInstruction()
2287 case Instruction::MOVE_OBJECT_16: in CodeFlowVerifyInstruction()
2288 case Instruction::MOVE_OBJECT_FROM16: in CodeFlowVerifyInstruction()
2304 case Instruction::MONITOR_EXIT: in CodeFlowVerifyInstruction()
2325 opcode_flags &= ~Instruction::kThrow; in CodeFlowVerifyInstruction()
2328 case Instruction::CHECK_CAST: in CodeFlowVerifyInstruction()
2329 case Instruction::INSTANCE_OF: { in CodeFlowVerifyInstruction()
2337 const bool is_checkcast = (inst->Opcode() == Instruction::CHECK_CAST); in CodeFlowVerifyInstruction()
2392 case Instruction::ARRAY_LENGTH: { in CodeFlowVerifyInstruction()
2407 case Instruction::NEW_INSTANCE: { in CodeFlowVerifyInstruction()
2428 case Instruction::NEW_ARRAY: in CodeFlowVerifyInstruction()
2431 case Instruction::FILLED_NEW_ARRAY: in CodeFlowVerifyInstruction()
2435 case Instruction::FILLED_NEW_ARRAY_RANGE: in CodeFlowVerifyInstruction()
2439 case Instruction::CMPL_FLOAT: in CodeFlowVerifyInstruction()
2440 case Instruction::CMPG_FLOAT: in CodeFlowVerifyInstruction()
2449 case Instruction::CMPL_DOUBLE: in CodeFlowVerifyInstruction()
2450 case Instruction::CMPG_DOUBLE: in CodeFlowVerifyInstruction()
2461 case Instruction::CMP_LONG: in CodeFlowVerifyInstruction()
2472 case Instruction::THROW: { in CodeFlowVerifyInstruction()
2486 case Instruction::GOTO: in CodeFlowVerifyInstruction()
2487 case Instruction::GOTO_16: in CodeFlowVerifyInstruction()
2488 case Instruction::GOTO_32: in CodeFlowVerifyInstruction()
2492 case Instruction::PACKED_SWITCH: in CodeFlowVerifyInstruction()
2493 case Instruction::SPARSE_SWITCH: in CodeFlowVerifyInstruction()
2498 case Instruction::FILL_ARRAY_DATA: { in CodeFlowVerifyInstruction()
2521 if (array_data[0] != Instruction::kArrayDataSignature) { in CodeFlowVerifyInstruction()
2537 case Instruction::IF_EQ: in CodeFlowVerifyInstruction()
2538 case Instruction::IF_NE: { in CodeFlowVerifyInstruction()
2555 case Instruction::IF_LT: in CodeFlowVerifyInstruction()
2556 case Instruction::IF_GE: in CodeFlowVerifyInstruction()
2557 case Instruction::IF_GT: in CodeFlowVerifyInstruction()
2558 case Instruction::IF_LE: { in CodeFlowVerifyInstruction()
2567 case Instruction::IF_EQZ: in CodeFlowVerifyInstruction()
2568 case Instruction::IF_NEZ: { in CodeFlowVerifyInstruction()
2591 const Instruction* instance_of_inst = Instruction::At(code_item_->insns_ + instance_of_idx); in CodeFlowVerifyInstruction()
2606 (Instruction::INSTANCE_OF == instance_of_inst->Opcode()) && in CodeFlowVerifyInstruction()
2629 if (inst->Opcode() == Instruction::IF_EQZ) { in CodeFlowVerifyInstruction()
2651 const Instruction* move_inst = Instruction::At(code_item_->insns_ + move_idx); in CodeFlowVerifyInstruction()
2653 case Instruction::MOVE_OBJECT: in CodeFlowVerifyInstruction()
2660 case Instruction::MOVE_OBJECT_FROM16: in CodeFlowVerifyInstruction()
2667 case Instruction::MOVE_OBJECT_16: in CodeFlowVerifyInstruction()
2683 case Instruction::IF_LTZ: in CodeFlowVerifyInstruction()
2684 case Instruction::IF_GEZ: in CodeFlowVerifyInstruction()
2685 case Instruction::IF_GTZ: in CodeFlowVerifyInstruction()
2686 case Instruction::IF_LEZ: { in CodeFlowVerifyInstruction()
2694 case Instruction::AGET_BOOLEAN: in CodeFlowVerifyInstruction()
2697 case Instruction::AGET_BYTE: in CodeFlowVerifyInstruction()
2700 case Instruction::AGET_CHAR: in CodeFlowVerifyInstruction()
2703 case Instruction::AGET_SHORT: in CodeFlowVerifyInstruction()
2706 case Instruction::AGET: in CodeFlowVerifyInstruction()
2709 case Instruction::AGET_WIDE: in CodeFlowVerifyInstruction()
2712 case Instruction::AGET_OBJECT: in CodeFlowVerifyInstruction()
2716 case Instruction::APUT_BOOLEAN: in CodeFlowVerifyInstruction()
2719 case Instruction::APUT_BYTE: in CodeFlowVerifyInstruction()
2722 case Instruction::APUT_CHAR: in CodeFlowVerifyInstruction()
2725 case Instruction::APUT_SHORT: in CodeFlowVerifyInstruction()
2728 case Instruction::APUT: in CodeFlowVerifyInstruction()
2731 case Instruction::APUT_WIDE: in CodeFlowVerifyInstruction()
2734 case Instruction::APUT_OBJECT: in CodeFlowVerifyInstruction()
2738 case Instruction::IGET_BOOLEAN: in CodeFlowVerifyInstruction()
2741 case Instruction::IGET_BYTE: in CodeFlowVerifyInstruction()
2744 case Instruction::IGET_CHAR: in CodeFlowVerifyInstruction()
2747 case Instruction::IGET_SHORT: in CodeFlowVerifyInstruction()
2750 case Instruction::IGET: in CodeFlowVerifyInstruction()
2753 case Instruction::IGET_WIDE: in CodeFlowVerifyInstruction()
2756 case Instruction::IGET_OBJECT: in CodeFlowVerifyInstruction()
2761 case Instruction::IPUT_BOOLEAN: in CodeFlowVerifyInstruction()
2764 case Instruction::IPUT_BYTE: in CodeFlowVerifyInstruction()
2767 case Instruction::IPUT_CHAR: in CodeFlowVerifyInstruction()
2770 case Instruction::IPUT_SHORT: in CodeFlowVerifyInstruction()
2773 case Instruction::IPUT: in CodeFlowVerifyInstruction()
2776 case Instruction::IPUT_WIDE: in CodeFlowVerifyInstruction()
2779 case Instruction::IPUT_OBJECT: in CodeFlowVerifyInstruction()
2784 case Instruction::SGET_BOOLEAN: in CodeFlowVerifyInstruction()
2787 case Instruction::SGET_BYTE: in CodeFlowVerifyInstruction()
2790 case Instruction::SGET_CHAR: in CodeFlowVerifyInstruction()
2793 case Instruction::SGET_SHORT: in CodeFlowVerifyInstruction()
2796 case Instruction::SGET: in CodeFlowVerifyInstruction()
2799 case Instruction::SGET_WIDE: in CodeFlowVerifyInstruction()
2802 case Instruction::SGET_OBJECT: in CodeFlowVerifyInstruction()
2807 case Instruction::SPUT_BOOLEAN: in CodeFlowVerifyInstruction()
2810 case Instruction::SPUT_BYTE: in CodeFlowVerifyInstruction()
2813 case Instruction::SPUT_CHAR: in CodeFlowVerifyInstruction()
2816 case Instruction::SPUT_SHORT: in CodeFlowVerifyInstruction()
2819 case Instruction::SPUT: in CodeFlowVerifyInstruction()
2822 case Instruction::SPUT_WIDE: in CodeFlowVerifyInstruction()
2825 case Instruction::SPUT_OBJECT: in CodeFlowVerifyInstruction()
2830 case Instruction::INVOKE_VIRTUAL: in CodeFlowVerifyInstruction()
2831 case Instruction::INVOKE_VIRTUAL_RANGE: in CodeFlowVerifyInstruction()
2832 case Instruction::INVOKE_SUPER: in CodeFlowVerifyInstruction()
2833 case Instruction::INVOKE_SUPER_RANGE: { in CodeFlowVerifyInstruction()
2834 bool is_range = (inst->Opcode() == Instruction::INVOKE_VIRTUAL_RANGE || in CodeFlowVerifyInstruction()
2835 inst->Opcode() == Instruction::INVOKE_SUPER_RANGE); in CodeFlowVerifyInstruction()
2836 bool is_super = (inst->Opcode() == Instruction::INVOKE_SUPER || in CodeFlowVerifyInstruction()
2837 inst->Opcode() == Instruction::INVOKE_SUPER_RANGE); in CodeFlowVerifyInstruction()
2869 case Instruction::INVOKE_DIRECT: in CodeFlowVerifyInstruction()
2870 case Instruction::INVOKE_DIRECT_RANGE: { in CodeFlowVerifyInstruction()
2871 bool is_range = (inst->Opcode() == Instruction::INVOKE_DIRECT_RANGE); in CodeFlowVerifyInstruction()
2948 case Instruction::INVOKE_STATIC: in CodeFlowVerifyInstruction()
2949 case Instruction::INVOKE_STATIC_RANGE: { in CodeFlowVerifyInstruction()
2950 bool is_range = (inst->Opcode() == Instruction::INVOKE_STATIC_RANGE); in CodeFlowVerifyInstruction()
2970 case Instruction::INVOKE_INTERFACE: in CodeFlowVerifyInstruction()
2971 case Instruction::INVOKE_INTERFACE_RANGE: { in CodeFlowVerifyInstruction()
2972 bool is_range = (inst->Opcode() == Instruction::INVOKE_INTERFACE_RANGE); in CodeFlowVerifyInstruction()
3024 case Instruction::NEG_INT: in CodeFlowVerifyInstruction()
3025 case Instruction::NOT_INT: in CodeFlowVerifyInstruction()
3028 case Instruction::NEG_LONG: in CodeFlowVerifyInstruction()
3029 case Instruction::NOT_LONG: in CodeFlowVerifyInstruction()
3033 case Instruction::NEG_FLOAT: in CodeFlowVerifyInstruction()
3036 case Instruction::NEG_DOUBLE: in CodeFlowVerifyInstruction()
3040 case Instruction::INT_TO_LONG: in CodeFlowVerifyInstruction()
3044 case Instruction::INT_TO_FLOAT: in CodeFlowVerifyInstruction()
3047 case Instruction::INT_TO_DOUBLE: in CodeFlowVerifyInstruction()
3051 case Instruction::LONG_TO_INT: in CodeFlowVerifyInstruction()
3055 case Instruction::LONG_TO_FLOAT: in CodeFlowVerifyInstruction()
3059 case Instruction::LONG_TO_DOUBLE: in CodeFlowVerifyInstruction()
3063 case Instruction::FLOAT_TO_INT: in CodeFlowVerifyInstruction()
3066 case Instruction::FLOAT_TO_LONG: in CodeFlowVerifyInstruction()
3070 case Instruction::FLOAT_TO_DOUBLE: in CodeFlowVerifyInstruction()
3074 case Instruction::DOUBLE_TO_INT: in CodeFlowVerifyInstruction()
3078 case Instruction::DOUBLE_TO_LONG: in CodeFlowVerifyInstruction()
3082 case Instruction::DOUBLE_TO_FLOAT: in CodeFlowVerifyInstruction()
3086 case Instruction::INT_TO_BYTE: in CodeFlowVerifyInstruction()
3089 case Instruction::INT_TO_CHAR: in CodeFlowVerifyInstruction()
3092 case Instruction::INT_TO_SHORT: in CodeFlowVerifyInstruction()
3096 case Instruction::ADD_INT: in CodeFlowVerifyInstruction()
3097 case Instruction::SUB_INT: in CodeFlowVerifyInstruction()
3098 case Instruction::MUL_INT: in CodeFlowVerifyInstruction()
3099 case Instruction::REM_INT: in CodeFlowVerifyInstruction()
3100 case Instruction::DIV_INT: in CodeFlowVerifyInstruction()
3101 case Instruction::SHL_INT: in CodeFlowVerifyInstruction()
3102 case Instruction::SHR_INT: in CodeFlowVerifyInstruction()
3103 case Instruction::USHR_INT: in CodeFlowVerifyInstruction()
3107 case Instruction::AND_INT: in CodeFlowVerifyInstruction()
3108 case Instruction::OR_INT: in CodeFlowVerifyInstruction()
3109 case Instruction::XOR_INT: in CodeFlowVerifyInstruction()
3113 case Instruction::ADD_LONG: in CodeFlowVerifyInstruction()
3114 case Instruction::SUB_LONG: in CodeFlowVerifyInstruction()
3115 case Instruction::MUL_LONG: in CodeFlowVerifyInstruction()
3116 case Instruction::DIV_LONG: in CodeFlowVerifyInstruction()
3117 case Instruction::REM_LONG: in CodeFlowVerifyInstruction()
3118 case Instruction::AND_LONG: in CodeFlowVerifyInstruction()
3119 case Instruction::OR_LONG: in CodeFlowVerifyInstruction()
3120 case Instruction::XOR_LONG: in CodeFlowVerifyInstruction()
3125 case Instruction::SHL_LONG: in CodeFlowVerifyInstruction()
3126 case Instruction::SHR_LONG: in CodeFlowVerifyInstruction()
3127 case Instruction::USHR_LONG: in CodeFlowVerifyInstruction()
3132 case Instruction::ADD_FLOAT: in CodeFlowVerifyInstruction()
3133 case Instruction::SUB_FLOAT: in CodeFlowVerifyInstruction()
3134 case Instruction::MUL_FLOAT: in CodeFlowVerifyInstruction()
3135 case Instruction::DIV_FLOAT: in CodeFlowVerifyInstruction()
3136 case Instruction::REM_FLOAT: in CodeFlowVerifyInstruction()
3140 case Instruction::ADD_DOUBLE: in CodeFlowVerifyInstruction()
3141 case Instruction::SUB_DOUBLE: in CodeFlowVerifyInstruction()
3142 case Instruction::MUL_DOUBLE: in CodeFlowVerifyInstruction()
3143 case Instruction::DIV_DOUBLE: in CodeFlowVerifyInstruction()
3144 case Instruction::REM_DOUBLE: in CodeFlowVerifyInstruction()
3149 case Instruction::ADD_INT_2ADDR: in CodeFlowVerifyInstruction()
3150 case Instruction::SUB_INT_2ADDR: in CodeFlowVerifyInstruction()
3151 case Instruction::MUL_INT_2ADDR: in CodeFlowVerifyInstruction()
3152 case Instruction::REM_INT_2ADDR: in CodeFlowVerifyInstruction()
3153 case Instruction::SHL_INT_2ADDR: in CodeFlowVerifyInstruction()
3154 case Instruction::SHR_INT_2ADDR: in CodeFlowVerifyInstruction()
3155 case Instruction::USHR_INT_2ADDR: in CodeFlowVerifyInstruction()
3159 case Instruction::AND_INT_2ADDR: in CodeFlowVerifyInstruction()
3160 case Instruction::OR_INT_2ADDR: in CodeFlowVerifyInstruction()
3161 case Instruction::XOR_INT_2ADDR: in CodeFlowVerifyInstruction()
3165 case Instruction::DIV_INT_2ADDR: in CodeFlowVerifyInstruction()
3169 case Instruction::ADD_LONG_2ADDR: in CodeFlowVerifyInstruction()
3170 case Instruction::SUB_LONG_2ADDR: in CodeFlowVerifyInstruction()
3171 case Instruction::MUL_LONG_2ADDR: in CodeFlowVerifyInstruction()
3172 case Instruction::DIV_LONG_2ADDR: in CodeFlowVerifyInstruction()
3173 case Instruction::REM_LONG_2ADDR: in CodeFlowVerifyInstruction()
3174 case Instruction::AND_LONG_2ADDR: in CodeFlowVerifyInstruction()
3175 case Instruction::OR_LONG_2ADDR: in CodeFlowVerifyInstruction()
3176 case Instruction::XOR_LONG_2ADDR: in CodeFlowVerifyInstruction()
3181 case Instruction::SHL_LONG_2ADDR: in CodeFlowVerifyInstruction()
3182 case Instruction::SHR_LONG_2ADDR: in CodeFlowVerifyInstruction()
3183 case Instruction::USHR_LONG_2ADDR: in CodeFlowVerifyInstruction()
3187 case Instruction::ADD_FLOAT_2ADDR: in CodeFlowVerifyInstruction()
3188 case Instruction::SUB_FLOAT_2ADDR: in CodeFlowVerifyInstruction()
3189 case Instruction::MUL_FLOAT_2ADDR: in CodeFlowVerifyInstruction()
3190 case Instruction::DIV_FLOAT_2ADDR: in CodeFlowVerifyInstruction()
3191 case Instruction::REM_FLOAT_2ADDR: in CodeFlowVerifyInstruction()
3195 case Instruction::ADD_DOUBLE_2ADDR: in CodeFlowVerifyInstruction()
3196 case Instruction::SUB_DOUBLE_2ADDR: in CodeFlowVerifyInstruction()
3197 case Instruction::MUL_DOUBLE_2ADDR: in CodeFlowVerifyInstruction()
3198 case Instruction::DIV_DOUBLE_2ADDR: in CodeFlowVerifyInstruction()
3199 case Instruction::REM_DOUBLE_2ADDR: in CodeFlowVerifyInstruction()
3204 case Instruction::ADD_INT_LIT16: in CodeFlowVerifyInstruction()
3205 case Instruction::RSUB_INT_LIT16: in CodeFlowVerifyInstruction()
3206 case Instruction::MUL_INT_LIT16: in CodeFlowVerifyInstruction()
3207 case Instruction::DIV_INT_LIT16: in CodeFlowVerifyInstruction()
3208 case Instruction::REM_INT_LIT16: in CodeFlowVerifyInstruction()
3212 case Instruction::AND_INT_LIT16: in CodeFlowVerifyInstruction()
3213 case Instruction::OR_INT_LIT16: in CodeFlowVerifyInstruction()
3214 case Instruction::XOR_INT_LIT16: in CodeFlowVerifyInstruction()
3218 case Instruction::ADD_INT_LIT8: in CodeFlowVerifyInstruction()
3219 case Instruction::RSUB_INT_LIT8: in CodeFlowVerifyInstruction()
3220 case Instruction::MUL_INT_LIT8: in CodeFlowVerifyInstruction()
3221 case Instruction::DIV_INT_LIT8: in CodeFlowVerifyInstruction()
3222 case Instruction::REM_INT_LIT8: in CodeFlowVerifyInstruction()
3223 case Instruction::SHL_INT_LIT8: in CodeFlowVerifyInstruction()
3224 case Instruction::SHR_INT_LIT8: in CodeFlowVerifyInstruction()
3225 case Instruction::USHR_INT_LIT8: in CodeFlowVerifyInstruction()
3229 case Instruction::AND_INT_LIT8: in CodeFlowVerifyInstruction()
3230 case Instruction::OR_INT_LIT8: in CodeFlowVerifyInstruction()
3231 case Instruction::XOR_INT_LIT8: in CodeFlowVerifyInstruction()
3237 case Instruction::RETURN_VOID_NO_BARRIER: in CodeFlowVerifyInstruction()
3271 case Instruction::IGET_QUICK: in CodeFlowVerifyInstruction()
3274 case Instruction::IGET_WIDE_QUICK: in CodeFlowVerifyInstruction()
3277 case Instruction::IGET_OBJECT_QUICK: in CodeFlowVerifyInstruction()
3280 case Instruction::IGET_BOOLEAN_QUICK: in CodeFlowVerifyInstruction()
3283 case Instruction::IGET_BYTE_QUICK: in CodeFlowVerifyInstruction()
3286 case Instruction::IGET_CHAR_QUICK: in CodeFlowVerifyInstruction()
3289 case Instruction::IGET_SHORT_QUICK: in CodeFlowVerifyInstruction()
3292 case Instruction::IPUT_QUICK: in CodeFlowVerifyInstruction()
3295 case Instruction::IPUT_BOOLEAN_QUICK: in CodeFlowVerifyInstruction()
3298 case Instruction::IPUT_BYTE_QUICK: in CodeFlowVerifyInstruction()
3301 case Instruction::IPUT_CHAR_QUICK: in CodeFlowVerifyInstruction()
3304 case Instruction::IPUT_SHORT_QUICK: in CodeFlowVerifyInstruction()
3307 case Instruction::IPUT_WIDE_QUICK: in CodeFlowVerifyInstruction()
3310 case Instruction::IPUT_OBJECT_QUICK: in CodeFlowVerifyInstruction()
3313 case Instruction::INVOKE_VIRTUAL_QUICK: in CodeFlowVerifyInstruction()
3314 case Instruction::INVOKE_VIRTUAL_RANGE_QUICK: { in CodeFlowVerifyInstruction()
3315 bool is_range = (inst->Opcode() == Instruction::INVOKE_VIRTUAL_RANGE_QUICK); in CodeFlowVerifyInstruction()
3329 case Instruction::INVOKE_LAMBDA: { in CodeFlowVerifyInstruction()
3336 case Instruction::CAPTURE_VARIABLE: { in CodeFlowVerifyInstruction()
3343 case Instruction::CREATE_LAMBDA: { in CodeFlowVerifyInstruction()
3350 case Instruction::LIBERATE_VARIABLE: { in CodeFlowVerifyInstruction()
3358 case Instruction::UNUSED_F4: { in CodeFlowVerifyInstruction()
3365 case Instruction::BOX_LAMBDA: { in CodeFlowVerifyInstruction()
3379 case Instruction::UNBOX_LAMBDA: { in CodeFlowVerifyInstruction()
3388 case Instruction::UNUSED_3E ... Instruction::UNUSED_43: in CodeFlowVerifyInstruction()
3389 case Instruction::UNUSED_FA ... Instruction::UNUSED_FF: in CodeFlowVerifyInstruction()
3390 case Instruction::UNUSED_79: in CodeFlowVerifyInstruction()
3391 case Instruction::UNUSED_7A: in CodeFlowVerifyInstruction()
3420 opcode_flags = Instruction::kThrow; in CodeFlowVerifyInstruction()
3448 if ((opcode_flags & Instruction::kBranch) != 0) { in CodeFlowVerifyInstruction()
3455 DCHECK_EQ(isConditional, (opcode_flags & Instruction::kContinue) != 0); in CodeFlowVerifyInstruction()
3477 if ((opcode_flags & Instruction::kSwitch) != 0) { in CodeFlowVerifyInstruction()
3483 if ((*insns & 0xff) == Instruction::PACKED_SWITCH) { in CodeFlowVerifyInstruction()
3488 DCHECK((*insns & 0xff) == Instruction::SPARSE_SWITCH); in CodeFlowVerifyInstruction()
3515 if ((opcode_flags & Instruction::kThrow) != 0 && GetInstructionFlags(work_insn_idx_).IsInTry()) { in CodeFlowVerifyInstruction()
3560 if (inst->Opcode() != Instruction::MONITOR_ENTER || work_line_->MonitorStackDepth() != 1) { in CodeFlowVerifyInstruction()
3573 if ((opcode_flags & Instruction::kContinue) != 0) { in CodeFlowVerifyInstruction()
3574 DCHECK_EQ(Instruction::At(code_item_->insns_ + work_insn_idx_), inst); in CodeFlowVerifyInstruction()
3591 const Instruction* ret_inst = Instruction::At(code_item_->insns_ + next_insn_idx); in CodeFlowVerifyInstruction()
3612 if ((opcode_flags & Instruction::kReturn) != 0) { in CodeFlowVerifyInstruction()
3622 if ((opcode_flags & Instruction::kContinue) != 0) { in CodeFlowVerifyInstruction()
3623 DCHECK_EQ(Instruction::At(code_item_->insns_ + work_insn_idx_), inst); in CodeFlowVerifyInstruction()
3625 } else if ((opcode_flags & Instruction::kBranch) != 0) { in CodeFlowVerifyInstruction()
3871 T* it, const Instruction* inst, MethodType method_type, bool is_range, ArtMethod* res_method) { in VerifyInvocationArgsFromIterator()
4013 void MethodVerifier::VerifyInvocationArgsUnresolvedMethod(const Instruction* inst, in VerifyInvocationArgsUnresolvedMethod()
4053 const Instruction* inst, MethodType method_type, bool is_range) { in VerifyInvocationArgs()
4122 ArtMethod* MethodVerifier::GetQuickInvokedMethod(const Instruction* inst, RegisterLine* reg_line, in GetQuickInvokedMethod()
4125 DCHECK_EQ(inst->Opcode(), Instruction::INVOKE_VIRTUAL_RANGE_QUICK); in GetQuickInvokedMethod()
4127 DCHECK_EQ(inst->Opcode(), Instruction::INVOKE_VIRTUAL_QUICK); in GetQuickInvokedMethod()
4170 ArtMethod* MethodVerifier::VerifyInvokeVirtualQuickArgs(const Instruction* inst, bool is_range) { in VerifyInvokeVirtualQuickArgs()
4271 void MethodVerifier::VerifyNewArray(const Instruction* inst, bool is_filled, bool is_range) { in VerifyNewArray()
4274 DCHECK_EQ(inst->Opcode(), Instruction::NEW_ARRAY); in VerifyNewArray()
4277 DCHECK_EQ(inst->Opcode(), Instruction::FILLED_NEW_ARRAY); in VerifyNewArray()
4280 DCHECK_EQ(inst->Opcode(), Instruction::FILLED_NEW_ARRAY_RANGE); in VerifyNewArray()
4320 void MethodVerifier::VerifyAGet(const Instruction* inst, in VerifyAGet()
4435 void MethodVerifier::VerifyAPut(const Instruction* inst, in VerifyAPut()
4612 void MethodVerifier::VerifyISFieldAccess(const Instruction* inst, const RegType& insn_type, in VerifyISFieldAccess()
4741 ArtField* MethodVerifier::GetQuickFieldAccess(const Instruction* inst, in GetQuickFieldAccess()
4760 void MethodVerifier::VerifyQuickFieldAccess(const Instruction* inst, const RegType& insn_type, in VerifyQuickFieldAccess()
4892 if ((insns[insn_idx] & 0xff) == Instruction::MOVE_EXCEPTION) { in CheckNotMoveException()
4900 if (((insns[insn_idx] & 0xff) >= Instruction::MOVE_RESULT) && in CheckNotMoveResult()
4901 ((insns[insn_idx] & 0xff) <= Instruction::MOVE_RESULT_OBJECT)) { in CheckNotMoveResult()
4929 const Instruction* ret_inst = Instruction::At(code_item_->insns_ + next_insn); in UpdateRegisters()