Lines Matching refs:Instruction

131 constexpr bool IsCompatThrow(Instruction::Code opcode) {  in IsCompatThrow()
132 return opcode == Instruction::Code::RETURN_OBJECT || opcode == Instruction::Code::MOVE_EXCEPTION; in IsCompatThrow()
308 bool VerifyInstruction(const Instruction* inst, uint32_t code_offset);
468 …bool CheckSignaturePolymorphicReceiver(const Instruction* inst) REQUIRES_SHARED(Locks::mutator_loc…
544 void VerifyNewArray(const Instruction* inst, bool is_filled, bool is_range)
555 void VerifyAGet(const Instruction* inst, const RegType& insn_type,
559 void VerifyAPut(const Instruction* inst, const RegType& insn_type,
571 void VerifyISFieldAccess(const Instruction* inst, const RegType& insn_type,
619 ArtMethod* VerifyInvocationArgs(const Instruction* inst, MethodType method_type, bool is_range)
624 void VerifyInvocationArgsUnresolvedMethod(const Instruction* inst, MethodType method_type,
629 ArtMethod* VerifyInvocationArgsFromIterator(T* it, const Instruction* inst,
645 if ((insns[insn_idx] & 0xff) == Instruction::MOVE_EXCEPTION) { in CheckNotMoveException()
659 if (((insns[insn_idx] & 0xff) >= Instruction::MOVE_RESULT) && in CheckNotMoveResult()
660 ((insns[insn_idx] & 0xff) <= Instruction::MOVE_RESULT_OBJECT)) { in CheckNotMoveResult()
735 uint16_t GetMethodIdxOfInvoke(const Instruction* inst) in GetMethodIdxOfInvoke()
740 uint16_t GetFieldIdxOfFieldAccess(const Instruction* inst, bool is_static) in GetFieldIdxOfFieldAccess()
770 bool HandleMoveException(const Instruction* inst) REQUIRES_SHARED(Locks::mutator_lock_);
871 if (inst->Opcode() == Instruction::MONITOR_ENTER) { in FindLocksAtDexPc()
1185 } else if (inst->Opcode() == Instruction::CHECK_CAST) { in VerifyInstructions()
1195 bool MethodVerifier<kVerifierDebug>::VerifyInstruction(const Instruction* inst, in VerifyInstruction()
1197 if (Instruction::kHaveExperimentalInstructions && UNLIKELY(inst->IsExperimental())) { in VerifyInstruction()
1210 case Instruction::kVerifyRegA: in VerifyInstruction()
1213 case Instruction::kVerifyRegAWide: in VerifyInstruction()
1218 case Instruction::kVerifyRegB: in VerifyInstruction()
1221 case Instruction::kVerifyRegBField: in VerifyInstruction()
1224 case Instruction::kVerifyRegBMethod: in VerifyInstruction()
1227 case Instruction::kVerifyRegBNewInstance: in VerifyInstruction()
1230 case Instruction::kVerifyRegBString: in VerifyInstruction()
1233 case Instruction::kVerifyRegBType: in VerifyInstruction()
1236 case Instruction::kVerifyRegBWide: in VerifyInstruction()
1239 case Instruction::kVerifyRegBCallSite: in VerifyInstruction()
1242 case Instruction::kVerifyRegBMethodHandle: in VerifyInstruction()
1245 case Instruction::kVerifyRegBPrototype: in VerifyInstruction()
1250 case Instruction::kVerifyRegC: in VerifyInstruction()
1253 case Instruction::kVerifyRegCField: in VerifyInstruction()
1256 case Instruction::kVerifyRegCNewArray: in VerifyInstruction()
1259 case Instruction::kVerifyRegCType: in VerifyInstruction()
1262 case Instruction::kVerifyRegCWide: in VerifyInstruction()
1267 case Instruction::kVerifyRegHPrototype: in VerifyInstruction()
1272 case Instruction::kVerifyArrayData: in VerifyInstruction()
1275 case Instruction::kVerifyBranchTarget: in VerifyInstruction()
1278 case Instruction::kVerifySwitchTargets: in VerifyInstruction()
1281 case Instruction::kVerifyVarArgNonZero: in VerifyInstruction()
1283 case Instruction::kVerifyVarArg: { in VerifyInstruction()
1286 if ((inst->GetVerifyExtraFlags() == Instruction::kVerifyVarArgNonZero && v_a == 0) || in VerifyInstruction()
1287 v_a > Instruction::kMaxVarArgRegs) { in VerifyInstruction()
1293 uint32_t args[Instruction::kMaxVarArgRegs]; in VerifyInstruction()
1298 case Instruction::kVerifyVarArgRangeNonZero: in VerifyInstruction()
1300 case Instruction::kVerifyVarArgRange: in VerifyInstruction()
1301 if (inst->GetVerifyExtraFlags() == Instruction::kVerifyVarArgRangeNonZero && in VerifyInstruction()
1309 case Instruction::kVerifyError: in VerifyInstruction()
1457 case Instruction::GOTO: in GetBranchOffset()
1460 case Instruction::GOTO_32: in GetBranchOffset()
1464 case Instruction::GOTO_16: in GetBranchOffset()
1467 case Instruction::IF_EQ: in GetBranchOffset()
1468 case Instruction::IF_NE: in GetBranchOffset()
1469 case Instruction::IF_LT: in GetBranchOffset()
1470 case Instruction::IF_GE: in GetBranchOffset()
1471 case Instruction::IF_GT: in GetBranchOffset()
1472 case Instruction::IF_LE: in GetBranchOffset()
1473 case Instruction::IF_EQZ: in GetBranchOffset()
1474 case Instruction::IF_NEZ: in GetBranchOffset()
1475 case Instruction::IF_LTZ: in GetBranchOffset()
1476 case Instruction::IF_GEZ: in GetBranchOffset()
1477 case Instruction::IF_GTZ: in GetBranchOffset()
1478 case Instruction::IF_LEZ: in GetBranchOffset()
1519 bool is_packed_switch = (*insns & 0xff) == Instruction::PACKED_SWITCH; in CheckSwitchTargets()
1527 expected_signature = Instruction::kPackedSwitchSignature; in CheckSwitchTargets()
1531 expected_signature = Instruction::kSparseSwitchSignature; in CheckSwitchTargets()
1962 if (insns[insn_idx] == Instruction::kPackedSwitchSignature || in CodeFlowVerifyMethod()
1963 insns[insn_idx] == Instruction::kSparseSwitchSignature || in CodeFlowVerifyMethod()
1964 insns[insn_idx] == Instruction::kArrayDataSignature || in CodeFlowVerifyMethod()
1965 (insns[insn_idx] == Instruction::NOP && (insn_idx + 1 < insns_size) && in CodeFlowVerifyMethod()
1966 (insns[insn_idx + 1] == Instruction::kPackedSwitchSignature || in CodeFlowVerifyMethod()
1967 insns[insn_idx + 1] == Instruction::kSparseSwitchSignature || in CodeFlowVerifyMethod()
1968 insns[insn_idx + 1] == Instruction::kArrayDataSignature))) { in CodeFlowVerifyMethod()
1999 const Instruction* ret_inst, in AdjustReturnLine()
2001 Instruction::Code opcode = ret_inst->Opcode(); in AdjustReturnLine()
2004 case Instruction::RETURN_VOID: in AdjustReturnLine()
2012 case Instruction::RETURN: in AdjustReturnLine()
2013 case Instruction::RETURN_OBJECT: in AdjustReturnLine()
2017 case Instruction::RETURN_WIDE: in AdjustReturnLine()
2048 const Instruction* inst = Instruction::At(insns); in CodeFlowVerifyInstruction()
2049 int opcode_flags = Instruction::FlagsOf(inst->Opcode()); in CodeFlowVerifyInstruction()
2066 if (((opcode_flags & Instruction::kThrow) != 0 || IsCompatThrow(inst->Opcode())) && in CodeFlowVerifyInstruction()
2084 case Instruction::NOP: in CodeFlowVerifyInstruction()
2095 case Instruction::MOVE: in CodeFlowVerifyInstruction()
2098 case Instruction::MOVE_FROM16: in CodeFlowVerifyInstruction()
2101 case Instruction::MOVE_16: in CodeFlowVerifyInstruction()
2104 case Instruction::MOVE_WIDE: in CodeFlowVerifyInstruction()
2107 case Instruction::MOVE_WIDE_FROM16: in CodeFlowVerifyInstruction()
2110 case Instruction::MOVE_WIDE_16: in CodeFlowVerifyInstruction()
2113 case Instruction::MOVE_OBJECT: in CodeFlowVerifyInstruction()
2116 case Instruction::MOVE_OBJECT_FROM16: in CodeFlowVerifyInstruction()
2119 case Instruction::MOVE_OBJECT_16: in CodeFlowVerifyInstruction()
2134 case Instruction::MOVE_RESULT: in CodeFlowVerifyInstruction()
2137 case Instruction::MOVE_RESULT_WIDE: in CodeFlowVerifyInstruction()
2140 case Instruction::MOVE_RESULT_OBJECT: in CodeFlowVerifyInstruction()
2144 case Instruction::MOVE_EXCEPTION: in CodeFlowVerifyInstruction()
2150 case Instruction::RETURN_VOID: in CodeFlowVerifyInstruction()
2157 case Instruction::RETURN: in CodeFlowVerifyInstruction()
2182 case Instruction::RETURN_WIDE: in CodeFlowVerifyInstruction()
2198 case Instruction::RETURN_OBJECT: in CodeFlowVerifyInstruction()
2250 case Instruction::CONST_4: { in CodeFlowVerifyInstruction()
2256 case Instruction::CONST_16: { in CodeFlowVerifyInstruction()
2262 case Instruction::CONST: { in CodeFlowVerifyInstruction()
2268 case Instruction::CONST_HIGH16: { in CodeFlowVerifyInstruction()
2275 case Instruction::CONST_WIDE_16: { in CodeFlowVerifyInstruction()
2282 case Instruction::CONST_WIDE_32: { in CodeFlowVerifyInstruction()
2289 case Instruction::CONST_WIDE: { in CodeFlowVerifyInstruction()
2296 case Instruction::CONST_WIDE_HIGH16: { in CodeFlowVerifyInstruction()
2303 case Instruction::CONST_STRING: in CodeFlowVerifyInstruction()
2307 case Instruction::CONST_STRING_JUMBO: in CodeFlowVerifyInstruction()
2311 case Instruction::CONST_CLASS: { in CodeFlowVerifyInstruction()
2321 case Instruction::CONST_METHOD_HANDLE: in CodeFlowVerifyInstruction()
2325 case Instruction::CONST_METHOD_TYPE: in CodeFlowVerifyInstruction()
2329 case Instruction::MONITOR_ENTER: in CodeFlowVerifyInstruction()
2338 const Instruction& prev_inst = code_item_accessor_.InstructionAt(prev_idx); in CodeFlowVerifyInstruction()
2340 case Instruction::MOVE_OBJECT: in CodeFlowVerifyInstruction()
2341 case Instruction::MOVE_OBJECT_16: in CodeFlowVerifyInstruction()
2342 case Instruction::MOVE_OBJECT_FROM16: in CodeFlowVerifyInstruction()
2356 case Instruction::CONST_CLASS: { in CodeFlowVerifyInstruction()
2365 const Instruction& prev2_inst = code_item_accessor_.InstructionAt(prev_idx); in CodeFlowVerifyInstruction()
2368 if (prev2_inst.Opcode() != Instruction::CONST_CLASS) { in CodeFlowVerifyInstruction()
2397 case Instruction::MONITOR_EXIT: in CodeFlowVerifyInstruction()
2418 opcode_flags &= ~Instruction::kThrow; in CodeFlowVerifyInstruction()
2421 case Instruction::CHECK_CAST: in CodeFlowVerifyInstruction()
2422 case Instruction::INSTANCE_OF: { in CodeFlowVerifyInstruction()
2430 const bool is_checkcast = (inst->Opcode() == Instruction::CHECK_CAST); in CodeFlowVerifyInstruction()
2486 case Instruction::ARRAY_LENGTH: { in CodeFlowVerifyInstruction()
2502 case Instruction::NEW_INSTANCE: { in CodeFlowVerifyInstruction()
2523 case Instruction::NEW_ARRAY: in CodeFlowVerifyInstruction()
2526 case Instruction::FILLED_NEW_ARRAY: in CodeFlowVerifyInstruction()
2530 case Instruction::FILLED_NEW_ARRAY_RANGE: in CodeFlowVerifyInstruction()
2534 case Instruction::CMPL_FLOAT: in CodeFlowVerifyInstruction()
2535 case Instruction::CMPG_FLOAT: in CodeFlowVerifyInstruction()
2544 case Instruction::CMPL_DOUBLE: in CodeFlowVerifyInstruction()
2545 case Instruction::CMPG_DOUBLE: in CodeFlowVerifyInstruction()
2556 case Instruction::CMP_LONG: in CodeFlowVerifyInstruction()
2567 case Instruction::THROW: { in CodeFlowVerifyInstruction()
2582 case Instruction::GOTO: in CodeFlowVerifyInstruction()
2583 case Instruction::GOTO_16: in CodeFlowVerifyInstruction()
2584 case Instruction::GOTO_32: in CodeFlowVerifyInstruction()
2588 case Instruction::PACKED_SWITCH: in CodeFlowVerifyInstruction()
2589 case Instruction::SPARSE_SWITCH: in CodeFlowVerifyInstruction()
2594 case Instruction::FILL_ARRAY_DATA: { in CodeFlowVerifyInstruction()
2618 if (array_data[0] != Instruction::kArrayDataSignature) { in CodeFlowVerifyInstruction()
2634 case Instruction::IF_EQ: in CodeFlowVerifyInstruction()
2635 case Instruction::IF_NE: { in CodeFlowVerifyInstruction()
2652 case Instruction::IF_LT: in CodeFlowVerifyInstruction()
2653 case Instruction::IF_GE: in CodeFlowVerifyInstruction()
2654 case Instruction::IF_GT: in CodeFlowVerifyInstruction()
2655 case Instruction::IF_LE: { in CodeFlowVerifyInstruction()
2664 case Instruction::IF_EQZ: in CodeFlowVerifyInstruction()
2665 case Instruction::IF_NEZ: { in CodeFlowVerifyInstruction()
2683 const Instruction& instance_of_inst = code_item_accessor_.InstructionAt(instance_of_idx); in CodeFlowVerifyInstruction()
2698 (Instruction::INSTANCE_OF == instance_of_inst.Opcode()) && in CodeFlowVerifyInstruction()
2728 if (inst->Opcode() == Instruction::IF_EQZ) { in CodeFlowVerifyInstruction()
2756 const Instruction& move_inst = code_item_accessor_.InstructionAt(move_idx); in CodeFlowVerifyInstruction()
2758 case Instruction::MOVE_OBJECT: in CodeFlowVerifyInstruction()
2761 case Instruction::MOVE_OBJECT_FROM16: in CodeFlowVerifyInstruction()
2764 case Instruction::MOVE_OBJECT_16: in CodeFlowVerifyInstruction()
2776 case Instruction::IF_LTZ: in CodeFlowVerifyInstruction()
2777 case Instruction::IF_GEZ: in CodeFlowVerifyInstruction()
2778 case Instruction::IF_GTZ: in CodeFlowVerifyInstruction()
2779 case Instruction::IF_LEZ: { in CodeFlowVerifyInstruction()
2787 case Instruction::AGET_BOOLEAN: in CodeFlowVerifyInstruction()
2790 case Instruction::AGET_BYTE: in CodeFlowVerifyInstruction()
2793 case Instruction::AGET_CHAR: in CodeFlowVerifyInstruction()
2796 case Instruction::AGET_SHORT: in CodeFlowVerifyInstruction()
2799 case Instruction::AGET: in CodeFlowVerifyInstruction()
2802 case Instruction::AGET_WIDE: in CodeFlowVerifyInstruction()
2805 case Instruction::AGET_OBJECT: in CodeFlowVerifyInstruction()
2809 case Instruction::APUT_BOOLEAN: in CodeFlowVerifyInstruction()
2812 case Instruction::APUT_BYTE: in CodeFlowVerifyInstruction()
2815 case Instruction::APUT_CHAR: in CodeFlowVerifyInstruction()
2818 case Instruction::APUT_SHORT: in CodeFlowVerifyInstruction()
2821 case Instruction::APUT: in CodeFlowVerifyInstruction()
2824 case Instruction::APUT_WIDE: in CodeFlowVerifyInstruction()
2827 case Instruction::APUT_OBJECT: in CodeFlowVerifyInstruction()
2831 case Instruction::IGET_BOOLEAN: in CodeFlowVerifyInstruction()
2834 case Instruction::IGET_BYTE: in CodeFlowVerifyInstruction()
2837 case Instruction::IGET_CHAR: in CodeFlowVerifyInstruction()
2840 case Instruction::IGET_SHORT: in CodeFlowVerifyInstruction()
2843 case Instruction::IGET: in CodeFlowVerifyInstruction()
2846 case Instruction::IGET_WIDE: in CodeFlowVerifyInstruction()
2849 case Instruction::IGET_OBJECT: in CodeFlowVerifyInstruction()
2854 case Instruction::IPUT_BOOLEAN: in CodeFlowVerifyInstruction()
2857 case Instruction::IPUT_BYTE: in CodeFlowVerifyInstruction()
2860 case Instruction::IPUT_CHAR: in CodeFlowVerifyInstruction()
2863 case Instruction::IPUT_SHORT: in CodeFlowVerifyInstruction()
2866 case Instruction::IPUT: in CodeFlowVerifyInstruction()
2869 case Instruction::IPUT_WIDE: in CodeFlowVerifyInstruction()
2872 case Instruction::IPUT_OBJECT: in CodeFlowVerifyInstruction()
2877 case Instruction::SGET_BOOLEAN: in CodeFlowVerifyInstruction()
2880 case Instruction::SGET_BYTE: in CodeFlowVerifyInstruction()
2883 case Instruction::SGET_CHAR: in CodeFlowVerifyInstruction()
2886 case Instruction::SGET_SHORT: in CodeFlowVerifyInstruction()
2889 case Instruction::SGET: in CodeFlowVerifyInstruction()
2892 case Instruction::SGET_WIDE: in CodeFlowVerifyInstruction()
2895 case Instruction::SGET_OBJECT: in CodeFlowVerifyInstruction()
2900 case Instruction::SPUT_BOOLEAN: in CodeFlowVerifyInstruction()
2903 case Instruction::SPUT_BYTE: in CodeFlowVerifyInstruction()
2906 case Instruction::SPUT_CHAR: in CodeFlowVerifyInstruction()
2909 case Instruction::SPUT_SHORT: in CodeFlowVerifyInstruction()
2912 case Instruction::SPUT: in CodeFlowVerifyInstruction()
2915 case Instruction::SPUT_WIDE: in CodeFlowVerifyInstruction()
2918 case Instruction::SPUT_OBJECT: in CodeFlowVerifyInstruction()
2923 case Instruction::INVOKE_VIRTUAL: in CodeFlowVerifyInstruction()
2924 case Instruction::INVOKE_VIRTUAL_RANGE: in CodeFlowVerifyInstruction()
2925 case Instruction::INVOKE_SUPER: in CodeFlowVerifyInstruction()
2926 case Instruction::INVOKE_SUPER_RANGE: { in CodeFlowVerifyInstruction()
2927 bool is_range = (inst->Opcode() == Instruction::INVOKE_VIRTUAL_RANGE || in CodeFlowVerifyInstruction()
2928 inst->Opcode() == Instruction::INVOKE_SUPER_RANGE); in CodeFlowVerifyInstruction()
2929 bool is_super = (inst->Opcode() == Instruction::INVOKE_SUPER || in CodeFlowVerifyInstruction()
2930 inst->Opcode() == Instruction::INVOKE_SUPER_RANGE); in CodeFlowVerifyInstruction()
2963 case Instruction::INVOKE_DIRECT: in CodeFlowVerifyInstruction()
2964 case Instruction::INVOKE_DIRECT_RANGE: { in CodeFlowVerifyInstruction()
2965 bool is_range = (inst->Opcode() == Instruction::INVOKE_DIRECT_RANGE); in CodeFlowVerifyInstruction()
3045 case Instruction::INVOKE_STATIC: in CodeFlowVerifyInstruction()
3046 case Instruction::INVOKE_STATIC_RANGE: { in CodeFlowVerifyInstruction()
3047 bool is_range = (inst->Opcode() == Instruction::INVOKE_STATIC_RANGE); in CodeFlowVerifyInstruction()
3070 case Instruction::INVOKE_INTERFACE: in CodeFlowVerifyInstruction()
3071 case Instruction::INVOKE_INTERFACE_RANGE: { in CodeFlowVerifyInstruction()
3072 bool is_range = (inst->Opcode() == Instruction::INVOKE_INTERFACE_RANGE); in CodeFlowVerifyInstruction()
3127 case Instruction::INVOKE_POLYMORPHIC: in CodeFlowVerifyInstruction()
3128 case Instruction::INVOKE_POLYMORPHIC_RANGE: { in CodeFlowVerifyInstruction()
3129 bool is_range = (inst->Opcode() == Instruction::INVOKE_POLYMORPHIC_RANGE); in CodeFlowVerifyInstruction()
3160 case Instruction::INVOKE_CUSTOM: in CodeFlowVerifyInstruction()
3161 case Instruction::INVOKE_CUSTOM_RANGE: { in CodeFlowVerifyInstruction()
3163 bool is_range = (inst->Opcode() == Instruction::INVOKE_CUSTOM_RANGE); in CodeFlowVerifyInstruction()
3193 case Instruction::NEG_INT: in CodeFlowVerifyInstruction()
3194 case Instruction::NOT_INT: in CodeFlowVerifyInstruction()
3197 case Instruction::NEG_LONG: in CodeFlowVerifyInstruction()
3198 case Instruction::NOT_LONG: in CodeFlowVerifyInstruction()
3202 case Instruction::NEG_FLOAT: in CodeFlowVerifyInstruction()
3205 case Instruction::NEG_DOUBLE: in CodeFlowVerifyInstruction()
3209 case Instruction::INT_TO_LONG: in CodeFlowVerifyInstruction()
3213 case Instruction::INT_TO_FLOAT: in CodeFlowVerifyInstruction()
3216 case Instruction::INT_TO_DOUBLE: in CodeFlowVerifyInstruction()
3220 case Instruction::LONG_TO_INT: in CodeFlowVerifyInstruction()
3224 case Instruction::LONG_TO_FLOAT: in CodeFlowVerifyInstruction()
3228 case Instruction::LONG_TO_DOUBLE: in CodeFlowVerifyInstruction()
3232 case Instruction::FLOAT_TO_INT: in CodeFlowVerifyInstruction()
3235 case Instruction::FLOAT_TO_LONG: in CodeFlowVerifyInstruction()
3239 case Instruction::FLOAT_TO_DOUBLE: in CodeFlowVerifyInstruction()
3243 case Instruction::DOUBLE_TO_INT: in CodeFlowVerifyInstruction()
3247 case Instruction::DOUBLE_TO_LONG: in CodeFlowVerifyInstruction()
3251 case Instruction::DOUBLE_TO_FLOAT: in CodeFlowVerifyInstruction()
3255 case Instruction::INT_TO_BYTE: in CodeFlowVerifyInstruction()
3258 case Instruction::INT_TO_CHAR: in CodeFlowVerifyInstruction()
3261 case Instruction::INT_TO_SHORT: in CodeFlowVerifyInstruction()
3265 case Instruction::ADD_INT: in CodeFlowVerifyInstruction()
3266 case Instruction::SUB_INT: in CodeFlowVerifyInstruction()
3267 case Instruction::MUL_INT: in CodeFlowVerifyInstruction()
3268 case Instruction::REM_INT: in CodeFlowVerifyInstruction()
3269 case Instruction::DIV_INT: in CodeFlowVerifyInstruction()
3270 case Instruction::SHL_INT: in CodeFlowVerifyInstruction()
3271 case Instruction::SHR_INT: in CodeFlowVerifyInstruction()
3272 case Instruction::USHR_INT: in CodeFlowVerifyInstruction()
3276 case Instruction::AND_INT: in CodeFlowVerifyInstruction()
3277 case Instruction::OR_INT: in CodeFlowVerifyInstruction()
3278 case Instruction::XOR_INT: in CodeFlowVerifyInstruction()
3282 case Instruction::ADD_LONG: in CodeFlowVerifyInstruction()
3283 case Instruction::SUB_LONG: in CodeFlowVerifyInstruction()
3284 case Instruction::MUL_LONG: in CodeFlowVerifyInstruction()
3285 case Instruction::DIV_LONG: in CodeFlowVerifyInstruction()
3286 case Instruction::REM_LONG: in CodeFlowVerifyInstruction()
3287 case Instruction::AND_LONG: in CodeFlowVerifyInstruction()
3288 case Instruction::OR_LONG: in CodeFlowVerifyInstruction()
3289 case Instruction::XOR_LONG: in CodeFlowVerifyInstruction()
3294 case Instruction::SHL_LONG: in CodeFlowVerifyInstruction()
3295 case Instruction::SHR_LONG: in CodeFlowVerifyInstruction()
3296 case Instruction::USHR_LONG: in CodeFlowVerifyInstruction()
3301 case Instruction::ADD_FLOAT: in CodeFlowVerifyInstruction()
3302 case Instruction::SUB_FLOAT: in CodeFlowVerifyInstruction()
3303 case Instruction::MUL_FLOAT: in CodeFlowVerifyInstruction()
3304 case Instruction::DIV_FLOAT: in CodeFlowVerifyInstruction()
3305 case Instruction::REM_FLOAT: in CodeFlowVerifyInstruction()
3309 case Instruction::ADD_DOUBLE: in CodeFlowVerifyInstruction()
3310 case Instruction::SUB_DOUBLE: in CodeFlowVerifyInstruction()
3311 case Instruction::MUL_DOUBLE: in CodeFlowVerifyInstruction()
3312 case Instruction::DIV_DOUBLE: in CodeFlowVerifyInstruction()
3313 case Instruction::REM_DOUBLE: in CodeFlowVerifyInstruction()
3318 case Instruction::ADD_INT_2ADDR: in CodeFlowVerifyInstruction()
3319 case Instruction::SUB_INT_2ADDR: in CodeFlowVerifyInstruction()
3320 case Instruction::MUL_INT_2ADDR: in CodeFlowVerifyInstruction()
3321 case Instruction::REM_INT_2ADDR: in CodeFlowVerifyInstruction()
3322 case Instruction::SHL_INT_2ADDR: in CodeFlowVerifyInstruction()
3323 case Instruction::SHR_INT_2ADDR: in CodeFlowVerifyInstruction()
3324 case Instruction::USHR_INT_2ADDR: in CodeFlowVerifyInstruction()
3328 case Instruction::AND_INT_2ADDR: in CodeFlowVerifyInstruction()
3329 case Instruction::OR_INT_2ADDR: in CodeFlowVerifyInstruction()
3330 case Instruction::XOR_INT_2ADDR: in CodeFlowVerifyInstruction()
3334 case Instruction::DIV_INT_2ADDR: in CodeFlowVerifyInstruction()
3338 case Instruction::ADD_LONG_2ADDR: in CodeFlowVerifyInstruction()
3339 case Instruction::SUB_LONG_2ADDR: in CodeFlowVerifyInstruction()
3340 case Instruction::MUL_LONG_2ADDR: in CodeFlowVerifyInstruction()
3341 case Instruction::DIV_LONG_2ADDR: in CodeFlowVerifyInstruction()
3342 case Instruction::REM_LONG_2ADDR: in CodeFlowVerifyInstruction()
3343 case Instruction::AND_LONG_2ADDR: in CodeFlowVerifyInstruction()
3344 case Instruction::OR_LONG_2ADDR: in CodeFlowVerifyInstruction()
3345 case Instruction::XOR_LONG_2ADDR: in CodeFlowVerifyInstruction()
3350 case Instruction::SHL_LONG_2ADDR: in CodeFlowVerifyInstruction()
3351 case Instruction::SHR_LONG_2ADDR: in CodeFlowVerifyInstruction()
3352 case Instruction::USHR_LONG_2ADDR: in CodeFlowVerifyInstruction()
3356 case Instruction::ADD_FLOAT_2ADDR: in CodeFlowVerifyInstruction()
3357 case Instruction::SUB_FLOAT_2ADDR: in CodeFlowVerifyInstruction()
3358 case Instruction::MUL_FLOAT_2ADDR: in CodeFlowVerifyInstruction()
3359 case Instruction::DIV_FLOAT_2ADDR: in CodeFlowVerifyInstruction()
3360 case Instruction::REM_FLOAT_2ADDR: in CodeFlowVerifyInstruction()
3364 case Instruction::ADD_DOUBLE_2ADDR: in CodeFlowVerifyInstruction()
3365 case Instruction::SUB_DOUBLE_2ADDR: in CodeFlowVerifyInstruction()
3366 case Instruction::MUL_DOUBLE_2ADDR: in CodeFlowVerifyInstruction()
3367 case Instruction::DIV_DOUBLE_2ADDR: in CodeFlowVerifyInstruction()
3368 case Instruction::REM_DOUBLE_2ADDR: in CodeFlowVerifyInstruction()
3373 case Instruction::ADD_INT_LIT16: in CodeFlowVerifyInstruction()
3374 case Instruction::RSUB_INT_LIT16: in CodeFlowVerifyInstruction()
3375 case Instruction::MUL_INT_LIT16: in CodeFlowVerifyInstruction()
3376 case Instruction::DIV_INT_LIT16: in CodeFlowVerifyInstruction()
3377 case Instruction::REM_INT_LIT16: in CodeFlowVerifyInstruction()
3381 case Instruction::AND_INT_LIT16: in CodeFlowVerifyInstruction()
3382 case Instruction::OR_INT_LIT16: in CodeFlowVerifyInstruction()
3383 case Instruction::XOR_INT_LIT16: in CodeFlowVerifyInstruction()
3387 case Instruction::ADD_INT_LIT8: in CodeFlowVerifyInstruction()
3388 case Instruction::RSUB_INT_LIT8: in CodeFlowVerifyInstruction()
3389 case Instruction::MUL_INT_LIT8: in CodeFlowVerifyInstruction()
3390 case Instruction::DIV_INT_LIT8: in CodeFlowVerifyInstruction()
3391 case Instruction::REM_INT_LIT8: in CodeFlowVerifyInstruction()
3392 case Instruction::SHL_INT_LIT8: in CodeFlowVerifyInstruction()
3393 case Instruction::SHR_INT_LIT8: in CodeFlowVerifyInstruction()
3394 case Instruction::USHR_INT_LIT8: in CodeFlowVerifyInstruction()
3398 case Instruction::AND_INT_LIT8: in CodeFlowVerifyInstruction()
3399 case Instruction::OR_INT_LIT8: in CodeFlowVerifyInstruction()
3400 case Instruction::XOR_INT_LIT8: in CodeFlowVerifyInstruction()
3406 case Instruction::UNUSED_3E ... Instruction::UNUSED_43: in CodeFlowVerifyInstruction()
3407 case Instruction::UNUSED_E3 ... Instruction::UNUSED_F9: in CodeFlowVerifyInstruction()
3408 case Instruction::UNUSED_73: in CodeFlowVerifyInstruction()
3409 case Instruction::UNUSED_79: in CodeFlowVerifyInstruction()
3410 case Instruction::UNUSED_7A: in CodeFlowVerifyInstruction()
3440 opcode_flags = Instruction::kThrow; in CodeFlowVerifyInstruction()
3466 if ((opcode_flags & Instruction::kBranch) != 0) { in CodeFlowVerifyInstruction()
3473 DCHECK_EQ(isConditional, (opcode_flags & Instruction::kContinue) != 0); in CodeFlowVerifyInstruction()
3496 if ((opcode_flags & Instruction::kSwitch) != 0) { in CodeFlowVerifyInstruction()
3502 if ((*insns & 0xff) == Instruction::PACKED_SWITCH) { in CodeFlowVerifyInstruction()
3507 DCHECK((*insns & 0xff) == Instruction::SPARSE_SWITCH); in CodeFlowVerifyInstruction()
3534 if ((opcode_flags & Instruction::kThrow) != 0 && GetInstructionFlags(work_insn_idx_).IsInTry()) { in CodeFlowVerifyInstruction()
3585 if (inst->Opcode() != Instruction::MONITOR_ENTER || work_line_->MonitorStackDepth() != 1) { in CodeFlowVerifyInstruction()
3598 if ((opcode_flags & Instruction::kContinue) != 0 && !exc_handler_unreachable) { in CodeFlowVerifyInstruction()
3616 const Instruction* ret_inst = &code_item_accessor_.InstructionAt(next_insn_idx); in CodeFlowVerifyInstruction()
3637 if ((opcode_flags & Instruction::kReturn) != 0) { in CodeFlowVerifyInstruction()
3647 if ((opcode_flags & Instruction::kContinue) != 0) { in CodeFlowVerifyInstruction()
3650 } else if ((opcode_flags & Instruction::kBranch) != 0) { in CodeFlowVerifyInstruction()
3723 bool MethodVerifier<kVerifierDebug>::HandleMoveException(const Instruction* inst) { in HandleMoveException()
3956 T* it, const Instruction* inst, MethodType method_type, bool is_range, ArtMethod* res_method) { in VerifyInvocationArgsFromIterator()
4103 void MethodVerifier<kVerifierDebug>::VerifyInvocationArgsUnresolvedMethod(const Instruction* inst, in VerifyInvocationArgsUnresolvedMethod()
4198 const Instruction* inst, MethodType method_type, bool is_range) { in VerifyInvocationArgs()
4319 bool MethodVerifier<kVerifierDebug>::CheckSignaturePolymorphicReceiver(const Instruction* inst) { in CheckSignaturePolymorphicReceiver()
4353 void MethodVerifier<kVerifierDebug>::VerifyNewArray(const Instruction* inst, in VerifyNewArray()
4358 DCHECK_EQ(inst->Opcode(), Instruction::NEW_ARRAY); in VerifyNewArray()
4361 DCHECK_EQ(inst->Opcode(), Instruction::FILLED_NEW_ARRAY); in VerifyNewArray()
4364 DCHECK_EQ(inst->Opcode(), Instruction::FILLED_NEW_ARRAY_RANGE); in VerifyNewArray()
4405 void MethodVerifier<kVerifierDebug>::VerifyAGet(const Instruction* inst, in VerifyAGet()
4531 void MethodVerifier<kVerifierDebug>::VerifyAPut(const Instruction* inst, in VerifyAPut()
4725 void MethodVerifier<kVerifierDebug>::VerifyISFieldAccess(const Instruction* inst, in VerifyISFieldAccess()
4901 const Instruction* ret_inst = &code_item_accessor_.InstructionAt(next_insn); in UpdateRegisters()
5474 const Instruction& inst = code_item_accessor_.InstructionAt(work_insn_idx_); in Fail()
5475 Instruction::Code opcode = inst.Opcode(); in Fail()
5476 if ((Instruction::FlagsOf(opcode) & Instruction::kThrow) == 0 && in Fail()