Lines Matching refs:locations

161     LocationSummary* locations = instruction_->GetLocations();
168 // We're moving two locations to locations that could overlap, so we need a parallel
172 locations->InAt(0),
175 locations->InAt(1),
202 LocationSummary* locations = at_->GetLocations();
206 SaveLiveRegisters(codegen, locations);
221 Location out = locations->Out();
223 DCHECK(out.IsRegister() && !locations->GetLiveRegisters()->ContainsCoreRegister(out.reg()));
224 arm_codegen->Move32(locations->Out(), Location::RegisterLocation(R0));
226 RestoreLiveRegisters(codegen, locations);
254 LocationSummary* locations = instruction_->GetLocations();
255 DCHECK(!locations->GetLiveRegisters()->ContainsCoreRegister(locations->Out().reg()));
259 SaveLiveRegisters(codegen, locations);
267 arm_codegen->Move32(locations->Out(), Location::RegisterLocation(R0));
269 RestoreLiveRegisters(codegen, locations);
285 LocationSummary* locations = instruction_->GetLocations();
286 Location object_class = instruction_->IsCheckCast() ? locations->GetTemp(0)
287 : locations->Out();
289 || !locations->GetLiveRegisters()->ContainsCoreRegister(locations->Out().reg()));
295 SaveLiveRegisters(codegen, locations);
298 // We're moving two locations to locations that could overlap, so we need a parallel
302 locations->InAt(1),
316 arm_codegen->Move32(locations->Out(), Location::RegisterLocation(R0));
327 RestoreLiveRegisters(codegen, locations);
369 LocationSummary* locations = instruction_->GetLocations();
371 SaveLiveRegisters(codegen, locations);
376 locations->InAt(0),
381 locations->InAt(1),
386 locations->InAt(2),
398 RestoreLiveRegisters(codegen, locations);
419 LocationSummary* locations = instruction_->GetLocations();
421 DCHECK(locations->CanCall());
422 DCHECK(!locations->GetLiveRegisters()->ContainsCoreRegister(reg_out));
434 SaveLiveRegisters(codegen, locations);
446 RestoreLiveRegisters(codegen, locations);
488 LocationSummary* locations = instruction_->GetLocations();
490 DCHECK(locations->CanCall());
491 DCHECK(!locations->GetLiveRegisters()->ContainsCoreRegister(reg_out));
499 SaveLiveRegisters(codegen, locations);
510 DCHECK(locations->GetLiveRegisters()->ContainsCoreRegister(index_reg));
567 // We're moving two or three locations to locations that could
597 RestoreLiveRegisters(codegen, locations);
642 LocationSummary* locations = instruction_->GetLocations();
644 DCHECK(locations->CanCall());
645 DCHECK(!locations->GetLiveRegisters()->ContainsCoreRegister(reg_out));
651 SaveLiveRegisters(codegen, locations);
663 RestoreLiveRegisters(codegen, locations);
1178 void CodeGeneratorARM::AddLocationAsTemp(Location location, LocationSummary* locations) {
1180 locations->AddTemp(location);
1182 locations->AddTemp(Location::RegisterLocation(location.AsRegisterPairLow<Register>()));
1183 locations->AddTemp(Location::RegisterLocation(location.AsRegisterPairHigh<Register>()));
1266 LocationSummary* locations = cond->GetLocations();
1267 Location left = locations->InAt(0);
1268 Location right = locations->InAt(1);
1356 LocationSummary* locations = condition->GetLocations();
1357 Location left = locations->InAt(0);
1358 Location right = locations->InAt(1);
1441 LocationSummary* locations = cond->GetLocations();
1442 DCHECK(locations->InAt(0).IsRegister());
1443 Register left = locations->InAt(0).AsRegister<Register>();
1444 Location right = locations->InAt(1);
1466 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(if_instr);
1468 locations->SetInAt(0, Location::RequiresRegister());
1483 LocationSummary* locations = new (GetGraph()->GetArena())
1486 locations->SetInAt(0, Location::RequiresRegister());
1499 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(select);
1501 locations->SetInAt(0, Location::RequiresFpuRegister());
1502 locations->SetInAt(1, Location::RequiresFpuRegister());
1504 locations->SetInAt(0, Location::RequiresRegister());
1505 locations->SetInAt(1, Location::RequiresRegister());
1508 locations->SetInAt(2, Location::RequiresRegister());
1510 locations->SetOut(Location::SameAsFirstInput());
1514 LocationSummary* locations = select->GetLocations();
1520 codegen_->MoveLocation(locations->Out(), locations->InAt(1), select->GetType());
1537 LocationSummary* locations =
1542 locations->SetInAt(0, Location::RequiresRegister());
1543 locations->SetInAt(1, Location::RegisterOrConstant(cond->InputAt(1)));
1545 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
1551 locations->SetInAt(0, Location::RequiresFpuRegister());
1552 locations->SetInAt(1, Location::RequiresFpuRegister());
1554 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
1559 locations->SetInAt(0, Location::RequiresRegister());
1560 locations->SetInAt(1, Location::RegisterOrConstant(cond->InputAt(1)));
1562 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
1572 LocationSummary* locations = cond->GetLocations();
1573 Location left = locations->InAt(0);
1574 Location right = locations->InAt(1);
1575 Register out = locations->Out().AsRegister<Register>();
1589 __ mov(locations->Out().AsRegister<Register>(), ShifterOperand(1),
1591 __ mov(locations->Out().AsRegister<Register>(), ShifterOperand(0),
1704 LocationSummary* locations =
1706 locations->SetOut(Location::ConstantLocation(constant));
1714 LocationSummary* locations =
1716 locations->SetOut(Location::ConstantLocation(constant));
1724 LocationSummary* locations =
1726 locations->SetOut(Location::ConstantLocation(constant));
1734 LocationSummary* locations =
1736 locations->SetOut(Location::ConstantLocation(constant));
1744 LocationSummary* locations =
1746 locations->SetOut(Location::ConstantLocation(constant));
1770 LocationSummary* locations =
1772 locations->SetInAt(0, parameter_visitor_.GetReturnLocation(ret->InputAt(0)->GetType()));
1831 LocationSummary* locations = invoke->GetLocations();
1833 invoke, locations->HasTemps() ? locations->GetTemp(0) : Location::NoLocation());
1871 LocationSummary* locations = invoke->GetLocations();
1872 Register temp = locations->GetTemp(0).AsRegister<Register>();
1873 Register hidden_reg = locations->GetTemp(1).AsRegister<Register>();
1874 Location receiver = locations->InAt(0);
1916 LocationSummary* locations =
1920 locations->SetInAt(0, Location::RequiresRegister());
1921 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
1925 locations->SetInAt(0, Location::RequiresRegister());
1926 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
1932 locations->SetInAt(0, Location::RequiresFpuRegister());
1933 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
1942 LocationSummary* locations = neg->GetLocations();
1943 Location out = locations->Out();
1944 Location in = locations->InAt(0);
2001 LocationSummary* locations =
2018 locations->SetInAt(0, Location::RequiresRegister());
2019 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2038 locations->SetInAt(0, Location::RequiresRegister());
2039 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2052 locations->SetInAt(0, Location::Any());
2053 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2058 locations->SetInAt(0, Location::RequiresFpuRegister());
2059 locations->SetOut(Location::RequiresRegister());
2060 locations->AddTemp(Location::RequiresFpuRegister());
2065 locations->SetInAt(0, Location::RequiresFpuRegister());
2066 locations->SetOut(Location::RequiresRegister());
2067 locations->AddTemp(Location::RequiresFpuRegister());
2085 locations->SetInAt(0, Location::RequiresRegister());
2086 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2092 locations->SetInAt(0, Location::FpuRegisterLocation(
2094 locations->SetOut(Location::RegisterPairLocation(R0, R1));
2101 locations->SetInAt(0, Location::FpuRegisterPairLocation(
2104 locations->SetOut(Location::RegisterPairLocation(R0, R1));
2124 locations->SetInAt(0, Location::RequiresRegister());
2125 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2143 locations->SetInAt(0, Location::RequiresRegister());
2144 locations->SetOut(Location::RequiresFpuRegister());
2150 locations->SetInAt(0, Location::RegisterPairLocation(
2152 locations->SetOut(Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(0)));
2158 locations->SetInAt(0, Location::RequiresFpuRegister());
2159 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2177 locations->SetInAt(0, Location::RequiresRegister());
2178 locations->SetOut(Location::RequiresFpuRegister());
2183 locations->SetInAt(0, Location::RequiresRegister());
2184 locations->SetOut(Location::RequiresFpuRegister());
2185 locations->AddTemp(Location::RequiresFpuRegister());
2186 locations->AddTemp(Location::RequiresFpuRegister());
2191 locations->SetInAt(0, Location::RequiresFpuRegister());
2192 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2208 LocationSummary* locations = conversion->GetLocations();
2209 Location out = locations->Out();
2210 Location in = locations->InAt(0);
2276 SRegister temp = locations->GetTemp(0).AsFpuRegisterPairLow<SRegister>();
2285 SRegister temp_s = locations->GetTemp(0).AsFpuRegisterPairLow<SRegister>();
2418 SRegister temp_s = locations->GetTemp(0).AsFpuRegisterPairLow<SRegister>();
2420 SRegister constant_s = locations->GetTemp(1).AsFpuRegisterPairLow<SRegister>();
2455 LocationSummary* locations =
2459 locations->SetInAt(0, Location::RequiresRegister());
2460 locations->SetInAt(1, Location::RegisterOrConstant(add->InputAt(1)));
2461 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2466 locations->SetInAt(0, Location::RequiresRegister());
2467 locations->SetInAt(1, Location::RequiresRegister());
2468 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2474 locations->SetInAt(0, Location::RequiresFpuRegister());
2475 locations->SetInAt(1, Location::RequiresFpuRegister());
2476 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2486 LocationSummary* locations = add->GetLocations();
2487 Location out = locations->Out();
2488 Location first = locations->InAt(0);
2489 Location second = locations->InAt(1);
2532 LocationSummary* locations =
2536 locations->SetInAt(0, Location::RequiresRegister());
2537 locations->SetInAt(1, Location::RegisterOrConstant(sub->InputAt(1)));
2538 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2543 locations->SetInAt(0, Location::RequiresRegister());
2544 locations->SetInAt(1, Location::RequiresRegister());
2545 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2550 locations->SetInAt(0, Location::RequiresFpuRegister());
2551 locations->SetInAt(1, Location::RequiresFpuRegister());
2552 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2561 LocationSummary* locations = sub->GetLocations();
2562 Location out = locations->Out();
2563 Location first = locations->InAt(0);
2564 Location second = locations->InAt(1);
2611 LocationSummary* locations =
2616 locations->SetInAt(0, Location::RequiresRegister());
2617 locations->SetInAt(1, Location::RequiresRegister());
2618 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2624 locations->SetInAt(0, Location::RequiresFpuRegister());
2625 locations->SetInAt(1, Location::RequiresFpuRegister());
2626 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2636 LocationSummary* locations = mul->GetLocations();
2637 Location out = locations->Out();
2638 Location first = locations->InAt(0);
2639 Location second = locations->InAt(1);
2701 LocationSummary* locations = instruction->GetLocations();
2702 Location second = locations->InAt(1);
2705 Register out = locations->Out().AsRegister<Register>();
2706 Register dividend = locations->InAt(0).AsRegister<Register>();
2725 LocationSummary* locations = instruction->GetLocations();
2726 Location second = locations->InAt(1);
2729 Register out = locations->Out().AsRegister<Register>();
2730 Register dividend = locations->InAt(0).AsRegister<Register>();
2731 Register temp = locations->GetTemp(0).AsRegister<Register>();
2759 LocationSummary* locations = instruction->GetLocations();
2760 Location second = locations->InAt(1);
2763 Register out = locations->Out().AsRegister<Register>();
2764 Register dividend = locations->InAt(0).AsRegister<Register>();
2765 Register temp1 = locations->GetTemp(0).AsRegister<Register>();
2766 Register temp2 = locations->GetTemp(1).AsRegister<Register>();
2800 LocationSummary* locations = instruction->GetLocations();
2801 Location second = locations->InAt(1);
2830 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(div, call_kind);
2835 locations->SetInAt(0, Location::RequiresRegister());
2836 locations->SetInAt(1, Location::ConstantLocation(div->InputAt(1)->AsConstant()));
2837 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2842 locations->AddTemp(Location::RequiresRegister());
2844 locations->AddTemp(Location::RequiresRegister());
2848 locations->SetInAt(0, Location::RequiresRegister());
2849 locations->SetInAt(1, Location::RequiresRegister());
2850 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2853 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
2854 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
2857 locations->SetOut(Location::RegisterLocation(R0));
2863 locations->SetInAt(0, Location::RegisterPairLocation(
2865 locations->SetInAt(1, Location::RegisterPairLocation(
2867 locations->SetOut(Location::RegisterPairLocation(R0, R1));
2872 locations->SetInAt(0, Location::RequiresFpuRegister());
2873 locations->SetInAt(1, Location::RequiresFpuRegister());
2874 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2884 LocationSummary* locations = div->GetLocations();
2885 Location out = locations->Out();
2886 Location first = locations->InAt(0);
2887 Location second = locations->InAt(1);
2956 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(rem, call_kind);
2961 locations->SetInAt(0, Location::RequiresRegister());
2962 locations->SetInAt(1, Location::ConstantLocation(rem->InputAt(1)->AsConstant()));
2963 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2968 locations->AddTemp(Location::RequiresRegister());
2970 locations->AddTemp(Location::RequiresRegister());
2974 locations->SetInAt(0, Location::RequiresRegister());
2975 locations->SetInAt(1, Location::RequiresRegister());
2976 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2977 locations->AddTemp(Location::RequiresRegister());
2980 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
2981 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
2984 locations->SetOut(Location::RegisterLocation(R1));
2990 locations->SetInAt(0, Location::RegisterPairLocation(
2992 locations->SetInAt(1, Location::RegisterPairLocation(
2995 locations->SetOut(Location::RegisterPairLocation(R2, R3));
3000 locations->SetInAt(0, Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(0)));
3001 locations->SetInAt(1, Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(1)));
3002 locations->SetOut(Location::FpuRegisterLocation(S0));
3008 locations->SetInAt(0, Location::FpuRegisterPairLocation(
3010 locations->SetInAt(1, Location::FpuRegisterPairLocation(
3012 locations->SetOut(Location::Location::FpuRegisterPairLocation(S0, S1));
3022 LocationSummary* locations = rem->GetLocations();
3023 Location out = locations->Out();
3024 Location first = locations->InAt(0);
3025 Location second = locations->InAt(1);
3035 Register temp = locations->GetTemp(0).AsRegister<Register>();
3080 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind);
3081 locations->SetInAt(0, Location::RegisterOrConstant(instruction->InputAt(0)));
3083 locations->SetOut(Location::SameAsFirstInput());
3091 LocationSummary* locations = instruction->GetLocations();
3092 Location value = locations->InAt(0);
3129 void InstructionCodeGeneratorARM::HandleIntegerRotate(LocationSummary* locations) {
3130 Register in = locations->InAt(0).AsRegister<Register>();
3131 Location rhs = locations->InAt(1);
3132 Register out = locations->Out().AsRegister<Register>();
3155 void InstructionCodeGeneratorARM::HandleLongRotate(LocationSummary* locations) {
3156 Register in_reg_lo = locations->InAt(0).AsRegisterPairLow<Register>();
3157 Register in_reg_hi = locations->InAt(0).AsRegisterPairHigh<Register>();
3158 Location rhs = locations->InAt(1);
3159 Register out_reg_lo = locations->Out().AsRegisterPairLow<Register>();
3160 Register out_reg_hi = locations->Out().AsRegisterPairHigh<Register>();
3184 Register shift_right = locations->GetTemp(0).AsRegister<Register>();
3185 Register shift_left = locations->GetTemp(1).AsRegister<Register>();
3219 LocationSummary* locations =
3223 locations->SetInAt(0, Location::RequiresRegister());
3224 locations->SetInAt(1, Location::RegisterOrConstant(ror->InputAt(1)));
3225 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
3229 locations->SetInAt(0, Location::RequiresRegister());
3231 locations->SetInAt(1, Location::ConstantLocation(ror->InputAt(1)->AsConstant()));
3233 locations->SetInAt(1, Location::RequiresRegister());
3234 locations->AddTemp(Location::RequiresRegister());
3235 locations->AddTemp(Location::RequiresRegister());
3237 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
3246 LocationSummary* locations = ror->GetLocations();
3250 HandleIntegerRotate(locations);
3254 HandleLongRotate(locations);
3266 LocationSummary* locations =
3271 locations->SetInAt(0, Location::RequiresRegister());
3273 locations->SetInAt(1, Location::ConstantLocation(op->InputAt(1)->AsConstant()));
3274 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
3276 locations->SetInAt(1, Location::RequiresRegister());
3279 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
3284 locations->SetInAt(0, Location::RequiresRegister());
3286 locations->SetInAt(1, Location::ConstantLocation(op->InputAt(1)->AsConstant()));
3289 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
3291 locations->SetInAt(1, Location::RequiresRegister());
3292 locations->AddTemp(Location::RequiresRegister());
3293 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
3305 LocationSummary* locations = op->GetLocations();
3306 Location out = locations->Out();
3307 Location first = locations->InAt(0);
3308 Location second = locations->InAt(1);
3349 Register temp = locations->GetTemp(0).AsRegister<Register>();
3482 LocationSummary* locations =
3485 locations->AddTemp(Location::RegisterLocation(kMethodRegisterArgument));
3488 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
3489 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
3491 locations->SetOut(Location::RegisterLocation(R0));
3515 LocationSummary* locations =
3518 locations->AddTemp(Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
3519 locations->SetOut(Location::RegisterLocation(R0));
3520 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
3521 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(2)));
3537 LocationSummary* locations =
3545 locations->SetOut(location);
3554 LocationSummary* locations =
3556 locations->SetOut(Location::RegisterLocation(kMethodRegisterArgument));
3564 LocationSummary* locations =
3566 locations->SetInAt(0, Location::RequiresRegister());
3567 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
3571 LocationSummary* locations = not_->GetLocations();
3572 Location out = locations->Out();
3573 Location in = locations->InAt(0);
3592 LocationSummary* locations =
3594 locations->SetInAt(0, Location::RequiresRegister());
3595 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
3599 LocationSummary* locations = bool_not->GetLocations();
3600 Location out = locations->Out();
3601 Location in = locations->InAt(0);
3606 LocationSummary* locations =
3615 locations->SetInAt(0, Location::RequiresRegister());
3616 locations->SetInAt(1, Location::RequiresRegister());
3618 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
3623 locations->SetInAt(0, Location::RequiresFpuRegister());
3624 locations->SetInAt(1, Location::RequiresFpuRegister());
3625 locations->SetOut(Location::RequiresRegister());
3634 LocationSummary* locations = compare->GetLocations();
3635 Register out = locations->Out().AsRegister<Register>();
3636 Location left = locations->InAt(0);
3637 Location right = locations->InAt(1);
3698 LocationSummary* locations =
3701 locations->SetInAt(i, Location::Any());
3703 locations->SetOut(Location::Any());
3770 LocationSummary* locations =
3772 locations->SetInAt(0, Location::RequiresRegister());
3776 locations->SetInAt(1, Location::RequiresFpuRegister());
3778 locations->SetInAt(1, Location::RequiresRegister());
3790 locations->AddTemp(Location::RequiresRegister()); // Possibly used for reference poisoning too.
3791 locations->AddTemp(Location::RequiresRegister());
3800 locations->AddTemp(Location::RequiresRegister());
3801 locations->AddTemp(Location::RequiresRegister());
3804 locations->AddTemp(Location::RegisterLocation(R2));
3805 locations->AddTemp(Location::RegisterLocation(R3));
3815 LocationSummary* locations = instruction->GetLocations();
3816 Register base = locations->InAt(0).AsRegister<Register>();
3817 Location value = locations->InAt(1);
3850 Register temp = locations->GetTemp(0).AsRegister<Register>();
3865 locations->GetTemp(0).AsRegister<Register>(),
3866 locations->GetTemp(1).AsRegister<Register>(),
3883 Register value_reg_lo = locations->GetTemp(0).AsRegister<Register>();
3884 Register value_reg_hi = locations->GetTemp(1).AsRegister<Register>();
3891 locations->GetTemp(2).AsRegister<Register>(),
3892 locations->GetTemp(3).AsRegister<Register>(),
3912 Register temp = locations->GetTemp(0).AsRegister<Register>();
3913 Register card = locations->GetTemp(1).AsRegister<Register>();
3928 LocationSummary* locations =
3933 locations->SetInAt(0, Location::RequiresRegister());
3947 locations->SetOut(Location::RequiresFpuRegister());
3949 locations->SetOut(Location::RequiresRegister(),
3959 locations->AddTemp(Location::RequiresRegister());
3960 locations->AddTemp(Location::RequiresRegister());
3964 locations->AddTemp(Location::RequiresRegister());
4013 LocationSummary* locations = instruction->GetLocations();
4014 Location base_loc = locations->InAt(0);
4016 Location out = locations->Out();
4046 Location temp_loc = locations->GetTemp(0);
4085 Register lo = locations->GetTemp(0).AsRegister<Register>();
4086 Register hi = locations->GetTemp(1).AsRegister<Register>();
4223 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind);
4224 locations->SetInAt(0, Location::RequiresRegister());
4226 locations->SetOut(Location::SameAsFirstInput());
4244 LocationSummary* locations = instruction->GetLocations();
4245 Location obj = locations->InAt(0);
4257 LocationSummary* locations =
4262 locations->SetInAt(0, Location::RequiresRegister());
4263 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1)));
4265 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
4270 locations->SetOut(
4277 locations->AddTemp(Location::RequiresRegister());
4282 LocationSummary* locations = instruction->GetLocations();
4283 Location obj_loc = locations->InAt(0);
4285 Location index = locations->InAt(1);
4286 Location out_loc = locations->Out();
4368 Location temp = locations->GetTemp(0);
4459 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(
4465 locations->SetInAt(0, Location::RequiresRegister());
4466 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1)));
4468 locations->SetInAt(2, Location::RequiresFpuRegister());
4470 locations->SetInAt(2, Location::RequiresRegister());
4474 locations->AddTemp(Location::RequiresRegister()); // Possibly used for ref. poisoning too.
4475 locations->AddTemp(Location::RequiresRegister());
4480 LocationSummary* locations = instruction->GetLocations();
4481 Location array_loc = locations->InAt(0);
4483 Location index = locations->InAt(1);
4493 Register value = locations->InAt(2).AsRegister<Register>();
4508 Register value = locations->InAt(2).AsRegister<Register>();
4522 Location value_loc = locations->InAt(2);
4544 Register temp1 = locations->GetTemp(0).AsRegister<Register>();
4545 Register temp2 = locations->GetTemp(1).AsRegister<Register>();
4671 Register value = locations->InAt(2).AsRegister<Register>();
4686 Location value = locations->InAt(2);
4700 Location value = locations->InAt(2);
4714 Location value = locations->InAt(2);
4739 LocationSummary* locations =
4741 locations->SetInAt(0, Location::RequiresRegister());
4742 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
4746 LocationSummary* locations = instruction->GetLocations();
4748 Register obj = locations->InAt(0).AsRegister<Register>();
4749 Register out = locations->Out().AsRegister<Register>();
4758 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind);
4759 locations->SetInAt(0, Location::RequiresRegister());
4760 locations->SetInAt(1, Location::RequiresRegister());
4762 locations->SetOut(Location::SameAsFirstInput());
4767 LocationSummary* locations = instruction->GetLocations();
4772 Register index = locations->InAt(0).AsRegister<Register>();
4773 Register length = locations->InAt(1).AsRegister<Register>();
5088 LocationSummary* locations = cls->GetLocations();
5090 codegen_->MoveConstant(locations->GetTemp(0), cls->GetTypeIndex());
5099 Location out_loc = locations->Out();
5101 Register current_method = locations->InAt(0).AsRegister<Register>();
5137 LocationSummary* locations =
5139 locations->SetInAt(0, Location::RequiresRegister());
5141 locations->SetOut(Location::SameAsFirstInput());
5210 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(load, call_kind);
5214 locations->SetInAt(0, Location::RequiresRegister());
5216 locations->SetOut(Location::RequiresRegister());
5220 LocationSummary* locations = load->GetLocations();
5221 Location out_loc = locations->Out();
5267 Register base_reg = locations->InAt(0).AsRegister<Register>();
5274 Register current_method = locations->InAt(0).AsRegister<Register>();
5304 LocationSummary* locations =
5306 locations->SetOut(Location::RequiresRegister());
5324 LocationSummary* locations =
5327 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
5362 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind);
5363 locations->SetInAt(0, Location::RequiresRegister());
5364 locations->SetInAt(1, Location::RequiresRegister());
5367 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
5371 locations->AddTemp(Location::RequiresRegister());
5377 LocationSummary* locations = instruction->GetLocations();
5378 Location obj_loc = locations->InAt(0);
5380 Register cls = locations->InAt(1).AsRegister<Register>();
5381 Location out_loc = locations->Out();
5384 locations->GetTemp(0) :
5470 DCHECK(locations->OnlyCallsOnSlowPath());
5502 DCHECK(locations->OnlyCallsOnSlowPath());
5549 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind);
5550 locations->SetInAt(0, Location::RequiresRegister());
5551 locations->SetInAt(1, Location::RequiresRegister());
5553 locations->AddTemp(Location::RequiresRegister());
5557 locations->AddTemp(Location::RequiresRegister());
5563 LocationSummary* locations = instruction->GetLocations();
5564 Location obj_loc = locations->InAt(0);
5566 Register cls = locations->InAt(1).AsRegister<Register>();
5567 Location temp_loc = locations->GetTemp(0);
5570 locations->GetTemp(1) :
5725 LocationSummary* locations =
5728 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
5749 LocationSummary* locations =
5754 locations->SetInAt(0, Location::RequiresRegister());
5755 locations->SetInAt(1, ArmEncodableConstantOrRegister(instruction->InputAt(1), opcode));
5756 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
5773 LocationSummary* locations =
5778 locations->SetInAt(0, Location::RequiresRegister());
5779 locations->SetInAt(1, Location::RequiresRegister());
5780 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
5784 LocationSummary* locations = instruction->GetLocations();
5785 Location first = locations->InAt(0);
5786 Location second = locations->InAt(1);
5787 Location out = locations->Out();
5890 LocationSummary* locations = instruction->GetLocations();
5891 Location first = locations->InAt(0);
5892 Location second = locations->InAt(1);
5893 Location out = locations->Out();
6307 // For register locations, check if the register was saved. If so, get it from the stack.
6596 LocationSummary* locations =
6598 locations->SetInAt(HMultiplyAccumulate::kInputAccumulatorIndex,
6600 locations->SetInAt(HMultiplyAccumulate::kInputMulLeftIndex, Location::RequiresRegister());
6601 locations->SetInAt(HMultiplyAccumulate::kInputMulRightIndex, Location::RequiresRegister());
6602 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
6606 LocationSummary* locations = instr->GetLocations();
6607 Register res = locations->Out().AsRegister<Register>();
6609 locations->InAt(HMultiplyAccumulate::kInputAccumulatorIndex).AsRegister<Register>();
6611 locations->InAt(HMultiplyAccumulate::kInputMulLeftIndex).AsRegister<Register>();
6613 locations->InAt(HMultiplyAccumulate::kInputMulRightIndex).AsRegister<Register>();
6634 LocationSummary* locations =
6636 locations->SetInAt(0, Location::RequiresRegister());
6639 locations->AddTemp(Location::RequiresRegister()); // We need a temp for the table base.
6641 locations->AddTemp(Location::RequiresRegister()); // We need a temp for the bias.
6649 LocationSummary* locations = switch_instr->GetLocations();
6650 Register value_reg = locations->InAt(0).AsRegister<Register>();
6685 Register temp_reg = locations->GetTemp(0).AsRegister<Register>();
6698 key_reg = locations->GetTemp(1).AsRegister<Register>();
6717 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(base);
6718 locations->SetOut(Location::RequiresRegister());
6767 LocationSummary* locations =
6769 locations->SetInAt(0, Location::RequiresRegister());
6770 locations->SetOut(Location::RequiresRegister());
6774 LocationSummary* locations = instruction->GetLocations();
6779 locations->Out().AsRegister<Register>(),
6780 locations->InAt(0).AsRegister<Register>(),
6786 locations->Out().AsRegister<Register>(),
6787 locations->InAt(0).AsRegister<Register>(),
6790 locations->Out().AsRegister<Register>(),
6791 locations->Out().AsRegister<Register>(),