Lines Matching refs:__

75 #define __ codegen->GetVIXLAssembler()->  macro
90 __ Mov(trg_reg, res_reg, kDiscardForSameWReg); in MoveFromReturnRegister()
94 __ Fmov(trg_reg, res_reg); in MoveFromReturnRegister()
116 __ Bind(GetEntryLabel()); in EmitNativeCode()
144 __ B(GetExitLabel()); in EmitNativeCode()
182 __ Bind(GetEntryLabel()); in EmitNativeCode()
184 __ Bind(&slow_copy_loop); in EmitNativeCode()
185 __ Ldr(tmp_reg, MemOperand(src_curr_addr, element_size, PostIndex)); in EmitNativeCode()
212 __ Str(tmp_reg, MemOperand(dst_curr_addr, element_size, PostIndex)); in EmitNativeCode()
213 __ Cmp(src_curr_addr, src_stop_addr); in EmitNativeCode()
214 __ B(&slow_copy_loop, ne); in EmitNativeCode()
215 __ B(GetExitLabel()); in EmitNativeCode()
225 #undef __
236 #define __ masm-> macro
257 __ Fmov(is64bit ? XRegisterFrom(output) : WRegisterFrom(output), in MoveFPToInt()
264 __ Fmov(is64bit ? DRegisterFrom(output) : SRegisterFrom(output), in MoveIntToFP()
312 __ Rev16(WRegisterFrom(out), WRegisterFrom(in)); in GenReverseBytes()
313 __ Sxth(WRegisterFrom(out), WRegisterFrom(out)); in GenReverseBytes()
317 __ Rev(RegisterFrom(out, type), RegisterFrom(in, type)); in GenReverseBytes()
366 __ Clz(RegisterFrom(out, type), RegisterFrom(in, type)); in GenNumberOfLeadingZeros()
393 __ Rbit(RegisterFrom(out, type), RegisterFrom(in, type)); in GenNumberOfTrailingZeros()
394 __ Clz(RegisterFrom(out, type), RegisterFrom(out, type)); in GenNumberOfTrailingZeros()
421 __ Rbit(RegisterFrom(out, type), RegisterFrom(in, type)); in GenReverse()
451 __ Fmov(fpr, src); in GenBitCount()
452 __ Cnt(fpr.V8B(), fpr.V8B()); in GenBitCount()
453 __ Addv(fpr.B(), fpr.V8B()); in GenBitCount()
454 __ Fmov(dst, fpr); in GenBitCount()
488 __ Fabs(out_reg, in_reg); in MathAbsFP()
524 __ Cmp(in_reg, Operand(0)); in GenAbsInteger()
525 __ Cneg(out_reg, in_reg, lt); in GenAbsInteger()
556 __ Fmin(out_reg, op1_reg, op2_reg); in GenMinMaxFP()
558 __ Fmax(out_reg, op1_reg, op2_reg); in GenMinMaxFP()
616 __ Cmp(op1_reg, op2_reg); in GenMinMax()
617 __ Csel(out_reg, op1_reg, op2_reg, is_min ? lt : gt); in GenMinMax()
659 __ Fsqrt(DRegisterFrom(locations->Out()), DRegisterFrom(locations->InAt(0))); in VisitMathSqrt()
669 __ Frintp(DRegisterFrom(locations->Out()), DRegisterFrom(locations->InAt(0))); in VisitMathCeil()
679 __ Frintm(DRegisterFrom(locations->Out()), DRegisterFrom(locations->InAt(0))); in VisitMathFloor()
689 __ Frintn(DRegisterFrom(locations->Out()), DRegisterFrom(locations->InAt(0))); in VisitMathRint()
722 __ Fcvtas(out_reg, in_reg); in GenMathRound()
725 __ Tbz(out_reg, out_reg.GetSizeInBits() - 1, &done); in GenMathRound()
730 __ Frinta(tmp_fp, in_reg); in GenMathRound()
731 __ Fsub(tmp_fp, in_reg, tmp_fp); in GenMathRound()
732 __ Fcmp(tmp_fp, 0.5); in GenMathRound()
733 __ Cinc(out_reg, out_reg, eq); in GenMathRound()
735 __ Bind(&done); in GenMathRound()
760 __ Ldrsb(WRegisterFrom(invoke->GetLocations()->Out()), in VisitMemoryPeekByte()
770 __ Ldr(WRegisterFrom(invoke->GetLocations()->Out()), in VisitMemoryPeekIntNative()
780 __ Ldr(XRegisterFrom(invoke->GetLocations()->Out()), in VisitMemoryPeekLongNative()
790 __ Ldrsh(WRegisterFrom(invoke->GetLocations()->Out()), in VisitMemoryPeekShortNative()
808 __ Strb(WRegisterFrom(invoke->GetLocations()->InAt(1)), in VisitMemoryPokeByte()
818 __ Str(WRegisterFrom(invoke->GetLocations()->InAt(1)), in VisitMemoryPokeIntNative()
828 __ Str(XRegisterFrom(invoke->GetLocations()->InAt(1)), in VisitMemoryPokeLongNative()
838 __ Strh(WRegisterFrom(invoke->GetLocations()->InAt(1)), in VisitMemoryPokeShortNative()
1017 __ Mov(temp.W(), value.W()); in GenUnsafePut()
1177 __ Add(tmp_ptr, base.X(), Operand(offset)); in GenCas()
1195 __ Bind(&loop_head); in GenCas()
1196 __ Ldaxr(tmp_value, MemOperand(tmp_ptr)); in GenCas()
1197 __ Cmp(tmp_value, expected); in GenCas()
1198 __ B(&exit_loop, ne); in GenCas()
1199 __ Stlxr(tmp_32, value, MemOperand(tmp_ptr)); in GenCas()
1200 __ Cbnz(tmp_32, &loop_head); in GenCas()
1201 __ Bind(&exit_loop); in GenCas()
1202 __ Cset(out, eq); in GenCas()
1299 __ Cbz(arg, slow_path->GetEntryLabel()); in VisitStringCompareTo()
1303 __ Subs(out, str, arg); in VisitStringCompareTo()
1304 __ B(&end, eq); in VisitStringCompareTo()
1308 __ Ldr(temp3, HeapOperand(str, count_offset)); in VisitStringCompareTo()
1309 __ Ldr(temp2, HeapOperand(arg, count_offset)); in VisitStringCompareTo()
1311 __ Lsr(temp0, temp3, 1u); in VisitStringCompareTo()
1312 __ Lsr(temp1, temp2, 1u); in VisitStringCompareTo()
1315 __ Ldr(temp0, HeapOperand(str, count_offset)); in VisitStringCompareTo()
1316 __ Ldr(temp1, HeapOperand(arg, count_offset)); in VisitStringCompareTo()
1319 __ Subs(out, temp0, temp1); in VisitStringCompareTo()
1321 __ Csel(temp0, temp1, temp0, ge); in VisitStringCompareTo()
1323 __ Cbz(temp0, &end); in VisitStringCompareTo()
1327 __ Eor(temp2, temp2, Operand(temp3)); in VisitStringCompareTo()
1330 __ Ands(temp3.W(), temp3.W(), Operand(1)); in VisitStringCompareTo()
1331 __ Tbnz(temp2, 0, &different_compression); // Does not use flags. in VisitStringCompareTo()
1334 __ Mov(temp1, value_offset); in VisitStringCompareTo()
1338 __ Lsl(temp0, temp0, temp3); in VisitStringCompareTo()
1355 __ Bind(&loop); in VisitStringCompareTo()
1356 __ Ldr(temp4, MemOperand(str.X(), temp1.X())); in VisitStringCompareTo()
1357 __ Ldr(temp2, MemOperand(arg.X(), temp1.X())); in VisitStringCompareTo()
1358 __ Cmp(temp4, temp2); in VisitStringCompareTo()
1359 __ B(ne, &find_char_diff); in VisitStringCompareTo()
1360 __ Add(temp1, temp1, char_size * 4); in VisitStringCompareTo()
1362 __ Subs(temp0, temp0, (mirror::kUseStringCompression) ? 8 : 4); in VisitStringCompareTo()
1363 __ B(&loop, hi); in VisitStringCompareTo()
1364 __ B(&end); in VisitStringCompareTo()
1370 __ Bind(&find_char_diff); in VisitStringCompareTo()
1372 __ Eor(temp1, temp2, temp4); in VisitStringCompareTo()
1373 __ Rbit(temp1, temp1); in VisitStringCompareTo()
1374 __ Clz(temp1, temp1); in VisitStringCompareTo()
1382 __ Cmp(temp0, Operand(temp1.W(), LSR, (mirror::kUseStringCompression) ? 3 : 4)); in VisitStringCompareTo()
1383 __ B(ls, &end); in VisitStringCompareTo()
1387 __ Bic(temp1, temp1, 0x7); in VisitStringCompareTo()
1388 __ Bic(temp1, temp1, Operand(temp3.X(), LSL, 3u)); in VisitStringCompareTo()
1390 __ Bic(temp1, temp1, 0xf); in VisitStringCompareTo()
1392 __ Lsr(temp2, temp2, temp1); in VisitStringCompareTo()
1393 __ Lsr(temp4, temp4, temp1); in VisitStringCompareTo()
1396 __ Uxtb(temp1, temp4); in VisitStringCompareTo()
1397 __ Sub(out, temp1.W(), Operand(temp2.W(), UXTB)); in VisitStringCompareTo()
1398 __ Tbz(temp3, 0u, &end); // If actually compressed, we're done. in VisitStringCompareTo()
1400 __ Uxth(temp4, temp4); in VisitStringCompareTo()
1401 __ Sub(out, temp4.W(), Operand(temp2.W(), UXTH)); in VisitStringCompareTo()
1404 __ B(&end); in VisitStringCompareTo()
1405 __ Bind(&different_compression); in VisitStringCompareTo()
1417 __ Csel(temp1, str, arg, eq); // Pointer to the compressed string. in VisitStringCompareTo()
1418 __ Csel(temp2, str, arg, ne); // Pointer to the uncompressed string. in VisitStringCompareTo()
1424 __ Lsl(temp0, temp0, 1u); in VisitStringCompareTo()
1427 __ Add(temp1, temp1, Operand(value_offset)); in VisitStringCompareTo()
1428 __ Add(temp2, temp2, Operand(value_offset)); in VisitStringCompareTo()
1431 __ Sub(temp0, temp0, Operand(temp3)); in VisitStringCompareTo()
1436 __ Bind(&different_compression_loop); in VisitStringCompareTo()
1437 __ Ldrb(temp4, MemOperand(temp1.X(), c_char_size, PostIndex)); in VisitStringCompareTo()
1438 __ Ldrh(temp3, MemOperand(temp2.X(), char_size, PostIndex)); in VisitStringCompareTo()
1439 __ Subs(temp4, temp4, Operand(temp3)); in VisitStringCompareTo()
1440 __ B(&different_compression_diff, ne); in VisitStringCompareTo()
1441 __ Subs(temp0, temp0, 2); in VisitStringCompareTo()
1442 __ B(&different_compression_loop, hi); in VisitStringCompareTo()
1443 __ B(&end); in VisitStringCompareTo()
1446 __ Bind(&different_compression_diff); in VisitStringCompareTo()
1447 __ Tst(temp0, Operand(1)); in VisitStringCompareTo()
1450 __ Cneg(out, temp4, ne); in VisitStringCompareTo()
1453 __ Bind(&end); in VisitStringCompareTo()
1456 __ Bind(slow_path->GetExitLabel()); in VisitStringCompareTo()
1532 __ Cbz(arg, &return_false); in VisitStringEquals()
1536 __ Cmp(str, arg); in VisitStringEquals()
1537 __ B(&return_true, eq); in VisitStringEquals()
1544 __ Ldr(temp, MemOperand(str.X(), class_offset)); in VisitStringEquals()
1545 __ Ldr(temp1, MemOperand(arg.X(), class_offset)); in VisitStringEquals()
1546 __ Cmp(temp, temp1); in VisitStringEquals()
1547 __ B(&return_false, ne); in VisitStringEquals()
1568 __ Ldr(temp, MemOperand(arg.X(), count_offset)); in VisitStringEquals()
1571 __ Cmp(temp, Operand(mirror::String::GetFlaggedCount(const_string_length, is_compressed))); in VisitStringEquals()
1573 __ B(&return_false, ne); in VisitStringEquals()
1576 __ Ldr(temp, MemOperand(str.X(), count_offset)); in VisitStringEquals()
1577 __ Ldr(temp1, MemOperand(arg.X(), count_offset)); in VisitStringEquals()
1580 __ Cmp(temp, temp1); in VisitStringEquals()
1581 __ B(&return_false, ne); in VisitStringEquals()
1600 __ Ldp(temp, temp1, MemOperand(str.X(), offset)); in VisitStringEquals()
1601 __ Ldp(temp2, out, MemOperand(arg.X(), offset)); in VisitStringEquals()
1602 __ Cmp(temp, temp2); in VisitStringEquals()
1603 __ Ccmp(temp1, out, NoFlag, eq); in VisitStringEquals()
1604 __ B(&return_false, ne); in VisitStringEquals()
1609 __ Ldr(temp, MemOperand(str.X(), offset)); in VisitStringEquals()
1610 __ Ldr(temp1, MemOperand(arg.X(), offset)); in VisitStringEquals()
1611 __ Cmp(temp, temp1); in VisitStringEquals()
1612 __ B(&return_false, ne); in VisitStringEquals()
1618 __ Cbz(temp, &return_true); in VisitStringEquals()
1623 __ And(temp1, temp, Operand(1)); // Extract compression flag. in VisitStringEquals()
1624 __ Lsr(temp, temp, 1u); // Extract length. in VisitStringEquals()
1625 __ Lsl(temp, temp, temp1); // Calculate number of bytes to compare. in VisitStringEquals()
1629 __ Mov(temp1, value_offset); in VisitStringEquals()
1635 __ Bind(&loop); in VisitStringEquals()
1636 __ Ldr(out, MemOperand(str.X(), temp1)); in VisitStringEquals()
1637 __ Ldr(temp2, MemOperand(arg.X(), temp1)); in VisitStringEquals()
1638 __ Add(temp1, temp1, Operand(sizeof(uint64_t))); in VisitStringEquals()
1639 __ Cmp(out, temp2); in VisitStringEquals()
1640 __ B(&return_false, ne); in VisitStringEquals()
1642 __ Sub(temp, temp, Operand(mirror::kUseStringCompression ? 8 : 4), SetFlags); in VisitStringEquals()
1643 __ B(&loop, hi); in VisitStringEquals()
1648 __ Bind(&return_true); in VisitStringEquals()
1649 __ Mov(out, 1); in VisitStringEquals()
1650 __ B(&end); in VisitStringEquals()
1653 __ Bind(&return_false); in VisitStringEquals()
1654 __ Mov(out, 0); in VisitStringEquals()
1655 __ Bind(&end); in VisitStringEquals()
1678 __ B(slow_path->GetEntryLabel()); in GenerateVisitStringIndexOf()
1679 __ Bind(slow_path->GetExitLabel()); in GenerateVisitStringIndexOf()
1684 __ Tst(char_reg, 0xFFFF0000); in GenerateVisitStringIndexOf()
1687 __ B(ne, slow_path->GetEntryLabel()); in GenerateVisitStringIndexOf()
1693 __ Mov(tmp_reg, 0); in GenerateVisitStringIndexOf()
1700 __ Bind(slow_path->GetExitLabel()); in GenerateVisitStringIndexOf()
1759 __ Cmp(byte_array, 0); in VisitStringNewStringFromBytes()
1762 __ B(eq, slow_path->GetEntryLabel()); in VisitStringNewStringFromBytes()
1766 __ Bind(slow_path->GetExitLabel()); in VisitStringNewStringFromBytes()
1805 __ Cmp(string_to_copy, 0); in VisitStringNewStringFromString()
1808 __ B(eq, slow_path->GetEntryLabel()); in VisitStringNewStringFromString()
1812 __ Bind(slow_path->GetExitLabel()); in VisitStringNewStringFromString()
2034 __ Sub(num_chr, srcEnd, srcBegin); in VisitStringGetCharsNoCheck()
2036 __ Cbz(num_chr, &done); in VisitStringGetCharsNoCheck()
2039 __ Add(dst_ptr, dstObj, Operand(data_offset)); in VisitStringGetCharsNoCheck()
2040 __ Add(dst_ptr, dst_ptr, Operand(dstBegin, LSL, 1)); in VisitStringGetCharsNoCheck()
2043 __ Add(src_ptr, srcObj, Operand(value_offset)); in VisitStringGetCharsNoCheck()
2049 __ Ldr(tmp2, MemOperand(srcObj, count_offset)); in VisitStringGetCharsNoCheck()
2050 __ Tbz(tmp2, 0, &compressed_string_preloop); in VisitStringGetCharsNoCheck()
2052 __ Add(src_ptr, src_ptr, Operand(srcBegin, LSL, 1)); in VisitStringGetCharsNoCheck()
2059 __ Subs(tmp1, num_chr, 8); in VisitStringGetCharsNoCheck()
2060 __ B(lt, &remainder); in VisitStringGetCharsNoCheck()
2063 __ Mov(num_chr, tmp1); in VisitStringGetCharsNoCheck()
2067 __ Bind(&loop); in VisitStringGetCharsNoCheck()
2068 __ Ldp(tmp1, tmp2, MemOperand(src_ptr, char_size * 8, PostIndex)); in VisitStringGetCharsNoCheck()
2069 __ Subs(num_chr, num_chr, 8); in VisitStringGetCharsNoCheck()
2070 __ Stp(tmp1, tmp2, MemOperand(dst_ptr, char_size * 8, PostIndex)); in VisitStringGetCharsNoCheck()
2071 __ B(ge, &loop); in VisitStringGetCharsNoCheck()
2073 __ Adds(num_chr, num_chr, 8); in VisitStringGetCharsNoCheck()
2074 __ B(eq, &done); in VisitStringGetCharsNoCheck()
2078 __ Bind(&remainder); in VisitStringGetCharsNoCheck()
2079 __ Ldrh(tmp1, MemOperand(src_ptr, char_size, PostIndex)); in VisitStringGetCharsNoCheck()
2080 __ Subs(num_chr, num_chr, 1); in VisitStringGetCharsNoCheck()
2081 __ Strh(tmp1, MemOperand(dst_ptr, char_size, PostIndex)); in VisitStringGetCharsNoCheck()
2082 __ B(gt, &remainder); in VisitStringGetCharsNoCheck()
2083 __ B(&done); in VisitStringGetCharsNoCheck()
2088 __ Bind(&compressed_string_preloop); in VisitStringGetCharsNoCheck()
2089 __ Add(src_ptr, src_ptr, Operand(srcBegin)); in VisitStringGetCharsNoCheck()
2091 __ Bind(&compressed_string_loop); in VisitStringGetCharsNoCheck()
2092 __ Ldrb(tmp1, MemOperand(src_ptr, c_char_size, PostIndex)); in VisitStringGetCharsNoCheck()
2093 __ Strh(tmp1, MemOperand(dst_ptr, char_size, PostIndex)); in VisitStringGetCharsNoCheck()
2094 __ Subs(num_chr, num_chr, Operand(1)); in VisitStringGetCharsNoCheck()
2095 __ B(gt, &compressed_string_loop); in VisitStringGetCharsNoCheck()
2098 __ Bind(&done); in VisitStringGetCharsNoCheck()
2169 __ Ldr(temp, MemOperand(input, length_offset)); in CheckSystemArrayCopyPosition()
2170 __ Cmp(temp, OperandFrom(length, Primitive::kPrimInt)); in CheckSystemArrayCopyPosition()
2171 __ B(slow_path->GetEntryLabel(), lt); in CheckSystemArrayCopyPosition()
2175 __ Ldr(temp, MemOperand(input, length_offset)); in CheckSystemArrayCopyPosition()
2176 __ Subs(temp, temp, pos_const); in CheckSystemArrayCopyPosition()
2177 __ B(slow_path->GetEntryLabel(), lt); in CheckSystemArrayCopyPosition()
2180 __ Cmp(temp, OperandFrom(length, Primitive::kPrimInt)); in CheckSystemArrayCopyPosition()
2181 __ B(slow_path->GetEntryLabel(), lt); in CheckSystemArrayCopyPosition()
2185 __ Cbnz(WRegisterFrom(pos), slow_path->GetEntryLabel()); in CheckSystemArrayCopyPosition()
2189 __ Tbnz(pos_reg, pos_reg.GetSizeInBits() - 1, slow_path->GetEntryLabel()); in CheckSystemArrayCopyPosition()
2192 __ Ldr(temp, MemOperand(input, length_offset)); in CheckSystemArrayCopyPosition()
2193 __ Subs(temp, temp, pos_reg); in CheckSystemArrayCopyPosition()
2195 __ Ccmp(temp, OperandFrom(length, Primitive::kPrimInt), NFlag, ge); in CheckSystemArrayCopyPosition()
2196 __ B(slow_path->GetEntryLabel(), lt); in CheckSystemArrayCopyPosition()
2222 __ Add(src_base, src, element_size * constant + data_offset); in GenSystemArrayCopyAddresses()
2224 __ Add(src_base, src, data_offset); in GenSystemArrayCopyAddresses()
2225 __ Add(src_base, src_base, Operand(XRegisterFrom(src_pos), LSL, element_size_shift)); in GenSystemArrayCopyAddresses()
2230 __ Add(dst_base, dst, element_size * constant + data_offset); in GenSystemArrayCopyAddresses()
2232 __ Add(dst_base, dst, data_offset); in GenSystemArrayCopyAddresses()
2233 __ Add(dst_base, dst_base, Operand(XRegisterFrom(dst_pos), LSL, element_size_shift)); in GenSystemArrayCopyAddresses()
2238 __ Add(src_end, src_base, element_size * constant); in GenSystemArrayCopyAddresses()
2240 __ Add(src_end, src_base, Operand(XRegisterFrom(copy_length), LSL, element_size_shift)); in GenSystemArrayCopyAddresses()
2258 __ Cmp(src, dst); in VisitSystemArrayCopyChar()
2259 __ B(slow_path->GetEntryLabel(), eq); in VisitSystemArrayCopyChar()
2262 __ Cbz(src, slow_path->GetEntryLabel()); in VisitSystemArrayCopyChar()
2265 __ Cbz(dst, slow_path->GetEntryLabel()); in VisitSystemArrayCopyChar()
2271 __ Cmp(WRegisterFrom(length), kSystemArrayCopyCharThreshold); in VisitSystemArrayCopyChar()
2272 __ B(slow_path->GetEntryLabel(), hi); in VisitSystemArrayCopyChar()
2319 __ Bind(&loop); in VisitSystemArrayCopyChar()
2320 __ Cmp(src_curr_addr, src_stop_addr); in VisitSystemArrayCopyChar()
2321 __ B(&done, eq); in VisitSystemArrayCopyChar()
2322 __ Ldrh(tmp, MemOperand(src_curr_addr, char_size, PostIndex)); in VisitSystemArrayCopyChar()
2323 __ Strh(tmp, MemOperand(dst_curr_addr, char_size, PostIndex)); in VisitSystemArrayCopyChar()
2324 __ B(&loop); in VisitSystemArrayCopyChar()
2325 __ Bind(&done); in VisitSystemArrayCopyChar()
2327 __ Bind(slow_path->GetExitLabel()); in VisitSystemArrayCopyChar()
2447 __ Cmp(src, dest); in VisitSystemArrayCopy()
2448 __ B(intrinsic_slow_path->GetEntryLabel(), eq); in VisitSystemArrayCopy()
2455 __ Cmp(src, dest); in VisitSystemArrayCopy()
2456 __ B(&conditions_on_positions_validated, ne); in VisitSystemArrayCopy()
2458 __ Cmp(WRegisterFrom(dest_pos), src_pos_constant); in VisitSystemArrayCopy()
2459 __ B(intrinsic_slow_path->GetEntryLabel(), gt); in VisitSystemArrayCopy()
2463 __ Cmp(src, dest); in VisitSystemArrayCopy()
2464 __ B(&conditions_on_positions_validated, ne); in VisitSystemArrayCopy()
2466 __ Cmp(RegisterFrom(src_pos, invoke->InputAt(1)->GetType()), in VisitSystemArrayCopy()
2468 __ B(intrinsic_slow_path->GetEntryLabel(), lt); in VisitSystemArrayCopy()
2471 __ Bind(&conditions_on_positions_validated); in VisitSystemArrayCopy()
2475 __ Cbz(src, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2480 __ Cbz(dest, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2490 __ Cmp(WRegisterFrom(length), kSystemArrayCopyThreshold); in VisitSystemArrayCopy()
2491 __ B(intrinsic_slow_path->GetEntryLabel(), hs); in VisitSystemArrayCopy()
2548 __ Cbz(temp1, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2552 __ Ldrh(temp1, HeapOperand(temp1, primitive_offset)); in VisitSystemArrayCopy()
2554 __ Cbnz(temp1, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2582 __ Cbz(temp2, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2586 __ Ldrh(temp2, HeapOperand(temp2, primitive_offset)); in VisitSystemArrayCopy()
2588 __ Cbnz(temp2, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2602 __ Cmp(temp1, temp2); in VisitSystemArrayCopy()
2606 __ B(&do_copy, eq); in VisitSystemArrayCopy()
2620 __ Ldr(temp1, HeapOperand(temp1, super_offset)); in VisitSystemArrayCopy()
2621 __ Cbnz(temp1, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2622 __ Bind(&do_copy); in VisitSystemArrayCopy()
2624 __ B(intrinsic_slow_path->GetEntryLabel(), ne); in VisitSystemArrayCopy()
2630 __ Ldr(temp1, MemOperand(dest, class_offset)); in VisitSystemArrayCopy()
2632 __ Ldr(temp2, MemOperand(src, class_offset)); in VisitSystemArrayCopy()
2646 __ Ldr(temp3, HeapOperand(temp1, component_offset)); in VisitSystemArrayCopy()
2647 __ Cbz(temp3, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2650 __ Ldrh(temp3, HeapOperand(temp3, primitive_offset)); in VisitSystemArrayCopy()
2652 __ Cbnz(temp3, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2658 __ Ldr(temp3, HeapOperand(temp2, component_offset)); in VisitSystemArrayCopy()
2659 __ Cbz(temp3, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2662 __ Ldrh(temp3, HeapOperand(temp3, primitive_offset)); in VisitSystemArrayCopy()
2664 __ Cbnz(temp3, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2667 __ Cmp(temp1, temp2); in VisitSystemArrayCopy()
2671 __ B(&do_copy, eq); in VisitSystemArrayCopy()
2676 __ Ldr(temp1, HeapOperand(temp1, component_offset)); in VisitSystemArrayCopy()
2679 __ Ldr(temp1, HeapOperand(temp1, super_offset)); in VisitSystemArrayCopy()
2681 __ Cbnz(temp1, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2682 __ Bind(&do_copy); in VisitSystemArrayCopy()
2684 __ B(intrinsic_slow_path->GetEntryLabel(), ne); in VisitSystemArrayCopy()
2707 __ Cbz(temp2, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2712 __ Ldr(temp1, HeapOperand(src.W(), class_offset)); in VisitSystemArrayCopy()
2715 __ Ldr(temp2, HeapOperand(temp1, component_offset)); in VisitSystemArrayCopy()
2716 __ Cbz(temp2, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2720 __ Ldrh(temp2, HeapOperand(temp2, primitive_offset)); in VisitSystemArrayCopy()
2722 __ Cbnz(temp2, intrinsic_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2737 __ Cbz(WRegisterFrom(length), &done); in VisitSystemArrayCopy()
2777 __ Ldr(tmp, HeapOperand(src.W(), monitor_offset)); in VisitSystemArrayCopy()
2787 __ Add(src.X(), src.X(), Operand(tmp.X(), LSR, 32)); in VisitSystemArrayCopy()
2814 __ Tbnz(tmp, LockWord::kReadBarrierStateShift, read_barrier_slow_path->GetEntryLabel()); in VisitSystemArrayCopy()
2820 __ Bind(&loop); in VisitSystemArrayCopy()
2821 __ Ldr(tmp, MemOperand(src_curr_addr, element_size, PostIndex)); in VisitSystemArrayCopy()
2822 __ Str(tmp, MemOperand(dst_curr_addr, element_size, PostIndex)); in VisitSystemArrayCopy()
2823 __ Cmp(src_curr_addr, src_stop_addr); in VisitSystemArrayCopy()
2824 __ B(&loop, ne); in VisitSystemArrayCopy()
2826 __ Bind(read_barrier_slow_path->GetExitLabel()); in VisitSystemArrayCopy()
2845 __ Bind(&loop); in VisitSystemArrayCopy()
2848 __ Ldr(tmp, MemOperand(src_curr_addr, element_size, PostIndex)); in VisitSystemArrayCopy()
2849 __ Str(tmp, MemOperand(dst_curr_addr, element_size, PostIndex)); in VisitSystemArrayCopy()
2851 __ Cmp(src_curr_addr, src_stop_addr); in VisitSystemArrayCopy()
2852 __ B(&loop, ne); in VisitSystemArrayCopy()
2854 __ Bind(&done); in VisitSystemArrayCopy()
2861 __ Bind(intrinsic_slow_path->GetExitLabel()); in VisitSystemArrayCopy()
2881 __ Eor(out, out, infinity); in GenIsInfinite()
2883 __ Cmp(zero, Operand(out, LSL, 1)); in GenIsInfinite()
2884 __ Cset(out, eq); in GenIsInfinite()
2934 __ Ldr(temp0.W(), MemOperand(temp0, ArtMethod::DeclaringClassOffset().Int32Value())); in VisitReferenceGetReferent()
2945 __ Ldr(temp0, MemOperand(temp0, disable_flag_offset)); in VisitReferenceGetReferent()
2949 __ Ldr(temp1.W(), MemOperand(temp0, disable_flag_offset)); in VisitReferenceGetReferent()
2950 __ Ldr(temp0.W(), MemOperand(temp0, slow_path_flag_offset)); in VisitReferenceGetReferent()
2951 __ Orr(temp0, temp1, temp0); in VisitReferenceGetReferent()
2953 __ Cbnz(temp0, slow_path->GetEntryLabel()); in VisitReferenceGetReferent()
2959 __ Ldr(out, HeapOperand(obj, mirror::Reference::ReferentOffset().Int32Value())); in VisitReferenceGetReferent()
2963 __ Bind(slow_path->GetExitLabel()); in VisitReferenceGetReferent()
2993 __ Ldr(out.W(), codegen_->DeduplicateBootImageAddressLiteral(address)); in VisitIntegerValueOf()
3000 __ Ldr(argument.W(), codegen_->DeduplicateBootImageAddressLiteral(address)); in VisitIntegerValueOf()
3003 __ Mov(temp.W(), value); in VisitIntegerValueOf()
3004 __ Str(temp.W(), HeapOperand(out.W(), info.value_offset)); in VisitIntegerValueOf()
3012 __ Add(out.W(), in.W(), -info.low); in VisitIntegerValueOf()
3013 __ Cmp(out.W(), info.high - info.low + 1); in VisitIntegerValueOf()
3015 __ B(&allocate, hs); in VisitIntegerValueOf()
3019 __ Ldr(temp.W(), codegen_->DeduplicateBootImageAddressLiteral(data_offset + address)); in VisitIntegerValueOf()
3024 __ B(&done); in VisitIntegerValueOf()
3025 __ Bind(&allocate); in VisitIntegerValueOf()
3028 __ Ldr(argument.W(), codegen_->DeduplicateBootImageAddressLiteral(address)); in VisitIntegerValueOf()
3031 __ Str(in.W(), HeapOperand(out.W(), info.value_offset)); in VisitIntegerValueOf()
3035 __ Bind(&done); in VisitIntegerValueOf()
3062 #undef __