Lines Matching refs:locations

89   LocationSummary* locations = new (arena) LocationSummary(invoke,
92 locations->SetInAt(0, Location::RequiresFpuRegister());
93 locations->SetOut(Location::RequiresRegister());
95 locations->AddTemp(Location::RequiresFpuRegister());
100 LocationSummary* locations = new (arena) LocationSummary(invoke,
103 locations->SetInAt(0, Location::RequiresRegister());
104 locations->SetOut(Location::RequiresFpuRegister());
106 locations->AddTemp(Location::RequiresFpuRegister());
107 locations->AddTemp(Location::RequiresFpuRegister());
111 static void MoveFPToInt(LocationSummary* locations, bool is64bit, X86Assembler* assembler) {
112 Location input = locations->InAt(0);
113 Location output = locations->Out();
116 XmmRegister temp = locations->GetTemp(0).AsFpuRegister<XmmRegister>();
126 static void MoveIntToFP(LocationSummary* locations, bool is64bit, X86Assembler* assembler) {
127 Location input = locations->InAt(0);
128 Location output = locations->Out();
131 XmmRegister temp1 = locations->GetTemp(0).AsFpuRegister<XmmRegister>();
132 XmmRegister temp2 = locations->GetTemp(1).AsFpuRegister<XmmRegister>();
171 LocationSummary* locations = new (arena) LocationSummary(invoke,
174 locations->SetInAt(0, Location::RequiresRegister());
175 locations->SetOut(Location::SameAsFirstInput());
179 LocationSummary* locations = new (arena) LocationSummary(invoke,
182 locations->SetInAt(0, Location::RequiresRegister());
183 locations->SetOut(Location::RequiresRegister());
187 LocationSummary* locations = new (arena) LocationSummary(invoke,
190 locations->SetInAt(0, Location::RequiresRegister());
191 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
194 static void GenReverseBytes(LocationSummary* locations,
197 Register out = locations->Out().AsRegister<Register>();
227 LocationSummary* locations = invoke->GetLocations();
228 Location input = locations->InAt(0);
231 Location output = locations->Out();
257 LocationSummary* locations = new (arena) LocationSummary(invoke,
260 locations->SetInAt(0, Location::RequiresFpuRegister());
261 locations->SetOut(Location::SameAsFirstInput());
267 locations->SetInAt(1, Location::RequiresRegister());
269 locations->AddTemp(Location::RequiresFpuRegister());
273 static void MathAbsFP(LocationSummary* locations,
277 Location output = locations->Out();
280 if (locations->GetInputCount() == 2 && locations->InAt(1).IsValid()) {
281 DCHECK(locations->InAt(1).IsRegister());
283 Register constant_area = locations->InAt(1).AsRegister<Register>();
284 XmmRegister temp = locations->GetTemp(0).AsFpuRegister<XmmRegister>();
325 LocationSummary* locations = new (arena) LocationSummary(invoke,
328 locations->SetInAt(0, Location::RegisterLocation(EAX));
329 locations->SetOut(Location::SameAsFirstInput());
330 locations->AddTemp(Location::RegisterLocation(EDX));
333 static void GenAbsInteger(LocationSummary* locations, X86Assembler* assembler) {
334 Location output = locations->Out();
337 Register temp = locations->GetTemp(0).AsRegister<Register>();
353 LocationSummary* locations = new (arena) LocationSummary(invoke,
356 locations->SetInAt(0, Location::RequiresRegister());
357 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
358 locations->AddTemp(Location::RequiresRegister());
361 static void GenAbsLong(LocationSummary* locations, X86Assembler* assembler) {
362 Location input = locations->InAt(0);
365 Location output = locations->Out();
368 Register temp = locations->GetTemp(0).AsRegister<Register>();
403 static void GenMinMaxFP(LocationSummary* locations,
408 Location op1_loc = locations->InAt(0);
409 Location op2_loc = locations->InAt(1);
410 Location out_loc = locations->Out();
413 // Shortcut for same input locations.
469 if (locations->GetInputCount() == 3 && locations->InAt(2).IsValid()) {
470 DCHECK(locations->InAt(2).IsRegister());
471 Register constant_area = locations->InAt(2).AsRegister<Register>();
504 LocationSummary* locations = new (arena) LocationSummary(invoke,
507 locations->SetInAt(0, Location::RequiresFpuRegister());
508 locations->SetInAt(1, Location::RequiresFpuRegister());
511 locations->SetOut(Location::SameAsFirstInput());
516 locations->SetInAt(2, Location::RequiresRegister());
568 static void GenMinMax(LocationSummary* locations, bool is_min, bool is_long,
570 Location op1_loc = locations->InAt(0);
571 Location op2_loc = locations->InAt(1);
573 // Shortcut for same input locations.
578 DCHECK(locations->Out().Equals(op1_loc));
585 Location output = locations->Out();
593 Register temp = locations->GetTemp(0).AsRegister<Register>();
608 Register out = locations->Out().AsRegister<Register>();
624 LocationSummary* locations = new (arena) LocationSummary(invoke,
627 locations->SetInAt(0, Location::RequiresRegister());
628 locations->SetInAt(1, Location::RequiresRegister());
629 locations->SetOut(Location::SameAsFirstInput());
633 LocationSummary* locations = new (arena) LocationSummary(invoke,
636 locations->SetInAt(0, Location::RequiresRegister());
637 locations->SetInAt(1, Location::RequiresRegister());
638 locations->SetOut(Location::SameAsFirstInput());
640 locations->AddTemp(Location::RequiresRegister());
676 LocationSummary* locations = new (arena) LocationSummary(invoke,
679 locations->SetInAt(0, Location::RequiresFpuRegister());
680 locations->SetOut(Location::RequiresFpuRegister());
688 LocationSummary* locations = invoke->GetLocations();
689 XmmRegister in = locations->InAt(0).AsFpuRegister<XmmRegister>();
690 XmmRegister out = locations->Out().AsFpuRegister<XmmRegister>();
721 LocationSummary* locations = new (arena) LocationSummary(invoke,
724 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetFpuRegisterAt(0)));
725 locations->SetOut(Location::FpuRegisterLocation(XMM0));
727 locations->AddTemp(Location::RegisterLocation(EAX));
734 LocationSummary* locations = invoke->GetLocations();
735 if (locations->WillCall()) {
738 XmmRegister in = locations->InAt(0).AsFpuRegister<XmmRegister>();
739 XmmRegister out = locations->Out().AsFpuRegister<XmmRegister>();
778 LocationSummary* locations = new (arena_) LocationSummary(invoke,
781 locations->SetInAt(0, Location::RequiresFpuRegister());
782 locations->SetOut(Location::RequiresRegister());
783 locations->AddTemp(Location::RequiresFpuRegister());
784 locations->AddTemp(Location::RequiresFpuRegister());
789 LocationSummary* locations = new (arena_) LocationSummary(invoke,
792 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetFpuRegisterAt(0)));
793 locations->SetOut(Location::RegisterLocation(EAX));
795 locations->AddTemp(Location::RegisterLocation(EAX));
799 LocationSummary* locations = invoke->GetLocations();
800 if (locations->WillCall()) {
806 XmmRegister in = locations->InAt(0).AsFpuRegister<XmmRegister>();
807 Register out = locations->Out().AsRegister<Register>();
808 XmmRegister maxInt = locations->GetTemp(0).AsFpuRegister<XmmRegister>();
809 XmmRegister inPlusPointFive = locations->GetTemp(1).AsFpuRegister<XmmRegister>();
846 LocationSummary* locations = new (arena) LocationSummary(invoke,
850 locations->SetInAt(0, Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(0)));
851 locations->SetOut(Location::FpuRegisterLocation(XMM0));
855 LocationSummary* locations = invoke->GetLocations();
856 DCHECK(locations->WillCall());
1000 LocationSummary* locations = new (arena) LocationSummary(invoke,
1004 locations->SetInAt(0, Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(0)));
1005 locations->SetInAt(1, Location::FpuRegisterLocation(calling_convention.GetFpuRegisterAt(1)));
1006 locations->SetOut(Location::FpuRegisterLocation(XMM0));
1035 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1038 locations->SetInAt(0, Location::RequiresRegister());
1039 locations->SetInAt(1, Location::RequiresRegister());
1040 locations->SetOut(Location::SameAsFirstInput());
1044 LocationSummary* locations = invoke->GetLocations();
1051 Register obj = locations->InAt(0).AsRegister<Register>();
1052 Register idx = locations->InAt(1).AsRegister<Register>();
1053 Register out = locations->Out().AsRegister<Register>();
1110 LocationSummary* locations =
1113 locations->SetInAt(0, Location::RequiresRegister());
1114 locations->SetInAt(1, Location::RegisterOrConstant(invoke->InputAt(1)));
1115 locations->SetInAt(2, Location::RequiresRegister());
1116 locations->SetInAt(3, Location::RegisterOrConstant(invoke->InputAt(3)));
1117 locations->SetInAt(4, Location::RegisterOrConstant(invoke->InputAt(4)));
1120 locations->AddTemp(Location::RegisterLocation(ESI));
1121 locations->AddTemp(Location::RegisterLocation(EDI));
1122 locations->AddTemp(Location::RegisterLocation(ECX));
1172 LocationSummary* locations = invoke->GetLocations();
1174 Register src = locations->InAt(0).AsRegister<Register>();
1175 Location srcPos = locations->InAt(1);
1176 Register dest = locations->InAt(2).AsRegister<Register>();
1177 Location destPos = locations->InAt(3);
1178 Location length = locations->InAt(4);
1181 Register src_base = locations->GetTemp(0).AsRegister<Register>();
1183 Register dest_base = locations->GetTemp(1).AsRegister<Register>();
1185 Register count = locations->GetTemp(2).AsRegister<Register>();
1254 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1258 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1259 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
1260 locations->SetOut(Location::RegisterLocation(EAX));
1265 LocationSummary* locations = invoke->GetLocations();
1270 Register argument = locations->InAt(1).AsRegister<Register>();
1281 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1284 locations->SetInAt(0, Location::RequiresRegister());
1285 locations->SetInAt(1, Location::RequiresRegister());
1288 locations->AddTemp(Location::RegisterLocation(ECX));
1289 locations->AddTemp(Location::RegisterLocation(EDI));
1292 locations->SetOut(Location::RegisterLocation(ESI), Location::kOutputOverlap);
1297 LocationSummary* locations = invoke->GetLocations();
1299 Register str = locations->InAt(0).AsRegister<Register>();
1300 Register arg = locations->InAt(1).AsRegister<Register>();
1301 Register ecx = locations->GetTemp(0).AsRegister<Register>();
1302 Register edi = locations->GetTemp(1).AsRegister<Register>();
1303 Register esi = locations->Out().AsRegister<Register>();
1376 LocationSummary* locations = new (allocator) LocationSummary(invoke,
1380 locations->SetInAt(0, Location::RegisterLocation(EDI));
1385 locations->SetInAt(1, Location::RegisterLocation(EAX));
1387 locations->SetInAt(2, Location::RequiresRegister()); // The starting index.
1390 locations->SetOut(Location::SameAsFirstInput());
1393 locations->AddTemp(Location::RegisterLocation(ECX));
1395 locations->AddTemp(Location::RequiresRegister());
1403 LocationSummary* locations = invoke->GetLocations();
1408 Register string_obj = locations->InAt(0).AsRegister<Register>();
1409 Register search_value = locations->InAt(1).AsRegister<Register>();
1410 Register counter = locations->GetTemp(0).AsRegister<Register>();
1411 Register string_length = locations->GetTemp(1).AsRegister<Register>();
1412 Register out = locations->Out().AsRegister<Register>();
1463 Register start_index = locations->InAt(2).AsRegister<Register>();
1527 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1531 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1532 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
1533 locations->SetInAt(2, Location::RegisterLocation(calling_convention.GetRegisterAt(2)));
1534 locations->SetInAt(3, Location::RegisterLocation(calling_convention.GetRegisterAt(3)));
1535 locations->SetOut(Location::RegisterLocation(EAX));
1540 LocationSummary* locations = invoke->GetLocations();
1542 Register byte_array = locations->InAt(0).AsRegister<Register>();
1555 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1559 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1560 locations->SetInAt(1, Location::RegisterLocation(calling_convention.GetRegisterAt(1)));
1561 locations->SetInAt(2, Location::RegisterLocation(calling_convention.GetRegisterAt(2)));
1562 locations->SetOut(Location::RegisterLocation(EAX));
1568 // No need to emit code checking whether `locations->InAt(2)` is a null
1580 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1584 locations->SetInAt(0, Location::RegisterLocation(calling_convention.GetRegisterAt(0)));
1585 locations->SetOut(Location::RegisterLocation(EAX));
1590 LocationSummary* locations = invoke->GetLocations();
1592 Register string_to_copy = locations->InAt(0).AsRegister<Register>();
1606 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1609 locations->SetInAt(0, Location::RequiresRegister());
1610 locations->SetInAt(1, Location::RegisterOrConstant(invoke->InputAt(1)));
1612 locations->SetInAt(2, Location::RegisterLocation(ECX));
1613 locations->SetInAt(3, Location::RequiresRegister());
1614 locations->SetInAt(4, Location::RequiresRegister());
1618 locations->AddTemp(Location::RegisterLocation(ESI));
1619 locations->AddTemp(Location::RegisterLocation(EDI));
1624 LocationSummary* locations = invoke->GetLocations();
1633 Register obj = locations->InAt(0).AsRegister<Register>();
1634 Location srcBegin = locations->InAt(1);
1637 Register srcEnd = locations->InAt(2).AsRegister<Register>();
1638 Register dst = locations->InAt(3).AsRegister<Register>();
1639 Register dstBegin = locations->InAt(4).AsRegister<Register>();
1681 static void GenPeek(LocationSummary* locations, Primitive::Type size, X86Assembler* assembler) {
1682 Register address = locations->InAt(0).AsRegisterPairLow<Register>();
1683 Location out_loc = locations->Out();
1740 LocationSummary* locations = new (arena) LocationSummary(invoke,
1743 locations->SetInAt(0, Location::RequiresRegister());
1746 locations->SetInAt(1, Location::ByteRegisterOrConstant(EDX, value));
1748 locations->SetInAt(1, Location::RegisterOrConstant(value));
1752 static void GenPoke(LocationSummary* locations, Primitive::Type size, X86Assembler* assembler) {
1753 Register address = locations->InAt(0).AsRegisterPairLow<Register>();
1754 Location value_loc = locations->InAt(1);
1831 LocationSummary* locations = new (arena_) LocationSummary(invoke,
1834 locations->SetOut(Location::RequiresRegister());
1847 LocationSummary* locations = invoke->GetLocations();
1848 Location base_loc = locations->InAt(1);
1850 Location offset_loc = locations->InAt(2);
1852 Location output_loc = locations->Out();
1865 Location temp = locations->GetTemp(0);
1885 XmmRegister temp = locations->GetTemp(0).AsFpuRegister<XmmRegister>();
1910 LocationSummary* locations = new (arena) LocationSummary(invoke,
1915 locations->SetInAt(0, Location::NoLocation()); // Unused receiver.
1916 locations->SetInAt(1, Location::RequiresRegister());
1917 locations->SetInAt(2, Location::RequiresRegister());
1921 locations->AddTemp(Location::RequiresFpuRegister());
1922 locations->SetOut(Location::RequiresRegister());
1924 locations->SetOut(Location::RequiresRegister(), Location::kOutputOverlap);
1927 locations->SetOut(Location::RequiresRegister());
1932 locations->AddTemp(Location::RequiresRegister());
1980 LocationSummary* locations = new (arena) LocationSummary(invoke,
1983 locations->SetInAt(0, Location::NoLocation()); // Unused receiver.
1984 locations->SetInAt(1, Location::RequiresRegister());
1985 locations->SetInAt(2, Location::RequiresRegister());
1986 locations->SetInAt(3, Location::RequiresRegister());
1989 locations->AddTemp(Location::RequiresRegister()); // Possibly used for reference poisoning too.
1991 locations->AddTemp(Location::RegisterLocation(ECX));
1993 locations->AddTemp(Location::RequiresFpuRegister());
1994 locations->AddTemp(Location::RequiresFpuRegister());
2037 static void GenUnsafePut(LocationSummary* locations,
2042 Register base = locations->InAt(1).AsRegister<Register>();
2043 Register offset = locations->InAt(2).AsRegisterPairLow<Register>();
2044 Location value_loc = locations->InAt(3);
2050 XmmRegister temp1 = locations->GetTemp(0).AsFpuRegister<XmmRegister>();
2051 XmmRegister temp2 = locations->GetTemp(1).AsFpuRegister<XmmRegister>();
2061 Register temp = locations->GetTemp(0).AsRegister<Register>();
2075 codegen->MarkGCCard(locations->GetTemp(0).AsRegister<Register>(),
2076 locations->GetTemp(1).AsRegister<Register>(),
2113 LocationSummary* locations = new (arena) LocationSummary(invoke,
2116 locations->SetInAt(0, Location::NoLocation()); // Unused receiver.
2117 locations->SetInAt(1, Location::RequiresRegister());
2120 locations->SetInAt(2, Location::RequiresRegister());
2124 locations->SetInAt(3, Location::RegisterPairLocation(EAX, EDX));
2125 locations->SetInAt(4, Location::RegisterPairLocation(EBX, ECX));
2127 locations->SetInAt(3, Location::RegisterLocation(EAX));
2128 locations->SetInAt(4, Location::RequiresRegister());
2132 locations->SetOut(Location::RegisterLocation(EAX));
2135 locations->AddTemp(Location::RequiresRegister()); // Possibly used for reference poisoning too.
2137 locations->AddTemp(Location::RegisterLocation(ECX));
2166 LocationSummary* locations = invoke->GetLocations();
2168 Register base = locations->InAt(1).AsRegister<Register>();
2169 Register offset = locations->InAt(2).AsRegisterPairLow<Register>();
2170 Location out = locations->Out();
2174 Register expected = locations->InAt(3).AsRegister<Register>();
2177 Register value = locations->InAt(4).AsRegister<Register>();
2181 codegen->MarkGCCard(locations->GetTemp(0).AsRegister<Register>(),
2182 locations->GetTemp(1).AsRegister<Register>(),
2193 value = locations->GetTemp(0).AsRegister<Register>();
2247 DCHECK_EQ(locations->InAt(3).AsRegister<Register>(), EAX);
2249 locations->InAt(4).AsRegister<Register>());
2253 DCHECK_EQ(locations->InAt(3).AsRegisterPairLow<Register>(), EAX);
2254 DCHECK_EQ(locations->InAt(3).AsRegisterPairHigh<Register>(), EDX);
2255 DCHECK_EQ(locations->InAt(4).AsRegisterPairLow<Register>(), EBX);
2256 DCHECK_EQ(locations->InAt(4).AsRegisterPairHigh<Register>(), ECX);
2284 LocationSummary* locations = new (arena_) LocationSummary(invoke,
2287 locations->SetInAt(0, Location::RequiresRegister());
2288 locations->SetOut(Location::SameAsFirstInput());
2289 locations->AddTemp(Location::RequiresRegister());
2306 LocationSummary* locations = invoke->GetLocations();
2308 Register reg = locations->InAt(0).AsRegister<Register>();
2309 Register temp = locations->GetTemp(0).AsRegister<Register>();
2327 LocationSummary* locations = new (arena_) LocationSummary(invoke,
2330 locations->SetInAt(0, Location::RequiresRegister());
2331 locations->SetOut(Location::SameAsFirstInput());
2332 locations->AddTemp(Location::RequiresRegister());
2337 LocationSummary* locations = invoke->GetLocations();
2339 Register reg_low = locations->InAt(0).AsRegisterPairLow<Register>();
2340 Register reg_high = locations->InAt(0).AsRegisterPairHigh<Register>();
2341 Register temp = locations->GetTemp(0).AsRegister<Register>();
2370 LocationSummary* locations = new (arena) LocationSummary(invoke,
2374 locations->AddTemp(Location::RequiresRegister());
2376 locations->SetInAt(0, Location::Any());
2377 locations->SetOut(Location::RequiresRegister());
2383 LocationSummary* locations = invoke->GetLocations();
2384 Location src = locations->InAt(0);
2385 Register out = locations->Out().AsRegister<Register>();
2407 Register temp = locations->GetTemp(0).AsRegister<Register>();
2437 LocationSummary* locations = new (arena) LocationSummary(invoke,
2441 locations->SetInAt(0, Location::RequiresRegister());
2443 locations->SetInAt(0, Location::Any());
2445 locations->SetOut(Location::RequiresRegister());
2451 LocationSummary* locations = invoke->GetLocations();
2452 Location src = locations->InAt(0);
2453 Register out = locations->Out().AsRegister<Register>();
2542 LocationSummary* locations = new (arena) LocationSummary(invoke,
2546 locations->SetInAt(0, Location::RequiresRegister());
2548 locations->SetInAt(0, Location::Any());
2550 locations->SetOut(Location::RequiresRegister());
2556 LocationSummary* locations = invoke->GetLocations();
2557 Location src = locations->InAt(0);
2558 Register out = locations->Out().AsRegister<Register>();