Lines Matching refs:invoke
55 bool IntrinsicLocationsBuilderX86_64::TryDispatch(HInvoke* invoke) { in TryDispatch() argument
56 Dispatch(invoke); in TryDispatch()
57 LocationSummary* res = invoke->GetLocations(); in TryDispatch()
126 static void CreateFPToIntLocations(ArenaAllocator* allocator, HInvoke* invoke) { in CreateFPToIntLocations() argument
128 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateFPToIntLocations()
133 static void CreateIntToFPLocations(ArenaAllocator* allocator, HInvoke* invoke) { in CreateIntToFPLocations() argument
135 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateIntToFPLocations()
152 void IntrinsicLocationsBuilderX86_64::VisitDoubleDoubleToRawLongBits(HInvoke* invoke) { in VisitDoubleDoubleToRawLongBits() argument
153 CreateFPToIntLocations(allocator_, invoke); in VisitDoubleDoubleToRawLongBits()
155 void IntrinsicLocationsBuilderX86_64::VisitDoubleLongBitsToDouble(HInvoke* invoke) { in VisitDoubleLongBitsToDouble() argument
156 CreateIntToFPLocations(allocator_, invoke); in VisitDoubleLongBitsToDouble()
159 void IntrinsicCodeGeneratorX86_64::VisitDoubleDoubleToRawLongBits(HInvoke* invoke) { in VisitDoubleDoubleToRawLongBits() argument
160 MoveFPToInt(invoke->GetLocations(), /* is64bit= */ true, GetAssembler()); in VisitDoubleDoubleToRawLongBits()
162 void IntrinsicCodeGeneratorX86_64::VisitDoubleLongBitsToDouble(HInvoke* invoke) { in VisitDoubleLongBitsToDouble() argument
163 MoveIntToFP(invoke->GetLocations(), /* is64bit= */ true, GetAssembler()); in VisitDoubleLongBitsToDouble()
166 void IntrinsicLocationsBuilderX86_64::VisitFloatFloatToRawIntBits(HInvoke* invoke) { in VisitFloatFloatToRawIntBits() argument
167 CreateFPToIntLocations(allocator_, invoke); in VisitFloatFloatToRawIntBits()
169 void IntrinsicLocationsBuilderX86_64::VisitFloatIntBitsToFloat(HInvoke* invoke) { in VisitFloatIntBitsToFloat() argument
170 CreateIntToFPLocations(allocator_, invoke); in VisitFloatIntBitsToFloat()
173 void IntrinsicCodeGeneratorX86_64::VisitFloatFloatToRawIntBits(HInvoke* invoke) { in VisitFloatFloatToRawIntBits() argument
174 MoveFPToInt(invoke->GetLocations(), /* is64bit= */ false, GetAssembler()); in VisitFloatFloatToRawIntBits()
176 void IntrinsicCodeGeneratorX86_64::VisitFloatIntBitsToFloat(HInvoke* invoke) { in VisitFloatIntBitsToFloat() argument
177 MoveIntToFP(invoke->GetLocations(), /* is64bit= */ false, GetAssembler()); in VisitFloatIntBitsToFloat()
180 static void CreateIntToIntLocations(ArenaAllocator* allocator, HInvoke* invoke) { in CreateIntToIntLocations() argument
182 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateIntToIntLocations()
210 void IntrinsicLocationsBuilderX86_64::VisitIntegerReverseBytes(HInvoke* invoke) { in VisitIntegerReverseBytes() argument
211 CreateIntToIntLocations(allocator_, invoke); in VisitIntegerReverseBytes()
214 void IntrinsicCodeGeneratorX86_64::VisitIntegerReverseBytes(HInvoke* invoke) { in VisitIntegerReverseBytes() argument
215 GenReverseBytes(invoke->GetLocations(), DataType::Type::kInt32, GetAssembler()); in VisitIntegerReverseBytes()
218 void IntrinsicLocationsBuilderX86_64::VisitLongReverseBytes(HInvoke* invoke) { in VisitLongReverseBytes() argument
219 CreateIntToIntLocations(allocator_, invoke); in VisitLongReverseBytes()
222 void IntrinsicCodeGeneratorX86_64::VisitLongReverseBytes(HInvoke* invoke) { in VisitLongReverseBytes() argument
223 GenReverseBytes(invoke->GetLocations(), DataType::Type::kInt64, GetAssembler()); in VisitLongReverseBytes()
226 void IntrinsicLocationsBuilderX86_64::VisitShortReverseBytes(HInvoke* invoke) { in VisitShortReverseBytes() argument
227 CreateIntToIntLocations(allocator_, invoke); in VisitShortReverseBytes()
230 void IntrinsicCodeGeneratorX86_64::VisitShortReverseBytes(HInvoke* invoke) { in VisitShortReverseBytes() argument
231 GenReverseBytes(invoke->GetLocations(), DataType::Type::kInt16, GetAssembler()); in VisitShortReverseBytes()
234 static void CreateFPToFPLocations(ArenaAllocator* allocator, HInvoke* invoke) { in CreateFPToFPLocations() argument
236 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateFPToFPLocations()
241 void IntrinsicLocationsBuilderX86_64::VisitMathSqrt(HInvoke* invoke) { in VisitMathSqrt() argument
242 CreateFPToFPLocations(allocator_, invoke); in VisitMathSqrt()
245 void IntrinsicCodeGeneratorX86_64::VisitMathSqrt(HInvoke* invoke) { in VisitMathSqrt() argument
246 LocationSummary* locations = invoke->GetLocations(); in VisitMathSqrt()
254 HInvoke* invoke, in CreateSSE41FPToFPLocations() argument
261 CreateFPToFPLocations(allocator, invoke); in CreateSSE41FPToFPLocations()
264 static void GenSSE41FPToFPIntrinsic(HInvoke* invoke, X86_64Assembler* assembler, int round_mode) { in GenSSE41FPToFPIntrinsic() argument
265 LocationSummary* locations = invoke->GetLocations(); in GenSSE41FPToFPIntrinsic()
272 void IntrinsicLocationsBuilderX86_64::VisitMathCeil(HInvoke* invoke) { in VisitMathCeil() argument
273 CreateSSE41FPToFPLocations(allocator_, invoke, codegen_); in VisitMathCeil()
276 void IntrinsicCodeGeneratorX86_64::VisitMathCeil(HInvoke* invoke) { in VisitMathCeil() argument
277 GenSSE41FPToFPIntrinsic(invoke, GetAssembler(), 2); in VisitMathCeil()
280 void IntrinsicLocationsBuilderX86_64::VisitMathFloor(HInvoke* invoke) { in VisitMathFloor() argument
281 CreateSSE41FPToFPLocations(allocator_, invoke, codegen_); in VisitMathFloor()
284 void IntrinsicCodeGeneratorX86_64::VisitMathFloor(HInvoke* invoke) { in VisitMathFloor() argument
285 GenSSE41FPToFPIntrinsic(invoke, GetAssembler(), 1); in VisitMathFloor()
288 void IntrinsicLocationsBuilderX86_64::VisitMathRint(HInvoke* invoke) { in VisitMathRint() argument
289 CreateSSE41FPToFPLocations(allocator_, invoke, codegen_); in VisitMathRint()
292 void IntrinsicCodeGeneratorX86_64::VisitMathRint(HInvoke* invoke) { in VisitMathRint() argument
293 GenSSE41FPToFPIntrinsic(invoke, GetAssembler(), 0); in VisitMathRint()
297 HInvoke* invoke, in CreateSSE41FPToIntLocations() argument
305 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateSSE41FPToIntLocations()
312 void IntrinsicLocationsBuilderX86_64::VisitMathRoundFloat(HInvoke* invoke) { in VisitMathRoundFloat() argument
313 CreateSSE41FPToIntLocations(allocator_, invoke, codegen_); in VisitMathRoundFloat()
316 void IntrinsicCodeGeneratorX86_64::VisitMathRoundFloat(HInvoke* invoke) { in VisitMathRoundFloat() argument
317 LocationSummary* locations = invoke->GetLocations(); in VisitMathRoundFloat()
353 void IntrinsicLocationsBuilderX86_64::VisitMathRoundDouble(HInvoke* invoke) { in VisitMathRoundDouble() argument
354 CreateSSE41FPToIntLocations(allocator_, invoke, codegen_); in VisitMathRoundDouble()
357 void IntrinsicCodeGeneratorX86_64::VisitMathRoundDouble(HInvoke* invoke) { in VisitMathRoundDouble() argument
358 LocationSummary* locations = invoke->GetLocations(); in VisitMathRoundDouble()
394 static void CreateFPToFPCallLocations(ArenaAllocator* allocator, HInvoke* invoke) { in CreateFPToFPCallLocations() argument
396 new (allocator) LocationSummary(invoke, LocationSummary::kCallOnMainOnly, kIntrinsified); in CreateFPToFPCallLocations()
404 static void GenFPToFPCall(HInvoke* invoke, CodeGeneratorX86_64* codegen, in GenFPToFPCall() argument
406 LocationSummary* locations = invoke->GetLocations(); in GenFPToFPCall()
408 DCHECK(invoke->IsInvokeStaticOrDirect()); in GenFPToFPCall()
410 codegen->InvokeRuntime(entry, invoke, invoke->GetDexPc()); in GenFPToFPCall()
413 void IntrinsicLocationsBuilderX86_64::VisitMathCos(HInvoke* invoke) { in VisitMathCos() argument
414 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathCos()
417 void IntrinsicCodeGeneratorX86_64::VisitMathCos(HInvoke* invoke) { in VisitMathCos() argument
418 GenFPToFPCall(invoke, codegen_, kQuickCos); in VisitMathCos()
421 void IntrinsicLocationsBuilderX86_64::VisitMathSin(HInvoke* invoke) { in VisitMathSin() argument
422 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathSin()
425 void IntrinsicCodeGeneratorX86_64::VisitMathSin(HInvoke* invoke) { in VisitMathSin() argument
426 GenFPToFPCall(invoke, codegen_, kQuickSin); in VisitMathSin()
429 void IntrinsicLocationsBuilderX86_64::VisitMathAcos(HInvoke* invoke) { in VisitMathAcos() argument
430 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathAcos()
433 void IntrinsicCodeGeneratorX86_64::VisitMathAcos(HInvoke* invoke) { in VisitMathAcos() argument
434 GenFPToFPCall(invoke, codegen_, kQuickAcos); in VisitMathAcos()
437 void IntrinsicLocationsBuilderX86_64::VisitMathAsin(HInvoke* invoke) { in VisitMathAsin() argument
438 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathAsin()
441 void IntrinsicCodeGeneratorX86_64::VisitMathAsin(HInvoke* invoke) { in VisitMathAsin() argument
442 GenFPToFPCall(invoke, codegen_, kQuickAsin); in VisitMathAsin()
445 void IntrinsicLocationsBuilderX86_64::VisitMathAtan(HInvoke* invoke) { in VisitMathAtan() argument
446 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathAtan()
449 void IntrinsicCodeGeneratorX86_64::VisitMathAtan(HInvoke* invoke) { in VisitMathAtan() argument
450 GenFPToFPCall(invoke, codegen_, kQuickAtan); in VisitMathAtan()
453 void IntrinsicLocationsBuilderX86_64::VisitMathCbrt(HInvoke* invoke) { in VisitMathCbrt() argument
454 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathCbrt()
457 void IntrinsicCodeGeneratorX86_64::VisitMathCbrt(HInvoke* invoke) { in VisitMathCbrt() argument
458 GenFPToFPCall(invoke, codegen_, kQuickCbrt); in VisitMathCbrt()
461 void IntrinsicLocationsBuilderX86_64::VisitMathCosh(HInvoke* invoke) { in VisitMathCosh() argument
462 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathCosh()
465 void IntrinsicCodeGeneratorX86_64::VisitMathCosh(HInvoke* invoke) { in VisitMathCosh() argument
466 GenFPToFPCall(invoke, codegen_, kQuickCosh); in VisitMathCosh()
469 void IntrinsicLocationsBuilderX86_64::VisitMathExp(HInvoke* invoke) { in VisitMathExp() argument
470 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathExp()
473 void IntrinsicCodeGeneratorX86_64::VisitMathExp(HInvoke* invoke) { in VisitMathExp() argument
474 GenFPToFPCall(invoke, codegen_, kQuickExp); in VisitMathExp()
477 void IntrinsicLocationsBuilderX86_64::VisitMathExpm1(HInvoke* invoke) { in VisitMathExpm1() argument
478 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathExpm1()
481 void IntrinsicCodeGeneratorX86_64::VisitMathExpm1(HInvoke* invoke) { in VisitMathExpm1() argument
482 GenFPToFPCall(invoke, codegen_, kQuickExpm1); in VisitMathExpm1()
485 void IntrinsicLocationsBuilderX86_64::VisitMathLog(HInvoke* invoke) { in VisitMathLog() argument
486 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathLog()
489 void IntrinsicCodeGeneratorX86_64::VisitMathLog(HInvoke* invoke) { in VisitMathLog() argument
490 GenFPToFPCall(invoke, codegen_, kQuickLog); in VisitMathLog()
493 void IntrinsicLocationsBuilderX86_64::VisitMathLog10(HInvoke* invoke) { in VisitMathLog10() argument
494 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathLog10()
497 void IntrinsicCodeGeneratorX86_64::VisitMathLog10(HInvoke* invoke) { in VisitMathLog10() argument
498 GenFPToFPCall(invoke, codegen_, kQuickLog10); in VisitMathLog10()
501 void IntrinsicLocationsBuilderX86_64::VisitMathSinh(HInvoke* invoke) { in VisitMathSinh() argument
502 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathSinh()
505 void IntrinsicCodeGeneratorX86_64::VisitMathSinh(HInvoke* invoke) { in VisitMathSinh() argument
506 GenFPToFPCall(invoke, codegen_, kQuickSinh); in VisitMathSinh()
509 void IntrinsicLocationsBuilderX86_64::VisitMathTan(HInvoke* invoke) { in VisitMathTan() argument
510 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathTan()
513 void IntrinsicCodeGeneratorX86_64::VisitMathTan(HInvoke* invoke) { in VisitMathTan() argument
514 GenFPToFPCall(invoke, codegen_, kQuickTan); in VisitMathTan()
517 void IntrinsicLocationsBuilderX86_64::VisitMathTanh(HInvoke* invoke) { in VisitMathTanh() argument
518 CreateFPToFPCallLocations(allocator_, invoke); in VisitMathTanh()
521 void IntrinsicCodeGeneratorX86_64::VisitMathTanh(HInvoke* invoke) { in VisitMathTanh() argument
522 GenFPToFPCall(invoke, codegen_, kQuickTanh); in VisitMathTanh()
525 static void CreateFPFPToFPCallLocations(ArenaAllocator* allocator, HInvoke* invoke) { in CreateFPFPToFPCallLocations() argument
527 new (allocator) LocationSummary(invoke, LocationSummary::kCallOnMainOnly, kIntrinsified); in CreateFPFPToFPCallLocations()
536 void IntrinsicLocationsBuilderX86_64::VisitMathAtan2(HInvoke* invoke) { in VisitMathAtan2() argument
537 CreateFPFPToFPCallLocations(allocator_, invoke); in VisitMathAtan2()
540 void IntrinsicCodeGeneratorX86_64::VisitMathAtan2(HInvoke* invoke) { in VisitMathAtan2() argument
541 GenFPToFPCall(invoke, codegen_, kQuickAtan2); in VisitMathAtan2()
544 void IntrinsicLocationsBuilderX86_64::VisitMathPow(HInvoke* invoke) { in VisitMathPow() argument
545 CreateFPFPToFPCallLocations(allocator_, invoke); in VisitMathPow()
548 void IntrinsicCodeGeneratorX86_64::VisitMathPow(HInvoke* invoke) { in VisitMathPow() argument
549 GenFPToFPCall(invoke, codegen_, kQuickPow); in VisitMathPow()
552 void IntrinsicLocationsBuilderX86_64::VisitMathHypot(HInvoke* invoke) { in VisitMathHypot() argument
553 CreateFPFPToFPCallLocations(allocator_, invoke); in VisitMathHypot()
556 void IntrinsicCodeGeneratorX86_64::VisitMathHypot(HInvoke* invoke) { in VisitMathHypot() argument
557 GenFPToFPCall(invoke, codegen_, kQuickHypot); in VisitMathHypot()
560 void IntrinsicLocationsBuilderX86_64::VisitMathNextAfter(HInvoke* invoke) { in VisitMathNextAfter() argument
561 CreateFPFPToFPCallLocations(allocator_, invoke); in VisitMathNextAfter()
564 void IntrinsicCodeGeneratorX86_64::VisitMathNextAfter(HInvoke* invoke) { in VisitMathNextAfter() argument
565 GenFPToFPCall(invoke, codegen_, kQuickNextAfter); in VisitMathNextAfter()
568 void IntrinsicLocationsBuilderX86_64::VisitSystemArrayCopyChar(HInvoke* invoke) { in VisitSystemArrayCopyChar() argument
571 HIntConstant* src_pos = invoke->InputAt(1)->AsIntConstant(); in VisitSystemArrayCopyChar()
572 HIntConstant* dest_pos = invoke->InputAt(3)->AsIntConstant(); in VisitSystemArrayCopyChar()
582 HIntConstant* length = invoke->InputAt(4)->AsIntConstant(); in VisitSystemArrayCopyChar()
592 new (allocator_) LocationSummary(invoke, LocationSummary::kCallOnSlowPath, kIntrinsified); in VisitSystemArrayCopyChar()
595 locations->SetInAt(1, Location::RegisterOrConstant(invoke->InputAt(1))); in VisitSystemArrayCopyChar()
597 locations->SetInAt(3, Location::RegisterOrConstant(invoke->InputAt(3))); in VisitSystemArrayCopyChar()
598 locations->SetInAt(4, Location::RegisterOrConstant(invoke->InputAt(4))); in VisitSystemArrayCopyChar()
670 void IntrinsicCodeGeneratorX86_64::VisitSystemArrayCopyChar(HInvoke* invoke) { in VisitSystemArrayCopyChar() argument
672 LocationSummary* locations = invoke->GetLocations(); in VisitSystemArrayCopyChar()
688 SlowPathCode* slow_path = new (codegen_->GetScopedAllocator()) IntrinsicSlowPathX86_64(invoke); in VisitSystemArrayCopyChar()
752 void IntrinsicLocationsBuilderX86_64::VisitSystemArrayCopy(HInvoke* invoke) { in VisitSystemArrayCopy() argument
759 CodeGenerator::CreateSystemArrayCopyLocationSummary(invoke); in VisitSystemArrayCopy()
803 void IntrinsicCodeGeneratorX86_64::VisitSystemArrayCopy(HInvoke* invoke) { in VisitSystemArrayCopy() argument
809 LocationSummary* locations = invoke->GetLocations(); in VisitSystemArrayCopy()
831 new (codegen_->GetScopedAllocator()) IntrinsicSlowPathX86_64(invoke); in VisitSystemArrayCopy()
835 SystemArrayCopyOptimizations optimizations(invoke); in VisitSystemArrayCopy()
924 invoke, temp1_loc, dest, class_offset, /* needs_null_check= */ false); in VisitSystemArrayCopy()
932 invoke, temp2_loc, src, class_offset, /* needs_null_check= */ false); in VisitSystemArrayCopy()
956 invoke, TMP_loc, temp1, component_offset, /* needs_null_check= */ false); in VisitSystemArrayCopy()
979 invoke, TMP_loc, temp2, component_offset, /* needs_null_check= */ false); in VisitSystemArrayCopy()
1003 invoke, temp1_loc, temp1, component_offset, /* needs_null_check= */ false); in VisitSystemArrayCopy()
1031 invoke, temp1_loc, src, class_offset, /* needs_null_check= */ false); in VisitSystemArrayCopy()
1034 invoke, TMP_loc, temp1, component_offset, /* needs_null_check= */ false); in VisitSystemArrayCopy()
1105 new (codegen_->GetScopedAllocator()) ReadBarrierSystemArrayCopySlowPathX86_64(invoke); in VisitSystemArrayCopy()
1148 void IntrinsicLocationsBuilderX86_64::VisitStringCompareTo(HInvoke* invoke) { in VisitStringCompareTo() argument
1150 invoke, LocationSummary::kCallOnMainAndSlowPath, kIntrinsified); in VisitStringCompareTo()
1157 void IntrinsicCodeGeneratorX86_64::VisitStringCompareTo(HInvoke* invoke) { in VisitStringCompareTo() argument
1159 LocationSummary* locations = invoke->GetLocations(); in VisitStringCompareTo()
1162 DCHECK(!invoke->CanDoImplicitNullCheckOn(invoke->InputAt(0))); in VisitStringCompareTo()
1166 SlowPathCode* slow_path = new (codegen_->GetScopedAllocator()) IntrinsicSlowPathX86_64(invoke); in VisitStringCompareTo()
1170 codegen_->InvokeRuntime(kQuickStringCompareTo, invoke, invoke->GetDexPc(), slow_path); in VisitStringCompareTo()
1174 void IntrinsicLocationsBuilderX86_64::VisitStringEquals(HInvoke* invoke) { in VisitStringEquals() argument
1176 new (allocator_) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in VisitStringEquals()
1188 void IntrinsicCodeGeneratorX86_64::VisitStringEquals(HInvoke* invoke) { in VisitStringEquals() argument
1190 LocationSummary* locations = invoke->GetLocations(); in VisitStringEquals()
1206 DCHECK(!invoke->CanDoImplicitNullCheckOn(invoke->InputAt(0))); in VisitStringEquals()
1208 StringEqualsOptimizations optimizations(invoke); in VisitStringEquals()
1291 static void CreateStringIndexOfLocations(HInvoke* invoke, in CreateStringIndexOfLocations() argument
1294 LocationSummary* locations = new (allocator) LocationSummary(invoke, in CreateStringIndexOfLocations()
1316 static void GenerateStringIndexOf(HInvoke* invoke, in GenerateStringIndexOf() argument
1320 LocationSummary* locations = invoke->GetLocations(); in GenerateStringIndexOf()
1323 DCHECK(!invoke->CanDoImplicitNullCheckOn(invoke->InputAt(0))); in GenerateStringIndexOf()
1340 HInstruction* code_point = invoke->InputAt(1); in GenerateStringIndexOf()
1346 slow_path = new (codegen->GetScopedAllocator()) IntrinsicSlowPathX86_64(invoke); in GenerateStringIndexOf()
1354 slow_path = new (codegen->GetScopedAllocator()) IntrinsicSlowPathX86_64(invoke); in GenerateStringIndexOf()
1458 void IntrinsicLocationsBuilderX86_64::VisitStringIndexOf(HInvoke* invoke) { in VisitStringIndexOf() argument
1459 CreateStringIndexOfLocations(invoke, allocator_, /* start_at_zero= */ true); in VisitStringIndexOf()
1462 void IntrinsicCodeGeneratorX86_64::VisitStringIndexOf(HInvoke* invoke) { in VisitStringIndexOf() argument
1463 GenerateStringIndexOf(invoke, GetAssembler(), codegen_, /* start_at_zero= */ true); in VisitStringIndexOf()
1466 void IntrinsicLocationsBuilderX86_64::VisitStringIndexOfAfter(HInvoke* invoke) { in VisitStringIndexOfAfter() argument
1467 CreateStringIndexOfLocations(invoke, allocator_, /* start_at_zero= */ false); in VisitStringIndexOfAfter()
1470 void IntrinsicCodeGeneratorX86_64::VisitStringIndexOfAfter(HInvoke* invoke) { in VisitStringIndexOfAfter() argument
1471 GenerateStringIndexOf(invoke, GetAssembler(), codegen_, /* start_at_zero= */ false); in VisitStringIndexOfAfter()
1474 void IntrinsicLocationsBuilderX86_64::VisitStringNewStringFromBytes(HInvoke* invoke) { in VisitStringNewStringFromBytes() argument
1476 invoke, LocationSummary::kCallOnMainAndSlowPath, kIntrinsified); in VisitStringNewStringFromBytes()
1485 void IntrinsicCodeGeneratorX86_64::VisitStringNewStringFromBytes(HInvoke* invoke) { in VisitStringNewStringFromBytes() argument
1487 LocationSummary* locations = invoke->GetLocations(); in VisitStringNewStringFromBytes()
1491 SlowPathCode* slow_path = new (codegen_->GetScopedAllocator()) IntrinsicSlowPathX86_64(invoke); in VisitStringNewStringFromBytes()
1495 codegen_->InvokeRuntime(kQuickAllocStringFromBytes, invoke, invoke->GetDexPc()); in VisitStringNewStringFromBytes()
1500 void IntrinsicLocationsBuilderX86_64::VisitStringNewStringFromChars(HInvoke* invoke) { in VisitStringNewStringFromChars() argument
1502 new (allocator_) LocationSummary(invoke, LocationSummary::kCallOnMainOnly, kIntrinsified); in VisitStringNewStringFromChars()
1510 void IntrinsicCodeGeneratorX86_64::VisitStringNewStringFromChars(HInvoke* invoke) { in VisitStringNewStringFromChars() argument
1517 codegen_->InvokeRuntime(kQuickAllocStringFromChars, invoke, invoke->GetDexPc()); in VisitStringNewStringFromChars()
1521 void IntrinsicLocationsBuilderX86_64::VisitStringNewStringFromString(HInvoke* invoke) { in VisitStringNewStringFromString() argument
1523 invoke, LocationSummary::kCallOnMainAndSlowPath, kIntrinsified); in VisitStringNewStringFromString()
1529 void IntrinsicCodeGeneratorX86_64::VisitStringNewStringFromString(HInvoke* invoke) { in VisitStringNewStringFromString() argument
1531 LocationSummary* locations = invoke->GetLocations(); in VisitStringNewStringFromString()
1535 SlowPathCode* slow_path = new (codegen_->GetScopedAllocator()) IntrinsicSlowPathX86_64(invoke); in VisitStringNewStringFromString()
1539 codegen_->InvokeRuntime(kQuickAllocStringFromString, invoke, invoke->GetDexPc()); in VisitStringNewStringFromString()
1544 void IntrinsicLocationsBuilderX86_64::VisitStringGetCharsNoCheck(HInvoke* invoke) { in VisitStringGetCharsNoCheck() argument
1547 new (allocator_) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in VisitStringGetCharsNoCheck()
1549 locations->SetInAt(1, Location::RegisterOrConstant(invoke->InputAt(1))); in VisitStringGetCharsNoCheck()
1560 void IntrinsicCodeGeneratorX86_64::VisitStringGetCharsNoCheck(HInvoke* invoke) { in VisitStringGetCharsNoCheck() argument
1562 LocationSummary* locations = invoke->GetLocations(); in VisitStringGetCharsNoCheck()
1659 void IntrinsicLocationsBuilderX86_64::VisitMemoryPeekByte(HInvoke* invoke) { in VisitMemoryPeekByte() argument
1660 CreateIntToIntLocations(allocator_, invoke); in VisitMemoryPeekByte()
1663 void IntrinsicCodeGeneratorX86_64::VisitMemoryPeekByte(HInvoke* invoke) { in VisitMemoryPeekByte() argument
1664 GenPeek(invoke->GetLocations(), DataType::Type::kInt8, GetAssembler()); in VisitMemoryPeekByte()
1667 void IntrinsicLocationsBuilderX86_64::VisitMemoryPeekIntNative(HInvoke* invoke) { in VisitMemoryPeekIntNative() argument
1668 CreateIntToIntLocations(allocator_, invoke); in VisitMemoryPeekIntNative()
1671 void IntrinsicCodeGeneratorX86_64::VisitMemoryPeekIntNative(HInvoke* invoke) { in VisitMemoryPeekIntNative() argument
1672 GenPeek(invoke->GetLocations(), DataType::Type::kInt32, GetAssembler()); in VisitMemoryPeekIntNative()
1675 void IntrinsicLocationsBuilderX86_64::VisitMemoryPeekLongNative(HInvoke* invoke) { in VisitMemoryPeekLongNative() argument
1676 CreateIntToIntLocations(allocator_, invoke); in VisitMemoryPeekLongNative()
1679 void IntrinsicCodeGeneratorX86_64::VisitMemoryPeekLongNative(HInvoke* invoke) { in VisitMemoryPeekLongNative() argument
1680 GenPeek(invoke->GetLocations(), DataType::Type::kInt64, GetAssembler()); in VisitMemoryPeekLongNative()
1683 void IntrinsicLocationsBuilderX86_64::VisitMemoryPeekShortNative(HInvoke* invoke) { in VisitMemoryPeekShortNative() argument
1684 CreateIntToIntLocations(allocator_, invoke); in VisitMemoryPeekShortNative()
1687 void IntrinsicCodeGeneratorX86_64::VisitMemoryPeekShortNative(HInvoke* invoke) { in VisitMemoryPeekShortNative() argument
1688 GenPeek(invoke->GetLocations(), DataType::Type::kInt16, GetAssembler()); in VisitMemoryPeekShortNative()
1691 static void CreateIntIntToVoidLocations(ArenaAllocator* allocator, HInvoke* invoke) { in CreateIntIntToVoidLocations() argument
1693 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateIntIntToVoidLocations()
1695 locations->SetInAt(1, Location::RegisterOrInt32Constant(invoke->InputAt(1))); in CreateIntIntToVoidLocations()
1744 void IntrinsicLocationsBuilderX86_64::VisitMemoryPokeByte(HInvoke* invoke) { in VisitMemoryPokeByte() argument
1745 CreateIntIntToVoidLocations(allocator_, invoke); in VisitMemoryPokeByte()
1748 void IntrinsicCodeGeneratorX86_64::VisitMemoryPokeByte(HInvoke* invoke) { in VisitMemoryPokeByte() argument
1749 GenPoke(invoke->GetLocations(), DataType::Type::kInt8, GetAssembler()); in VisitMemoryPokeByte()
1752 void IntrinsicLocationsBuilderX86_64::VisitMemoryPokeIntNative(HInvoke* invoke) { in VisitMemoryPokeIntNative() argument
1753 CreateIntIntToVoidLocations(allocator_, invoke); in VisitMemoryPokeIntNative()
1756 void IntrinsicCodeGeneratorX86_64::VisitMemoryPokeIntNative(HInvoke* invoke) { in VisitMemoryPokeIntNative() argument
1757 GenPoke(invoke->GetLocations(), DataType::Type::kInt32, GetAssembler()); in VisitMemoryPokeIntNative()
1760 void IntrinsicLocationsBuilderX86_64::VisitMemoryPokeLongNative(HInvoke* invoke) { in VisitMemoryPokeLongNative() argument
1761 CreateIntIntToVoidLocations(allocator_, invoke); in VisitMemoryPokeLongNative()
1764 void IntrinsicCodeGeneratorX86_64::VisitMemoryPokeLongNative(HInvoke* invoke) { in VisitMemoryPokeLongNative() argument
1765 GenPoke(invoke->GetLocations(), DataType::Type::kInt64, GetAssembler()); in VisitMemoryPokeLongNative()
1768 void IntrinsicLocationsBuilderX86_64::VisitMemoryPokeShortNative(HInvoke* invoke) { in VisitMemoryPokeShortNative() argument
1769 CreateIntIntToVoidLocations(allocator_, invoke); in VisitMemoryPokeShortNative()
1772 void IntrinsicCodeGeneratorX86_64::VisitMemoryPokeShortNative(HInvoke* invoke) { in VisitMemoryPokeShortNative() argument
1773 GenPoke(invoke->GetLocations(), DataType::Type::kInt16, GetAssembler()); in VisitMemoryPokeShortNative()
1776 void IntrinsicLocationsBuilderX86_64::VisitThreadCurrentThread(HInvoke* invoke) { in VisitThreadCurrentThread() argument
1778 new (allocator_) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in VisitThreadCurrentThread()
1782 void IntrinsicCodeGeneratorX86_64::VisitThreadCurrentThread(HInvoke* invoke) { in VisitThreadCurrentThread() argument
1783 CpuRegister out = invoke->GetLocations()->Out().AsRegister<CpuRegister>(); in VisitThreadCurrentThread()
1788 static void GenUnsafeGet(HInvoke* invoke, in GenUnsafeGet() argument
1793 LocationSummary* locations = invoke->GetLocations(); in GenUnsafeGet()
1811 invoke, output_loc, base, src, /* needs_null_check= */ false); in GenUnsafeGet()
1815 invoke, output_loc, output_loc, base_loc, 0U, offset_loc); in GenUnsafeGet()
1834 static void CreateIntIntIntToIntLocations(ArenaAllocator* allocator, HInvoke* invoke) { in CreateIntIntIntToIntLocations() argument
1836 (invoke->GetIntrinsic() == Intrinsics::kUnsafeGetObject || in CreateIntIntIntToIntLocations()
1837 invoke->GetIntrinsic() == Intrinsics::kUnsafeGetObjectVolatile); in CreateIntIntIntToIntLocations()
1839 new (allocator) LocationSummary(invoke, in CreateIntIntIntToIntLocations()
1854 void IntrinsicLocationsBuilderX86_64::VisitUnsafeGet(HInvoke* invoke) { in VisitUnsafeGet() argument
1855 CreateIntIntIntToIntLocations(allocator_, invoke); in VisitUnsafeGet()
1857 void IntrinsicLocationsBuilderX86_64::VisitUnsafeGetVolatile(HInvoke* invoke) { in VisitUnsafeGetVolatile() argument
1858 CreateIntIntIntToIntLocations(allocator_, invoke); in VisitUnsafeGetVolatile()
1860 void IntrinsicLocationsBuilderX86_64::VisitUnsafeGetLong(HInvoke* invoke) { in VisitUnsafeGetLong() argument
1861 CreateIntIntIntToIntLocations(allocator_, invoke); in VisitUnsafeGetLong()
1863 void IntrinsicLocationsBuilderX86_64::VisitUnsafeGetLongVolatile(HInvoke* invoke) { in VisitUnsafeGetLongVolatile() argument
1864 CreateIntIntIntToIntLocations(allocator_, invoke); in VisitUnsafeGetLongVolatile()
1866 void IntrinsicLocationsBuilderX86_64::VisitUnsafeGetObject(HInvoke* invoke) { in VisitUnsafeGetObject() argument
1867 CreateIntIntIntToIntLocations(allocator_, invoke); in VisitUnsafeGetObject()
1869 void IntrinsicLocationsBuilderX86_64::VisitUnsafeGetObjectVolatile(HInvoke* invoke) { in VisitUnsafeGetObjectVolatile() argument
1870 CreateIntIntIntToIntLocations(allocator_, invoke); in VisitUnsafeGetObjectVolatile()
1874 void IntrinsicCodeGeneratorX86_64::VisitUnsafeGet(HInvoke* invoke) { in VisitUnsafeGet() argument
1875 GenUnsafeGet(invoke, DataType::Type::kInt32, /* is_volatile= */ false, codegen_); in VisitUnsafeGet()
1877 void IntrinsicCodeGeneratorX86_64::VisitUnsafeGetVolatile(HInvoke* invoke) { in VisitUnsafeGetVolatile() argument
1878 GenUnsafeGet(invoke, DataType::Type::kInt32, /* is_volatile= */ true, codegen_); in VisitUnsafeGetVolatile()
1880 void IntrinsicCodeGeneratorX86_64::VisitUnsafeGetLong(HInvoke* invoke) { in VisitUnsafeGetLong() argument
1881 GenUnsafeGet(invoke, DataType::Type::kInt64, /* is_volatile= */ false, codegen_); in VisitUnsafeGetLong()
1883 void IntrinsicCodeGeneratorX86_64::VisitUnsafeGetLongVolatile(HInvoke* invoke) { in VisitUnsafeGetLongVolatile() argument
1884 GenUnsafeGet(invoke, DataType::Type::kInt64, /* is_volatile= */ true, codegen_); in VisitUnsafeGetLongVolatile()
1886 void IntrinsicCodeGeneratorX86_64::VisitUnsafeGetObject(HInvoke* invoke) { in VisitUnsafeGetObject() argument
1887 GenUnsafeGet(invoke, DataType::Type::kReference, /* is_volatile= */ false, codegen_); in VisitUnsafeGetObject()
1889 void IntrinsicCodeGeneratorX86_64::VisitUnsafeGetObjectVolatile(HInvoke* invoke) { in VisitUnsafeGetObjectVolatile() argument
1890 GenUnsafeGet(invoke, DataType::Type::kReference, /* is_volatile= */ true, codegen_); in VisitUnsafeGetObjectVolatile()
1896 HInvoke* invoke) { in CreateIntIntIntIntToVoidPlusTempsLocations() argument
1898 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateIntIntIntIntToVoidPlusTempsLocations()
1910 void IntrinsicLocationsBuilderX86_64::VisitUnsafePut(HInvoke* invoke) { in VisitUnsafePut() argument
1911 CreateIntIntIntIntToVoidPlusTempsLocations(allocator_, DataType::Type::kInt32, invoke); in VisitUnsafePut()
1913 void IntrinsicLocationsBuilderX86_64::VisitUnsafePutOrdered(HInvoke* invoke) { in VisitUnsafePutOrdered() argument
1914 CreateIntIntIntIntToVoidPlusTempsLocations(allocator_, DataType::Type::kInt32, invoke); in VisitUnsafePutOrdered()
1916 void IntrinsicLocationsBuilderX86_64::VisitUnsafePutVolatile(HInvoke* invoke) { in VisitUnsafePutVolatile() argument
1917 CreateIntIntIntIntToVoidPlusTempsLocations(allocator_, DataType::Type::kInt32, invoke); in VisitUnsafePutVolatile()
1919 void IntrinsicLocationsBuilderX86_64::VisitUnsafePutObject(HInvoke* invoke) { in VisitUnsafePutObject() argument
1920 CreateIntIntIntIntToVoidPlusTempsLocations(allocator_, DataType::Type::kReference, invoke); in VisitUnsafePutObject()
1922 void IntrinsicLocationsBuilderX86_64::VisitUnsafePutObjectOrdered(HInvoke* invoke) { in VisitUnsafePutObjectOrdered() argument
1923 CreateIntIntIntIntToVoidPlusTempsLocations(allocator_, DataType::Type::kReference, invoke); in VisitUnsafePutObjectOrdered()
1925 void IntrinsicLocationsBuilderX86_64::VisitUnsafePutObjectVolatile(HInvoke* invoke) { in VisitUnsafePutObjectVolatile() argument
1926 CreateIntIntIntIntToVoidPlusTempsLocations(allocator_, DataType::Type::kReference, invoke); in VisitUnsafePutObjectVolatile()
1928 void IntrinsicLocationsBuilderX86_64::VisitUnsafePutLong(HInvoke* invoke) { in VisitUnsafePutLong() argument
1929 CreateIntIntIntIntToVoidPlusTempsLocations(allocator_, DataType::Type::kInt64, invoke); in VisitUnsafePutLong()
1931 void IntrinsicLocationsBuilderX86_64::VisitUnsafePutLongOrdered(HInvoke* invoke) { in VisitUnsafePutLongOrdered() argument
1932 CreateIntIntIntIntToVoidPlusTempsLocations(allocator_, DataType::Type::kInt64, invoke); in VisitUnsafePutLongOrdered()
1934 void IntrinsicLocationsBuilderX86_64::VisitUnsafePutLongVolatile(HInvoke* invoke) { in VisitUnsafePutLongVolatile() argument
1935 CreateIntIntIntIntToVoidPlusTempsLocations(allocator_, DataType::Type::kInt64, invoke); in VisitUnsafePutLongVolatile()
1972 void IntrinsicCodeGeneratorX86_64::VisitUnsafePut(HInvoke* invoke) { in VisitUnsafePut() argument
1973 GenUnsafePut(invoke->GetLocations(), DataType::Type::kInt32, /* is_volatile= */ false, codegen_); in VisitUnsafePut()
1975 void IntrinsicCodeGeneratorX86_64::VisitUnsafePutOrdered(HInvoke* invoke) { in VisitUnsafePutOrdered() argument
1976 GenUnsafePut(invoke->GetLocations(), DataType::Type::kInt32, /* is_volatile= */ false, codegen_); in VisitUnsafePutOrdered()
1978 void IntrinsicCodeGeneratorX86_64::VisitUnsafePutVolatile(HInvoke* invoke) { in VisitUnsafePutVolatile() argument
1979 GenUnsafePut(invoke->GetLocations(), DataType::Type::kInt32, /* is_volatile= */ true, codegen_); in VisitUnsafePutVolatile()
1981 void IntrinsicCodeGeneratorX86_64::VisitUnsafePutObject(HInvoke* invoke) { in VisitUnsafePutObject() argument
1983 invoke->GetLocations(), DataType::Type::kReference, /* is_volatile= */ false, codegen_); in VisitUnsafePutObject()
1985 void IntrinsicCodeGeneratorX86_64::VisitUnsafePutObjectOrdered(HInvoke* invoke) { in VisitUnsafePutObjectOrdered() argument
1987 invoke->GetLocations(), DataType::Type::kReference, /* is_volatile= */ false, codegen_); in VisitUnsafePutObjectOrdered()
1989 void IntrinsicCodeGeneratorX86_64::VisitUnsafePutObjectVolatile(HInvoke* invoke) { in VisitUnsafePutObjectVolatile() argument
1991 invoke->GetLocations(), DataType::Type::kReference, /* is_volatile= */ true, codegen_); in VisitUnsafePutObjectVolatile()
1993 void IntrinsicCodeGeneratorX86_64::VisitUnsafePutLong(HInvoke* invoke) { in VisitUnsafePutLong() argument
1994 GenUnsafePut(invoke->GetLocations(), DataType::Type::kInt64, /* is_volatile= */ false, codegen_); in VisitUnsafePutLong()
1996 void IntrinsicCodeGeneratorX86_64::VisitUnsafePutLongOrdered(HInvoke* invoke) { in VisitUnsafePutLongOrdered() argument
1997 GenUnsafePut(invoke->GetLocations(), DataType::Type::kInt64, /* is_volatile= */ false, codegen_); in VisitUnsafePutLongOrdered()
1999 void IntrinsicCodeGeneratorX86_64::VisitUnsafePutLongVolatile(HInvoke* invoke) { in VisitUnsafePutLongVolatile() argument
2000 GenUnsafePut(invoke->GetLocations(), DataType::Type::kInt64, /* is_volatile= */ true, codegen_); in VisitUnsafePutLongVolatile()
2005 HInvoke* invoke) { in CreateIntIntIntIntIntToInt() argument
2008 (invoke->GetIntrinsic() == Intrinsics::kUnsafeCASObject); in CreateIntIntIntIntIntToInt()
2010 new (allocator) LocationSummary(invoke, in CreateIntIntIntIntIntToInt()
2031 void IntrinsicLocationsBuilderX86_64::VisitUnsafeCASInt(HInvoke* invoke) { in VisitUnsafeCASInt() argument
2032 CreateIntIntIntIntIntToInt(allocator_, DataType::Type::kInt32, invoke); in VisitUnsafeCASInt()
2035 void IntrinsicLocationsBuilderX86_64::VisitUnsafeCASLong(HInvoke* invoke) { in VisitUnsafeCASLong() argument
2036 CreateIntIntIntIntIntToInt(allocator_, DataType::Type::kInt64, invoke); in VisitUnsafeCASLong()
2039 void IntrinsicLocationsBuilderX86_64::VisitUnsafeCASObject(HInvoke* invoke) { in VisitUnsafeCASObject() argument
2046 CreateIntIntIntIntIntToInt(allocator_, DataType::Type::kReference, invoke); in VisitUnsafeCASObject()
2049 static void GenCAS(DataType::Type type, HInvoke* invoke, CodeGeneratorX86_64* codegen) { in GenCAS() argument
2051 LocationSummary* locations = invoke->GetLocations(); in GenCAS()
2081 invoke, in GenCAS()
2161 void IntrinsicCodeGeneratorX86_64::VisitUnsafeCASInt(HInvoke* invoke) { in VisitUnsafeCASInt() argument
2162 GenCAS(DataType::Type::kInt32, invoke, codegen_); in VisitUnsafeCASInt()
2165 void IntrinsicCodeGeneratorX86_64::VisitUnsafeCASLong(HInvoke* invoke) { in VisitUnsafeCASLong() argument
2166 GenCAS(DataType::Type::kInt64, invoke, codegen_); in VisitUnsafeCASLong()
2169 void IntrinsicCodeGeneratorX86_64::VisitUnsafeCASObject(HInvoke* invoke) { in VisitUnsafeCASObject() argument
2174 GenCAS(DataType::Type::kReference, invoke, codegen_); in VisitUnsafeCASObject()
2177 void IntrinsicLocationsBuilderX86_64::VisitIntegerReverse(HInvoke* invoke) { in VisitIntegerReverse() argument
2179 new (allocator_) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in VisitIntegerReverse()
2197 void IntrinsicCodeGeneratorX86_64::VisitIntegerReverse(HInvoke* invoke) { in VisitIntegerReverse() argument
2199 LocationSummary* locations = invoke->GetLocations(); in VisitIntegerReverse()
2219 void IntrinsicLocationsBuilderX86_64::VisitLongReverse(HInvoke* invoke) { in VisitLongReverse() argument
2221 new (allocator_) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in VisitLongReverse()
2240 void IntrinsicCodeGeneratorX86_64::VisitLongReverse(HInvoke* invoke) { in VisitLongReverse() argument
2242 LocationSummary* locations = invoke->GetLocations(); in VisitLongReverse()
2264 ArenaAllocator* allocator, CodeGeneratorX86_64* codegen, HInvoke* invoke) { in CreateBitCountLocations() argument
2271 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateBitCountLocations()
2278 HInvoke* invoke, in GenBitCount() argument
2280 LocationSummary* locations = invoke->GetLocations(); in GenBitCount()
2284 if (invoke->InputAt(0)->IsConstant()) { in GenBitCount()
2286 int64_t value = Int64FromConstant(invoke->InputAt(0)->AsConstant()); in GenBitCount()
2309 void IntrinsicLocationsBuilderX86_64::VisitIntegerBitCount(HInvoke* invoke) { in VisitIntegerBitCount() argument
2310 CreateBitCountLocations(allocator_, codegen_, invoke); in VisitIntegerBitCount()
2313 void IntrinsicCodeGeneratorX86_64::VisitIntegerBitCount(HInvoke* invoke) { in VisitIntegerBitCount() argument
2314 GenBitCount(GetAssembler(), codegen_, invoke, /* is_long= */ false); in VisitIntegerBitCount()
2317 void IntrinsicLocationsBuilderX86_64::VisitLongBitCount(HInvoke* invoke) { in VisitLongBitCount() argument
2318 CreateBitCountLocations(allocator_, codegen_, invoke); in VisitLongBitCount()
2321 void IntrinsicCodeGeneratorX86_64::VisitLongBitCount(HInvoke* invoke) { in VisitLongBitCount() argument
2322 GenBitCount(GetAssembler(), codegen_, invoke, /* is_long= */ true); in VisitLongBitCount()
2325 static void CreateOneBitLocations(ArenaAllocator* allocator, HInvoke* invoke, bool is_high) { in CreateOneBitLocations() argument
2327 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateOneBitLocations()
2336 HInvoke* invoke, in GenOneBit() argument
2338 LocationSummary* locations = invoke->GetLocations(); in GenOneBit()
2342 if (invoke->InputAt(0)->IsConstant()) { in GenOneBit()
2344 int64_t value = Int64FromConstant(invoke->InputAt(0)->AsConstant()); in GenOneBit()
2428 void IntrinsicLocationsBuilderX86_64::VisitIntegerHighestOneBit(HInvoke* invoke) { in VisitIntegerHighestOneBit() argument
2429 CreateOneBitLocations(allocator_, invoke, /* is_high= */ true); in VisitIntegerHighestOneBit()
2432 void IntrinsicCodeGeneratorX86_64::VisitIntegerHighestOneBit(HInvoke* invoke) { in VisitIntegerHighestOneBit() argument
2433 GenOneBit(GetAssembler(), codegen_, invoke, /* is_high= */ true, /* is_long= */ false); in VisitIntegerHighestOneBit()
2436 void IntrinsicLocationsBuilderX86_64::VisitLongHighestOneBit(HInvoke* invoke) { in VisitLongHighestOneBit() argument
2437 CreateOneBitLocations(allocator_, invoke, /* is_high= */ true); in VisitLongHighestOneBit()
2440 void IntrinsicCodeGeneratorX86_64::VisitLongHighestOneBit(HInvoke* invoke) { in VisitLongHighestOneBit() argument
2441 GenOneBit(GetAssembler(), codegen_, invoke, /* is_high= */ true, /* is_long= */ true); in VisitLongHighestOneBit()
2444 void IntrinsicLocationsBuilderX86_64::VisitIntegerLowestOneBit(HInvoke* invoke) { in VisitIntegerLowestOneBit() argument
2445 CreateOneBitLocations(allocator_, invoke, /* is_high= */ false); in VisitIntegerLowestOneBit()
2448 void IntrinsicCodeGeneratorX86_64::VisitIntegerLowestOneBit(HInvoke* invoke) { in VisitIntegerLowestOneBit() argument
2449 GenOneBit(GetAssembler(), codegen_, invoke, /* is_high= */ false, /* is_long= */ false); in VisitIntegerLowestOneBit()
2452 void IntrinsicLocationsBuilderX86_64::VisitLongLowestOneBit(HInvoke* invoke) { in VisitLongLowestOneBit() argument
2453 CreateOneBitLocations(allocator_, invoke, /* is_high= */ false); in VisitLongLowestOneBit()
2456 void IntrinsicCodeGeneratorX86_64::VisitLongLowestOneBit(HInvoke* invoke) { in VisitLongLowestOneBit() argument
2457 GenOneBit(GetAssembler(), codegen_, invoke, /* is_high= */ false, /* is_long= */ true); in VisitLongLowestOneBit()
2460 static void CreateLeadingZeroLocations(ArenaAllocator* allocator, HInvoke* invoke) { in CreateLeadingZeroLocations() argument
2462 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateLeadingZeroLocations()
2469 HInvoke* invoke, bool is_long) { in GenLeadingZeros() argument
2470 LocationSummary* locations = invoke->GetLocations(); in GenLeadingZeros()
2475 if (invoke->InputAt(0)->IsConstant()) { in GenLeadingZeros()
2477 int64_t value = Int64FromConstant(invoke->InputAt(0)->AsConstant()); in GenLeadingZeros()
2517 void IntrinsicLocationsBuilderX86_64::VisitIntegerNumberOfLeadingZeros(HInvoke* invoke) { in VisitIntegerNumberOfLeadingZeros() argument
2518 CreateLeadingZeroLocations(allocator_, invoke); in VisitIntegerNumberOfLeadingZeros()
2521 void IntrinsicCodeGeneratorX86_64::VisitIntegerNumberOfLeadingZeros(HInvoke* invoke) { in VisitIntegerNumberOfLeadingZeros() argument
2522 GenLeadingZeros(GetAssembler(), codegen_, invoke, /* is_long= */ false); in VisitIntegerNumberOfLeadingZeros()
2525 void IntrinsicLocationsBuilderX86_64::VisitLongNumberOfLeadingZeros(HInvoke* invoke) { in VisitLongNumberOfLeadingZeros() argument
2526 CreateLeadingZeroLocations(allocator_, invoke); in VisitLongNumberOfLeadingZeros()
2529 void IntrinsicCodeGeneratorX86_64::VisitLongNumberOfLeadingZeros(HInvoke* invoke) { in VisitLongNumberOfLeadingZeros() argument
2530 GenLeadingZeros(GetAssembler(), codegen_, invoke, /* is_long= */ true); in VisitLongNumberOfLeadingZeros()
2533 static void CreateTrailingZeroLocations(ArenaAllocator* allocator, HInvoke* invoke) { in CreateTrailingZeroLocations() argument
2535 new (allocator) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in CreateTrailingZeroLocations()
2542 HInvoke* invoke, bool is_long) { in GenTrailingZeros() argument
2543 LocationSummary* locations = invoke->GetLocations(); in GenTrailingZeros()
2548 if (invoke->InputAt(0)->IsConstant()) { in GenTrailingZeros()
2550 int64_t value = Int64FromConstant(invoke->InputAt(0)->AsConstant()); in GenTrailingZeros()
2585 void IntrinsicLocationsBuilderX86_64::VisitIntegerNumberOfTrailingZeros(HInvoke* invoke) { in VisitIntegerNumberOfTrailingZeros() argument
2586 CreateTrailingZeroLocations(allocator_, invoke); in VisitIntegerNumberOfTrailingZeros()
2589 void IntrinsicCodeGeneratorX86_64::VisitIntegerNumberOfTrailingZeros(HInvoke* invoke) { in VisitIntegerNumberOfTrailingZeros() argument
2590 GenTrailingZeros(GetAssembler(), codegen_, invoke, /* is_long= */ false); in VisitIntegerNumberOfTrailingZeros()
2593 void IntrinsicLocationsBuilderX86_64::VisitLongNumberOfTrailingZeros(HInvoke* invoke) { in VisitLongNumberOfTrailingZeros() argument
2594 CreateTrailingZeroLocations(allocator_, invoke); in VisitLongNumberOfTrailingZeros()
2597 void IntrinsicCodeGeneratorX86_64::VisitLongNumberOfTrailingZeros(HInvoke* invoke) { in VisitLongNumberOfTrailingZeros() argument
2598 GenTrailingZeros(GetAssembler(), codegen_, invoke, /* is_long= */ true); in VisitLongNumberOfTrailingZeros()
2601 void IntrinsicLocationsBuilderX86_64::VisitIntegerValueOf(HInvoke* invoke) { in VisitIntegerValueOf() argument
2604 invoke, in VisitIntegerValueOf()
2610 void IntrinsicCodeGeneratorX86_64::VisitIntegerValueOf(HInvoke* invoke) { in VisitIntegerValueOf() argument
2612 IntrinsicVisitor::ComputeIntegerValueOfInfo(invoke, codegen_->GetCompilerOptions()); in VisitIntegerValueOf()
2613 LocationSummary* locations = invoke->GetLocations(); in VisitIntegerValueOf()
2619 if (invoke->InputAt(0)->IsIntConstant()) { in VisitIntegerValueOf()
2620 int32_t value = invoke->InputAt(0)->AsIntConstant()->GetValue(); in VisitIntegerValueOf()
2630 codegen_->AllocateInstanceForIntrinsic(invoke->AsInvokeStaticOrDirect(), in VisitIntegerValueOf()
2652 codegen_->AllocateInstanceForIntrinsic(invoke->AsInvokeStaticOrDirect(), in VisitIntegerValueOf()
2659 void IntrinsicLocationsBuilderX86_64::VisitThreadInterrupted(HInvoke* invoke) { in VisitThreadInterrupted() argument
2661 new (allocator_) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in VisitThreadInterrupted()
2665 void IntrinsicCodeGeneratorX86_64::VisitThreadInterrupted(HInvoke* invoke) { in VisitThreadInterrupted() argument
2667 CpuRegister out = invoke->GetLocations()->Out().AsRegister<CpuRegister>(); in VisitThreadInterrupted()
2679 void IntrinsicLocationsBuilderX86_64::VisitReachabilityFence(HInvoke* invoke) { in VisitReachabilityFence() argument
2681 new (allocator_) LocationSummary(invoke, LocationSummary::kNoCall, kIntrinsified); in VisitReachabilityFence()
2685 void IntrinsicCodeGeneratorX86_64::VisitReachabilityFence(HInvoke* invoke ATTRIBUTE_UNUSED) { } in VisitReachabilityFence()
2687 void IntrinsicLocationsBuilderX86_64::VisitIntegerDivideUnsigned(HInvoke* invoke) { in VisitIntegerDivideUnsigned() argument
2689 new (allocator_) LocationSummary(invoke, LocationSummary::kCallOnSlowPath, kIntrinsified); in VisitIntegerDivideUnsigned()
2697 void IntrinsicCodeGeneratorX86_64::VisitIntegerDivideUnsigned(HInvoke* invoke) { in VisitIntegerDivideUnsigned() argument
2699 LocationSummary* locations = invoke->GetLocations(); in VisitIntegerDivideUnsigned()
2712 SlowPathCode* slow_path = new (codegen_->GetScopedAllocator()) IntrinsicSlowPathX86_64(invoke); in VisitIntegerDivideUnsigned()