Lines Matching refs:Location

77 static bool ExpectedPairLayout(Location location) {  in ExpectedPairLayout()
516 Location out = locations->Out(); in EmitNativeCode()
535 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode()
722 Location out, in ReadBarrierForHeapReferenceSlowPathARMVIXL()
723 Location ref, in ReadBarrierForHeapReferenceSlowPathARMVIXL()
724 Location obj, in ReadBarrierForHeapReferenceSlowPathARMVIXL()
726 Location index) in ReadBarrierForHeapReferenceSlowPathARMVIXL()
773 Location index = index_; in EmitNativeCode()
893 const Location out_;
894 const Location ref_;
895 const Location obj_;
900 const Location index_;
908 ReadBarrierForRootSlowPathARMVIXL(HInstruction* instruction, Location out, Location root) in ReadBarrierForRootSlowPathARMVIXL()
942 const Location out_;
943 const Location root_;
1098 const Location& out, in GenerateDataProc()
1099 const Location& first, in GenerateDataProc()
1132 const Location first = locations->InAt(0); in GenerateLongDataProc()
1133 const Location second = locations->InAt(1); in GenerateLongDataProc()
1134 const Location out = locations->Out(); in GenerateLongDataProc()
1242 const Location rhs_loc = instruction->GetLocations()->InAt(1); in GenerateVcmp()
1317 const Location left = locations->InAt(0); in GenerateLongTestConstant()
1318 const Location right = locations->InAt(1); in GenerateLongTestConstant()
1438 Location left = locations->InAt(0); in GenerateLongTest()
1439 Location right = locations->InAt(1); in GenerateLongTest()
1557 const Location left = locations->InAt(0); in GenerateEqualLong()
1558 const Location right = locations->InAt(1); in GenerateEqualLong()
1613 const Location left = locations->InAt(0); in GenerateConditionLong()
1614 const Location right = locations->InAt(1); in GenerateConditionLong()
1685 const Location right = cond->GetLocations()->InAt(1); in GenerateConditionIntegralOrNonPrimitive()
1779 static Location Arm8BitEncodableConstantOrRegister(HInstruction* constant) { in Arm8BitEncodableConstantOrRegister()
1783 return Location::ConstantLocation(constant->AsConstant()); in Arm8BitEncodableConstantOrRegister()
1786 return Location::RequiresRegister(); in Arm8BitEncodableConstantOrRegister()
1789 static bool CanGenerateConditionalMove(const Location& out, const Location& src) { in CanGenerateConditionalMove()
1876 AddAllocatedRegister(Location::RegisterLocation(LR)); in CodeGeneratorARMVIXL()
2199 Location InvokeDexCallingConventionVisitorARMVIXL::GetNextLocation(DataType::Type type) { in GetNextLocation()
2213 return Location::StackSlot(calling_convention.GetStackOffsetOf(stack_index)); in GetNextLocation()
2236 return Location::DoubleStackSlot(calling_convention.GetStackOffsetOf(stack_index)); in GetNextLocation()
2248 return Location::StackSlot(calling_convention.GetStackOffsetOf(stack_index)); in GetNextLocation()
2259 Location result = LocationFrom( in GetNextLocation()
2265 return Location::DoubleStackSlot(calling_convention.GetStackOffsetOf(stack_index)); in GetNextLocation()
2275 return Location::NoLocation(); in GetNextLocation()
2278 Location InvokeDexCallingConventionVisitorARMVIXL::GetReturnLocation(DataType::Type type) const { in GetReturnLocation()
2305 return Location::NoLocation(); in GetReturnLocation()
2311 Location InvokeDexCallingConventionVisitorARMVIXL::GetMethodLocation() const { in GetMethodLocation()
2315 void CodeGeneratorARMVIXL::Move32(Location destination, Location source) { in Move32()
2357 void CodeGeneratorARMVIXL::MoveConstant(Location location, int32_t value) { in MoveConstant()
2362 void CodeGeneratorARMVIXL::MoveLocation(Location dst, Location src, DataType::Type dst_type) { in MoveLocation()
2370 void CodeGeneratorARMVIXL::AddLocationAsTemp(Location location, LocationSummary* locations) { in AddLocationAsTemp()
2539 Location cond_val = instruction->GetLocations()->InAt(condition_input_index); in GenerateTestAndBranch()
2600 locations->SetInAt(0, Location::RequiresRegister()); in VisitIf()
2622 locations->SetInAt(0, Location::RequiresRegister()); in VisitDeoptimize()
2638 locations->SetOut(Location::RequiresRegister()); in VisitShouldDeoptimizeFlag()
2653 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitSelect()
2654 locations->SetInAt(1, Location::FpuRegisterOrConstant(select->GetTrueValue())); in VisitSelect()
2656 locations->SetInAt(0, Location::RequiresRegister()); in VisitSelect()
2661 locations->SetInAt(2, Location::RegisterOrConstant(select->GetCondition())); in VisitSelect()
2663 locations->SetOut(Location::SameAsFirstInput()); in VisitSelect()
2665 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitSelect()
2671 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitSelect()
2679 const Location first = locations->InAt(0); in VisitSelect()
2680 const Location out = locations->Out(); in VisitSelect()
2681 const Location second = locations->InAt(1); in VisitSelect()
2694 Location src; in VisitSelect()
2905 locations->SetInAt(0, Location::RequiresFpuRegister()); in HandleCondition()
2908 locations->SetInAt(0, Location::RequiresRegister()); in HandleCondition()
2909 locations->SetInAt(1, Location::RegisterOrConstant(cond->InputAt(1))); in HandleCondition()
2912 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in HandleCondition()
2940 const Location right_loc = cond->GetLocations()->InAt(1); in HandleCondition()
3047 locations->SetOut(Location::ConstantLocation(constant)); in VisitIntConstant()
3057 locations->SetOut(Location::ConstantLocation(constant)); in VisitNullConstant()
3067 locations->SetOut(Location::ConstantLocation(constant)); in VisitLongConstant()
3077 locations->SetOut(Location::ConstantLocation(constant)); in VisitFloatConstant()
3088 locations->SetOut(Location::ConstantLocation(constant)); in VisitDoubleConstant()
3177 invoke, locations->HasTemps() ? locations->GetTemp(0) : Location::NoLocation()); in VisitInvokeStaticOrDirect()
3219 Location receiver = locations->InAt(0); in VisitInvokeInterface()
3309 locations->SetInAt(0, Location::RequiresRegister()); in VisitNeg()
3310 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitNeg()
3314 locations->SetInAt(0, Location::RequiresRegister()); in VisitNeg()
3315 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in VisitNeg()
3321 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitNeg()
3322 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitNeg()
3332 Location out = locations->Out(); in VisitNeg()
3333 Location in = locations->InAt(0); in VisitNeg()
3386 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
3387 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3393 locations->SetInAt(0, Location::Any()); in VisitTypeConversion()
3394 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3398 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
3399 locations->SetOut(Location::RequiresRegister()); in VisitTypeConversion()
3400 locations->AddTemp(Location::RequiresFpuRegister()); in VisitTypeConversion()
3404 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
3405 locations->SetOut(Location::RequiresRegister()); in VisitTypeConversion()
3406 locations->AddTemp(Location::RequiresFpuRegister()); in VisitTypeConversion()
3423 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
3424 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3456 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
3457 locations->SetOut(Location::RequiresFpuRegister()); in VisitTypeConversion()
3469 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
3470 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3487 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
3488 locations->SetOut(Location::RequiresFpuRegister()); in VisitTypeConversion()
3492 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
3493 locations->SetOut(Location::RequiresFpuRegister()); in VisitTypeConversion()
3494 locations->AddTemp(Location::RequiresFpuRegister()); in VisitTypeConversion()
3495 locations->AddTemp(Location::RequiresFpuRegister()); in VisitTypeConversion()
3499 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
3500 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3517 Location out = locations->Out(); in VisitTypeConversion()
3518 Location in = locations->InAt(0); in VisitTypeConversion()
3745 locations->SetInAt(0, Location::RequiresRegister()); in VisitAdd()
3746 locations->SetInAt(1, Location::RegisterOrConstant(add->InputAt(1))); in VisitAdd()
3747 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitAdd()
3752 locations->SetInAt(0, Location::RequiresRegister()); in VisitAdd()
3754 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitAdd()
3760 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitAdd()
3761 locations->SetInAt(1, Location::RequiresFpuRegister()); in VisitAdd()
3762 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitAdd()
3773 Location out = locations->Out(); in VisitAdd()
3774 Location first = locations->InAt(0); in VisitAdd()
3775 Location second = locations->InAt(1); in VisitAdd()
3810 locations->SetInAt(0, Location::RequiresRegister()); in VisitSub()
3811 locations->SetInAt(1, Location::RegisterOrConstant(sub->InputAt(1))); in VisitSub()
3812 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitSub()
3817 locations->SetInAt(0, Location::RequiresRegister()); in VisitSub()
3819 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitSub()
3824 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitSub()
3825 locations->SetInAt(1, Location::RequiresFpuRegister()); in VisitSub()
3826 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitSub()
3836 Location out = locations->Out(); in VisitSub()
3837 Location first = locations->InAt(0); in VisitSub()
3838 Location second = locations->InAt(1); in VisitSub()
3873 locations->SetInAt(0, Location::RequiresRegister()); in VisitMul()
3874 locations->SetInAt(1, Location::RequiresRegister()); in VisitMul()
3875 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitMul()
3881 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitMul()
3882 locations->SetInAt(1, Location::RequiresFpuRegister()); in VisitMul()
3883 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitMul()
3894 Location out = locations->Out(); in VisitMul()
3895 Location first = locations->InAt(0); in VisitMul()
3896 Location second = locations->InAt(1); in VisitMul()
3949 Location second = instruction->GetLocations()->InAt(1); in DivRemOneOrMinusOne()
3973 Location second = locations->InAt(1); in DivRemByPowerOfTwo()
4007 Location second = locations->InAt(1); in GenerateDivRemWithAnyConstant()
4049 Location second = instruction->GetLocations()->InAt(1); in GenerateDivRemConstantIntegral()
4083 locations->SetInAt(0, Location::RequiresRegister()); in VisitDiv()
4084 locations->SetInAt(1, Location::ConstantLocation(div->InputAt(1)->AsConstant())); in VisitDiv()
4085 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitDiv()
4090 locations->AddTemp(Location::RequiresRegister()); in VisitDiv()
4092 locations->AddTemp(Location::RequiresRegister()); in VisitDiv()
4096 locations->SetInAt(0, Location::RequiresRegister()); in VisitDiv()
4097 locations->SetInAt(1, Location::RequiresRegister()); in VisitDiv()
4098 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitDiv()
4120 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitDiv()
4121 locations->SetInAt(1, Location::RequiresFpuRegister()); in VisitDiv()
4122 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitDiv()
4132 Location lhs = div->GetLocations()->InAt(0); in VisitDiv()
4133 Location rhs = div->GetLocations()->InAt(1); in VisitDiv()
4196 locations->SetInAt(0, Location::RequiresRegister()); in VisitRem()
4197 locations->SetInAt(1, Location::ConstantLocation(rem->InputAt(1)->AsConstant())); in VisitRem()
4198 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitRem()
4203 locations->AddTemp(Location::RequiresRegister()); in VisitRem()
4205 locations->AddTemp(Location::RequiresRegister()); in VisitRem()
4209 locations->SetInAt(0, Location::RequiresRegister()); in VisitRem()
4210 locations->SetInAt(1, Location::RequiresRegister()); in VisitRem()
4211 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitRem()
4212 locations->AddTemp(Location::RequiresRegister()); in VisitRem()
4258 Location second = locations->InAt(1); in VisitRem()
4314 locations->SetInAt(0, Location::RequiresRegister()); in CreateMinMaxLocations()
4315 locations->SetInAt(1, Location::RequiresRegister()); in CreateMinMaxLocations()
4316 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in CreateMinMaxLocations()
4319 locations->SetInAt(0, Location::RequiresRegister()); in CreateMinMaxLocations()
4320 locations->SetInAt(1, Location::RequiresRegister()); in CreateMinMaxLocations()
4321 locations->SetOut(Location::SameAsFirstInput()); in CreateMinMaxLocations()
4324 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateMinMaxLocations()
4325 locations->SetInAt(1, Location::RequiresFpuRegister()); in CreateMinMaxLocations()
4326 locations->SetOut(Location::SameAsFirstInput()); in CreateMinMaxLocations()
4327 locations->AddTemp(Location::RequiresRegister()); in CreateMinMaxLocations()
4330 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateMinMaxLocations()
4331 locations->SetInAt(1, Location::RequiresFpuRegister()); in CreateMinMaxLocations()
4332 locations->SetOut(Location::SameAsFirstInput()); in CreateMinMaxLocations()
4340 Location op1_loc = locations->InAt(0); in GenerateMinMaxInt()
4341 Location op2_loc = locations->InAt(1); in GenerateMinMaxInt()
4342 Location out_loc = locations->Out(); in GenerateMinMaxInt()
4362 Location op1_loc = locations->InAt(0); in GenerateMinMaxLong()
4363 Location op2_loc = locations->InAt(1); in GenerateMinMaxLong()
4364 Location out_loc = locations->Out(); in GenerateMinMaxLong()
4402 Location op1_loc = locations->InAt(0); in GenerateMinMaxFloat()
4403 Location op2_loc = locations->InAt(1); in GenerateMinMaxFloat()
4404 Location out_loc = locations->Out(); in GenerateMinMaxFloat()
4463 Location op1_loc = locations->InAt(0); in GenerateMinMaxDouble()
4464 Location op2_loc = locations->InAt(1); in GenerateMinMaxDouble()
4465 Location out_loc = locations->Out(); in GenerateMinMaxDouble()
4553 locations->SetInAt(0, Location::RequiresRegister()); in VisitAbs()
4554 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitAbs()
4555 locations->AddTemp(Location::RequiresRegister()); in VisitAbs()
4559 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitAbs()
4560 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitAbs()
4580 Location in = locations->InAt(0); in VisitAbs()
4583 Location output = locations->Out(); in VisitAbs()
4606 locations->SetInAt(0, Location::RegisterOrConstant(instruction->InputAt(0))); in VisitDivZeroCheck()
4615 Location value = locations->InAt(0); in VisitDivZeroCheck()
4656 Location rhs = locations->InAt(1); in HandleIntegerRotate()
4684 Location rhs = locations->InAt(1); in HandleLongRotate()
4752 locations->SetInAt(0, Location::RequiresRegister()); in VisitRor()
4753 locations->SetInAt(1, Location::RegisterOrConstant(ror->InputAt(1))); in VisitRor()
4754 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitRor()
4758 locations->SetInAt(0, Location::RequiresRegister()); in VisitRor()
4760 locations->SetInAt(1, Location::ConstantLocation(ror->InputAt(1)->AsConstant())); in VisitRor()
4762 locations->SetInAt(1, Location::RequiresRegister()); in VisitRor()
4763 locations->AddTemp(Location::RequiresRegister()); in VisitRor()
4764 locations->AddTemp(Location::RequiresRegister()); in VisitRor()
4766 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in VisitRor()
4799 locations->SetInAt(0, Location::RequiresRegister()); in HandleShift()
4801 locations->SetInAt(1, Location::ConstantLocation(op->InputAt(1)->AsConstant())); in HandleShift()
4802 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in HandleShift()
4804 locations->SetInAt(1, Location::RequiresRegister()); in HandleShift()
4807 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in HandleShift()
4812 locations->SetInAt(0, Location::RequiresRegister()); in HandleShift()
4814 locations->SetInAt(1, Location::ConstantLocation(op->InputAt(1)->AsConstant())); in HandleShift()
4817 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in HandleShift()
4819 locations->SetInAt(1, Location::RequiresRegister()); in HandleShift()
4820 locations->AddTemp(Location::RequiresRegister()); in HandleShift()
4821 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in HandleShift()
4834 Location out = locations->Out(); in HandleShift()
4835 Location first = locations->InAt(0); in HandleShift()
4836 Location second = locations->InAt(1); in HandleShift()
5062 Location location = parameter_visitor_.GetNextLocation(instruction->GetType()); in VisitParameterValue()
5064 location = Location::StackSlot(location.GetStackIndex() + codegen_->GetFrameSize()); in VisitParameterValue()
5066 location = Location::DoubleStackSlot(location.GetStackIndex() + codegen_->GetFrameSize()); in VisitParameterValue()
5090 locations->SetInAt(0, Location::RequiresRegister()); in VisitNot()
5091 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitNot()
5096 Location out = locations->Out(); in VisitNot()
5097 Location in = locations->InAt(0); in VisitNot()
5116 locations->SetInAt(0, Location::RequiresRegister()); in VisitBooleanNot()
5117 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitBooleanNot()
5135 locations->SetInAt(0, Location::RequiresRegister()); in VisitCompare()
5136 locations->SetInAt(1, Location::RequiresRegister()); in VisitCompare()
5138 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in VisitCompare()
5143 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitCompare()
5145 locations->SetOut(Location::RequiresRegister()); in VisitCompare()
5156 Location left = locations->InAt(0); in VisitCompare()
5157 Location right = locations->InAt(1); in VisitCompare()
5219 locations->SetInAt(i, Location::Any()); in VisitPhi()
5221 locations->SetOut(Location::Any()); in VisitPhi()
5296 locations->SetInAt(0, Location::RequiresRegister()); in HandleFieldSet()
5300 locations->SetInAt(1, Location::RequiresFpuRegister()); in HandleFieldSet()
5302 locations->SetInAt(1, Location::RequiresRegister()); in HandleFieldSet()
5314 locations->AddTemp(Location::RequiresRegister()); // Possibly used for reference poisoning too. in HandleFieldSet()
5315 locations->AddTemp(Location::RequiresRegister()); in HandleFieldSet()
5324 locations->AddTemp(Location::RequiresRegister()); in HandleFieldSet()
5325 locations->AddTemp(Location::RequiresRegister()); in HandleFieldSet()
5341 Location value = locations->InAt(1); in HandleFieldSet()
5467 locations->SetInAt(0, Location::RequiresRegister()); in HandleFieldGet()
5482 locations->SetOut(Location::RequiresFpuRegister()); in HandleFieldGet()
5484 locations->SetOut(Location::RequiresRegister(), in HandleFieldGet()
5485 (overlap ? Location::kOutputOverlap : Location::kNoOutputOverlap)); in HandleFieldGet()
5494 locations->AddTemp(Location::RequiresRegister()); in HandleFieldGet()
5495 locations->AddTemp(Location::RequiresRegister()); in HandleFieldGet()
5501 locations->AddTemp(Location::RequiresRegister()); in HandleFieldGet()
5506 Location LocationsBuilderARMVIXL::ArithmeticZeroOrFpuRegister(HInstruction* input) { in ArithmeticZeroOrFpuRegister()
5510 return Location::ConstantLocation(input->AsConstant()); in ArithmeticZeroOrFpuRegister()
5512 return Location::RequiresFpuRegister(); in ArithmeticZeroOrFpuRegister()
5516 Location LocationsBuilderARMVIXL::ArmEncodableConstantOrRegister(HInstruction* constant, in ArmEncodableConstantOrRegister()
5521 return Location::ConstantLocation(constant->AsConstant()); in ArmEncodableConstantOrRegister()
5523 return Location::RequiresRegister(); in ArmEncodableConstantOrRegister()
5590 Location out = locations->Out(); in HandleFieldGet()
5612 Location maybe_temp = (locations->GetTempCount() != 0) ? locations->GetTemp(0) : Location(); in HandleFieldGet()
5795 locations->SetInAt(0, Location::RequiresRegister()); in VisitNullCheck()
5824 Location out_loc, in LoadFromShiftedRegOffset()
5860 Location loc, in StoreToShiftedRegOffset()
5902 locations->SetInAt(0, Location::RequiresRegister()); in VisitArrayGet()
5903 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1))); in VisitArrayGet()
5905 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitArrayGet()
5911 Location::RequiresRegister(), in VisitArrayGet()
5912 object_array_get_with_read_barrier ? Location::kOutputOverlap : Location::kNoOutputOverlap); in VisitArrayGet()
5924 locations->AddTemp(Location::RequiresRegister()); in VisitArrayGet()
5929 locations->AddTemp(Location::RequiresRegister()); in VisitArrayGet()
5933 locations->AddTemp(Location::RequiresRegister()); in VisitArrayGet()
5939 Location obj_loc = locations->InAt(0); in VisitArrayGet()
5941 Location index = locations->InAt(1); in VisitArrayGet()
5942 Location out_loc = locations->Out(); in VisitArrayGet()
6046 Location maybe_temp = in VisitArrayGet()
6047 (locations->GetTempCount() != 0) ? locations->GetTemp(0) : Location(); in VisitArrayGet()
6056 Location temp = locations->GetTemp(0); in VisitArrayGet()
6179 locations->SetInAt(0, Location::RequiresRegister()); in VisitArraySet()
6180 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1))); in VisitArraySet()
6182 locations->SetInAt(2, Location::RequiresFpuRegister()); in VisitArraySet()
6184 locations->SetInAt(2, Location::RequiresRegister()); in VisitArraySet()
6188 locations->AddTemp(Location::RequiresRegister()); // Possibly used for ref. poisoning too. in VisitArraySet()
6189 locations->AddTemp(Location::RequiresRegister()); in VisitArraySet()
6196 Location index = locations->InAt(1); in VisitArraySet()
6203 Location value_loc = locations->InAt(2); in VisitArraySet()
6269 Location temp1_loc = locations->GetTemp(0); in VisitArraySet()
6271 Location temp2_loc = locations->GetTemp(1); in VisitArraySet()
6396 Location value = locations->InAt(2); in VisitArraySet()
6411 Location value = locations->InAt(2); in VisitArraySet()
6426 Location value = locations->InAt(2); in VisitArraySet()
6458 locations->SetInAt(0, Location::RequiresRegister()); in VisitArrayLength()
6459 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitArrayLength()
6483 locations->SetInAt(0, Location::RequiresRegister()); in VisitIntermediateAddress()
6484 locations->SetInAt(1, Location::RegisterOrConstant(instruction->GetOffset())); in VisitIntermediateAddress()
6485 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitIntermediateAddress()
6491 Location second = instruction->GetLocations()->InAt(1); in VisitIntermediateAddress()
6525 ? Location::ConstantLocation(index->AsConstant()) in VisitBoundsCheck()
6528 ? Location::ConstantLocation(length->AsConstant()) in VisitBoundsCheck()
6534 Location index_loc = locations->InAt(0); in VisitBoundsCheck()
6535 Location length_loc = locations->InAt(1); in VisitBoundsCheck()
6674 Location source = move->GetSource(); in EmitMove()
6675 Location destination = move->GetDestination(); in EmitMove()
6833 Location source = move->GetSource(); in EmitSwap()
6834 Location destination = move->GetDestination(); in EmitSwap()
6964 locations->SetInAt(0, Location::RequiresRegister()); in VisitLoadClass()
6966 locations->SetOut(Location::RequiresRegister()); in VisitLoadClass()
6989 Location out_loc = locations->Out(); in VisitLoadClass()
7073 Location location = LocationFrom(calling_convention.GetRegisterAt(0)); in VisitLoadMethodHandle()
7083 Location location = LocationFrom(calling_convention.GetRegisterAt(0)); in VisitLoadMethodType()
7094 locations->SetInAt(0, Location::RequiresRegister()); in VisitClinitCheck()
7096 locations->SetOut(Location::SameAsFirstInput()); in VisitClinitCheck()
7215 locations->SetOut(Location::RequiresRegister()); in VisitLoadString()
7231 Location out_loc = locations->Out(); in VisitLoadString()
7300 locations->SetOut(Location::RequiresRegister()); in VisitLoadException()
7382 locations->SetInAt(0, Location::RequiresRegister()); in VisitInstanceOf()
7384 locations->SetInAt(1, Location::ConstantLocation(instruction->InputAt(1)->AsConstant())); in VisitInstanceOf()
7385 locations->SetInAt(2, Location::ConstantLocation(instruction->InputAt(2)->AsConstant())); in VisitInstanceOf()
7386 locations->SetInAt(3, Location::ConstantLocation(instruction->InputAt(3)->AsConstant())); in VisitInstanceOf()
7388 locations->SetInAt(1, Location::RequiresRegister()); in VisitInstanceOf()
7392 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap); in VisitInstanceOf()
7399 Location obj_loc = locations->InAt(0); in VisitInstanceOf()
7404 Location out_loc = locations->Out(); in VisitInstanceOf()
7408 Location maybe_temp_loc = (num_temps >= 1) ? locations->GetTemp(0) : Location::NoLocation(); in VisitInstanceOf()
7679 locations->SetInAt(0, Location::RequiresRegister()); in VisitCheckCast()
7681 locations->SetInAt(1, Location::ConstantLocation(instruction->InputAt(1)->AsConstant())); in VisitCheckCast()
7682 locations->SetInAt(2, Location::ConstantLocation(instruction->InputAt(2)->AsConstant())); in VisitCheckCast()
7683 locations->SetInAt(3, Location::ConstantLocation(instruction->InputAt(3)->AsConstant())); in VisitCheckCast()
7685 locations->SetInAt(1, Location::RequiresRegister()); in VisitCheckCast()
7693 Location obj_loc = locations->InAt(0); in VisitCheckCast()
7698 Location temp_loc = locations->GetTemp(0); in VisitCheckCast()
7702 Location maybe_temp2_loc = (num_temps >= 2) ? locations->GetTemp(1) : Location::NoLocation(); in VisitCheckCast()
7703 Location maybe_temp3_loc = (num_temps >= 3) ? locations->GetTemp(2) : Location::NoLocation(); in VisitCheckCast()
7941 locations->SetInAt(0, Location::RequiresRegister()); in HandleBitwiseOperation()
7943 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in HandleBitwiseOperation()
7964 locations->SetInAt(0, Location::RequiresRegister()); in VisitBitwiseNegatedRight()
7965 locations->SetInAt(1, Location::RequiresRegister()); in VisitBitwiseNegatedRight()
7966 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitBitwiseNegatedRight()
7971 Location first = locations->InAt(0); in VisitBitwiseNegatedRight()
7972 Location second = locations->InAt(1); in VisitBitwiseNegatedRight()
7973 Location out = locations->Out(); in VisitBitwiseNegatedRight()
8031 locations->SetInAt(0, Location::RequiresRegister()); in VisitDataProcWithShifterOp()
8032 locations->SetInAt(1, Location::RequiresRegister()); in VisitDataProcWithShifterOp()
8033 locations->SetOut(Location::RequiresRegister(), in VisitDataProcWithShifterOp()
8034 overlap ? Location::kOutputOverlap : Location::kNoOutputOverlap); in VisitDataProcWithShifterOp()
8160 void InstructionCodeGeneratorARMVIXL::GenerateAddLongConst(Location out, in GenerateAddLongConst()
8161 Location first, in GenerateAddLongConst()
8187 Location first = locations->InAt(0); in HandleBitwiseOperation()
8188 Location second = locations->InAt(1); in HandleBitwiseOperation()
8189 Location out = locations->Out(); in HandleBitwiseOperation()
8263 Location out, in GenerateReferenceLoadOneRegister()
8265 Location maybe_temp, in GenerateReferenceLoadOneRegister()
8296 Location out, in GenerateReferenceLoadTwoRegisters()
8297 Location obj, in GenerateReferenceLoadTwoRegisters()
8299 Location maybe_temp, in GenerateReferenceLoadTwoRegisters()
8327 Location root, in GenerateGcRootFieldLoad()
8421 Location ref, in GenerateFieldLoadWithBakerReadBarrier()
8495 Location ref, in GenerateFieldLoadWithBakerReadBarrier()
8498 Location temp, in GenerateFieldLoadWithBakerReadBarrier()
8512 void CodeGeneratorARMVIXL::GenerateArrayLoadWithBakerReadBarrier(Location ref, in GenerateArrayLoadWithBakerReadBarrier()
8515 Location index, in GenerateArrayLoadWithBakerReadBarrier()
8516 Location temp, in GenerateArrayLoadWithBakerReadBarrier()
8582 void CodeGeneratorARMVIXL::MaybeGenerateMarkingRegisterCheck(int code, Location temp_loc) { in MaybeGenerateMarkingRegisterCheck()
8597 Location out, in GenerateReadBarrierSlow()
8598 Location ref, in GenerateReadBarrierSlow()
8599 Location obj, in GenerateReadBarrierSlow()
8601 Location index) { in GenerateReadBarrierSlow()
8624 Location out, in MaybeGenerateReadBarrierSlow()
8625 Location ref, in MaybeGenerateReadBarrierSlow()
8626 Location obj, in MaybeGenerateReadBarrierSlow()
8628 Location index) { in MaybeGenerateReadBarrierSlow()
8642 Location out, in GenerateReadBarrierForRootSlow()
8643 Location root) { in GenerateReadBarrierForRootSlow()
8669 Location location = invoke->GetLocations()->InAt(invoke->GetSpecialInputIndex()); in GetInvokeStaticOrDirectExtraParameter()
8692 HInvokeStaticOrDirect* invoke, Location temp, SlowPathCode* slow_path) { in GenerateStaticOrDirectCall()
8693 Location callee_method = temp; // For all kinds except kRecursive, callee will be in temp. in GenerateStaticOrDirectCall()
8772 HInvokeVirtual* invoke, Location temp_location, SlowPathCode* slow_path) { in GenerateVirtualCall()
9076 Location::RequiresRegister()); in VisitMultiplyAccumulate()
9077 locations->SetInAt(HMultiplyAccumulate::kInputMulLeftIndex, Location::RequiresRegister()); in VisitMultiplyAccumulate()
9078 locations->SetInAt(HMultiplyAccumulate::kInputMulRightIndex, Location::RequiresRegister()); in VisitMultiplyAccumulate()
9079 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitMultiplyAccumulate()
9112 locations->SetInAt(0, Location::RequiresRegister()); in VisitPackedSwitch()
9115 locations->AddTemp(Location::RequiresRegister()); // We need a temp for the table base. in VisitPackedSwitch()
9117 locations->AddTemp(Location::RequiresRegister()); // We need a temp for the bias. in VisitPackedSwitch()
9204 void CodeGeneratorARMVIXL::MoveFromReturnRegister(Location trg, DataType::Type type) { in MoveFromReturnRegister()
9212 Location return_loc = InvokeDexCallingConventionVisitorARMVIXL().GetReturnLocation(type); in MoveFromReturnRegister()
9234 locations->SetInAt(0, Location::RequiresRegister()); in VisitClassTableGet()
9235 locations->SetOut(Location::RequiresRegister()); in VisitClassTableGet()