Lines Matching refs:locations

69   LocationSummary* locations = new (arena) LocationSummary(invoke,
72 locations->SetInAt(0, Location::RequiresFpuRegister());
73 locations->SetOut(Location::RequiresRegister());
77 LocationSummary* locations = new (arena) LocationSummary(invoke,
80 locations->SetInAt(0, Location::RequiresRegister());
81 locations->SetOut(Location::RequiresFpuRegister());
84 static void MoveFPToInt(LocationSummary* locations, bool is64bit, ArmAssembler* assembler) {
85 Location input = locations->InAt(0);
86 Location output = locations->Out();
96 static void MoveIntToFP(LocationSummary* locations, bool is64bit, ArmAssembler* assembler) {
97 Location input = locations->InAt(0);
98 Location output = locations->Out();
137 LocationSummary* locations = new (arena) LocationSummary(invoke,
140 locations->SetInAt(0, Location::RequiresRegister());
141 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
145 LocationSummary* locations = new (arena) LocationSummary(invoke,
148 locations->SetInAt(0, Location::RequiresFpuRegister());
149 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap);
152 static void GenNumberOfLeadingZeros(LocationSummary* locations,
155 Location in = locations->InAt(0);
156 Register out = locations->Out().AsRegister<Register>();
183 LocationSummary* locations = new (arena_) LocationSummary(invoke,
186 locations->SetInAt(0, Location::RequiresRegister());
187 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
194 static void GenNumberOfTrailingZeros(LocationSummary* locations,
199 Register out = locations->Out().AsRegister<Register>();
202 Register in_reg_lo = locations->InAt(0).AsRegisterPairLow<Register>();
203 Register in_reg_hi = locations->InAt(0).AsRegisterPairHigh<Register>();
213 Register in = locations->InAt(0).AsRegister<Register>();
220 LocationSummary* locations = new (arena_) LocationSummary(invoke,
223 locations->SetInAt(0, Location::RequiresRegister());
224 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
232 LocationSummary* locations = new (arena_) LocationSummary(invoke,
235 locations->SetInAt(0, Location::RequiresRegister());
236 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
243 static void MathAbsFP(LocationSummary* locations, bool is64bit, ArmAssembler* assembler) {
244 Location in = locations->InAt(0);
245 Location out = locations->Out();
272 LocationSummary* locations = new (arena) LocationSummary(invoke,
275 locations->SetInAt(0, Location::RequiresRegister());
276 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
278 locations->AddTemp(Location::RequiresRegister());
281 static void GenAbsInteger(LocationSummary* locations,
284 Location in = locations->InAt(0);
285 Location output = locations->Out();
287 Register mask = locations->GetTemp(0).AsRegister<Register>();
329 static void GenMinMax(LocationSummary* locations,
332 Register op1 = locations->InAt(0).AsRegister<Register>();
333 Register op2 = locations->InAt(1).AsRegister<Register>();
334 Register out = locations->Out().AsRegister<Register>();
344 LocationSummary* locations = new (arena) LocationSummary(invoke,
347 locations->SetInAt(0, Location::RequiresRegister());
348 locations->SetInAt(1, Location::RequiresRegister());
349 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
373 LocationSummary* locations = invoke->GetLocations();
375 __ vsqrtd(FromLowSToD(locations->Out().AsFpuRegisterPairLow<SRegister>()),
376 FromLowSToD(locations->InAt(0).AsFpuRegisterPairLow<SRegister>()));
434 LocationSummary* locations = new (arena) LocationSummary(invoke,
437 locations->SetInAt(0, Location::RequiresRegister());
438 locations->SetInAt(1, Location::RequiresRegister());
486 LocationSummary* locations = new (arena_) LocationSummary(invoke,
489 locations->SetOut(Location::RequiresRegister());
504 LocationSummary* locations = invoke->GetLocations();
506 Location base_loc = locations->InAt(1);
508 Location offset_loc = locations->InAt(2);
510 Location trg_loc = locations->Out();
526 Location temp = locations->GetTemp(0);
576 LocationSummary* locations = new (arena) LocationSummary(invoke,
581 locations->SetInAt(0, Location::NoLocation()); // Unused receiver.
582 locations->SetInAt(1, Location::RequiresRegister());
583 locations->SetInAt(2, Location::RequiresRegister());
584 locations->SetOut(Location::RequiresRegister(), Location::kNoOutputOverlap);
588 locations->AddTemp(Location::RequiresRegister());
635 LocationSummary* locations = new (arena) LocationSummary(invoke,
638 locations->SetInAt(0, Location::NoLocation()); // Unused receiver.
639 locations->SetInAt(1, Location::RequiresRegister());
640 locations->SetInAt(2, Location::RequiresRegister());
641 locations->SetInAt(3, Location::RequiresRegister());
646 locations->AddTemp(Location::RequiresRegister()); // Temp_lo.
647 locations->AddTemp(Location::RequiresRegister()); // Temp_hi.
651 locations->AddTemp(Location::RequiresRegister()); // Temp.
652 locations->AddTemp(Location::RequiresRegister()); // Card.
687 static void GenUnsafePut(LocationSummary* locations,
694 Register base = locations->InAt(1).AsRegister<Register>(); // Object pointer.
695 Register offset = locations->InAt(2).AsRegisterPairLow<Register>(); // Long offset, lo part only.
703 Register value_lo = locations->InAt(3).AsRegisterPairLow<Register>();
706 Register temp_lo = locations->GetTemp(0).AsRegister<Register>();
707 Register temp_hi = locations->GetTemp(1).AsRegister<Register>();
708 Register value_hi = locations->InAt(3).AsRegisterPairHigh<Register>();
722 value = locations->InAt(3).AsRegister<Register>();
725 Register temp = locations->GetTemp(0).AsRegister<Register>();
738 Register temp = locations->GetTemp(0).AsRegister<Register>();
739 Register card = locations->GetTemp(1).AsRegister<Register>();
812 LocationSummary* locations = new (arena) LocationSummary(invoke,
815 locations->SetInAt(0, Location::NoLocation()); // Unused receiver.
816 locations->SetInAt(1, Location::RequiresRegister());
817 locations->SetInAt(2, Location::RequiresRegister());
818 locations->SetInAt(3, Location::RequiresRegister());
819 locations->SetInAt(4, Location::RequiresRegister());
826 locations->SetOut(Location::RequiresRegister(), overlaps);
828 locations->AddTemp(Location::RequiresRegister()); // Pointer.
829 locations->AddTemp(Location::RequiresRegister()); // Temp 1.
832 static void GenCas(LocationSummary* locations, Primitive::Type type, CodeGeneratorARM* codegen) {
837 Register out = locations->Out().AsRegister<Register>(); // Boolean result.
839 Register base = locations->InAt(1).AsRegister<Register>(); // Object pointer.
840 Register offset = locations->InAt(2).AsRegisterPairLow<Register>(); // Offset (discard high 4B).
841 Register expected_lo = locations->InAt(3).AsRegister<Register>(); // Expected.
842 Register value_lo = locations->InAt(4).AsRegister<Register>(); // Value.
844 Register tmp_ptr = locations->GetTemp(0).AsRegister<Register>(); // Pointer to actual memory.
845 Register tmp_lo = locations->GetTemp(1).AsRegister<Register>(); // Value in memory.
939 LocationSummary* locations = new (arena_) LocationSummary(invoke,
942 locations->SetInAt(0, Location::RequiresRegister());
943 locations->SetInAt(1, Location::RequiresRegister());
944 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
946 locations->AddTemp(Location::RequiresRegister());
947 locations->AddTemp(Location::RequiresRegister());
952 LocationSummary* locations = invoke->GetLocations();
959 Register obj = locations->InAt(0).AsRegister<Register>(); // String object pointer.
960 Register idx = locations->InAt(1).AsRegister<Register>(); // Index of character.
961 Register out = locations->Out().AsRegister<Register>(); // Result character.
963 Register temp = locations->GetTemp(0).AsRegister<Register>();
964 Register array_temp = locations->GetTemp(1).AsRegister<Register>();
989 LocationSummary* locations = new (arena_) LocationSummary(invoke,
993 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
994 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
995 locations->SetOut(Location::RegisterLocation(R0));
1000 LocationSummary* locations = invoke->GetLocations();
1005 Register argument = locations->InAt(1).AsRegister<Register>();
1018 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1022 locations->SetInAt(0, Location::RequiresRegister());
1023 locations->SetInAt(1, Location::RequiresRegister());
1026 locations->AddTemp(Location::RegisterLocation(R0));
1027 locations->AddTemp(Location::RequiresRegister());
1028 locations->AddTemp(Location::RequiresRegister());
1030 locations->SetOut(Location::RequiresRegister());
1035 LocationSummary* locations = invoke->GetLocations();
1037 Register str = locations->InAt(0).AsRegister<Register>();
1038 Register arg = locations->InAt(1).AsRegister<Register>();
1039 Register out = locations->Out().AsRegister<Register>();
1041 Register temp = locations->GetTemp(0).AsRegister<Register>();
1042 Register temp1 = locations->GetTemp(1).AsRegister<Register>();
1043 Register temp2 = locations->GetTemp(2).AsRegister<Register>();
1117 LocationSummary* locations = invoke->GetLocations();
1118 Register tmp_reg = locations->GetTemp(0).AsRegister<Register>();
1138 Register char_reg = locations->InAt(1).AsRegister<Register>();
1163 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1169 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1170 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
1171 locations->SetOut(Location::RegisterLocation(R0));
1174 locations->AddTemp(Location::RegisterLocation(calling_convention.GetRegisterAt(2)));
1183 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1189 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1190 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
1191 locations->SetInAt(2, Location::RegisterLocation(calling_convention.GetRegisterAt(2)));
1192 locations->SetOut(Location::RegisterLocation(R0));
1195 locations->AddTemp(Location::RequiresRegister());
1204 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1208 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1209 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
1210 locations->SetInAt(2, Location::RegisterLocation(calling_convention.GetRegisterAt(2)));
1211 locations->SetInAt(3, Location::RegisterLocation(calling_convention.GetRegisterAt(3)));
1212 locations->SetOut(Location::RegisterLocation(R0));
1217 LocationSummary* locations = invoke->GetLocations();
1219 Register byte_array = locations->InAt(0).AsRegister<Register>();
1234 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1238 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1239 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
1240 locations->SetInAt(2, Location::RegisterLocation(calling_convention.GetRegisterAt(2)));
1241 locations->SetOut(Location::RegisterLocation(R0));
1247 // No need to emit code checking whether `locations->InAt(2)` is a null
1261 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1265 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1266 locations->SetOut(Location::RegisterLocation(R0));
1271 LocationSummary* locations = invoke->GetLocations();
1273 Register string_to_copy = locations->InAt(0).AsRegister<Register>();
1289 LocationSummary* locations = invoke->GetLocations();
1290 if (locations == nullptr) {
1299 locations->SetInAt(1, Location::RequiresRegister());
1302 locations->SetInAt(3, Location::RequiresRegister());
1305 locations->SetInAt(4, Location::RequiresRegister());
1378 LocationSummary* locations = invoke->GetLocations();
1385 Register src = locations->InAt(0).AsRegister<Register>();
1386 Location src_pos = locations->InAt(1);
1387 Register dest = locations->InAt(2).AsRegister<Register>();
1388 Location dest_pos = locations->InAt(3);
1389 Location length = locations->InAt(4);
1390 Register temp1 = locations->GetTemp(0).AsRegister<Register>();
1391 Register temp2 = locations->GetTemp(1).AsRegister<Register>();
1392 Register temp3 = locations->GetTemp(2).AsRegister<Register>();
1407 // Checked when building locations.
1414 // Checked when building locations.
1607 // the input and output locations are unallocated, the register allocator runs out of
1617 LocationSummary* const locations = new (arena) LocationSummary(invoke,
1622 locations->SetInAt(0, Location::RequiresFpuRegister());
1623 locations->SetOut(Location::RequiresFpuRegister());
1625 locations->AddTemp(Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1626 locations->AddTemp(Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
1633 // the input and output locations are unallocated, the register allocator runs out of
1644 LocationSummary* const locations = new (arena) LocationSummary(invoke,
1649 locations->SetInAt(0, Location::RequiresFpuRegister());
1650 locations->SetInAt(1, Location::RequiresFpuRegister());
1651 locations->SetOut(Location::RequiresFpuRegister());
1653 locations->AddTemp(Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1654 locations->AddTemp(Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
1655 locations->AddTemp(Location::RegisterLocation(calling_convention.GetRegisterAt(2)));
1656 locations->AddTemp(Location::RegisterLocation(calling_convention.GetRegisterAt(3)));
1663 LocationSummary* const locations = invoke->GetLocations();
1667 DCHECK(locations->WillCall() && locations->Intrinsified());
1668 DCHECK(!locations->GetLiveRegisters()->ContainsCoreRegister(calling_convention.GetRegisterAt(0)));
1669 DCHECK(!locations->GetLiveRegisters()->ContainsCoreRegister(calling_convention.GetRegisterAt(1)));
1675 FromLowSToD(locations->InAt(0).AsFpuRegisterPairLow<SRegister>()));
1678 __ vmovdrr(FromLowSToD(locations->Out().AsFpuRegisterPairLow<SRegister>()),
1687 LocationSummary* const locations = invoke->GetLocations();
1691 DCHECK(locations->WillCall() && locations->Intrinsified());
1692 DCHECK(!locations->GetLiveRegisters()->ContainsCoreRegister(calling_convention.GetRegisterAt(0)));
1693 DCHECK(!locations->GetLiveRegisters()->ContainsCoreRegister(calling_convention.GetRegisterAt(1)));
1694 DCHECK(!locations->GetLiveRegisters()->ContainsCoreRegister(calling_convention.GetRegisterAt(2)));
1695 DCHECK(!locations->GetLiveRegisters()->ContainsCoreRegister(calling_convention.GetRegisterAt(3)));
1701 FromLowSToD(locations->InAt(0).AsFpuRegisterPairLow<SRegister>()));
1704 FromLowSToD(locations->InAt(1).AsFpuRegisterPairLow<SRegister>()));
1707 __ vmovdrr(FromLowSToD(locations->Out().AsFpuRegisterPairLow<SRegister>()),
1854 LocationSummary* locations = invoke->GetLocations();
1856 Register out = locations->Out().AsRegister<Register>();
1857 Register in = locations->InAt(0).AsRegister<Register>();
1863 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1866 locations->SetInAt(0, Location::RequiresRegister());
1867 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
1872 LocationSummary* locations = invoke->GetLocations();
1874 Register in_reg_lo = locations->InAt(0).AsRegisterPairLow<Register>();
1875 Register in_reg_hi = locations->InAt(0).AsRegisterPairHigh<Register>();
1876 Register out_reg_lo = locations->Out().AsRegisterPairLow<Register>();
1877 Register out_reg_hi = locations->Out().AsRegisterPairHigh<Register>();
1889 LocationSummary* locations = invoke->GetLocations();
1891 Register out = locations->Out().AsRegister<Register>();
1892 Register in = locations->InAt(0).AsRegister<Register>();
1898 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1901 locations->SetInAt(0, Location::RequiresRegister());
1902 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
1907 LocationSummary* locations = invoke->GetLocations();
1909 Register in_reg_lo = locations->InAt(0).AsRegisterPairLow<Register>();
1910 Register in_reg_hi = locations->InAt(0).AsRegisterPairHigh<Register>();
1911 Register out_reg_lo = locations->Out().AsRegisterPairLow<Register>();
1912 Register out_reg_hi = locations->Out().AsRegisterPairHigh<Register>();
1924 LocationSummary* locations = invoke->GetLocations();
1926 Register out = locations->Out().AsRegister<Register>();
1927 Register in = locations->InAt(0).AsRegister<Register>();
1933 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1936 locations->SetInAt(0, Location::RequiresRegister());
1937 locations->SetInAt(1, Location::RequiresRegister());
1938 locations->SetInAt(2, Location::RequiresRegister());
1939 locations->SetInAt(3, Location::RequiresRegister());
1940 locations->SetInAt(4, Location::RequiresRegister());
1942 locations->AddTemp(Location::RequiresRegister());
1943 locations->AddTemp(Location::RequiresRegister());
1944 locations->AddTemp(Location::RequiresRegister());
1945 locations->AddTemp(Location::RequiresRegister());
1950 LocationSummary* locations = invoke->GetLocations();
1964 Register srcObj = locations->InAt(0).AsRegister<Register>();
1965 Register srcBegin = locations->InAt(1).AsRegister<Register>();
1966 Register srcEnd = locations->InAt(2).AsRegister<Register>();
1967 Register dstObj = locations->InAt(3).AsRegister<Register>();
1968 Register dstBegin = locations->InAt(4).AsRegister<Register>();
1970 Register src_ptr = locations->GetTemp(0).AsRegister<Register>();
1971 Register src_ptr_end = locations->GetTemp(1).AsRegister<Register>();
1972 Register dst_ptr = locations->GetTemp(2).AsRegister<Register>();
1973 Register tmp = locations->GetTemp(3).AsRegister<Register>();