Lines Matching refs:instruction

245 void HInstructionBuilder::AppendInstruction(HInstruction* instruction) {  in AppendInstruction()  argument
246 current_block_->AddInstruction(instruction); in AppendInstruction()
247 InitializeInstruction(instruction); in AppendInstruction()
250 void HInstructionBuilder::InsertInstructionAtTop(HInstruction* instruction) { in InsertInstructionAtTop() argument
252 current_block_->AddInstruction(instruction); in InsertInstructionAtTop()
254 current_block_->InsertInstructionBefore(instruction, current_block_->GetFirstInstruction()); in InsertInstructionAtTop()
256 InitializeInstruction(instruction); in InsertInstructionAtTop()
259 void HInstructionBuilder::InitializeInstruction(HInstruction* instruction) { in InitializeInstruction() argument
260 if (instruction->NeedsEnvironment()) { in InitializeInstruction()
265 instruction->GetDexPc(), in InitializeInstruction()
266 instruction); in InitializeInstruction()
268 instruction->SetRawEnvironment(environment); in InitializeInstruction()
603 void HInstructionBuilder::If_22t(const Instruction& instruction, uint32_t dex_pc) { in If_22t() argument
604 HInstruction* first = LoadLocal(instruction.VRegA(), DataType::Type::kInt32); in If_22t()
605 HInstruction* second = LoadLocal(instruction.VRegB(), DataType::Type::kInt32); in If_22t()
613 void HInstructionBuilder::If_21t(const Instruction& instruction, uint32_t dex_pc) { in If_21t() argument
614 HInstruction* value = LoadLocal(instruction.VRegA(), DataType::Type::kInt32); in If_21t()
622 void HInstructionBuilder::Unop_12x(const Instruction& instruction, in Unop_12x() argument
625 HInstruction* first = LoadLocal(instruction.VRegB(), type); in Unop_12x()
627 UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction()); in Unop_12x()
630 void HInstructionBuilder::Conversion_12x(const Instruction& instruction, in Conversion_12x() argument
634 HInstruction* first = LoadLocal(instruction.VRegB(), input_type); in Conversion_12x()
636 UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction()); in Conversion_12x()
640 void HInstructionBuilder::Binop_23x(const Instruction& instruction, in Binop_23x() argument
643 HInstruction* first = LoadLocal(instruction.VRegB(), type); in Binop_23x()
644 HInstruction* second = LoadLocal(instruction.VRegC(), type); in Binop_23x()
646 UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction()); in Binop_23x()
650 void HInstructionBuilder::Binop_23x_shift(const Instruction& instruction, in Binop_23x_shift() argument
653 HInstruction* first = LoadLocal(instruction.VRegB(), type); in Binop_23x_shift()
654 HInstruction* second = LoadLocal(instruction.VRegC(), DataType::Type::kInt32); in Binop_23x_shift()
656 UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction()); in Binop_23x_shift()
659 void HInstructionBuilder::Binop_23x_cmp(const Instruction& instruction, in Binop_23x_cmp() argument
663 HInstruction* first = LoadLocal(instruction.VRegB(), type); in Binop_23x_cmp()
664 HInstruction* second = LoadLocal(instruction.VRegC(), type); in Binop_23x_cmp()
666 UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction()); in Binop_23x_cmp()
670 void HInstructionBuilder::Binop_12x_shift(const Instruction& instruction, in Binop_12x_shift() argument
673 HInstruction* first = LoadLocal(instruction.VRegA(), type); in Binop_12x_shift()
674 HInstruction* second = LoadLocal(instruction.VRegB(), DataType::Type::kInt32); in Binop_12x_shift()
676 UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction()); in Binop_12x_shift()
680 void HInstructionBuilder::Binop_12x(const Instruction& instruction, in Binop_12x() argument
683 HInstruction* first = LoadLocal(instruction.VRegA(), type); in Binop_12x()
684 HInstruction* second = LoadLocal(instruction.VRegB(), type); in Binop_12x()
686 UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction()); in Binop_12x()
690 void HInstructionBuilder::Binop_22s(const Instruction& instruction, bool reverse, uint32_t dex_pc) { in Binop_22s() argument
691 HInstruction* first = LoadLocal(instruction.VRegB(), DataType::Type::kInt32); in Binop_22s()
692 HInstruction* second = graph_->GetIntConstant(instruction.VRegC_22s(), dex_pc); in Binop_22s()
697 UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction()); in Binop_22s()
701 void HInstructionBuilder::Binop_22b(const Instruction& instruction, bool reverse, uint32_t dex_pc) { in Binop_22b() argument
702 HInstruction* first = LoadLocal(instruction.VRegB(), DataType::Type::kInt32); in Binop_22b()
703 HInstruction* second = graph_->GetIntConstant(instruction.VRegC_22b(), dex_pc); in Binop_22b()
708 UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction()); in Binop_22b()
729 static bool IsFallthroughInstruction(const Instruction& instruction, in IsFallthroughInstruction() argument
732 uint32_t next_dex_pc = dex_pc + instruction.SizeInCodeUnits(); in IsFallthroughInstruction()
736 void HInstructionBuilder::BuildSwitch(const Instruction& instruction, uint32_t dex_pc) { in BuildSwitch() argument
737 HInstruction* value = LoadLocal(instruction.VRegA(), DataType::Type::kInt32); in BuildSwitch()
738 DexSwitchTable table(instruction, dex_pc); in BuildSwitch()
742 DCHECK(IsFallthroughInstruction(instruction, dex_pc, current_block_)); in BuildSwitch()
763 void HInstructionBuilder::BuildReturn(const Instruction& instruction, in BuildReturn() argument
785 HInstruction* value = LoadLocal(instruction.VRegA(), type); in BuildReturn()
904 bool HInstructionBuilder::BuildInvoke(const Instruction& instruction, in BuildInvoke() argument
908 InvokeType invoke_type = GetInvokeTypeFromOpCode(instruction.Opcode()); in BuildInvoke()
1545 bool HInstructionBuilder::BuildInstanceFieldAccess(const Instruction& instruction, in BuildInstanceFieldAccess() argument
1549 uint32_t source_or_dest_reg = instruction.VRegA_22c(); in BuildInstanceFieldAccess()
1550 uint32_t obj_reg = instruction.VRegB_22c(); in BuildInstanceFieldAccess()
1552 if (instruction.IsQuickened()) { in BuildInstanceFieldAccess()
1555 << instruction.Opcode(); in BuildInstanceFieldAccess()
1560 field_index = instruction.VRegC_22c(); in BuildInstanceFieldAccess()
1627 void HInstructionBuilder::BuildUnresolvedStaticFieldAccess(const Instruction& instruction, in BuildUnresolvedStaticFieldAccess() argument
1631 uint32_t source_or_dest_reg = instruction.VRegA_21c(); in BuildUnresolvedStaticFieldAccess()
1632 uint16_t field_index = instruction.VRegB_21c(); in BuildUnresolvedStaticFieldAccess()
1691 void HInstructionBuilder::BuildStaticFieldAccess(const Instruction& instruction, in BuildStaticFieldAccess() argument
1694 uint32_t source_or_dest_reg = instruction.VRegA_21c(); in BuildStaticFieldAccess()
1695 uint16_t field_index = instruction.VRegB_21c(); in BuildStaticFieldAccess()
1704 BuildUnresolvedStaticFieldAccess(instruction, dex_pc, is_put, field_type); in BuildStaticFieldAccess()
1722 BuildUnresolvedStaticFieldAccess(instruction, dex_pc, is_put, field_type); in BuildStaticFieldAccess()
1797 void HInstructionBuilder::BuildArrayAccess(const Instruction& instruction, in BuildArrayAccess() argument
1801 uint8_t source_or_dest_reg = instruction.VRegA_23x(); in BuildArrayAccess()
1802 uint8_t array_reg = instruction.VRegB_23x(); in BuildArrayAccess()
1803 uint8_t index_reg = instruction.VRegC_23x(); in BuildArrayAccess()
1883 void HInstructionBuilder::BuildFillArrayData(const Instruction& instruction, uint32_t dex_pc) { in BuildFillArrayData() argument
1884 HInstruction* array = LoadNullCheckedLocal(instruction.VRegA_31t(), dex_pc); in BuildFillArrayData()
1886 int32_t payload_offset = instruction.VRegB_31t() + dex_pc; in BuildFillArrayData()
2056 void HInstructionBuilder::BuildTypeCheck(const Instruction& instruction, in BuildTypeCheck() argument
2088 if (instruction.Opcode() == Instruction::INSTANCE_OF) { in BuildTypeCheck()
2099 DCHECK_EQ(instruction.Opcode(), Instruction::CHECK_CAST); in BuildTypeCheck()
2126 bool HInstructionBuilder::ProcessDexInstruction(const Instruction& instruction, in ProcessDexInstruction() argument
2129 switch (instruction.Opcode()) { in ProcessDexInstruction()
2131 int32_t register_index = instruction.VRegA(); in ProcessDexInstruction()
2132 HIntConstant* constant = graph_->GetIntConstant(instruction.VRegB_11n(), dex_pc); in ProcessDexInstruction()
2138 int32_t register_index = instruction.VRegA(); in ProcessDexInstruction()
2139 HIntConstant* constant = graph_->GetIntConstant(instruction.VRegB_21s(), dex_pc); in ProcessDexInstruction()
2145 int32_t register_index = instruction.VRegA(); in ProcessDexInstruction()
2146 HIntConstant* constant = graph_->GetIntConstant(instruction.VRegB_31i(), dex_pc); in ProcessDexInstruction()
2152 int32_t register_index = instruction.VRegA(); in ProcessDexInstruction()
2153 HIntConstant* constant = graph_->GetIntConstant(instruction.VRegB_21h() << 16, dex_pc); in ProcessDexInstruction()
2159 int32_t register_index = instruction.VRegA(); in ProcessDexInstruction()
2161 int64_t value = instruction.VRegB_21s(); in ProcessDexInstruction()
2170 int32_t register_index = instruction.VRegA(); in ProcessDexInstruction()
2172 int64_t value = instruction.VRegB_31i(); in ProcessDexInstruction()
2181 int32_t register_index = instruction.VRegA(); in ProcessDexInstruction()
2182 HLongConstant* constant = graph_->GetLongConstant(instruction.VRegB_51l(), dex_pc); in ProcessDexInstruction()
2188 int32_t register_index = instruction.VRegA(); in ProcessDexInstruction()
2189 int64_t value = static_cast<int64_t>(instruction.VRegB_21h()) << 48; in ProcessDexInstruction()
2199 HInstruction* value = LoadLocal(instruction.VRegB(), DataType::Type::kInt32); in ProcessDexInstruction()
2200 UpdateLocal(instruction.VRegA(), value); in ProcessDexInstruction()
2208 HInstruction* value = LoadLocal(instruction.VRegB(), DataType::Type::kInt64); in ProcessDexInstruction()
2209 UpdateLocal(instruction.VRegA(), value); in ProcessDexInstruction()
2221 uint32_t reg_number = instruction.VRegB(); in ProcessDexInstruction()
2231 UpdateLocal(instruction.VRegA(), value); in ProcessDexInstruction()
2237 BuildReturn(instruction, DataType::Type::kVoid, dex_pc); in ProcessDexInstruction()
2242 case Instruction::IF_##cond: If_22t<comparison>(instruction, dex_pc); break; \ in ProcessDexInstruction()
2243 case Instruction::IF_##cond##Z: If_21t<comparison>(instruction, dex_pc); break in ProcessDexInstruction()
2261 BuildReturn(instruction, return_type_, dex_pc); in ProcessDexInstruction()
2266 BuildReturn(instruction, return_type_, dex_pc); in ProcessDexInstruction()
2271 BuildReturn(instruction, return_type_, dex_pc); in ProcessDexInstruction()
2282 if (instruction.Opcode() == Instruction::INVOKE_VIRTUAL_QUICK) { in ProcessDexInstruction()
2285 << instruction.Opcode(); in ProcessDexInstruction()
2290 method_idx = instruction.VRegB_35c(); in ProcessDexInstruction()
2293 uint32_t number_of_vreg_arguments = instruction.GetVarArgs(args); in ProcessDexInstruction()
2295 if (!BuildInvoke(instruction, dex_pc, method_idx, operands)) { in ProcessDexInstruction()
2308 if (instruction.Opcode() == Instruction::INVOKE_VIRTUAL_RANGE_QUICK) { in ProcessDexInstruction()
2311 << instruction.Opcode(); in ProcessDexInstruction()
2316 method_idx = instruction.VRegB_3rc(); in ProcessDexInstruction()
2318 RangeInstructionOperands operands(instruction.VRegC(), instruction.VRegA_3rc()); in ProcessDexInstruction()
2319 if (!BuildInvoke(instruction, dex_pc, method_idx, operands)) { in ProcessDexInstruction()
2326 uint16_t method_idx = instruction.VRegB_45cc(); in ProcessDexInstruction()
2327 dex::ProtoIndex proto_idx(instruction.VRegH_45cc()); in ProcessDexInstruction()
2329 uint32_t number_of_vreg_arguments = instruction.GetVarArgs(args); in ProcessDexInstruction()
2335 uint16_t method_idx = instruction.VRegB_4rcc(); in ProcessDexInstruction()
2336 dex::ProtoIndex proto_idx(instruction.VRegH_4rcc()); in ProcessDexInstruction()
2337 RangeInstructionOperands operands(instruction.VRegC_4rcc(), instruction.VRegA_4rcc()); in ProcessDexInstruction()
2342 uint16_t call_site_idx = instruction.VRegB_35c(); in ProcessDexInstruction()
2344 uint32_t number_of_vreg_arguments = instruction.GetVarArgs(args); in ProcessDexInstruction()
2350 uint16_t call_site_idx = instruction.VRegB_3rc(); in ProcessDexInstruction()
2351 RangeInstructionOperands operands(instruction.VRegC_3rc(), instruction.VRegA_3rc()); in ProcessDexInstruction()
2356 Unop_12x<HNeg>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2361 Unop_12x<HNeg>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2366 Unop_12x<HNeg>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2371 Unop_12x<HNeg>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2376 Unop_12x<HNot>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2381 Unop_12x<HNot>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2386 Conversion_12x(instruction, DataType::Type::kInt32, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2391 Conversion_12x(instruction, DataType::Type::kInt32, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2396 Conversion_12x(instruction, DataType::Type::kInt32, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2401 Conversion_12x(instruction, DataType::Type::kInt64, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2406 Conversion_12x(instruction, DataType::Type::kInt64, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2411 Conversion_12x(instruction, DataType::Type::kInt64, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2416 Conversion_12x(instruction, DataType::Type::kFloat32, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2421 Conversion_12x(instruction, DataType::Type::kFloat32, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2426 Conversion_12x(instruction, DataType::Type::kFloat32, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2431 Conversion_12x(instruction, DataType::Type::kFloat64, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2436 Conversion_12x(instruction, DataType::Type::kFloat64, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2441 Conversion_12x(instruction, DataType::Type::kFloat64, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2446 Conversion_12x(instruction, DataType::Type::kInt32, DataType::Type::kInt8, dex_pc); in ProcessDexInstruction()
2451 Conversion_12x(instruction, DataType::Type::kInt32, DataType::Type::kInt16, dex_pc); in ProcessDexInstruction()
2456 Conversion_12x(instruction, DataType::Type::kInt32, DataType::Type::kUint16, dex_pc); in ProcessDexInstruction()
2461 Binop_23x<HAdd>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2466 Binop_23x<HAdd>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2471 Binop_23x<HAdd>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2476 Binop_23x<HAdd>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2481 Binop_23x<HSub>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2486 Binop_23x<HSub>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2491 Binop_23x<HSub>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2496 Binop_23x<HSub>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2501 Binop_12x<HAdd>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2506 Binop_23x<HMul>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2511 Binop_23x<HMul>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2516 Binop_23x<HMul>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2521 Binop_23x<HMul>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2526 BuildCheckedDivRem(instruction.VRegA(), instruction.VRegB(), instruction.VRegC(), in ProcessDexInstruction()
2532 BuildCheckedDivRem(instruction.VRegA(), instruction.VRegB(), instruction.VRegC(), in ProcessDexInstruction()
2538 Binop_23x<HDiv>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2543 Binop_23x<HDiv>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2548 BuildCheckedDivRem(instruction.VRegA(), instruction.VRegB(), instruction.VRegC(), in ProcessDexInstruction()
2554 BuildCheckedDivRem(instruction.VRegA(), instruction.VRegB(), instruction.VRegC(), in ProcessDexInstruction()
2560 Binop_23x<HRem>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2565 Binop_23x<HRem>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2570 Binop_23x<HAnd>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2575 Binop_23x<HAnd>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2580 Binop_23x_shift<HShl>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2585 Binop_23x_shift<HShl>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2590 Binop_23x_shift<HShr>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2595 Binop_23x_shift<HShr>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2600 Binop_23x_shift<HUShr>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2605 Binop_23x_shift<HUShr>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2610 Binop_23x<HOr>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2615 Binop_23x<HOr>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2620 Binop_23x<HXor>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2625 Binop_23x<HXor>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2630 Binop_12x<HAdd>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2635 Binop_12x<HAdd>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2640 Binop_12x<HAdd>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2645 Binop_12x<HSub>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2650 Binop_12x<HSub>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2655 Binop_12x<HSub>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2660 Binop_12x<HSub>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2665 Binop_12x<HMul>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2670 Binop_12x<HMul>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2675 Binop_12x<HMul>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2680 Binop_12x<HMul>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2685 BuildCheckedDivRem(instruction.VRegA(), instruction.VRegA(), instruction.VRegB(), in ProcessDexInstruction()
2691 BuildCheckedDivRem(instruction.VRegA(), instruction.VRegA(), instruction.VRegB(), in ProcessDexInstruction()
2697 BuildCheckedDivRem(instruction.VRegA(), instruction.VRegA(), instruction.VRegB(), in ProcessDexInstruction()
2703 BuildCheckedDivRem(instruction.VRegA(), instruction.VRegA(), instruction.VRegB(), in ProcessDexInstruction()
2709 Binop_12x<HRem>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2714 Binop_12x<HRem>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2719 Binop_12x_shift<HShl>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2724 Binop_12x_shift<HShl>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2729 Binop_12x_shift<HShr>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2734 Binop_12x_shift<HShr>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2739 Binop_12x_shift<HUShr>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2744 Binop_12x_shift<HUShr>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2749 Binop_12x<HDiv>(instruction, DataType::Type::kFloat32, dex_pc); in ProcessDexInstruction()
2754 Binop_12x<HDiv>(instruction, DataType::Type::kFloat64, dex_pc); in ProcessDexInstruction()
2759 Binop_12x<HAnd>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2764 Binop_12x<HAnd>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2769 Binop_12x<HOr>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2774 Binop_12x<HOr>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2779 Binop_12x<HXor>(instruction, DataType::Type::kInt32, dex_pc); in ProcessDexInstruction()
2784 Binop_12x<HXor>(instruction, DataType::Type::kInt64, dex_pc); in ProcessDexInstruction()
2789 Binop_22s<HAdd>(instruction, false, dex_pc); in ProcessDexInstruction()
2794 Binop_22s<HAnd>(instruction, false, dex_pc); in ProcessDexInstruction()
2799 Binop_22s<HOr>(instruction, false, dex_pc); in ProcessDexInstruction()
2804 Binop_22s<HXor>(instruction, false, dex_pc); in ProcessDexInstruction()
2809 Binop_22s<HSub>(instruction, true, dex_pc); in ProcessDexInstruction()
2814 Binop_22s<HMul>(instruction, false, dex_pc); in ProcessDexInstruction()
2819 Binop_22b<HAdd>(instruction, false, dex_pc); in ProcessDexInstruction()
2824 Binop_22b<HAnd>(instruction, false, dex_pc); in ProcessDexInstruction()
2829 Binop_22b<HOr>(instruction, false, dex_pc); in ProcessDexInstruction()
2834 Binop_22b<HXor>(instruction, false, dex_pc); in ProcessDexInstruction()
2839 Binop_22b<HSub>(instruction, true, dex_pc); in ProcessDexInstruction()
2844 Binop_22b<HMul>(instruction, false, dex_pc); in ProcessDexInstruction()
2850 BuildCheckedDivRem(instruction.VRegA(), instruction.VRegB(), instruction.VRegC(), in ProcessDexInstruction()
2857 BuildCheckedDivRem(instruction.VRegA(), instruction.VRegB(), instruction.VRegC(), in ProcessDexInstruction()
2863 Binop_22b<HShl>(instruction, false, dex_pc); in ProcessDexInstruction()
2868 Binop_22b<HShr>(instruction, false, dex_pc); in ProcessDexInstruction()
2873 Binop_22b<HUShr>(instruction, false, dex_pc); in ProcessDexInstruction()
2879 BuildNewInstance(dex::TypeIndex(instruction.VRegB_21c()), dex_pc); in ProcessDexInstruction()
2882 UpdateLocal(instruction.VRegA(), current_block_->GetLastInstruction()); in ProcessDexInstruction()
2888 dex::TypeIndex type_index(instruction.VRegC_22c()); in ProcessDexInstruction()
2889 HInstruction* length = LoadLocal(instruction.VRegB_22c(), DataType::Type::kInt32); in ProcessDexInstruction()
2892 UpdateLocal(instruction.VRegA_22c(), current_block_->GetLastInstruction()); in ProcessDexInstruction()
2898 dex::TypeIndex type_index(instruction.VRegB_35c()); in ProcessDexInstruction()
2900 uint32_t number_of_vreg_arguments = instruction.GetVarArgs(args); in ProcessDexInstruction()
2908 dex::TypeIndex type_index(instruction.VRegB_3rc()); in ProcessDexInstruction()
2909 RangeInstructionOperands operands(instruction.VRegC_3rc(), instruction.VRegA_3rc()); in ProcessDexInstruction()
2916 BuildFillArrayData(instruction, dex_pc); in ProcessDexInstruction()
2924 UpdateLocal(instruction.VRegA(), latest_result_); in ProcessDexInstruction()
2930 Binop_23x_cmp(instruction, DataType::Type::kInt64, ComparisonBias::kNoBias, dex_pc); in ProcessDexInstruction()
2935 Binop_23x_cmp(instruction, DataType::Type::kFloat32, ComparisonBias::kGtBias, dex_pc); in ProcessDexInstruction()
2940 Binop_23x_cmp(instruction, DataType::Type::kFloat64, ComparisonBias::kGtBias, dex_pc); in ProcessDexInstruction()
2945 Binop_23x_cmp(instruction, DataType::Type::kFloat32, ComparisonBias::kLtBias, dex_pc); in ProcessDexInstruction()
2950 Binop_23x_cmp(instruction, DataType::Type::kFloat64, ComparisonBias::kLtBias, dex_pc); in ProcessDexInstruction()
2971 if (!BuildInstanceFieldAccess(instruction, dex_pc, /* is_put= */ false, quicken_index)) { in ProcessDexInstruction()
2991 if (!BuildInstanceFieldAccess(instruction, dex_pc, /* is_put= */ true, quicken_index)) { in ProcessDexInstruction()
3004 BuildStaticFieldAccess(instruction, dex_pc, /* is_put= */ false); in ProcessDexInstruction()
3015 BuildStaticFieldAccess(instruction, dex_pc, /* is_put= */ true); in ProcessDexInstruction()
3021 BuildArrayAccess(instruction, dex_pc, false, anticipated_type); \ in ProcessDexInstruction()
3025 BuildArrayAccess(instruction, dex_pc, true, anticipated_type); \ in ProcessDexInstruction()
3038 HInstruction* object = LoadNullCheckedLocal(instruction.VRegB_12x(), dex_pc); in ProcessDexInstruction()
3040 UpdateLocal(instruction.VRegA_12x(), current_block_->GetLastInstruction()); in ProcessDexInstruction()
3045 dex::StringIndex string_index(instruction.VRegB_21c()); in ProcessDexInstruction()
3047 UpdateLocal(instruction.VRegA_21c(), current_block_->GetLastInstruction()); in ProcessDexInstruction()
3052 dex::StringIndex string_index(instruction.VRegB_31c()); in ProcessDexInstruction()
3054 UpdateLocal(instruction.VRegA_31c(), current_block_->GetLastInstruction()); in ProcessDexInstruction()
3059 dex::TypeIndex type_index(instruction.VRegB_21c()); in ProcessDexInstruction()
3061 UpdateLocal(instruction.VRegA_21c(), current_block_->GetLastInstruction()); in ProcessDexInstruction()
3066 uint16_t method_handle_idx = instruction.VRegB_21c(); in ProcessDexInstruction()
3068 UpdateLocal(instruction.VRegA_21c(), current_block_->GetLastInstruction()); in ProcessDexInstruction()
3073 dex::ProtoIndex proto_idx(instruction.VRegB_21c()); in ProcessDexInstruction()
3075 UpdateLocal(instruction.VRegA_21c(), current_block_->GetLastInstruction()); in ProcessDexInstruction()
3081 UpdateLocal(instruction.VRegA_11x(), current_block_->GetLastInstruction()); in ProcessDexInstruction()
3087 HInstruction* exception = LoadLocal(instruction.VRegA_11x(), DataType::Type::kReference); in ProcessDexInstruction()
3096 uint8_t destination = instruction.VRegA_22c(); in ProcessDexInstruction()
3097 uint8_t reference = instruction.VRegB_22c(); in ProcessDexInstruction()
3098 dex::TypeIndex type_index(instruction.VRegC_22c()); in ProcessDexInstruction()
3099 BuildTypeCheck(instruction, destination, reference, type_index, dex_pc); in ProcessDexInstruction()
3104 uint8_t reference = instruction.VRegA_21c(); in ProcessDexInstruction()
3105 dex::TypeIndex type_index(instruction.VRegB_21c()); in ProcessDexInstruction()
3106 BuildTypeCheck(instruction, -1, reference, type_index, dex_pc); in ProcessDexInstruction()
3112 LoadLocal(instruction.VRegA_11x(), DataType::Type::kReference), in ProcessDexInstruction()
3121 LoadLocal(instruction.VRegA_11x(), DataType::Type::kReference), in ProcessDexInstruction()
3130 BuildSwitch(instruction, dex_pc); in ProcessDexInstruction()
3152 << instruction.Name(); in ProcessDexInstruction()