Lines Matching defs: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>();
1876 Location receiver = locations->InAt(0);
1914 LocationSummary* locations =
1918 locations->SetInAt(0, Location::RequiresRegister());
1919 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
1923 locations->SetInAt(0, Location::RequiresRegister());
1924 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
1930 locations->SetInAt(0, Location::RequiresFpuRegister());
1931 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
1940 LocationSummary* locations = neg->GetLocations();
1941 Location out = locations->Out();
1942 Location in = locations->InAt(0);
1999 LocationSummary* locations =
2016 locations->SetInAt(0, Location::RequiresRegister());
2017 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2036 locations->SetInAt(0, Location::RequiresRegister());
2037 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2050 locations->SetInAt(0, Location::Any());
2051 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2056 locations->SetInAt(0, Location::RequiresFpuRegister());
2057 locations->SetOut(Location::RequiresRegister());
2058 locations->AddTemp(Location::RequiresFpuRegister());
2063 locations->SetInAt(0, Location::RequiresFpuRegister());
2064 locations->SetOut(Location::RequiresRegister());
2065 locations->AddTemp(Location::RequiresFpuRegister());
2083 locations->SetInAt(0, Location::RequiresRegister());
2084 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2090 locations->SetInAt(0, Location::FpuRegisterLocation(
2092 locations->SetOut(Location::RegisterPairLocation(R0, R1));
2099 locations->SetInAt(0, Location::FpuRegisterPairLocation(
2102 locations->SetOut(Location::RegisterPairLocation(R0, R1));
2122 locations->SetInAt(0, Location::RequiresRegister());
2123 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2141 locations->SetInAt(0, Location::RequiresRegister());
2142 locations->SetOut(Location::RequiresFpuRegister());
2148 locations->SetInAt(0, Location::RegisterPairLocation(
2150 locations->SetOut(Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(0)));
2156 locations->SetInAt(0, Location::RequiresFpuRegister());
2157 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2175 locations->SetInAt(0, Location::RequiresRegister());
2176 locations->SetOut(Location::RequiresFpuRegister());
2181 locations->SetInAt(0, Location::RequiresRegister());
2182 locations->SetOut(Location::RequiresFpuRegister());
2183 locations->AddTemp(Location::RequiresFpuRegister());
2184 locations->AddTemp(Location::RequiresFpuRegister());
2189 locations->SetInAt(0, Location::RequiresFpuRegister());
2190 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2206 LocationSummary* locations = conversion->GetLocations();
2207 Location out = locations->Out();
2208 Location in = locations->InAt(0);
2274 SRegister temp = locations->GetTemp(0).AsFpuRegisterPairLow<SRegister>();
2283 SRegister temp_s = locations->GetTemp(0).AsFpuRegisterPairLow<SRegister>();
2416 SRegister temp_s = locations->GetTemp(0).AsFpuRegisterPairLow<SRegister>();
2418 SRegister constant_s = locations->GetTemp(1).AsFpuRegisterPairLow<SRegister>();
2453 LocationSummary* locations =
2457 locations->SetInAt(0, Location::RequiresRegister());
2458 locations->SetInAt(1, Location::RegisterOrConstant(add->InputAt(1)));
2459 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2464 locations->SetInAt(0, Location::RequiresRegister());
2465 locations->SetInAt(1, Location::RequiresRegister());
2466 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2472 locations->SetInAt(0, Location::RequiresFpuRegister());
2473 locations->SetInAt(1, Location::RequiresFpuRegister());
2474 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2484 LocationSummary* locations = add->GetLocations();
2485 Location out = locations->Out();
2486 Location first = locations->InAt(0);
2487 Location second = locations->InAt(1);
2530 LocationSummary* locations =
2534 locations->SetInAt(0, Location::RequiresRegister());
2535 locations->SetInAt(1, Location::RegisterOrConstant(sub->InputAt(1)));
2536 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2541 locations->SetInAt(0, Location::RequiresRegister());
2542 locations->SetInAt(1, Location::RequiresRegister());
2543 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2548 locations->SetInAt(0, Location::RequiresFpuRegister());
2549 locations->SetInAt(1, Location::RequiresFpuRegister());
2550 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2559 LocationSummary* locations = sub->GetLocations();
2560 Location out = locations->Out();
2561 Location first = locations->InAt(0);
2562 Location second = locations->InAt(1);
2609 LocationSummary* locations =
2614 locations->SetInAt(0, Location::RequiresRegister());
2615 locations->SetInAt(1, Location::RequiresRegister());
2616 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2622 locations->SetInAt(0, Location::RequiresFpuRegister());
2623 locations->SetInAt(1, Location::RequiresFpuRegister());
2624 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2634 LocationSummary* locations = mul->GetLocations();
2635 Location out = locations->Out();
2636 Location first = locations->InAt(0);
2637 Location second = locations->InAt(1);
2699 LocationSummary* locations = instruction->GetLocations();
2700 Location second = locations->InAt(1);
2703 Register out = locations->Out().AsRegister<Register>();
2704 Register dividend = locations->InAt(0).AsRegister<Register>();
2723 LocationSummary* locations = instruction->GetLocations();
2724 Location second = locations->InAt(1);
2727 Register out = locations->Out().AsRegister<Register>();
2728 Register dividend = locations->InAt(0).AsRegister<Register>();
2729 Register temp = locations->GetTemp(0).AsRegister<Register>();
2757 LocationSummary* locations = instruction->GetLocations();
2758 Location second = locations->InAt(1);
2761 Register out = locations->Out().AsRegister<Register>();
2762 Register dividend = locations->InAt(0).AsRegister<Register>();
2763 Register temp1 = locations->GetTemp(0).AsRegister<Register>();
2764 Register temp2 = locations->GetTemp(1).AsRegister<Register>();
2798 LocationSummary* locations = instruction->GetLocations();
2799 Location second = locations->InAt(1);
2828 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(div, call_kind);
2833 locations->SetInAt(0, Location::RequiresRegister());
2834 locations->SetInAt(1, Location::ConstantLocation(div->InputAt(1)->AsConstant()));
2835 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2840 locations->AddTemp(Location::RequiresRegister());
2842 locations->AddTemp(Location::RequiresRegister());
2846 locations->SetInAt(0, Location::RequiresRegister());
2847 locations->SetInAt(1, Location::RequiresRegister());
2848 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2851 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
2852 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
2855 locations->SetOut(Location::RegisterLocation(R0));
2861 locations->SetInAt(0, Location::RegisterPairLocation(
2863 locations->SetInAt(1, Location::RegisterPairLocation(
2865 locations->SetOut(Location::RegisterPairLocation(R0, R1));
2870 locations->SetInAt(0, Location::RequiresFpuRegister());
2871 locations->SetInAt(1, Location::RequiresFpuRegister());
2872 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
2882 LocationSummary* locations = div->GetLocations();
2883 Location out = locations->Out();
2884 Location first = locations->InAt(0);
2885 Location second = locations->InAt(1);
2954 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(rem, call_kind);
2959 locations->SetInAt(0, Location::RequiresRegister());
2960 locations->SetInAt(1, Location::ConstantLocation(rem->InputAt(1)->AsConstant()));
2961 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2966 locations->AddTemp(Location::RequiresRegister());
2968 locations->AddTemp(Location::RequiresRegister());
2972 locations->SetInAt(0, Location::RequiresRegister());
2973 locations->SetInAt(1, Location::RequiresRegister());
2974 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
2975 locations->AddTemp(Location::RequiresRegister());
2978 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
2979 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
2982 locations->SetOut(Location::RegisterLocation(R1));
2988 locations->SetInAt(0, Location::RegisterPairLocation(
2990 locations->SetInAt(1, Location::RegisterPairLocation(
2993 locations->SetOut(Location::RegisterPairLocation(R2, R3));
2998 locations->SetInAt(0, Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(0)));
2999 locations->SetInAt(1, Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(1)));
3000 locations->SetOut(Location::FpuRegisterLocation(S0));
3006 locations->SetInAt(0, Location::FpuRegisterPairLocation(
3008 locations->SetInAt(1, Location::FpuRegisterPairLocation(
3010 locations->SetOut(Location::Location::FpuRegisterPairLocation(S0, S1));
3020 LocationSummary* locations = rem->GetLocations();
3021 Location out = locations->Out();
3022 Location first = locations->InAt(0);
3023 Location second = locations->InAt(1);
3033 Register temp = locations->GetTemp(0).AsRegister<Register>();
3078 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind);
3079 locations->SetInAt(0, Location::RegisterOrConstant(instruction->InputAt(0)));
3081 locations->SetOut(Location::SameAsFirstInput());
3089 LocationSummary* locations = instruction->GetLocations();
3090 Location value = locations->InAt(0);
3127 void InstructionCodeGeneratorARM::HandleIntegerRotate(LocationSummary* locations) {
3128 Register in = locations->InAt(0).AsRegister<Register>();
3129 Location rhs = locations->InAt(1);
3130 Register out = locations->Out().AsRegister<Register>();
3153 void InstructionCodeGeneratorARM::HandleLongRotate(LocationSummary* locations) {
3154 Register in_reg_lo = locations->InAt(0).AsRegisterPairLow<Register>();
3155 Register in_reg_hi = locations->InAt(0).AsRegisterPairHigh<Register>();
3156 Location rhs = locations->InAt(1);
3157 Register out_reg_lo = locations->Out().AsRegisterPairLow<Register>();
3158 Register out_reg_hi = locations->Out().AsRegisterPairHigh<Register>();
3182 Register shift_right = locations->GetTemp(0).AsRegister<Register>();
3183 Register shift_left = locations->GetTemp(1).AsRegister<Register>();
3217 LocationSummary* locations =
3221 locations->SetInAt(0, Location::RequiresRegister());
3222 locations->SetInAt(1, Location::RegisterOrConstant(ror->InputAt(1)));
3223 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
3227 locations->SetInAt(0, Location::RequiresRegister());
3229 locations->SetInAt(1, Location::ConstantLocation(ror->InputAt(1)->AsConstant()));
3231 locations->SetInAt(1, Location::RequiresRegister());
3232 locations->AddTemp(Location::RequiresRegister());
3233 locations->AddTemp(Location::RequiresRegister());
3235 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
3244 LocationSummary* locations = ror->GetLocations();
3248 HandleIntegerRotate(locations);
3252 HandleLongRotate(locations);
3264 LocationSummary* locations =
3269 locations->SetInAt(0, Location::RequiresRegister());
3271 locations->SetInAt(1, Location::ConstantLocation(op->InputAt(1)->AsConstant()));
3272 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
3274 locations->SetInAt(1, Location::RequiresRegister());
3277 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
3282 locations->SetInAt(0, Location::RequiresRegister());
3284 locations->SetInAt(1, Location::ConstantLocation(op->InputAt(1)->AsConstant()));
3287 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
3289 locations->SetInAt(1, Location::RequiresRegister());
3290 locations->AddTemp(Location::RequiresRegister());
3291 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
3303 LocationSummary* locations = op->GetLocations();
3304 Location out = locations->Out();
3305 Location first = locations->InAt(0);
3306 Location second = locations->InAt(1);
3347 Register temp = locations->GetTemp(0).AsRegister<Register>();
3480 LocationSummary* locations =
3483 locations->AddTemp(Location::RegisterLocation(kMethodRegisterArgument));
3486 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
3487 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
3489 locations->SetOut(Location::RegisterLocation(R0));
3513 LocationSummary* locations =
3516 locations->AddTemp(Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
3517 locations->SetOut(Location::RegisterLocation(R0));
3518 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
3519 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(2)));
3535 LocationSummary* locations =
3543 locations->SetOut(location);
3552 LocationSummary* locations =
3554 locations->SetOut(Location::RegisterLocation(kMethodRegisterArgument));
3562 LocationSummary* locations =
3564 locations->SetInAt(0, Location::RequiresRegister());
3565 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
3569 LocationSummary* locations = not_->GetLocations();
3570 Location out = locations->Out();
3571 Location in = locations->InAt(0);
3590 LocationSummary* locations =
3592 locations->SetInAt(0, Location::RequiresRegister());
3593 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
3597 LocationSummary* locations = bool_not->GetLocations();
3598 Location out = locations->Out();
3599 Location in = locations->InAt(0);
3604 LocationSummary* locations =
3613 locations->SetInAt(0, Location::RequiresRegister());
3614 locations->SetInAt(1, Location::RequiresRegister());
3616 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
3621 locations->SetInAt(0, Location::RequiresFpuRegister());
3622 locations->SetInAt(1, Location::RequiresFpuRegister());
3623 locations->SetOut(Location::RequiresRegister());
3632 LocationSummary* locations = compare->GetLocations();
3633 Register out = locations->Out().AsRegister<Register>();
3634 Location left = locations->InAt(0);
3635 Location right = locations->InAt(1);
3696 LocationSummary* locations =
3699 locations->SetInAt(i, Location::Any());
3701 locations->SetOut(Location::Any());
3768 LocationSummary* locations =
3770 locations->SetInAt(0, Location::RequiresRegister());
3774 locations->SetInAt(1, Location::RequiresFpuRegister());
3776 locations->SetInAt(1, Location::RequiresRegister());
3788 locations->AddTemp(Location::RequiresRegister()); // Possibly used for reference poisoning too.
3789 locations->AddTemp(Location::RequiresRegister());
3798 locations->AddTemp(Location::RequiresRegister());
3799 locations->AddTemp(Location::RequiresRegister());
3802 locations->AddTemp(Location::RegisterLocation(R2));
3803 locations->AddTemp(Location::RegisterLocation(R3));
3813 LocationSummary* locations = instruction->GetLocations();
3814 Register base = locations->InAt(0).AsRegister<Register>();
3815 Location value = locations->InAt(1);
3848 Register temp = locations->GetTemp(0).AsRegister<Register>();
3863 locations->GetTemp(0).AsRegister<Register>(),
3864 locations->GetTemp(1).AsRegister<Register>(),
3881 Register value_reg_lo = locations->GetTemp(0).AsRegister<Register>();
3882 Register value_reg_hi = locations->GetTemp(1).AsRegister<Register>();
3889 locations->GetTemp(2).AsRegister<Register>(),
3890 locations->GetTemp(3).AsRegister<Register>(),
3910 Register temp = locations->GetTemp(0).AsRegister<Register>();
3911 Register card = locations->GetTemp(1).AsRegister<Register>();
3926 LocationSummary* locations =
3931 locations->SetInAt(0, Location::RequiresRegister());
3945 locations->SetOut(Location::RequiresFpuRegister());
3947 locations->SetOut(Location::RequiresRegister(),
3957 locations->AddTemp(Location::RequiresRegister());
3958 locations->AddTemp(Location::RequiresRegister());
3962 locations->AddTemp(Location::RequiresRegister());
4011 LocationSummary* locations = instruction->GetLocations();
4012 Location base_loc = locations->InAt(0);
4014 Location out = locations->Out();
4044 Location temp_loc = locations->GetTemp(0);
4083 Register lo = locations->GetTemp(0).AsRegister<Register>();
4084 Register hi = locations->GetTemp(1).AsRegister<Register>();
4221 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind);
4222 locations->SetInAt(0, Location::RequiresRegister());
4224 locations->SetOut(Location::SameAsFirstInput());
4242 LocationSummary* locations = instruction->GetLocations();
4243 Location obj = locations->InAt(0);
4255 LocationSummary* locations =
4260 locations->SetInAt(0, Location::RequiresRegister());
4261 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1)));
4263 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
4268 locations->SetOut(
4275 locations->AddTemp(Location::RequiresRegister());
4280 LocationSummary* locations = instruction->GetLocations();
4281 Location obj_loc = locations->InAt(0);
4283 Location index = locations->InAt(1);
4284 Location out_loc = locations->Out();
4366 Location temp = locations->GetTemp(0);
4457 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(
4463 locations->SetInAt(0, Location::RequiresRegister());
4464 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1)));
4466 locations->SetInAt(2, Location::RequiresFpuRegister());
4468 locations->SetInAt(2, Location::RequiresRegister());
4472 locations->AddTemp(Location::RequiresRegister()); // Possibly used for ref. poisoning too.
4473 locations->AddTemp(Location::RequiresRegister());
4478 LocationSummary* locations = instruction->GetLocations();
4479 Location array_loc = locations->InAt(0);
4481 Location index = locations->InAt(1);
4491 Register value = locations->InAt(2).AsRegister<Register>();
4506 Register value = locations->InAt(2).AsRegister<Register>();
4520 Location value_loc = locations->InAt(2);
4542 Register temp1 = locations->GetTemp(0).AsRegister<Register>();
4543 Register temp2 = locations->GetTemp(1).AsRegister<Register>();
4669 Register value = locations->InAt(2).AsRegister<Register>();
4684 Location value = locations->InAt(2);
4698 Location value = locations->InAt(2);
4712 Location value = locations->InAt(2);
4737 LocationSummary* locations =
4739 locations->SetInAt(0, Location::RequiresRegister());
4740 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
4744 LocationSummary* locations = instruction->GetLocations();
4746 Register obj = locations->InAt(0).AsRegister<Register>();
4747 Register out = locations->Out().AsRegister<Register>();
4756 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind);
4757 locations->SetInAt(0, Location::RequiresRegister());
4758 locations->SetInAt(1, Location::RequiresRegister());
4760 locations->SetOut(Location::SameAsFirstInput());
4765 LocationSummary* locations = instruction->GetLocations();
4770 Register index = locations->InAt(0).AsRegister<Register>();
4771 Register length = locations->InAt(1).AsRegister<Register>();
5086 LocationSummary* locations = cls->GetLocations();
5088 codegen_->MoveConstant(locations->GetTemp(0), cls->GetTypeIndex());
5097 Location out_loc = locations->Out();
5099 Register current_method = locations->InAt(0).AsRegister<Register>();
5135 LocationSummary* locations =
5137 locations->SetInAt(0, Location::RequiresRegister());
5139 locations->SetOut(Location::SameAsFirstInput());
5208 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(load, call_kind);
5212 locations->SetInAt(0, Location::RequiresRegister());
5214 locations->SetOut(Location::RequiresRegister());
5218 LocationSummary* locations = load->GetLocations();
5219 Location out_loc = locations->Out();
5265 Register base_reg = locations->InAt(0).AsRegister<Register>();
5272 Register current_method = locations->InAt(0).AsRegister<Register>();
5302 LocationSummary* locations =
5304 locations->SetOut(Location::RequiresRegister());
5322 LocationSummary* locations =
5325 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
5360 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind);
5361 locations->SetInAt(0, Location::RequiresRegister());
5362 locations->SetInAt(1, Location::RequiresRegister());
5365 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
5369 locations->AddTemp(Location::RequiresRegister());
5375 LocationSummary* locations = instruction->GetLocations();
5376 Location obj_loc = locations->InAt(0);
5378 Register cls = locations->InAt(1).AsRegister<Register>();
5379 Location out_loc = locations->Out();
5382 locations->GetTemp(0) :
5468 DCHECK(locations->OnlyCallsOnSlowPath());
5500 DCHECK(locations->OnlyCallsOnSlowPath());
5547 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction, call_kind);
5548 locations->SetInAt(0, Location::RequiresRegister());
5549 locations->SetInAt(1, Location::RequiresRegister());
5551 locations->AddTemp(Location::RequiresRegister());
5555 locations->AddTemp(Location::RequiresRegister());
5561 LocationSummary* locations = instruction->GetLocations();
5562 Location obj_loc = locations->InAt(0);
5564 Register cls = locations->InAt(1).AsRegister<Register>();
5565 Location temp_loc = locations->GetTemp(0);
5568 locations->GetTemp(1) :
5723 LocationSummary* locations =
5726 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
5747 LocationSummary* locations =
5752 locations->SetInAt(0, Location::RequiresRegister());
5753 locations->SetInAt(1, ArmEncodableConstantOrRegister(instruction->InputAt(1), opcode));
5754 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
5771 LocationSummary* locations =
5776 locations->SetInAt(0, Location::RequiresRegister());
5777 locations->SetInAt(1, Location::RequiresRegister());
5778 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
5782 LocationSummary* locations = instruction->GetLocations();
5783 Location first = locations->InAt(0);
5784 Location second = locations->InAt(1);
5785 Location out = locations->Out();
5888 LocationSummary* locations = instruction->GetLocations();
5889 Location first = locations->InAt(0);
5890 Location second = locations->InAt(1);
5891 Location out = locations->Out();
6305 // For register locations, check if the register was saved. If so, get it from the stack.
6594 LocationSummary* locations =
6596 locations->SetInAt(HMultiplyAccumulate::kInputAccumulatorIndex,
6598 locations->SetInAt(HMultiplyAccumulate::kInputMulLeftIndex, Location::RequiresRegister());
6599 locations->SetInAt(HMultiplyAccumulate::kInputMulRightIndex, Location::RequiresRegister());
6600 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
6604 LocationSummary* locations = instr->GetLocations();
6605 Register res = locations->Out().AsRegister<Register>();
6607 locations->InAt(HMultiplyAccumulate::kInputAccumulatorIndex).AsRegister<Register>();
6609 locations->InAt(HMultiplyAccumulate::kInputMulLeftIndex).AsRegister<Register>();
6611 locations->InAt(HMultiplyAccumulate::kInputMulRightIndex).AsRegister<Register>();
6632 LocationSummary* locations =
6634 locations->SetInAt(0, Location::RequiresRegister());
6637 locations->AddTemp(Location::RequiresRegister()); // We need a temp for the table base.
6639 locations->AddTemp(Location::RequiresRegister()); // We need a temp for the bias.
6647 LocationSummary* locations = switch_instr->GetLocations();
6648 Register value_reg = locations->InAt(0).AsRegister<Register>();
6683 Register temp_reg = locations->GetTemp(0).AsRegister<Register>();
6696 key_reg = locations->GetTemp(1).AsRegister<Register>();
6715 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(base);
6716 locations->SetOut(Location::RequiresRegister());
6765 LocationSummary* locations =
6767 locations->SetInAt(0, Location::RequiresRegister());
6768 locations->SetOut(Location::RequiresRegister());
6772 LocationSummary* locations = instruction->GetLocations();
6782 locations->Out().AsRegister<Register>(),
6783 locations->InAt(0).AsRegister<Register>(),