Lines Matching refs:Location
67 caller_saves.Add(Location::RegisterLocation(RAX)); in OneRegInReferenceOutSaveEverythingCallerSaves()
207 Location length_loc = locations->InAt(1); in EmitNativeCode()
213 Location array_loc = array_length->GetLocations()->InAt(0); in EmitNativeCode()
215 length_loc = Location::RegisterLocation(calling_convention.GetRegisterAt(1)); in EmitNativeCode()
219 length_loc = Location::RegisterLocation(calling_convention.GetRegisterAt(2)); in EmitNativeCode()
231 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode()
234 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode()
262 Location out = locations->Out(); in EmitNativeCode()
286 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode()
287 x86_64_codegen->Move(Location::RegisterLocation(RAX), source); in EmitNativeCode()
297 x86_64_codegen->Move(out, Location::RegisterLocation(RAX)); in EmitNativeCode()
333 x86_64_codegen->Move(locations->Out(), Location::RegisterLocation(RAX)); in EmitNativeCode()
374 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode()
377 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode()
390 x86_64_codegen->Move(locations->Out(), Location::RegisterLocation(RAX)); in EmitNativeCode()
445 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode()
450 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode()
455 Location::RegisterLocation(calling_convention.GetRegisterAt(2)), in EmitNativeCode()
487 Location ref, in ReadBarrierMarkSlowPathX86_64()
551 const Location ref_;
571 Location ref, in ReadBarrierMarkAndUpdateFieldSlowPathX86_64()
715 const Location ref_;
734 Location out, in ReadBarrierForHeapReferenceSlowPathX86_64()
735 Location ref, in ReadBarrierForHeapReferenceSlowPathX86_64()
736 Location obj, in ReadBarrierForHeapReferenceSlowPathX86_64()
738 Location index) in ReadBarrierForHeapReferenceSlowPathX86_64()
781 Location index = index_; in EmitNativeCode()
814 index = Location::RegisterLocation(index_reg); in EmitNativeCode()
850 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode()
854 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode()
859 Location::RegisterLocation(calling_convention.GetRegisterAt(2)), in EmitNativeCode()
873 x86_64_codegen->Move(out_, Location::RegisterLocation(RAX)); in EmitNativeCode()
901 const Location out_;
902 const Location ref_;
903 const Location obj_;
908 const Location index_;
916 ReadBarrierForRootSlowPathX86_64(HInstruction* instruction, Location out, Location root) in ReadBarrierForRootSlowPathX86_64()
934 x86_64_codegen->Move(Location::RegisterLocation(calling_convention.GetRegisterAt(0)), root_); in EmitNativeCode()
940 x86_64_codegen->Move(out_, Location::RegisterLocation(RAX)); in EmitNativeCode()
949 const Location out_;
950 const Location root_;
997 locations->AddTemp(Location::FpuRegisterLocation(fp_reg)); in BlockNonVolatileXmmRegisters()
1007 void CodeGeneratorX86_64::LoadMethod(MethodLoadKind load_kind, Location temp, HInvoke* invoke) { in LoadMethod()
1046 HInvokeStaticOrDirect* invoke, Location temp, SlowPathCode* slow_path) { in GenerateStaticOrDirectCall()
1049 Location callee_method = temp; // For all kinds except kRecursive, callee will be in temp. in GenerateStaticOrDirectCall()
1140 HInvokeVirtual* invoke, Location temp_in, SlowPathCode* slow_path) { in GenerateVirtualCall()
1446 AddAllocatedRegister(Location::RegisterLocation(kFakeReturnRegister)); in CodeGeneratorX86_64()
1613 void CodeGeneratorX86_64::Move(Location destination, Location source) { in Move()
1693 void CodeGeneratorX86_64::MoveConstant(Location location, int32_t value) { in MoveConstant()
1699 Location dst, Location src, DataType::Type dst_type ATTRIBUTE_UNUSED) { in MoveLocation()
1703 void CodeGeneratorX86_64::AddLocationAsTemp(Location location, LocationSummary* locations) { in AddLocationAsTemp()
1776 Location left = locations->InAt(0); in GenerateCompareTest()
1777 Location right = locations->InAt(1); in GenerateCompareTest()
1919 Location lhs = instruction->GetLocations()->InAt(condition_input_index); in GenerateTestAndBranch()
1944 Location lhs = condition->GetLocations()->InAt(0); in GenerateTestAndBranch()
1945 Location rhs = condition->GetLocations()->InAt(1); in GenerateTestAndBranch()
1964 locations->SetInAt(0, Location::Any()); in VisitIf()
1983 caller_saves.Add(Location::RegisterLocation(calling_convention.GetRegisterAt(0))); in VisitDeoptimize()
1986 locations->SetInAt(0, Location::Any()); in VisitDeoptimize()
2001 locations->SetOut(Location::RequiresRegister()); in VisitShouldDeoptimizeFlag()
2029 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitSelect()
2030 locations->SetInAt(1, Location::Any()); in VisitSelect()
2032 locations->SetInAt(0, Location::RequiresRegister()); in VisitSelect()
2035 locations->SetInAt(1, Location::RequiresRegister()); in VisitSelect()
2037 locations->SetInAt(1, Location::Any()); in VisitSelect()
2040 locations->SetInAt(1, Location::Any()); in VisitSelect()
2044 locations->SetInAt(2, Location::RequiresRegister()); in VisitSelect()
2046 locations->SetOut(Location::SameAsFirstInput()); in VisitSelect()
2055 Location value_true_loc = locations->InAt(1); in VisitSelect()
2134 locations->SetInAt(0, Location::RequiresRegister()); in HandleCondition()
2135 locations->SetInAt(1, Location::Any()); in HandleCondition()
2139 locations->SetInAt(0, Location::RequiresFpuRegister()); in HandleCondition()
2140 locations->SetInAt(1, Location::Any()); in HandleCondition()
2143 locations->SetInAt(0, Location::RequiresRegister()); in HandleCondition()
2144 locations->SetInAt(1, Location::Any()); in HandleCondition()
2148 locations->SetOut(Location::RequiresRegister()); in HandleCondition()
2158 Location lhs = locations->InAt(0); in HandleCondition()
2159 Location rhs = locations->InAt(1); in HandleCondition()
2313 locations->SetInAt(0, Location::RequiresRegister()); in VisitCompare()
2314 locations->SetInAt(1, Location::Any()); in VisitCompare()
2315 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitCompare()
2320 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitCompare()
2321 locations->SetInAt(1, Location::Any()); in VisitCompare()
2322 locations->SetOut(Location::RequiresRegister()); in VisitCompare()
2333 Location left = locations->InAt(0); in VisitCompare()
2334 Location right = locations->InAt(1); in VisitCompare()
2403 locations->SetOut(Location::ConstantLocation(constant)); in VisitIntConstant()
2413 locations->SetOut(Location::ConstantLocation(constant)); in VisitNullConstant()
2423 locations->SetOut(Location::ConstantLocation(constant)); in VisitLongConstant()
2433 locations->SetOut(Location::ConstantLocation(constant)); in VisitFloatConstant()
2443 locations->SetOut(Location::ConstantLocation(constant)); in VisitDoubleConstant()
2488 locations->SetInAt(0, Location::RegisterLocation(RAX)); in VisitReturn()
2493 locations->SetInAt(0, Location::FpuRegisterLocation(XMM0)); in VisitReturn()
2541 Location InvokeDexCallingConventionVisitorX86_64::GetReturnLocation(DataType::Type type) const { in GetReturnLocation()
2553 return Location::RegisterLocation(RAX); in GetReturnLocation()
2556 return Location::NoLocation(); in GetReturnLocation()
2560 return Location::FpuRegisterLocation(XMM0); in GetReturnLocation()
2566 Location InvokeDexCallingConventionVisitorX86_64::GetMethodLocation() const { in GetMethodLocation()
2567 return Location::RegisterLocation(kMethodRegisterArgument); in GetMethodLocation()
2570 Location InvokeDexCallingConventionVisitorX86_64::GetNextLocation(DataType::Type type) { in GetNextLocation()
2582 return Location::RegisterLocation(calling_convention.GetRegisterAt(index)); in GetNextLocation()
2584 return Location::StackSlot(calling_convention.GetStackOffsetOf(stack_index_ - 1)); in GetNextLocation()
2593 return Location::RegisterLocation(calling_convention.GetRegisterAt(index)); in GetNextLocation()
2596 return Location::DoubleStackSlot(calling_convention.GetStackOffsetOf(stack_index_ - 2)); in GetNextLocation()
2604 return Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(index)); in GetNextLocation()
2606 return Location::StackSlot(calling_convention.GetStackOffsetOf(stack_index_ - 1)); in GetNextLocation()
2614 return Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(index)); in GetNextLocation()
2616 return Location::DoubleStackSlot(calling_convention.GetStackOffsetOf(stack_index_ - 2)); in GetNextLocation()
2626 return Location::NoLocation(); in GetNextLocation()
2629 Location CriticalNativeCallingConventionVisitorX86_64::GetNextLocation(DataType::Type type) { in GetNextLocation()
2632 Location location = Location::NoLocation(); in GetNextLocation()
2635 location = Location::FpuRegisterLocation(kParameterFloatRegisters[fpr_index_]); in GetNextLocation()
2642 location = Location::RegisterLocation( in GetNextLocation()
2649 location = Location::DoubleStackSlot(stack_offset_); in GetNextLocation()
2651 location = Location::StackSlot(stack_offset_); in GetNextLocation()
2656 location = Location::Any(); in GetNextLocation()
2662 Location CriticalNativeCallingConventionVisitorX86_64::GetReturnLocation(DataType::Type type) in GetReturnLocation()
2669 Location CriticalNativeCallingConventionVisitorX86_64::GetMethodLocation() const { in GetMethodLocation()
2671 return Location::RegisterLocation(RAX); in GetMethodLocation()
2725 invoke, locations->HasTemps() ? locations->GetTemp(0) : Location::NoLocation()); in VisitInvokeStaticOrDirect()
2756 Location::RegisterLocation(RAX)); in VisitInvokeInterface()
2758 invoke->GetLocations()->AddTemp(Location::RegisterLocation(RAX)); in VisitInvokeInterface()
2791 Location receiver = locations->InAt(0); in VisitInvokeInterface()
2816 Location hidden_reg = locations->GetTemp(1); in VisitInvokeInterface()
2835 Location hidden_reg = locations->GetTemp(1); in VisitInvokeInterface()
2875 locations->SetInAt(0, Location::RequiresRegister()); in VisitNeg()
2876 locations->SetOut(Location::SameAsFirstInput()); in VisitNeg()
2881 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitNeg()
2882 locations->SetOut(Location::SameAsFirstInput()); in VisitNeg()
2883 locations->AddTemp(Location::RequiresFpuRegister()); in VisitNeg()
2893 Location out = locations->Out(); in VisitNeg()
2894 Location in = locations->InAt(0); in VisitNeg()
2949 locations->SetInAt(0, Location::Any()); in VisitTypeConversion()
2950 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
2956 locations->SetInAt(0, Location::Any()); in VisitTypeConversion()
2957 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
2961 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
2962 locations->SetOut(Location::RequiresRegister()); in VisitTypeConversion()
2966 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
2967 locations->SetOut(Location::RequiresRegister()); in VisitTypeConversion()
2986 locations->SetInAt(0, Location::RequiresRegister()); in VisitTypeConversion()
2987 locations->SetOut(Location::RequiresRegister()); in VisitTypeConversion()
2991 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
2992 locations->SetOut(Location::RequiresRegister()); in VisitTypeConversion()
2996 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitTypeConversion()
2997 locations->SetOut(Location::RequiresRegister()); in VisitTypeConversion()
3014 locations->SetInAt(0, Location::Any()); in VisitTypeConversion()
3015 locations->SetOut(Location::RequiresFpuRegister()); in VisitTypeConversion()
3019 locations->SetInAt(0, Location::Any()); in VisitTypeConversion()
3020 locations->SetOut(Location::RequiresFpuRegister()); in VisitTypeConversion()
3024 locations->SetInAt(0, Location::Any()); in VisitTypeConversion()
3025 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3042 locations->SetInAt(0, Location::Any()); in VisitTypeConversion()
3043 locations->SetOut(Location::RequiresFpuRegister()); in VisitTypeConversion()
3047 locations->SetInAt(0, Location::Any()); in VisitTypeConversion()
3048 locations->SetOut(Location::RequiresFpuRegister()); in VisitTypeConversion()
3052 locations->SetInAt(0, Location::Any()); in VisitTypeConversion()
3053 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitTypeConversion()
3070 Location out = locations->Out(); in VisitTypeConversion()
3071 Location in = locations->InAt(0); in VisitTypeConversion()
3411 locations->SetInAt(0, Location::RequiresRegister()); in VisitAdd()
3412 locations->SetInAt(1, Location::RegisterOrConstant(add->InputAt(1))); in VisitAdd()
3413 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitAdd()
3418 locations->SetInAt(0, Location::RequiresRegister()); in VisitAdd()
3420 locations->SetInAt(1, Location::RegisterOrInt32Constant(add->InputAt(1))); in VisitAdd()
3421 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitAdd()
3427 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitAdd()
3428 locations->SetInAt(1, Location::Any()); in VisitAdd()
3429 locations->SetOut(Location::SameAsFirstInput()); in VisitAdd()
3440 Location first = locations->InAt(0); in VisitAdd()
3441 Location second = locations->InAt(1); in VisitAdd()
3442 Location out = locations->Out(); in VisitAdd()
3535 locations->SetInAt(0, Location::RequiresRegister()); in VisitSub()
3536 locations->SetInAt(1, Location::Any()); in VisitSub()
3537 locations->SetOut(Location::SameAsFirstInput()); in VisitSub()
3541 locations->SetInAt(0, Location::RequiresRegister()); in VisitSub()
3542 locations->SetInAt(1, Location::RegisterOrInt32Constant(sub->InputAt(1))); in VisitSub()
3543 locations->SetOut(Location::SameAsFirstInput()); in VisitSub()
3548 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitSub()
3549 locations->SetInAt(1, Location::Any()); in VisitSub()
3550 locations->SetOut(Location::SameAsFirstInput()); in VisitSub()
3560 Location first = locations->InAt(0); in VisitSub()
3561 Location second = locations->InAt(1); in VisitSub()
3626 locations->SetInAt(0, Location::RequiresRegister()); in VisitMul()
3627 locations->SetInAt(1, Location::Any()); in VisitMul()
3630 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitMul()
3632 locations->SetOut(Location::SameAsFirstInput()); in VisitMul()
3637 locations->SetInAt(0, Location::RequiresRegister()); in VisitMul()
3638 locations->SetInAt(1, Location::Any()); in VisitMul()
3642 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitMul()
3644 locations->SetOut(Location::SameAsFirstInput()); in VisitMul()
3650 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitMul()
3651 locations->SetInAt(1, Location::Any()); in VisitMul()
3652 locations->SetOut(Location::SameAsFirstInput()); in VisitMul()
3663 Location first = locations->InAt(0); in VisitMul()
3664 Location second = locations->InAt(1); in VisitMul()
3665 Location out = locations->Out(); in VisitMul()
3745 void InstructionCodeGeneratorX86_64::PushOntoFPStack(Location source, uint32_t temp_offset, in PushOntoFPStack()
3756 Location stack_temp = Location::StackSlot(temp_offset); in PushOntoFPStack()
3760 Location stack_temp = Location::DoubleStackSlot(temp_offset); in PushOntoFPStack()
3772 Location first = locations->InAt(0); in GenerateRemFP()
3773 Location second = locations->InAt(1); in GenerateRemFP()
3774 Location out = locations->Out(); in GenerateRemFP()
3824 Location second = locations->InAt(1); in DivRemOneOrMinusOne()
3864 Location second = locations->InAt(1); in RemByPowerOfTwo()
3898 Location second = locations->InAt(1); in DivByPowerOfTwo()
3957 Location second = locations->InAt(1); in GenerateDivRemWithAnyConstant()
4073 Location second = locations->InAt(1); in GenerateDivRemIntegral()
4130 locations->SetInAt(0, Location::RegisterLocation(RAX)); in VisitDiv()
4131 locations->SetInAt(1, Location::RegisterOrConstant(div->InputAt(1))); in VisitDiv()
4132 locations->SetOut(Location::SameAsFirstInput()); in VisitDiv()
4134 locations->AddTemp(Location::RegisterLocation(RDX)); in VisitDiv()
4139 locations->AddTemp(Location::RequiresRegister()); in VisitDiv()
4146 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitDiv()
4147 locations->SetInAt(1, Location::Any()); in VisitDiv()
4148 locations->SetOut(Location::SameAsFirstInput()); in VisitDiv()
4159 Location first = locations->InAt(0); in VisitDiv()
4160 Location second = locations->InAt(1); in VisitDiv()
4214 locations->SetInAt(0, Location::RegisterLocation(RAX)); in VisitRem()
4215 locations->SetInAt(1, Location::RegisterOrConstant(rem->InputAt(1))); in VisitRem()
4217 locations->SetOut(Location::RegisterLocation(RDX)); in VisitRem()
4222 locations->AddTemp(Location::RequiresRegister()); in VisitRem()
4229 locations->SetInAt(0, Location::Any()); in VisitRem()
4230 locations->SetInAt(1, Location::Any()); in VisitRem()
4231 locations->SetOut(Location::RequiresFpuRegister()); in VisitRem()
4232 locations->AddTemp(Location::RegisterLocation(RAX)); in VisitRem()
4264 locations->SetInAt(0, Location::RequiresRegister()); in CreateMinMaxLocations()
4265 locations->SetInAt(1, Location::RequiresRegister()); in CreateMinMaxLocations()
4266 locations->SetOut(Location::SameAsFirstInput()); in CreateMinMaxLocations()
4270 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateMinMaxLocations()
4271 locations->SetInAt(1, Location::RequiresFpuRegister()); in CreateMinMaxLocations()
4274 locations->SetOut(Location::SameAsFirstInput()); in CreateMinMaxLocations()
4284 Location op1_loc = locations->InAt(0); in GenerateMinMaxInt()
4285 Location op2_loc = locations->InAt(1); in GenerateMinMaxInt()
4318 Location op1_loc = locations->InAt(0); in GenerateMinMaxFP()
4319 Location op2_loc = locations->InAt(1); in GenerateMinMaxFP()
4320 Location out_loc = locations->Out(); in GenerateMinMaxFP()
4435 locations->SetInAt(0, Location::RequiresRegister()); in VisitAbs()
4436 locations->SetOut(Location::SameAsFirstInput()); in VisitAbs()
4437 locations->AddTemp(Location::RequiresRegister()); in VisitAbs()
4441 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitAbs()
4442 locations->SetOut(Location::SameAsFirstInput()); in VisitAbs()
4443 locations->AddTemp(Location::RequiresFpuRegister()); in VisitAbs()
4496 locations->SetInAt(0, Location::Any()); in VisitDivZeroCheck()
4505 Location value = locations->InAt(0); in VisitDivZeroCheck()
4557 locations->SetInAt(0, Location::RequiresRegister()); in HandleShift()
4559 locations->SetInAt(1, Location::ByteRegisterOrConstant(RCX, op->InputAt(1))); in HandleShift()
4560 locations->SetOut(Location::SameAsFirstInput()); in HandleShift()
4573 Location second = locations->InAt(1); in HandleShift()
4633 locations->SetInAt(0, Location::RequiresRegister()); in VisitRor()
4635 locations->SetInAt(1, Location::ByteRegisterOrConstant(RCX, ror->InputAt(1))); in VisitRor()
4636 locations->SetOut(Location::SameAsFirstInput()); in VisitRor()
4648 Location second = locations->InAt(1); in VisitRor()
4703 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0))); in VisitNewInstance()
4704 locations->SetOut(Location::RegisterLocation(RAX)); in VisitNewInstance()
4717 locations->SetOut(Location::RegisterLocation(RAX)); in VisitNewArray()
4718 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0))); in VisitNewArray()
4719 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1))); in VisitNewArray()
4733 Location location = parameter_visitor_.GetNextLocation(instruction->GetType()); in VisitParameterValue()
4735 location = Location::StackSlot(location.GetStackIndex() + codegen_->GetFrameSize()); in VisitParameterValue()
4737 location = Location::DoubleStackSlot(location.GetStackIndex() + codegen_->GetFrameSize()); in VisitParameterValue()
4750 locations->SetOut(Location::RegisterLocation(kMethodRegisterArgument)); in VisitCurrentMethod()
4761 locations->SetInAt(0, Location::RequiresRegister()); in VisitClassTableGet()
4762 locations->SetOut(Location::RequiresRegister()); in VisitClassTableGet()
4786 locations->SetInAt(0, Location::RequiresRegister()); in VisitNot()
4787 locations->SetOut(Location::SameAsFirstInput()); in VisitNot()
4794 Location out = locations->Out(); in VisitNot()
4812 locations->SetInAt(0, Location::RequiresRegister()); in VisitBooleanNot()
4813 locations->SetOut(Location::SameAsFirstInput()); in VisitBooleanNot()
4820 Location out = locations->Out(); in VisitBooleanNot()
4828 locations->SetInAt(i, Location::Any()); in VisitPhi()
4830 locations->SetOut(Location::Any()); in VisitPhi()
4878 locations->SetInAt(is_predicated ? 1 : 0, Location::RequiresRegister()); in HandleFieldGet()
4881 locations->SetInAt(0, Location::RequiresFpuRegister()); in HandleFieldGet()
4883 locations->SetInAt(0, Location::RequiresRegister()); in HandleFieldGet()
4887 locations->SetOut(is_predicated ? Location::SameAsFirstInput() in HandleFieldGet()
4888 : Location::RequiresFpuRegister()); in HandleFieldGet()
4894 locations->SetOut(is_predicated ? Location::SameAsFirstInput() : Location::RequiresRegister(), in HandleFieldGet()
4896 ? Location::kOutputOverlap in HandleFieldGet()
4897 : Location::kNoOutputOverlap); in HandleFieldGet()
4908 Location base_loc = locations->InAt(instruction->IsPredicatedInstanceFieldGet() ? 1 : 0); in HandleFieldGet()
4910 Location out = locations->Out(); in HandleFieldGet()
5017 locations->SetInAt(0, Location::RequiresRegister()); in HandleFieldSet()
5021 locations->SetInAt(1, Location::FpuRegisterOrInt32Constant(instruction->InputAt(1))); in HandleFieldSet()
5023 locations->SetInAt(1, Location::FpuRegisterOrConstant(instruction->InputAt(1))); in HandleFieldSet()
5028 locations->SetInAt(1, Location::RegisterOrInt32Constant(instruction->InputAt(1))); in HandleFieldSet()
5030 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1))); in HandleFieldSet()
5035 locations->AddTemp(Location::RequiresRegister()); // Possibly used for reference poisoning too. in HandleFieldSet()
5036 locations->AddTemp(Location::RequiresRegister()); in HandleFieldSet()
5039 locations->AddTemp(Location::RequiresRegister()); in HandleFieldSet()
5050 Location value = locations->InAt(1); in HandleFieldSet()
5230 codegen_->CreateStringBuilderAppendLocations(instruction, Location::RegisterLocation(RAX)); in VisitStringBuilderAppend()
5308 Location loc = codegen_->GetCompilerOptions().GetImplicitNullChecks() in VisitNullCheck()
5309 ? Location::RequiresRegister() in VisitNullCheck()
5310 : Location::Any(); in VisitNullCheck()
5319 Location obj = locations->InAt(0); in GenerateImplicitNullCheck()
5330 Location obj = locations->InAt(0); in GenerateExplicitNullCheck()
5360 locations->SetInAt(0, Location::RequiresRegister()); in VisitArrayGet()
5361 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1))); in VisitArrayGet()
5363 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitArrayGet()
5369 Location::RequiresRegister(), in VisitArrayGet()
5370 object_array_get_with_read_barrier ? Location::kOutputOverlap : Location::kNoOutputOverlap); in VisitArrayGet()
5376 Location obj_loc = locations->InAt(0); in VisitArrayGet()
5378 Location index = locations->InAt(1); in VisitArrayGet()
5379 Location out_loc = locations->Out(); in VisitArrayGet()
5505 locations->SetInAt(0, Location::RequiresRegister()); in VisitArraySet()
5506 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1))); in VisitArraySet()
5508 locations->SetInAt(2, Location::FpuRegisterOrConstant(instruction->InputAt(2))); in VisitArraySet()
5510 locations->SetInAt(2, Location::RegisterOrConstant(instruction->InputAt(2))); in VisitArraySet()
5515 locations->AddTemp(Location::RequiresRegister()); // Possibly used for ref. poisoning too. in VisitArraySet()
5516 locations->AddTemp(Location::RequiresRegister()); in VisitArraySet()
5522 Location array_loc = locations->InAt(0); in VisitArraySet()
5524 Location index = locations->InAt(1); in VisitArraySet()
5525 Location value = locations->InAt(2); in VisitArraySet()
5577 Location temp_loc = locations->GetTemp(0); in VisitArraySet()
5643 Location source = value; in VisitArraySet()
5733 locations->SetInAt(0, Location::RequiresRegister()); in VisitArrayLength()
5735 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitArrayLength()
5759 caller_saves.Add(Location::RegisterLocation(calling_convention.GetRegisterAt(0))); in VisitBoundsCheck()
5760 caller_saves.Add(Location::RegisterLocation(calling_convention.GetRegisterAt(1))); in VisitBoundsCheck()
5762 locations->SetInAt(0, Location::RegisterOrConstant(instruction->InputAt(0))); in VisitBoundsCheck()
5765 locations->SetInAt(1, Location::RegisterOrConstant(length)); in VisitBoundsCheck()
5771 Location index_loc = locations->InAt(0); in VisitBoundsCheck()
5772 Location length_loc = locations->InAt(1); in VisitBoundsCheck()
5802 Location array_loc = array_length->GetLocations()->InAt(0); in VisitBoundsCheck()
5940 Location source = move->GetSource(); in EmitMove()
5941 Location destination = move->GetDestination(); in EmitMove()
6125 Location source = move->GetSource(); in EmitSwap()
6126 Location destination = move->GetDestination(); in EmitSwap()
6239 Location::RegisterLocation(RAX), in VisitLoadClass()
6240 Location::RegisterLocation(RAX)); in VisitLoadClass()
6257 locations->SetInAt(0, Location::RequiresRegister()); in VisitLoadClass()
6259 locations->SetOut(Location::RequiresRegister()); in VisitLoadClass()
6293 Location out_loc = locations->Out(); in VisitLoadClass()
6382 locations->SetInAt(0, Location::RequiresRegister()); in VisitClinitCheck()
6384 locations->SetOut(Location::SameAsFirstInput()); in VisitClinitCheck()
6392 Location location = Location::RegisterLocation(RAX); in VisitLoadMethodHandle()
6402 Location location = Location::RegisterLocation(RAX); in VisitLoadMethodType()
6441 locations->SetOut(Location::RegisterLocation(RAX)); in VisitLoadString()
6443 locations->SetOut(Location::RequiresRegister()); in VisitLoadString()
6469 Location out_loc = locations->Out(); in VisitLoadString()
6538 locations->SetOut(Location::RequiresRegister()); in VisitLoadException()
6557 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0))); in VisitThrow()
6615 locations->SetInAt(0, Location::RequiresRegister()); in VisitInstanceOf()
6617 locations->SetInAt(1, Location::ConstantLocation(instruction->InputAt(1)->AsConstant())); in VisitInstanceOf()
6618 locations->SetInAt(2, Location::ConstantLocation(instruction->InputAt(2)->AsConstant())); in VisitInstanceOf()
6619 locations->SetInAt(3, Location::ConstantLocation(instruction->InputAt(3)->AsConstant())); in VisitInstanceOf()
6621 locations->SetInAt(1, Location::Any()); in VisitInstanceOf()
6624 locations->SetOut(Location::RequiresRegister()); in VisitInstanceOf()
6631 Location obj_loc = locations->InAt(0); in VisitInstanceOf()
6633 Location cls = locations->InAt(1); in VisitInstanceOf()
6634 Location out_loc = locations->Out(); in VisitInstanceOf()
6638 Location maybe_temp_loc = (num_temps >= 1u) ? locations->GetTemp(0) : Location::NoLocation(); in VisitInstanceOf()
6889 locations->SetInAt(0, Location::RequiresRegister()); in VisitCheckCast()
6893 locations->SetInAt(1, Location::RequiresRegister()); in VisitCheckCast()
6895 locations->SetInAt(1, Location::ConstantLocation(instruction->InputAt(1)->AsConstant())); in VisitCheckCast()
6896 locations->SetInAt(2, Location::ConstantLocation(instruction->InputAt(2)->AsConstant())); in VisitCheckCast()
6897 locations->SetInAt(3, Location::ConstantLocation(instruction->InputAt(3)->AsConstant())); in VisitCheckCast()
6899 locations->SetInAt(1, Location::Any()); in VisitCheckCast()
6908 Location obj_loc = locations->InAt(0); in VisitCheckCast()
6910 Location cls = locations->InAt(1); in VisitCheckCast()
6911 Location temp_loc = locations->GetTemp(0); in VisitCheckCast()
6916 Location maybe_temp2_loc = (num_temps >= 2u) ? locations->GetTemp(1) : Location::NoLocation(); in VisitCheckCast()
7142 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0))); in VisitMonitorOperation()
7160 locations->SetInAt(0, Location::RequiresRegister()); in VisitX86AndNot()
7162 locations->SetInAt(1, Location::RequiresRegister()); in VisitX86AndNot()
7163 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitX86AndNot()
7170 locations->SetInAt(0, Location::RequiresRegister()); in VisitX86MaskOrResetLeastSetBit()
7171 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap); in VisitX86MaskOrResetLeastSetBit()
7176 Location first = locations->InAt(0); in VisitX86AndNot()
7177 Location second = locations->InAt(1); in VisitX86AndNot()
7178 Location dest = locations->Out(); in VisitX86AndNot()
7184 Location src = locations->InAt(0); in VisitX86MaskOrResetLeastSetBit()
7185 Location dest = locations->Out(); in VisitX86MaskOrResetLeastSetBit()
7207 locations->SetInAt(0, Location::RequiresRegister()); in HandleBitwiseOperation()
7208 locations->SetInAt(1, Location::Any()); in HandleBitwiseOperation()
7209 locations->SetOut(Location::SameAsFirstInput()); in HandleBitwiseOperation()
7226 Location first = locations->InAt(0); in HandleBitwiseOperation()
7227 Location second = locations->InAt(1); in HandleBitwiseOperation()
7315 Location out, in GenerateReferenceLoadOneRegister()
7317 Location maybe_temp, in GenerateReferenceLoadOneRegister()
7348 Location out, in GenerateReferenceLoadTwoRegisters()
7349 Location obj, in GenerateReferenceLoadTwoRegisters()
7377 Location root, in GenerateGcRootFieldLoad()
7443 Location ref, in GenerateFieldLoadWithBakerReadBarrier()
7456 Location ref, in GenerateArrayLoadWithBakerReadBarrier()
7459 Location index, in GenerateArrayLoadWithBakerReadBarrier()
7474 Location ref, in GenerateReferenceLoadWithBakerReadBarrier()
7558 Location out, in GenerateReadBarrierSlow()
7559 Location ref, in GenerateReadBarrierSlow()
7560 Location obj, in GenerateReadBarrierSlow()
7562 Location index) { in GenerateReadBarrierSlow()
7585 Location out, in MaybeGenerateReadBarrierSlow()
7586 Location ref, in MaybeGenerateReadBarrierSlow()
7587 Location obj, in MaybeGenerateReadBarrierSlow()
7589 Location index) { in MaybeGenerateReadBarrierSlow()
7603 Location out, in GenerateReadBarrierForRootSlow()
7604 Location root) { in GenerateReadBarrierForRootSlow()
7633 locations->SetInAt(0, Location::RequiresRegister()); in VisitPackedSwitch()
7634 locations->AddTemp(Location::RequiresRegister()); in VisitPackedSwitch()
7635 locations->AddTemp(Location::RequiresRegister()); in VisitPackedSwitch()
7794 void CodeGeneratorX86_64::GenerateIntCompare(Location lhs, Location rhs) { in GenerateIntCompare()
7799 void CodeGeneratorX86_64::GenerateIntCompare(CpuRegister lhs, Location rhs) { in GenerateIntCompare()
7810 void CodeGeneratorX86_64::GenerateLongCompare(Location lhs, Location rhs) { in GenerateLongCompare()
7823 Location index, in ArrayAddress()
7831 void CodeGeneratorX86_64::Store64BitValueToStack(Location dest, int64_t value) { in Store64BitValueToStack()
7950 void CodeGeneratorX86_64::MoveFromReturnRegister(Location trg, DataType::Type type) { in MoveFromReturnRegister()
7958 Location return_loc = InvokeDexCallingConventionVisitorX86_64().GetReturnLocation(type); in MoveFromReturnRegister()