Lines Matching refs:Location
82 static bool ExpectedPairLayout(Location location) { in ExpectedPairLayout()
521 Location out = locations->Out(); in EmitNativeCode()
545 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode()
732 Location out, in ReadBarrierForHeapReferenceSlowPathARMVIXL()
733 Location ref, in ReadBarrierForHeapReferenceSlowPathARMVIXL()
734 Location obj, in ReadBarrierForHeapReferenceSlowPathARMVIXL()
736 Location index) in ReadBarrierForHeapReferenceSlowPathARMVIXL()
784 Location index = index_; in EmitNativeCode()
914 const Location out_;
915 const Location ref_;
916 const Location obj_;
921 const Location index_;
929 ReadBarrierForRootSlowPathARMVIXL(HInstruction* instruction, Location out, Location root) in ReadBarrierForRootSlowPathARMVIXL()
965 const Location out_;
966 const Location root_;
1121 const Location& out, in GenerateDataProc()
1122 const Location& first, in GenerateDataProc()
1155 const Location first = locations->InAt(0); in GenerateLongDataProc()
1156 const Location second = locations->InAt(1); in GenerateLongDataProc()
1157 const Location out = locations->Out(); in GenerateLongDataProc()
1265 const Location rhs_loc = instruction->GetLocations()->InAt(1); in GenerateVcmp()
1340 const Location left = locations->InAt(0); in GenerateLongTestConstant()
1341 const Location right = locations->InAt(1); in GenerateLongTestConstant()
1461 Location left = locations->InAt(0); in GenerateLongTest()
1462 Location right = locations->InAt(1); in GenerateLongTest()
1580 const Location left = locations->InAt(0); in GenerateEqualLong()
1581 const Location right = locations->InAt(1); in GenerateEqualLong()
1636 const Location left = locations->InAt(0); in GenerateConditionLong()
1637 const Location right = locations->InAt(1); in GenerateConditionLong()
1708 const Location right = cond->GetLocations()->InAt(1); in GenerateConditionIntegralOrNonPrimitive()
1802 static Location Arm8BitEncodableConstantOrRegister(HInstruction* constant) { in Arm8BitEncodableConstantOrRegister()
1806 return Location::ConstantLocation(constant->AsConstant()); in Arm8BitEncodableConstantOrRegister()
1809 return Location::RequiresRegister(); in Arm8BitEncodableConstantOrRegister()
1812 static bool CanGenerateConditionalMove(const Location& out, const Location& src) { in CanGenerateConditionalMove()
1902 AddAllocatedRegister(Location::RegisterLocation(LR)); in CodeGeneratorARMVIXL()
2357 Location InvokeDexCallingConventionVisitorARMVIXL::GetNextLocation(DataType::Type type) { in GetNextLocation()
2371 return Location::StackSlot(calling_convention.GetStackOffsetOf(stack_index)); in GetNextLocation()
2394 return Location::DoubleStackSlot(calling_convention.GetStackOffsetOf(stack_index)); in GetNextLocation()
2406 return Location::StackSlot(calling_convention.GetStackOffsetOf(stack_index)); in GetNextLocation()
2417 Location result = LocationFrom( in GetNextLocation()
2423 return Location::DoubleStackSlot(calling_convention.GetStackOffsetOf(stack_index)); in GetNextLocation()
2433 return Location::NoLocation(); in GetNextLocation()
2436 Location InvokeDexCallingConventionVisitorARMVIXL::GetReturnLocation(DataType::Type type) const { in GetReturnLocation()
2463 return Location::NoLocation(); in GetReturnLocation()
2469 Location InvokeDexCallingConventionVisitorARMVIXL::GetMethodLocation() const { in GetMethodLocation()
2473 Location CriticalNativeCallingConventionVisitorARMVIXL::GetNextLocation(DataType::Type type) { in GetNextLocation()
2478 Location location = Location::NoLocation(); in GetNextLocation()
2495 location = Location::DoubleStackSlot(stack_offset_); in GetNextLocation()
2498 location = Location::StackSlot(stack_offset_); in GetNextLocation()
2503 location = Location::Any(); in GetNextLocation()
2509 Location CriticalNativeCallingConventionVisitorARMVIXL::GetReturnLocation(DataType::Type type) in GetReturnLocation()
2516 Location CriticalNativeCallingConventionVisitorARMVIXL::GetMethodLocation() const { in GetMethodLocation()
2518 return Location::RegisterLocation(R4); in GetMethodLocation()
2521 void CodeGeneratorARMVIXL::Move32(Location destination, Location source) { in Move32()
2563 void CodeGeneratorARMVIXL::MoveConstant(Location location, int32_t value) { in MoveConstant()
2568 void CodeGeneratorARMVIXL::MoveLocation(Location dst, Location src, DataType::Type dst_type) { in MoveLocation()
2576 void CodeGeneratorARMVIXL::AddLocationAsTemp(Location location, LocationSummary* locations) { in AddLocationAsTemp()
2752 Location cond_val = instruction->GetLocations()->InAt(condition_input_index); in GenerateTestAndBranch()
2813 locations->SetInAt(0, Location::RequiresRegister()); in VisitIf()
2835 locations->SetInAt(0, Location::RequiresRegister()); in VisitDeoptimize()
2851 locations->SetOut(Location::RequiresRegister()); in VisitShouldDeoptimizeFlag()
2866 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitSelect()
2867 locations->SetInAt(1, Location::FpuRegisterOrConstant(select->GetTrueValue())); in VisitSelect()
2869 locations->SetInAt(0, Location::RequiresRegister()); in VisitSelect()
2874 locations->SetInAt(2, Location::RegisterOrConstant(select->GetCondition())); in VisitSelect()
2876 locations->SetOut(Location::SameAsFirstInput()); in VisitSelect()
2878 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitSelect()
2884 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitSelect()
2892 const Location first = locations->InAt(0); in VisitSelect()
2893 const Location out = locations->Out(); in VisitSelect()
2894 const Location second = locations->InAt(1); in VisitSelect()
2907 Location src; in VisitSelect()
3128 locations->SetInAt(0, Location::RequiresFpuRegister()); in HandleCondition()
3131 locations->SetInAt(0, Location::RequiresRegister()); in HandleCondition()
3132 locations->SetInAt(1, Location::RegisterOrConstant(cond->InputAt(1))); in HandleCondition()
3135 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in HandleCondition()
3163 const Location right_loc = cond->GetLocations()->InAt(1); in HandleCondition()
3270 locations->SetOut(Location::ConstantLocation(constant)); in VisitIntConstant()
3280 locations->SetOut(Location::ConstantLocation(constant)); in VisitNullConstant()
3290 locations->SetOut(Location::ConstantLocation(constant)); in VisitLongConstant()
3300 locations->SetOut(Location::ConstantLocation(constant)); in VisitFloatConstant()
3311 locations->SetOut(Location::ConstantLocation(constant)); in VisitDoubleConstant()
3420 invoke, locations->HasTemps() ? locations->GetTemp(0) : Location::NoLocation()); in VisitInvokeStaticOrDirect()
3456 invoke->GetLocations()->SetInAt(invoke->GetNumberOfArguments() - 1, Location::Any()); in VisitInvokeInterface()
3493 Location receiver = locations->InAt(0); in VisitInvokeInterface()
3536 Location hidden_reg = Location::RegisterLocation(r12.GetCode()); in VisitInvokeInterface()
3548 Location current_method = locations->InAt(invoke->GetNumberOfArguments() - 1); in VisitInvokeInterface()
3610 locations->SetInAt(0, Location::RequiresRegister()); in VisitNeg()
3611 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitNeg()
3615 locations->SetInAt(0, Location::RequiresRegister()); in VisitNeg()
3616 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in VisitNeg()
3622 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitNeg()
3623 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitNeg()
3633 Location out = locations->Out(); in VisitNeg()
3634 Location in = locations->InAt(0); in VisitNeg()
3687 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
3688 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3694 locations->SetInAt(0, Location::Any()); in VisitTypeConversion()
3695 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3699 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
3700 locations->SetOut(Location::RequiresRegister()); in VisitTypeConversion()
3701 locations->AddTemp(Location::RequiresFpuRegister()); in VisitTypeConversion()
3705 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
3706 locations->SetOut(Location::RequiresRegister()); in VisitTypeConversion()
3707 locations->AddTemp(Location::RequiresFpuRegister()); in VisitTypeConversion()
3724 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
3725 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3757 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
3758 locations->SetOut(Location::RequiresFpuRegister()); in VisitTypeConversion()
3770 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
3771 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3788 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
3789 locations->SetOut(Location::RequiresFpuRegister()); in VisitTypeConversion()
3793 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
3794 locations->SetOut(Location::RequiresFpuRegister()); in VisitTypeConversion()
3795 locations->AddTemp(Location::RequiresFpuRegister()); in VisitTypeConversion()
3796 locations->AddTemp(Location::RequiresFpuRegister()); in VisitTypeConversion()
3800 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
3801 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3818 Location out = locations->Out(); in VisitTypeConversion()
3819 Location in = locations->InAt(0); in VisitTypeConversion()
4046 locations->SetInAt(0, Location::RequiresRegister()); in VisitAdd()
4047 locations->SetInAt(1, Location::RegisterOrConstant(add->InputAt(1))); in VisitAdd()
4048 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitAdd()
4053 locations->SetInAt(0, Location::RequiresRegister()); in VisitAdd()
4055 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitAdd()
4061 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitAdd()
4062 locations->SetInAt(1, Location::RequiresFpuRegister()); in VisitAdd()
4063 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitAdd()
4074 Location out = locations->Out(); in VisitAdd()
4075 Location first = locations->InAt(0); in VisitAdd()
4076 Location second = locations->InAt(1); in VisitAdd()
4111 locations->SetInAt(0, Location::RequiresRegister()); in VisitSub()
4112 locations->SetInAt(1, Location::RegisterOrConstant(sub->InputAt(1))); in VisitSub()
4113 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitSub()
4118 locations->SetInAt(0, Location::RequiresRegister()); in VisitSub()
4120 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitSub()
4125 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitSub()
4126 locations->SetInAt(1, Location::RequiresFpuRegister()); in VisitSub()
4127 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitSub()
4137 Location out = locations->Out(); in VisitSub()
4138 Location first = locations->InAt(0); in VisitSub()
4139 Location second = locations->InAt(1); in VisitSub()
4174 locations->SetInAt(0, Location::RequiresRegister()); in VisitMul()
4175 locations->SetInAt(1, Location::RequiresRegister()); in VisitMul()
4176 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitMul()
4182 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitMul()
4183 locations->SetInAt(1, Location::RequiresFpuRegister()); in VisitMul()
4184 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitMul()
4195 Location out = locations->Out(); in VisitMul()
4196 Location first = locations->InAt(0); in VisitMul()
4197 Location second = locations->InAt(1); in VisitMul()
4250 Location second = instruction->GetLocations()->InAt(1); in DivRemOneOrMinusOne()
4274 Location second = locations->InAt(1); in DivRemByPowerOfTwo()
4354 Location second = locations->InAt(1); in GenerateDivRemWithAnyConstant()
4439 Location second = instruction->GetLocations()->InAt(1); in GenerateDivRemConstantIntegral()
4473 locations->SetInAt(0, Location::RequiresRegister()); in VisitDiv()
4474 locations->SetInAt(1, Location::ConstantLocation(div->InputAt(1)->AsConstant())); in VisitDiv()
4476 Location::OutputOverlap out_overlaps = Location::kNoOutputOverlap; in VisitDiv()
4484 out_overlaps = Location::kOutputOverlap; in VisitDiv()
4488 locations->SetOut(Location::RequiresRegister(), out_overlaps); in VisitDiv()
4490 locations->SetInAt(0, Location::RequiresRegister()); in VisitDiv()
4491 locations->SetInAt(1, Location::RequiresRegister()); in VisitDiv()
4492 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitDiv()
4514 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitDiv()
4515 locations->SetInAt(1, Location::RequiresFpuRegister()); in VisitDiv()
4516 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitDiv()
4526 Location lhs = div->GetLocations()->InAt(0); in VisitDiv()
4527 Location rhs = div->GetLocations()->InAt(1); in VisitDiv()
4590 locations->SetInAt(0, Location::RequiresRegister()); in VisitRem()
4591 locations->SetInAt(1, Location::ConstantLocation(rem->InputAt(1)->AsConstant())); in VisitRem()
4593 Location::OutputOverlap out_overlaps = Location::kNoOutputOverlap; in VisitRem()
4598 out_overlaps = Location::kOutputOverlap; in VisitRem()
4602 locations->SetOut(Location::RequiresRegister(), out_overlaps); in VisitRem()
4604 locations->SetInAt(0, Location::RequiresRegister()); in VisitRem()
4605 locations->SetInAt(1, Location::RequiresRegister()); in VisitRem()
4606 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitRem()
4607 locations->AddTemp(Location::RequiresRegister()); in VisitRem()
4653 Location second = locations->InAt(1); in VisitRem()
4709 locations->SetInAt(0, Location::RequiresRegister()); in CreateMinMaxLocations()
4710 locations->SetInAt(1, Location::RequiresRegister()); in CreateMinMaxLocations()
4711 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in CreateMinMaxLocations()
4714 locations->SetInAt(0, Location::RequiresRegister()); in CreateMinMaxLocations()
4715 locations->SetInAt(1, Location::RequiresRegister()); in CreateMinMaxLocations()
4716 locations->SetOut(Location::SameAsFirstInput()); in CreateMinMaxLocations()
4719 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateMinMaxLocations()
4720 locations->SetInAt(1, Location::RequiresFpuRegister()); in CreateMinMaxLocations()
4721 locations->SetOut(Location::SameAsFirstInput()); in CreateMinMaxLocations()
4722 locations->AddTemp(Location::RequiresRegister()); in CreateMinMaxLocations()
4725 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateMinMaxLocations()
4726 locations->SetInAt(1, Location::RequiresFpuRegister()); in CreateMinMaxLocations()
4727 locations->SetOut(Location::SameAsFirstInput()); in CreateMinMaxLocations()
4735 Location op1_loc = locations->InAt(0); in GenerateMinMaxInt()
4736 Location op2_loc = locations->InAt(1); in GenerateMinMaxInt()
4737 Location out_loc = locations->Out(); in GenerateMinMaxInt()
4757 Location op1_loc = locations->InAt(0); in GenerateMinMaxLong()
4758 Location op2_loc = locations->InAt(1); in GenerateMinMaxLong()
4759 Location out_loc = locations->Out(); in GenerateMinMaxLong()
4797 Location op1_loc = locations->InAt(0); in GenerateMinMaxFloat()
4798 Location op2_loc = locations->InAt(1); in GenerateMinMaxFloat()
4799 Location out_loc = locations->Out(); in GenerateMinMaxFloat()
4858 Location op1_loc = locations->InAt(0); in GenerateMinMaxDouble()
4859 Location op2_loc = locations->InAt(1); in GenerateMinMaxDouble()
4860 Location out_loc = locations->Out(); in GenerateMinMaxDouble()
4948 locations->SetInAt(0, Location::RequiresRegister()); in VisitAbs()
4949 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitAbs()
4950 locations->AddTemp(Location::RequiresRegister()); in VisitAbs()
4954 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitAbs()
4955 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitAbs()
4975 Location in = locations->InAt(0); in VisitAbs()
4978 Location output = locations->Out(); in VisitAbs()
5001 locations->SetInAt(0, Location::RegisterOrConstant(instruction->InputAt(0))); in VisitDivZeroCheck()
5010 Location value = locations->InAt(0); in VisitDivZeroCheck()
5051 Location rhs = locations->InAt(1); in HandleIntegerRotate()
5079 Location rhs = locations->InAt(1); in HandleLongRotate()
5147 locations->SetInAt(0, Location::RequiresRegister()); in VisitRor()
5148 locations->SetInAt(1, Location::RegisterOrConstant(ror->InputAt(1))); in VisitRor()
5149 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitRor()
5153 locations->SetInAt(0, Location::RequiresRegister()); in VisitRor()
5155 locations->SetInAt(1, Location::ConstantLocation(ror->InputAt(1)->AsConstant())); in VisitRor()
5157 locations->SetInAt(1, Location::RequiresRegister()); in VisitRor()
5158 locations->AddTemp(Location::RequiresRegister()); in VisitRor()
5159 locations->AddTemp(Location::RequiresRegister()); in VisitRor()
5161 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in VisitRor()
5194 locations->SetInAt(0, Location::RequiresRegister()); in HandleShift()
5196 locations->SetInAt(1, Location::ConstantLocation(op->InputAt(1)->AsConstant())); in HandleShift()
5197 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in HandleShift()
5199 locations->SetInAt(1, Location::RequiresRegister()); in HandleShift()
5202 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in HandleShift()
5207 locations->SetInAt(0, Location::RequiresRegister()); in HandleShift()
5209 locations->SetInAt(1, Location::ConstantLocation(op->InputAt(1)->AsConstant())); in HandleShift()
5212 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in HandleShift()
5214 locations->SetInAt(1, Location::RequiresRegister()); in HandleShift()
5215 locations->AddTemp(Location::RequiresRegister()); in HandleShift()
5216 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in HandleShift()
5229 Location out = locations->Out(); in HandleShift()
5230 Location first = locations->InAt(0); in HandleShift()
5231 Location second = locations->InAt(1); in HandleShift()
5457 Location location = parameter_visitor_.GetNextLocation(instruction->GetType()); in VisitParameterValue()
5459 location = Location::StackSlot(location.GetStackIndex() + codegen_->GetFrameSize()); in VisitParameterValue()
5461 location = Location::DoubleStackSlot(location.GetStackIndex() + codegen_->GetFrameSize()); in VisitParameterValue()
5485 locations->SetInAt(0, Location::RequiresRegister()); in VisitNot()
5486 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitNot()
5491 Location out = locations->Out(); in VisitNot()
5492 Location in = locations->InAt(0); in VisitNot()
5511 locations->SetInAt(0, Location::RequiresRegister()); in VisitBooleanNot()
5512 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitBooleanNot()
5530 locations->SetInAt(0, Location::RequiresRegister()); in VisitCompare()
5531 locations->SetInAt(1, Location::RequiresRegister()); in VisitCompare()
5533 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in VisitCompare()
5538 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitCompare()
5540 locations->SetOut(Location::RequiresRegister()); in VisitCompare()
5551 Location left = locations->InAt(0); in VisitCompare()
5552 Location right = locations->InAt(1); in VisitCompare()
5614 locations->SetInAt(i, Location::Any()); in VisitPhi()
5616 locations->SetOut(Location::Any()); in VisitPhi()
5691 locations->SetInAt(0, Location::RequiresRegister()); in HandleFieldSet()
5695 locations->SetInAt(1, Location::RequiresFpuRegister()); in HandleFieldSet()
5697 locations->SetInAt(1, Location::RequiresRegister()); in HandleFieldSet()
5709 locations->AddTemp(Location::RequiresRegister()); // Possibly used for reference poisoning too. in HandleFieldSet()
5710 locations->AddTemp(Location::RequiresRegister()); in HandleFieldSet()
5719 locations->AddTemp(Location::RequiresRegister()); in HandleFieldSet()
5720 locations->AddTemp(Location::RequiresRegister()); in HandleFieldSet()
5736 Location value = locations->InAt(1); in HandleFieldSet()
5880 locations->SetInAt(is_predicated ? 1 : 0, Location::RequiresRegister()); in HandleFieldGet()
5896 locations->SetInAt(0, Location::RequiresFpuRegister()); in HandleFieldGet()
5897 locations->SetOut(Location::SameAsFirstInput()); in HandleFieldGet()
5899 locations->SetOut(Location::RequiresFpuRegister()); in HandleFieldGet()
5903 locations->SetInAt(0, Location::RequiresRegister()); in HandleFieldGet()
5904 locations->SetOut(Location::SameAsFirstInput()); in HandleFieldGet()
5906 locations->SetOut(Location::RequiresRegister(), in HandleFieldGet()
5907 (overlap ? Location::kOutputOverlap : Location::kNoOutputOverlap)); in HandleFieldGet()
5917 locations->AddTemp(Location::RequiresRegister()); in HandleFieldGet()
5918 locations->AddTemp(Location::RequiresRegister()); in HandleFieldGet()
5924 locations->AddTemp(Location::RequiresRegister()); in HandleFieldGet()
5929 Location LocationsBuilderARMVIXL::ArithmeticZeroOrFpuRegister(HInstruction* input) { in ArithmeticZeroOrFpuRegister()
5933 return Location::ConstantLocation(input->AsConstant()); in ArithmeticZeroOrFpuRegister()
5935 return Location::RequiresFpuRegister(); in ArithmeticZeroOrFpuRegister()
5939 Location LocationsBuilderARMVIXL::ArmEncodableConstantOrRegister(HInstruction* constant, in ArmEncodableConstantOrRegister()
5944 return Location::ConstantLocation(constant->AsConstant()); in ArmEncodableConstantOrRegister()
5946 return Location::RequiresRegister(); in ArmEncodableConstantOrRegister()
6016 Location out = locations->Out(); in HandleFieldGet()
6041 Location maybe_temp = (locations->GetTempCount() != 0) ? locations->GetTemp(0) : Location(); in HandleFieldGet()
6246 locations->SetInAt(0, Location::RequiresRegister()); in VisitNullCheck()
6275 Location out_loc, in LoadFromShiftedRegOffset()
6311 Location loc, in StoreToShiftedRegOffset()
6353 locations->SetInAt(0, Location::RequiresRegister()); in VisitArrayGet()
6354 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1))); in VisitArrayGet()
6356 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitArrayGet()
6362 Location::RequiresRegister(), in VisitArrayGet()
6363 object_array_get_with_read_barrier ? Location::kOutputOverlap : Location::kNoOutputOverlap); in VisitArrayGet()
6375 locations->AddTemp(Location::RequiresRegister()); in VisitArrayGet()
6380 locations->AddTemp(Location::RequiresRegister()); in VisitArrayGet()
6384 locations->AddTemp(Location::RequiresRegister()); in VisitArrayGet()
6390 Location obj_loc = locations->InAt(0); in VisitArrayGet()
6392 Location index = locations->InAt(1); in VisitArrayGet()
6393 Location out_loc = locations->Out(); in VisitArrayGet()
6505 Location maybe_temp = in VisitArrayGet()
6506 (locations->GetTempCount() != 0) ? locations->GetTemp(0) : Location(); in VisitArrayGet()
6515 Location temp = locations->GetTemp(0); in VisitArrayGet()
6638 locations->SetInAt(0, Location::RequiresRegister()); in VisitArraySet()
6639 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1))); in VisitArraySet()
6641 locations->SetInAt(2, Location::RequiresFpuRegister()); in VisitArraySet()
6643 locations->SetInAt(2, Location::RequiresRegister()); in VisitArraySet()
6647 locations->AddTemp(Location::RequiresRegister()); // Possibly used for ref. poisoning too. in VisitArraySet()
6648 locations->AddTemp(Location::RequiresRegister()); in VisitArraySet()
6655 Location index = locations->InAt(1); in VisitArraySet()
6662 Location value_loc = locations->InAt(2); in VisitArraySet()
6734 Location temp1_loc = locations->GetTemp(0); in VisitArraySet()
6736 Location temp2_loc = locations->GetTemp(1); in VisitArraySet()
6852 Location value = locations->InAt(2); in VisitArraySet()
6871 Location value = locations->InAt(2); in VisitArraySet()
6890 Location value = locations->InAt(2); in VisitArraySet()
6916 locations->SetInAt(0, Location::RequiresRegister()); in VisitArrayLength()
6917 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitArrayLength()
6941 locations->SetInAt(0, Location::RequiresRegister()); in VisitIntermediateAddress()
6942 locations->SetInAt(1, Location::RegisterOrConstant(instruction->GetOffset())); in VisitIntermediateAddress()
6943 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitIntermediateAddress()
6949 Location second = instruction->GetLocations()->InAt(1); in VisitIntermediateAddress()
6983 ? Location::ConstantLocation(index->AsConstant()) in VisitBoundsCheck()
6986 ? Location::ConstantLocation(length->AsConstant()) in VisitBoundsCheck()
6992 Location index_loc = locations->InAt(0); in VisitBoundsCheck()
6993 Location length_loc = locations->InAt(1); in VisitBoundsCheck()
7132 Location source = move->GetSource(); in EmitMove()
7133 Location destination = move->GetDestination(); in EmitMove()
7291 Location source = move->GetSource(); in EmitSwap()
7292 Location destination = move->GetDestination(); in EmitSwap()
7426 locations->SetInAt(0, Location::RequiresRegister()); in VisitLoadClass()
7428 locations->SetOut(Location::RequiresRegister()); in VisitLoadClass()
7453 Location out_loc = locations->Out(); in VisitLoadClass()
7540 Location location = LocationFrom(calling_convention.GetRegisterAt(0)); in VisitLoadMethodHandle()
7550 Location location = LocationFrom(calling_convention.GetRegisterAt(0)); in VisitLoadMethodType()
7561 locations->SetInAt(0, Location::RequiresRegister()); in VisitClinitCheck()
7563 locations->SetOut(Location::SameAsFirstInput()); in VisitClinitCheck()
7678 locations->SetOut(Location::RequiresRegister()); in VisitLoadString()
7694 Location out_loc = locations->Out(); in VisitLoadString()
7765 locations->SetOut(Location::RequiresRegister()); in VisitLoadException()
7847 locations->SetInAt(0, Location::RequiresRegister()); in VisitInstanceOf()
7849 locations->SetInAt(1, Location::ConstantLocation(instruction->InputAt(1)->AsConstant())); in VisitInstanceOf()
7850 locations->SetInAt(2, Location::ConstantLocation(instruction->InputAt(2)->AsConstant())); in VisitInstanceOf()
7851 locations->SetInAt(3, Location::ConstantLocation(instruction->InputAt(3)->AsConstant())); in VisitInstanceOf()
7853 locations->SetInAt(1, Location::RequiresRegister()); in VisitInstanceOf()
7857 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in VisitInstanceOf()
7864 Location obj_loc = locations->InAt(0); in VisitInstanceOf()
7869 Location out_loc = locations->Out(); in VisitInstanceOf()
7873 Location maybe_temp_loc = (num_temps >= 1) ? locations->GetTemp(0) : Location::NoLocation(); in VisitInstanceOf()
8144 locations->SetInAt(0, Location::RequiresRegister()); in VisitCheckCast()
8146 locations->SetInAt(1, Location::ConstantLocation(instruction->InputAt(1)->AsConstant())); in VisitCheckCast()
8147 locations->SetInAt(2, Location::ConstantLocation(instruction->InputAt(2)->AsConstant())); in VisitCheckCast()
8148 locations->SetInAt(3, Location::ConstantLocation(instruction->InputAt(3)->AsConstant())); in VisitCheckCast()
8150 locations->SetInAt(1, Location::RequiresRegister()); in VisitCheckCast()
8158 Location obj_loc = locations->InAt(0); in VisitCheckCast()
8163 Location temp_loc = locations->GetTemp(0); in VisitCheckCast()
8167 Location maybe_temp2_loc = (num_temps >= 2) ? locations->GetTemp(1) : Location::NoLocation(); in VisitCheckCast()
8168 Location maybe_temp3_loc = (num_temps >= 3) ? locations->GetTemp(2) : Location::NoLocation(); in VisitCheckCast()
8406 locations->SetInAt(0, Location::RequiresRegister()); in HandleBitwiseOperation()
8408 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in HandleBitwiseOperation()
8429 locations->SetInAt(0, Location::RequiresRegister()); in VisitBitwiseNegatedRight()
8430 locations->SetInAt(1, Location::RequiresRegister()); in VisitBitwiseNegatedRight()
8431 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitBitwiseNegatedRight()
8436 Location first = locations->InAt(0); in VisitBitwiseNegatedRight()
8437 Location second = locations->InAt(1); in VisitBitwiseNegatedRight()
8438 Location out = locations->Out(); in VisitBitwiseNegatedRight()
8496 locations->SetInAt(0, Location::RequiresRegister()); in VisitDataProcWithShifterOp()
8497 locations->SetInAt(1, Location::RequiresRegister()); in VisitDataProcWithShifterOp()
8498 locations->SetOut(Location::RequiresRegister(), in VisitDataProcWithShifterOp()
8499 overlap ? Location::kOutputOverlap : Location::kNoOutputOverlap); in VisitDataProcWithShifterOp()
8625 void InstructionCodeGeneratorARMVIXL::GenerateAddLongConst(Location out, in GenerateAddLongConst()
8626 Location first, in GenerateAddLongConst()
8652 Location first = locations->InAt(0); in HandleBitwiseOperation()
8653 Location second = locations->InAt(1); in HandleBitwiseOperation()
8654 Location out = locations->Out(); in HandleBitwiseOperation()
8728 Location out, in GenerateReferenceLoadOneRegister()
8730 Location maybe_temp, in GenerateReferenceLoadOneRegister()
8761 Location out, in GenerateReferenceLoadTwoRegisters()
8762 Location obj, in GenerateReferenceLoadTwoRegisters()
8764 Location maybe_temp, in GenerateReferenceLoadTwoRegisters()
8792 Location root, in GenerateGcRootFieldLoad()
8892 Location ref, in GenerateFieldLoadWithBakerReadBarrier()
8966 Location ref, in GenerateFieldLoadWithBakerReadBarrier()
8969 Location maybe_temp, in GenerateFieldLoadWithBakerReadBarrier()
8983 void CodeGeneratorARMVIXL::GenerateArrayLoadWithBakerReadBarrier(Location ref, in GenerateArrayLoadWithBakerReadBarrier()
8986 Location index, in GenerateArrayLoadWithBakerReadBarrier()
8987 Location temp, in GenerateArrayLoadWithBakerReadBarrier()
9053 void CodeGeneratorARMVIXL::MaybeGenerateMarkingRegisterCheck(int code, Location temp_loc) { in MaybeGenerateMarkingRegisterCheck()
9068 Location out, in AddReadBarrierSlowPath()
9069 Location ref, in AddReadBarrierSlowPath()
9070 Location obj, in AddReadBarrierSlowPath()
9072 Location index) { in AddReadBarrierSlowPath()
9080 Location out, in GenerateReadBarrierSlow()
9081 Location ref, in GenerateReadBarrierSlow()
9082 Location obj, in GenerateReadBarrierSlow()
9084 Location index) { in GenerateReadBarrierSlow()
9106 Location out, in MaybeGenerateReadBarrierSlow()
9107 Location ref, in MaybeGenerateReadBarrierSlow()
9108 Location obj, in MaybeGenerateReadBarrierSlow()
9110 Location index) { in MaybeGenerateReadBarrierSlow()
9124 Location out, in GenerateReadBarrierForRootSlow()
9125 Location root) { in GenerateReadBarrierForRootSlow()
9168 void CodeGeneratorARMVIXL::LoadMethod(MethodLoadKind load_kind, Location temp, HInvoke* invoke) { in LoadMethod()
9209 HInvokeStaticOrDirect* invoke, Location temp, SlowPathCode* slow_path) { in GenerateStaticOrDirectCall()
9210 Location callee_method = temp; // For all kinds except kRecursive, callee will be in temp. in GenerateStaticOrDirectCall()
9304 HInvokeVirtual* invoke, Location temp_location, SlowPathCode* slow_path) { in GenerateVirtualCall()
9677 Location::RequiresRegister()); in VisitMultiplyAccumulate()
9678 locations->SetInAt(HMultiplyAccumulate::kInputMulLeftIndex, Location::RequiresRegister()); in VisitMultiplyAccumulate()
9679 locations->SetInAt(HMultiplyAccumulate::kInputMulRightIndex, Location::RequiresRegister()); in VisitMultiplyAccumulate()
9680 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitMultiplyAccumulate()
9713 locations->SetInAt(0, Location::RequiresRegister()); in VisitPackedSwitch()
9716 locations->AddTemp(Location::RequiresRegister()); // We need a temp for the table base. in VisitPackedSwitch()
9718 locations->AddTemp(Location::RequiresRegister()); // We need a temp for the bias. in VisitPackedSwitch()
9805 void CodeGeneratorARMVIXL::MoveFromReturnRegister(Location trg, DataType::Type type) { in MoveFromReturnRegister()
9813 Location return_loc = InvokeDexCallingConventionVisitorARMVIXL().GetReturnLocation(type); in MoveFromReturnRegister()
9827 locations->SetInAt(0, Location::RequiresRegister()); in VisitClassTableGet()
9828 locations->SetOut(Location::RequiresRegister()); in VisitClassTableGet()