Home | History | Annotate | Download | only in optimizing

Lines Matching refs:locations

98 // Note: The actual parameters are required to be in the locations given by the invoke's location
99 // summary. If an intrinsic modifies those locations before a slowpath call, they must be
170 LocationSummary* locations = new (arena) LocationSummary(invoke,
173 locations->SetInAt(0, Location::RequiresFpuRegister());
174 locations->SetOut(Location::RequiresRegister());
178 LocationSummary* locations = new (arena) LocationSummary(invoke,
181 locations->SetInAt(0, Location::RequiresRegister());
182 locations->SetOut(Location::RequiresFpuRegister());
185 static void MoveFPToInt(LocationSummary* locations, bool is64bit, vixl::MacroAssembler* masm) {
186 Location input = locations->InAt(0);
187 Location output = locations->Out();
192 static void MoveIntToFP(LocationSummary* locations, bool is64bit, vixl::MacroAssembler* masm) {
193 Location input = locations->InAt(0);
194 Location output = locations->Out();
228 LocationSummary* locations = new (arena) LocationSummary(invoke,
231 locations->SetInAt(0, Location::RequiresRegister());
232 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
235 static void GenReverseBytes(LocationSummary* locations,
238 Location in = locations->InAt(0);
239 Location out = locations->Out();
281 LocationSummary* locations = new (arena) LocationSummary(invoke,
284 locations->SetInAt(0, Location::RequiresRegister());
285 locations->SetInAt(1, Location::RequiresRegister());
286 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
289 static void GenNumberOfLeadingZeros(LocationSummary* locations,
294 Location in = locations->InAt(0);
295 Location out = locations->Out();
316 static void GenNumberOfTrailingZeros(LocationSummary* locations,
321 Location in = locations->InAt(0);
322 Location out = locations->Out();
344 static void GenReverse(LocationSummary* locations,
349 Location in = locations->InAt(0);
350 Location out = locations->Out();
405 LocationSummary* locations = new (arena) LocationSummary(invoke,
408 locations->SetInAt(0, Location::RequiresFpuRegister());
409 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
412 static void MathAbsFP(LocationSummary* locations, bool is64bit, vixl::MacroAssembler* masm) {
413 Location in = locations->InAt(0);
414 Location out = locations->Out();
439 LocationSummary* locations = new (arena) LocationSummary(invoke,
442 locations->SetInAt(0, Location::RequiresRegister());
443 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
446 static void GenAbsInteger(LocationSummary* locations,
449 Location in = locations->InAt(0);
450 Location output = locations->Out();
475 static void GenMinMaxFP(LocationSummary* locations,
479 Location op1 = locations->InAt(0);
480 Location op2 = locations->InAt(1);
481 Location out = locations->Out();
494 LocationSummary* locations = new (arena) LocationSummary(invoke,
497 locations->SetInAt(0, Location::RequiresFpuRegister());
498 locations->SetInAt(1, Location::RequiresFpuRegister());
499 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
535 static void GenMinMax(LocationSummary* locations,
539 Location op1 = locations->InAt(0);
540 Location op2 = locations->InAt(1);
541 Location out = locations->Out();
588 LocationSummary* locations = invoke->GetLocations();
590 __ Fsqrt(DRegisterFrom(locations->Out()), DRegisterFrom(locations->InAt(0)));
598 LocationSummary* locations = invoke->GetLocations();
600 __ Frintp(DRegisterFrom(locations->Out()), DRegisterFrom(locations->InAt(0)));
608 LocationSummary* locations = invoke->GetLocations();
610 __ Frintm(DRegisterFrom(locations->Out()), DRegisterFrom(locations->InAt(0)));
618 LocationSummary* locations = invoke->GetLocations();
620 __ Frintn(DRegisterFrom(locations->Out()), DRegisterFrom(locations->InAt(0)));
624 LocationSummary* locations = new (arena) LocationSummary(invoke,
627 locations->SetInAt(0, Location::RequiresFpuRegister());
628 locations->SetOut(Location::RequiresRegister());
631 static void GenMathRound(LocationSummary* locations,
635 DRegisterFrom(locations->InAt(0)) : SRegisterFrom(locations->InAt(0));
637 XRegisterFrom(locations->Out()) : WRegisterFrom(locations->Out());
714 LocationSummary* locations = new (arena) LocationSummary(invoke,
717 locations->SetInAt(0, Location::RequiresRegister());
718 locations->SetInAt(1, Location::RequiresRegister());
762 LocationSummary* locations = new (arena_) LocationSummary(invoke,
765 locations->SetOut(Location::RequiresRegister());
777 LocationSummary* locations = invoke->GetLocations();
782 Location base_loc = locations->InAt(1);
784 Location offset_loc = locations->InAt(2);
786 Location trg_loc = locations->Out();
815 LocationSummary* locations = new (arena) LocationSummary(invoke,
820 locations->SetInAt(0, Location::NoLocation()); // Unused receiver.
821 locations->SetInAt(1, Location::RequiresRegister());
822 locations->SetInAt(2, Location::RequiresRegister());
823 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
865 LocationSummary* locations = new (arena) LocationSummary(invoke,
868 locations->SetInAt(0, Location::NoLocation()); // Unused receiver.
869 locations->SetInAt(1, Location::RequiresRegister());
870 locations->SetInAt(2, Location::RequiresRegister());
871 locations->SetInAt(3, Location::RequiresRegister());
902 static void GenUnsafePut(LocationSummary* locations,
909 Register base = WRegisterFrom(locations->InAt(1)); // Object pointer.
910 Register offset = XRegisterFrom(locations->InAt(2)); // Long offset.
911 Register value = RegisterFrom(locations->InAt(3), type);
1008 LocationSummary* locations = new (arena) LocationSummary(invoke,
1011 locations->SetInAt(0, Location::NoLocation()); // Unused receiver.
1012 locations->SetInAt(1, Location::RequiresRegister());
1013 locations->SetInAt(2, Location::RequiresRegister());
1014 locations->SetInAt(3, Location::RequiresRegister());
1015 locations->SetInAt(4, Location::RequiresRegister());
1022 locations->SetOut(Location::RequiresRegister(), overlaps);
1025 static void GenCas(LocationSummary* locations, Primitive::Type type, CodeGeneratorARM64* codegen) {
1028 Register out = WRegisterFrom(locations->Out()); // Boolean result.
1030 Register base = WRegisterFrom(locations->InAt(1)); // Object pointer.
1031 Register offset = XRegisterFrom(locations->InAt(2)); // Long offset.
1032 Register expected = RegisterFrom(locations->InAt(3), type); // Expected.
1033 Register value = RegisterFrom(locations->InAt(4), type); // Value.
1125 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1128 locations->SetInAt(0, Location::RequiresRegister());
1129 locations->SetInAt(1, Location::RequiresRegister());
1133 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
1138 LocationSummary* locations = invoke->GetLocations();
1145 Register obj = WRegisterFrom(locations->InAt(0)); // String object pointer.
1146 Register idx = WRegisterFrom(locations->InAt(1)); // Index of character.
1147 Register out = WRegisterFrom(locations->Out()); // Result character.
1175 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1179 locations->SetInAt(0, LocationFrom(calling_convention.GetRegisterAt(0)));
1180 locations->SetInAt(1, LocationFrom(calling_convention.GetRegisterAt(1)));
1181 locations->SetOut(calling_convention.GetReturnLocation(Primitive::kPrimInt));
1186 LocationSummary* locations = invoke->GetLocations();
1191 Register argument = WRegisterFrom(locations->InAt(1));
1204 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1207 locations->SetInAt(0, Location::RequiresRegister());
1208 locations->SetInAt(1, Location::RequiresRegister());
1210 locations->AddTemp(Location::RequiresRegister());
1211 locations->AddTemp(Location::RequiresRegister());
1213 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
1218 LocationSummary* locations = invoke->GetLocations();
1220 Register str = WRegisterFrom(locations->InAt(0));
1221 Register arg = WRegisterFrom(locations->InAt(1));
1222 Register out = XRegisterFrom(locations->Out());
1226 Register temp1 = WRegisterFrom(locations->GetTemp(0));
1227 Register temp2 = WRegisterFrom(locations->GetTemp(1));
1304 LocationSummary* locations = invoke->GetLocations();
1305 Register tmp_reg = WRegisterFrom(locations->GetTemp(0));
1324 Register char_reg = WRegisterFrom(locations->InAt(1));
1347 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1353 locations->SetInAt(0, LocationFrom(calling_convention.GetRegisterAt(0)));
1354 locations->SetInAt(1, LocationFrom(calling_convention.GetRegisterAt(1)));
1355 locations->SetOut(calling_convention.GetReturnLocation(Primitive::kPrimInt));
1358 locations->AddTemp(LocationFrom(calling_convention.GetRegisterAt(2)));
1367 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1373 locations->SetInAt(0, LocationFrom(calling_convention.GetRegisterAt(0)));
1374 locations->SetInAt(1, LocationFrom(calling_convention.GetRegisterAt(1)));
1375 locations->SetInAt(2, LocationFrom(calling_convention.GetRegisterAt(2)));
1376 locations->SetOut(calling_convention.GetReturnLocation(Primitive::kPrimInt));
1379 locations->AddTemp(Location::RequiresRegister());
1388 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1392 locations->SetInAt(0, LocationFrom(calling_convention.GetRegisterAt(0)));
1393 locations->SetInAt(1, LocationFrom(calling_convention.GetRegisterAt(1)));
1394 locations->SetInAt(2, LocationFrom(calling_convention.GetRegisterAt(2)));
1395 locations->SetInAt(3, LocationFrom(calling_convention.GetRegisterAt(3)));
1396 locations->SetOut(calling_convention.GetReturnLocation(Primitive::kPrimNot));
1401 LocationSummary* locations = invoke->GetLocations();
1403 Register byte_array = WRegisterFrom(locations->InAt(0));
1418 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1422 locations->SetInAt(0, LocationFrom(calling_convention.GetRegisterAt(0)));
1423 locations->SetInAt(1, LocationFrom(calling_convention.GetRegisterAt(1)));
1424 locations->SetInAt(2, LocationFrom(calling_convention.GetRegisterAt(2)));
1425 locations->SetOut(calling_convention.GetReturnLocation(Primitive::kPrimNot));
1431 // No need to emit code checking whether `locations->InAt(2)` is a null
1445 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1449 locations->SetInAt(0, LocationFrom(calling_convention.GetRegisterAt(0)));
1450 locations->SetOut(calling_convention.GetReturnLocation(Primitive::kPrimNot));
1455 LocationSummary* locations = invoke->GetLocations();
1457 Register string_to_copy = WRegisterFrom(locations->InAt(0));
1476 LocationSummary* const locations = new (arena) LocationSummary(invoke,
1481 locations->SetInAt(0, LocationFrom(calling_convention.GetFpuRegisterAt(0)));
1482 locations->SetOut(calling_convention.GetReturnLocation(invoke->GetType()));
1491 LocationSummary* const locations = new (arena) LocationSummary(invoke,
1496 locations->SetInAt(0, LocationFrom(calling_convention.GetFpuRegisterAt(0)));
1497 locations->SetInAt(1, LocationFrom(calling_convention.GetFpuRegisterAt(1)));
1498 locations->SetOut(calling_convention.GetReturnLocation(invoke->GetType()));
1647 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1650 locations->SetInAt(0, Location::RequiresRegister());
1651 locations->SetInAt(1, Location::RequiresRegister());
1652 locations->SetInAt(2, Location::RequiresRegister());
1653 locations->SetInAt(3, Location::RequiresRegister());
1654 locations->SetInAt(4, Location::RequiresRegister());
1656 locations->AddTemp(Location::RequiresRegister());
1657 locations->AddTemp(Location::RequiresRegister());
1662 LocationSummary* locations = invoke->GetLocations();
1676 Register srcObj = XRegisterFrom(locations->InAt(0));
1677 Register srcBegin = XRegisterFrom(locations->InAt(1));
1678 Register srcEnd = XRegisterFrom(locations->InAt(2));
1679 Register dstObj = XRegisterFrom(locations->InAt(3));
1680 Register dstBegin = XRegisterFrom(locations->InAt(4));
1682 Register src_ptr = XRegisterFrom(locations->GetTemp(0));
1683 Register src_ptr_end = XRegisterFrom(locations->GetTemp(1));
1713 static void SetSystemArrayCopyLocationRequires(LocationSummary* locations,
1718 locations->SetInAt(at, Location::RequiresRegister());
1720 locations->SetInAt(at, Location::RegisterOrConstant(input));
1749 LocationSummary* locations = new (allocator) LocationSummary(invoke,
1753 locations->SetInAt(0, Location::RequiresRegister());
1754 SetSystemArrayCopyLocationRequires(locations, 1, invoke->InputAt(1));
1755 locations->SetInAt(2, Location::RequiresRegister());
1756 SetSystemArrayCopyLocationRequires(locations, 3, invoke->InputAt(3));
1757 SetSystemArrayCopyLocationRequires(locations, 4, invoke->InputAt(4));
1759 locations->AddTemp(Location::RequiresRegister());
1760 locations->AddTemp(Location::RequiresRegister());
1761 locations->AddTemp(Location::RequiresRegister());
1853 LocationSummary* locations = invoke->GetLocations();
1854 Register src = XRegisterFrom(locations->InAt(0));
1855 Location src_pos = locations->InAt(1);
1856 Register dst = XRegisterFrom(locations->InAt(2));
1857 Location dst_pos = locations->InAt(3);
1858 Location length = locations->InAt(4);
1886 Register src_curr_addr = WRegisterFrom(locations->GetTemp(0));
1887 Register dst_curr_addr = WRegisterFrom(locations->GetTemp(1));
1888 Register src_stop_addr = WRegisterFrom(locations->GetTemp(2));
1983 LocationSummary* locations = new (allocator) LocationSummary(invoke,
1987 locations->SetInAt(0, Location::RequiresRegister());
1988 SetSystemArrayCopyLocationRequires(locations, 1, invoke->InputAt(1));
1989 locations->SetInAt(2, Location::RequiresRegister());
1990 SetSystemArrayCopyLocationRequires(locations, 3, invoke->InputAt(3));
1991 SetSystemArrayCopyLocationRequires(locations, 4, invoke->InputAt(4));
1993 locations->AddTemp(Location::RequiresRegister());
1994 locations->AddTemp(Location::RequiresRegister());
1999 LocationSummary* locations = invoke->GetLocations();
2006 Register src = XRegisterFrom(locations->InAt(0));
2007 Location src_pos = locations->InAt(1);
2008 Register dest = XRegisterFrom(locations->InAt(2));
2009 Location dest_pos = locations->InAt(3);
2010 Location length = locations->InAt(4);
2011 Register temp1 = WRegisterFrom(locations->GetTemp(0));
2012 Register temp2 = WRegisterFrom(locations->GetTemp(1));
2027 // Checked when building locations.
2033 // Checked when building locations.