Lines Matching refs:__
39 #ifdef __
135 #define __ down_cast<CodeGeneratorARM64*>(codegen)->GetVIXLAssembler()-> macro
167 __ Add(new_base, base, Operand(spill_offset + core_spill_size)); in SaveRestoreLiveRegistersHelper()
176 __ StoreCPURegList(core_list, MemOperand(base, spill_offset)); in SaveRestoreLiveRegistersHelper()
177 __ StoreCPURegList(fp_list, MemOperand(base, spill_offset + core_spill_size)); in SaveRestoreLiveRegistersHelper()
179 __ LoadCPURegList(core_list, MemOperand(base, spill_offset)); in SaveRestoreLiveRegistersHelper()
180 __ LoadCPURegList(fp_list, MemOperand(base, spill_offset + core_spill_size)); in SaveRestoreLiveRegistersHelper()
228 __ Bind(GetEntryLabel()); in EmitNativeCode()
258 __ Bind(GetEntryLabel()); in EmitNativeCode()
290 __ Bind(GetEntryLabel()); in EmitNativeCode()
294 __ Mov(calling_convention.GetRegisterAt(0).W(), cls_->GetTypeIndex()); in EmitNativeCode()
313 __ B(GetExitLabel()); in EmitNativeCode()
344 __ Bind(GetEntryLabel()); in EmitNativeCode()
349 __ Mov(calling_convention.GetRegisterAt(0).W(), string_index); in EmitNativeCode()
357 __ B(GetExitLabel()); in EmitNativeCode()
372 __ Bind(GetEntryLabel()); in EmitNativeCode()
397 __ Bind(GetEntryLabel()); in EmitNativeCode()
404 __ B(GetReturnLabel()); in EmitNativeCode()
406 __ B(arm64_codegen->GetLabelOf(successor_)); in EmitNativeCode()
446 __ Bind(GetEntryLabel()); in EmitNativeCode()
475 __ B(GetExitLabel()); in EmitNativeCode()
495 __ Bind(GetEntryLabel()); in EmitNativeCode()
516 __ Bind(GetEntryLabel()); in EmitNativeCode()
545 __ B(GetExitLabel()); in EmitNativeCode()
563 __ Bind(&table_start_); in EmitTable()
572 __ place(&literal); in EmitTable()
601 __ Bind(GetEntryLabel()); in EmitNativeCode()
615 __ B(GetExitLabel()); in EmitNativeCode()
670 __ Bind(GetEntryLabel()); in EmitNativeCode()
708 __ Mov(free_reg.W(), index_reg); in EmitNativeCode()
721 __ Lsl(index_reg, index_reg, Primitive::ComponentSizeShift(type)); in EmitNativeCode()
725 __ Add(index_reg, index_reg, Operand(offset_)); in EmitNativeCode()
772 __ B(GetExitLabel()); in EmitNativeCode()
824 __ Bind(GetEntryLabel()); in EmitNativeCode()
840 __ Mov(calling_convention.GetRegisterAt(0), XRegisterFrom(out_)); in EmitNativeCode()
849 __ B(GetExitLabel()); in EmitNativeCode()
861 #undef __
928 #define __ GetVIXLAssembler()-> macro
939 __ FinalizeCode(); in Finalize()
1000 __ Bind(&frame_entry_label_); in GenerateFrameEntry()
1007 __ Sub(temp, sp, static_cast<int32_t>(GetStackOverflowReservedBytes(kArm64))); in GenerateFrameEntry()
1008 __ Ldr(wzr, MemOperand(temp, 0)); in GenerateFrameEntry()
1020 __ Str(kArtMethodRegister, MemOperand(sp, -frame_size, PreIndex)); in GenerateFrameEntry()
1038 __ Drop(frame_size); in GenerateFrameExit()
1041 __ Ret(); in GenerateFrameExit()
1060 __ Bind(GetLabelOf(block)); in Bind()
1065 __ Mov(RegisterFrom(location, Primitive::kPrimInt), value); in MoveConstant()
1082 __ Cbz(value, &done); in MarkGCCard()
1084 __ Ldr(card, MemOperand(tr, Thread::CardTableOffset<kArm64WordSize>().Int32Value())); in MarkGCCard()
1085 __ Lsr(temp, object, gc::accounting::CardTable::kCardShift); in MarkGCCard()
1086 __ Strb(card, MemOperand(card, temp.X())); in MarkGCCard()
1088 __ Bind(&done); in MarkGCCard()
1126 __ Str(reg, MemOperand(sp, stack_index)); in SaveCoreRegister()
1132 __ Ldr(reg, MemOperand(sp, stack_index)); in RestoreCoreRegister()
1138 __ Str(reg, MemOperand(sp, stack_index)); in SaveFloatingPointRegister()
1144 __ Ldr(reg, MemOperand(sp, stack_index)); in RestoreFloatingPointRegister()
1158 __ Mov(Register(destination), constant->AsIntConstant()->GetValue()); in MoveConstant()
1160 __ Mov(Register(destination), constant->AsLongConstant()->GetValue()); in MoveConstant()
1162 __ Mov(Register(destination), 0); in MoveConstant()
1164 __ Fmov(FPRegister(destination), constant->AsFloatConstant()->GetValue()); in MoveConstant()
1167 __ Fmov(FPRegister(destination), constant->AsDoubleConstant()->GetValue()); in MoveConstant()
1218 __ Ldr(dst, StackOperandFrom(source)); in MoveLocation()
1224 __ Mov(Register(dst), RegisterFrom(source, dst_type)); in MoveLocation()
1230 __ Fmov(FPRegisterFrom(destination, dst_type), RegisterFrom(source, source_type)); in MoveLocation()
1238 __ Fmov(RegisterFrom(destination, dst_type), FPRegisterFrom(source, source_type)); in MoveLocation()
1241 __ Fmov(FPRegister(dst), FPRegisterFrom(source, dst_type)); in MoveLocation()
1256 __ Str(CPURegisterFrom(source, dst_type), StackOperandFrom(destination)); in MoveLocation()
1274 __ Str(temp, StackOperandFrom(destination)); in MoveLocation()
1281 __ Ldr(temp, StackOperandFrom(source)); in MoveLocation()
1282 __ Str(temp, StackOperandFrom(destination)); in MoveLocation()
1292 __ Ldrb(Register(dst), src); in Load()
1295 __ Ldrsb(Register(dst), src); in Load()
1298 __ Ldrsh(Register(dst), src); in Load()
1301 __ Ldrh(Register(dst), src); in Load()
1309 __ Ldr(dst, src); in Load()
1330 __ Add(temp_base, src.base(), OperandFromMemOperand(src)); in LoadAcquire()
1334 __ Ldarb(Register(dst), base); in LoadAcquire()
1340 __ Ldarb(Register(dst), base); in LoadAcquire()
1344 __ Sbfx(Register(dst), Register(dst), 0, Primitive::ComponentSize(type) * kBitsPerByte); in LoadAcquire()
1347 __ Ldarh(Register(dst), base); in LoadAcquire()
1353 __ Ldarh(Register(dst), base); in LoadAcquire()
1357 __ Sbfx(Register(dst), Register(dst), 0, Primitive::ComponentSize(type) * kBitsPerByte); in LoadAcquire()
1363 __ Ldar(Register(dst), base); in LoadAcquire()
1374 __ Ldar(temp, base); in LoadAcquire()
1378 __ Fmov(FPRegister(dst), temp); in LoadAcquire()
1392 __ Strb(Register(src), dst); in Store()
1396 __ Strh(Register(src), dst); in Store()
1404 __ Str(src, dst); in Store()
1422 __ Add(temp_base, dst.base(), op); in StoreRelease()
1427 __ Stlrb(Register(src), base); in StoreRelease()
1431 __ Stlrh(Register(src), base); in StoreRelease()
1437 __ Stlr(Register(src), base); in StoreRelease()
1445 __ Fmov(temp, FPRegister(src)); in StoreRelease()
1446 __ Stlr(temp, base); in StoreRelease()
1470 __ Ldr(lr, MemOperand(tr, entry_point_offset)); in InvokeRuntime()
1471 __ Blr(lr); in InvokeRuntime()
1483 __ Add(temp, class_reg, status_offset); in GenerateClassInitializationCheck()
1484 __ Ldar(temp, HeapOperand(temp)); in GenerateClassInitializationCheck()
1485 __ Cmp(temp, mirror::Class::kStatusInitialized); in GenerateClassInitializationCheck()
1486 __ B(lt, slow_path->GetEntryLabel()); in GenerateClassInitializationCheck()
1487 __ Bind(slow_path->GetExitLabel()); in GenerateClassInitializationCheck()
1510 __ Dmb(InnerShareable, type); in GenerateMemoryBarrier()
1532 __ Ldrh(temp, MemOperand(tr, Thread::ThreadFlagsOffset<kArm64WordSize>().SizeValue())); in GenerateSuspendCheck()
1534 __ Cbnz(temp, slow_path->GetEntryLabel()); in GenerateSuspendCheck()
1535 __ Bind(slow_path->GetReturnLabel()); in GenerateSuspendCheck()
1537 __ Cbz(temp, codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
1538 __ B(slow_path->GetEntryLabel()); in GenerateSuspendCheck()
1564 __ Brk(UNIMPLEMENTED_INSTRUCTION_BREAK_CODE(name)); \
1703 __ Mov(temp, value.W()); in HandleFieldSet()
1732 __ Add(dst, lhs, rhs); in HandleBinaryOp()
1734 __ And(dst, lhs, rhs); in HandleBinaryOp()
1736 __ Orr(dst, lhs, rhs); in HandleBinaryOp()
1738 __ Sub(dst, lhs, rhs); in HandleBinaryOp()
1742 __ Ror(dst, lhs, shift); in HandleBinaryOp()
1748 __ Ror(dst, lhs, RegisterFrom(instr->GetLocations()->InAt(1), type)); in HandleBinaryOp()
1752 __ Eor(dst, lhs, rhs); in HandleBinaryOp()
1762 __ Fadd(dst, lhs, rhs); in HandleBinaryOp()
1764 __ Fsub(dst, lhs, rhs); in HandleBinaryOp()
1807 __ Lsl(dst, lhs, shift_value); in HandleShift()
1809 __ Asr(dst, lhs, shift_value); in HandleShift()
1811 __ Lsr(dst, lhs, shift_value); in HandleShift()
1817 __ Lsl(dst, lhs, rhs_reg); in HandleShift()
1819 __ Asr(dst, lhs, rhs_reg); in HandleShift()
1821 __ Lsr(dst, lhs, rhs_reg); in HandleShift()
1863 __ Bic(dst, lhs, rhs); in VisitBitwiseNegatedRight()
1866 __ Orn(dst, lhs, rhs); in VisitBitwiseNegatedRight()
1869 __ Eon(dst, lhs, rhs); in VisitBitwiseNegatedRight()
1927 __ Add(out, left, right_operand); in VisitArm64DataProcWithShifterOp()
1930 __ And(out, left, right_operand); in VisitArm64DataProcWithShifterOp()
1934 __ Neg(out, right_operand); in VisitArm64DataProcWithShifterOp()
1937 __ Orr(out, left, right_operand); in VisitArm64DataProcWithShifterOp()
1940 __ Sub(out, left, right_operand); in VisitArm64DataProcWithShifterOp()
1943 __ Eor(out, left, right_operand); in VisitArm64DataProcWithShifterOp()
1967 __ Add(OutputRegister(instruction), in VisitArm64IntermediateAddress()
2007 __ nop(); in VisitMultiplyAccumulate()
2013 __ Madd(res, mul_left, mul_right, accumulator); in VisitMultiplyAccumulate()
2018 __ Mneg(res, mul_left, mul_right); in VisitMultiplyAccumulate()
2021 __ Msub(res, mul_left, mul_right, accumulator); in VisitMultiplyAccumulate()
2092 __ Add(temp, obj, offset); in VisitArrayGet()
2122 __ Ldr(OutputRegister(instruction), in VisitArrayLength()
2184 __ Add(temp, array, offset); in VisitArraySet()
2222 __ Cbnz(Register(value), &non_zero); in VisitArraySet()
2224 __ Add(temp, array, offset); in VisitArraySet()
2226 __ Str(wzr, destination); in VisitArraySet()
2228 __ B(&done); in VisitArraySet()
2229 __ Bind(&non_zero); in VisitArraySet()
2258 __ B(slow_path->GetEntryLabel()); in VisitArraySet()
2262 __ Ldr(temp, HeapOperand(array, class_offset)); in VisitArraySet()
2267 __ Ldr(temp, HeapOperand(temp, component_offset)); in VisitArraySet()
2269 __ Ldr(temp2, HeapOperand(Register(value), class_offset)); in VisitArraySet()
2272 __ Cmp(temp, temp2); in VisitArraySet()
2276 __ B(eq, &do_put); in VisitArraySet()
2282 __ Ldr(temp, HeapOperand(temp, super_offset)); in VisitArraySet()
2285 __ Cbnz(temp, slow_path->GetEntryLabel()); in VisitArraySet()
2286 __ Bind(&do_put); in VisitArraySet()
2288 __ B(ne, slow_path->GetEntryLabel()); in VisitArraySet()
2297 __ Mov(temp2, value.W()); in VisitArraySet()
2303 __ Add(temp, array, offset); in VisitArraySet()
2305 __ Str(source, destination); in VisitArraySet()
2315 __ Bind(&done); in VisitArraySet()
2319 __ Bind(slow_path->GetExitLabel()); in VisitArraySet()
2341 __ Cmp(InputRegisterAt(instruction, 0), InputOperandAt(instruction, 1)); in VisitBoundsCheck()
2342 __ B(slow_path->GetEntryLabel(), hs); in VisitBoundsCheck()
2387 __ Fcmp(lhs_reg, 0.0); in GenerateFcmp()
2389 __ Fcmp(lhs_reg, InputFPRegisterAt(instruction, 1)); in GenerateFcmp()
2440 __ Cmp(left, right); in VisitCompare()
2441 __ Cset(result, ne); // result == +1 if NE or 0 otherwise in VisitCompare()
2442 __ Cneg(result, result, lt); // result == -1 if LT or unchanged otherwise in VisitCompare()
2449 __ Cset(result, ne); in VisitCompare()
2450 __ Cneg(result, result, ARM64FPCondition(kCondLT, compare->IsGtBias())); in VisitCompare()
2489 __ Cset(res, ARM64FPCondition(if_cond, instruction->IsGtBias())); in HandleCondition()
2494 __ Cmp(lhs, rhs); in HandleCondition()
2495 __ Cset(res, ARM64Condition(if_cond)); in HandleCondition()
2530 __ Mov(out, 0); in FOR_EACH_CONDITION_INSTRUCTION()
2533 __ Mov(out, dividend); in FOR_EACH_CONDITION_INSTRUCTION()
2535 __ Neg(out, dividend); in FOR_EACH_CONDITION_INSTRUCTION()
2557 __ Add(temp, dividend, abs_imm - 1); in DivRemByPowerOfTwo()
2558 __ Cmp(dividend, 0); in DivRemByPowerOfTwo()
2559 __ Csel(out, temp, dividend, lt); in DivRemByPowerOfTwo()
2561 __ Asr(out, out, ctz_imm); in DivRemByPowerOfTwo()
2563 __ Neg(out, Operand(out, ASR, ctz_imm)); in DivRemByPowerOfTwo()
2567 __ Asr(temp, dividend, bits - 1); in DivRemByPowerOfTwo()
2568 __ Lsr(temp, temp, bits - ctz_imm); in DivRemByPowerOfTwo()
2569 __ Add(out, dividend, temp); in DivRemByPowerOfTwo()
2570 __ And(out, out, abs_imm - 1); in DivRemByPowerOfTwo()
2571 __ Sub(out, out, temp); in DivRemByPowerOfTwo()
2597 __ Mov(temp, magic); in GenerateDivRemWithAnyConstant()
2599 __ Smulh(temp, dividend, temp); in GenerateDivRemWithAnyConstant()
2601 __ Smull(temp.X(), dividend, temp); in GenerateDivRemWithAnyConstant()
2602 __ Lsr(temp.X(), temp.X(), 32); in GenerateDivRemWithAnyConstant()
2606 __ Add(temp, temp, dividend); in GenerateDivRemWithAnyConstant()
2608 __ Sub(temp, temp, dividend); in GenerateDivRemWithAnyConstant()
2612 __ Asr(temp, temp, shift); in GenerateDivRemWithAnyConstant()
2616 __ Sub(out, temp, Operand(temp, ASR, type == Primitive::kPrimLong ? 63 : 31)); in GenerateDivRemWithAnyConstant()
2618 __ Sub(temp, temp, Operand(temp, ASR, type == Primitive::kPrimLong ? 63 : 31)); in GenerateDivRemWithAnyConstant()
2621 __ Mov(temp_imm, imm); in GenerateDivRemWithAnyConstant()
2622 __ Msub(out, temp, temp_imm, dividend); in GenerateDivRemWithAnyConstant()
2652 __ Sdiv(out, dividend, divisor); in GenerateDivRemIntegral()
2656 __ Sdiv(temp, dividend, divisor); in GenerateDivRemIntegral()
2657 __ Msub(out, temp, divisor, dividend); in GenerateDivRemIntegral()
2695 __ Fdiv(OutputFPRegister(div), InputFPRegisterAt(div, 0), InputFPRegisterAt(div, 1)); in VisitDiv()
2730 __ B(slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2736 __ Cbz(InputRegisterAt(instruction, 0), slow_path->GetEntryLabel()); in VisitDivZeroCheck()
2783 __ B(codegen_->GetLabelOf(successor)); in HandleGoto()
2822 __ B(true_target); in GenerateTestAndBranch()
2827 __ B(false_target); in GenerateTestAndBranch()
2846 __ Cbz(InputRegisterAt(instruction, condition_input_index), false_target); in GenerateTestAndBranch()
2848 __ Cbnz(InputRegisterAt(instruction, condition_input_index), true_target); in GenerateTestAndBranch()
2860 __ B(ARM64FPCondition(opposite_condition, condition->IsGtBias()), false_target); in GenerateTestAndBranch()
2862 __ B(ARM64FPCondition(condition->GetCondition(), condition->IsGtBias()), true_target); in GenerateTestAndBranch()
2883 __ Cbz(lhs, non_fallthrough_target); in GenerateTestAndBranch()
2886 __ Cbnz(lhs, non_fallthrough_target); in GenerateTestAndBranch()
2890 __ Tbnz(lhs, (lhs.IsX() ? kXRegSize : kWRegSize) - 1, non_fallthrough_target); in GenerateTestAndBranch()
2894 __ Tbz(lhs, (lhs.IsX() ? kXRegSize : kWRegSize) - 1, non_fallthrough_target); in GenerateTestAndBranch()
2902 __ Cmp(lhs, rhs); in GenerateTestAndBranch()
2903 __ B(arm64_cond, non_fallthrough_target); in GenerateTestAndBranch()
2911 __ B(false_target); in GenerateTestAndBranch()
2915 __ Bind(&fallthrough_target); in GenerateTestAndBranch()
3037 __ Cmp(InputRegisterAt(select, 2), 0); in VisitSelect()
3044 __ Cmp(InputRegisterAt(cond, 0), InputOperandAt(cond, 1)); in VisitSelect()
3051 __ Csel(OutputRegister(select), in VisitSelect()
3057 __ Csel(OutputRegister(select), in VisitSelect()
3063 __ Fcsel(OutputFPRegister(select), in VisitSelect()
3080 __ Nop(); in GenerateNop()
3160 __ Cbz(obj, &zero); in VisitInstanceOf()
3168 __ Cmp(out, cls); in VisitInstanceOf()
3169 __ Cset(out, eq); in VisitInstanceOf()
3171 __ B(&done); in VisitInstanceOf()
3180 __ Bind(&loop); in VisitInstanceOf()
3184 __ Cbz(out, &done); in VisitInstanceOf()
3185 __ Cmp(out, cls); in VisitInstanceOf()
3186 __ B(ne, &loop); in VisitInstanceOf()
3187 __ Mov(out, 1); in VisitInstanceOf()
3189 __ B(&done); in VisitInstanceOf()
3197 __ Bind(&loop); in VisitInstanceOf()
3198 __ Cmp(out, cls); in VisitInstanceOf()
3199 __ B(eq, &success); in VisitInstanceOf()
3202 __ Cbnz(out, &loop); in VisitInstanceOf()
3204 __ B(&done); in VisitInstanceOf()
3205 __ Bind(&success); in VisitInstanceOf()
3206 __ Mov(out, 1); in VisitInstanceOf()
3208 __ B(&done); in VisitInstanceOf()
3216 __ Cmp(out, cls); in VisitInstanceOf()
3217 __ B(eq, &exact_check); in VisitInstanceOf()
3222 __ Cbz(out, &done); in VisitInstanceOf()
3223 __ Ldrh(out, HeapOperand(out, primitive_offset)); in VisitInstanceOf()
3225 __ Cbnz(out, &zero); in VisitInstanceOf()
3226 __ Bind(&exact_check); in VisitInstanceOf()
3227 __ Mov(out, 1); in VisitInstanceOf()
3228 __ B(&done); in VisitInstanceOf()
3233 __ Cmp(out, cls); in VisitInstanceOf()
3238 __ B(ne, slow_path->GetEntryLabel()); in VisitInstanceOf()
3239 __ Mov(out, 1); in VisitInstanceOf()
3241 __ B(&done); in VisitInstanceOf()
3270 __ B(slow_path->GetEntryLabel()); in VisitInstanceOf()
3272 __ B(&done); in VisitInstanceOf()
3279 __ Bind(&zero); in VisitInstanceOf()
3280 __ Mov(out, 0); in VisitInstanceOf()
3284 __ Bind(&done); in VisitInstanceOf()
3288 __ Bind(slow_path->GetExitLabel()); in VisitInstanceOf()
3355 __ Cbz(obj, &done); in VisitCheckCast()
3364 __ Cmp(temp, cls); in VisitCheckCast()
3367 __ B(ne, type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
3375 __ Bind(&loop); in VisitCheckCast()
3382 __ Cbnz(temp, &compare_classes); in VisitCheckCast()
3391 __ B(type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
3393 __ Bind(&compare_classes); in VisitCheckCast()
3394 __ Cmp(temp, cls); in VisitCheckCast()
3395 __ B(ne, &loop); in VisitCheckCast()
3402 __ Bind(&loop); in VisitCheckCast()
3403 __ Cmp(temp, cls); in VisitCheckCast()
3404 __ B(eq, &done); in VisitCheckCast()
3411 __ Cbnz(temp, &loop); in VisitCheckCast()
3420 __ B(type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
3427 __ Cmp(temp, cls); in VisitCheckCast()
3428 __ B(eq, &done); in VisitCheckCast()
3438 __ Cbnz(temp, &check_non_primitive_component_type); in VisitCheckCast()
3447 __ B(type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
3449 __ Bind(&check_non_primitive_component_type); in VisitCheckCast()
3450 __ Ldrh(temp, HeapOperand(temp, primitive_offset)); in VisitCheckCast()
3452 __ Cbz(temp, &done); in VisitCheckCast()
3457 __ B(type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
3480 __ B(type_check_slow_path->GetEntryLabel()); in VisitCheckCast()
3483 __ Bind(&done); in VisitCheckCast()
3485 __ Bind(type_check_slow_path->GetExitLabel()); in VisitCheckCast()
3542 __ Mov(ip1, invoke->GetDexMethodIndex()); in VisitInvokeInterface()
3545 __ Ldr(temp.W(), StackOperandFrom(receiver)); in VisitInvokeInterface()
3547 __ Ldr(temp.W(), HeapOperand(temp.W(), class_offset)); in VisitInvokeInterface()
3550 __ Ldr(temp.W(), HeapOperandFrom(receiver, class_offset)); in VisitInvokeInterface()
3562 __ Ldr(temp, MemOperand(temp, method_offset)); in VisitInvokeInterface()
3564 __ Ldr(lr, MemOperand(temp, entry_point.Int32Value())); in VisitInvokeInterface()
3566 __ Blr(lr); in VisitInvokeInterface()
3615 __ Ldr(lr, DeduplicateMethodCodeLiteral(invoke->GetTargetMethod())); in GenerateStaticOrDirectCall()
3620 __ Ldr(lr, DeduplicateUint64Literal(invoke->GetDirectCodePtr())); in GenerateStaticOrDirectCall()
3632 __ Ldr(XRegisterFrom(temp), MemOperand(tr, invoke->GetStringInitOffset())); in GenerateStaticOrDirectCall()
3639 __ Ldr(XRegisterFrom(temp), DeduplicateUint64Literal(invoke->GetMethodAddress())); in GenerateStaticOrDirectCall()
3643 __ Ldr(XRegisterFrom(temp), in GenerateStaticOrDirectCall()
3653 __ Bind(adrp_label); in GenerateStaticOrDirectCall()
3654 __ adrp(XRegisterFrom(temp), /* offset placeholder */ 0); in GenerateStaticOrDirectCall()
3661 __ Bind(ldr_label); in GenerateStaticOrDirectCall()
3662 __ ldr(XRegisterFrom(temp), MemOperand(XRegisterFrom(temp), /* offset placeholder */ 0)); in GenerateStaticOrDirectCall()
3676 __ Ldr(reg.X(), MemOperand(sp, kCurrentMethodStackOffset)); in GenerateStaticOrDirectCall()
3680 __ Ldr(reg.X(), in GenerateStaticOrDirectCall()
3686 __ Ldr(reg.X(), MemOperand(reg.X(), GetCachePointerOffset(index_in_cache))); in GenerateStaticOrDirectCall()
3693 __ Bl(&frame_entry_label_); in GenerateStaticOrDirectCall()
3699 __ Bind(label); in GenerateStaticOrDirectCall()
3700 __ bl(0); // Branch and link to itself. This will be overriden at link time. in GenerateStaticOrDirectCall()
3708 __ Blr(lr); in GenerateStaticOrDirectCall()
3712 __ Ldr(lr, MemOperand( in GenerateStaticOrDirectCall()
3716 __ Blr(lr); in GenerateStaticOrDirectCall()
3740 __ Ldr(temp.W(), HeapOperandFrom(LocationFrom(receiver), class_offset)); in GenerateVirtualCall()
3750 __ Ldr(temp, MemOperand(temp, method_offset)); in GenerateVirtualCall()
3752 __ Ldr(lr, MemOperand(temp, entry_point.SizeValue())); in GenerateVirtualCall()
3754 __ Blr(lr); in GenerateVirtualCall()
3786 [this]() { return __ CreateLiteralDestroyedWithPool<uint32_t>(/* placeholder */ 0u); }); in DeduplicateBootImageStringLiteral()
3859 [this, value]() { return __ CreateLiteralDestroyedWithPool<uint32_t>(value); }); in DeduplicateUint32Literal()
3865 [this, value]() { return __ CreateLiteralDestroyedWithPool<uint64_t>(value); }); in DeduplicateUint64Literal()
3873 [this]() { return __ CreateLiteralDestroyedWithPool<uint64_t>(/* placeholder */ 0u); }); in DeduplicateMethodLiteral()
3946 __ Ldr(out.X(), MemOperand(current_method, resolved_types_offset.Int32Value())); in VisitLoadClass()
3957 __ Cbz(out, slow_path->GetEntryLabel()); in VisitLoadClass()
3962 __ Bind(slow_path->GetExitLabel()); in VisitLoadClass()
3979 __ Ldr(OutputRegister(instruction), GetExceptionTlsAddress()); in VisitLoadException()
3987 __ Str(wzr, GetExceptionTlsAddress()); in VisitClearException()
4042 __ Ldr(out, codegen_->DeduplicateBootImageStringLiteral(load->GetDexFile(), in VisitLoadString()
4053 __ Bind(adrp_label); in VisitLoadString()
4054 __ adrp(out.X(), /* offset placeholder */ 0); in VisitLoadString()
4061 __ Bind(add_label); in VisitLoadString()
4062 __ add(out.X(), out.X(), Operand(/* offset placeholder */ 0)); in VisitLoadString()
4069 __ Ldr(out.W(), codegen_->DeduplicateBootImageAddressLiteral(load->GetAddress())); in VisitLoadString()
4083 __ Ldr(out.X(), codegen_->DeduplicateDexCacheAddressLiteral(base_address)); in VisitLoadString()
4094 __ Bind(adrp_label); in VisitLoadString()
4095 __ adrp(out.X(), /* offset placeholder */ 0); in VisitLoadString()
4109 __ Ldr(out.X(), HeapOperand(out, mirror::Class::DexCacheStringsOffset().Uint32Value())); in VisitLoadString()
4123 __ Cbz(out, slow_path->GetEntryLabel()); in VisitLoadString()
4124 __ Bind(slow_path->GetExitLabel()); in VisitLoadString()
4184 __ Mul(OutputRegister(mul), InputRegisterAt(mul, 0), InputRegisterAt(mul, 1)); in VisitMul()
4189 __ Fmul(OutputFPRegister(mul), InputFPRegisterAt(mul, 0), InputFPRegisterAt(mul, 1)); in VisitMul()
4222 __ Neg(OutputRegister(neg), InputOperandAt(neg, 0)); in VisitNeg()
4227 __ Fneg(OutputFPRegister(neg), InputFPRegisterAt(neg, 0)); in VisitNeg()
4250 __ Mov(type_index, instruction->GetTypeIndex()); in VisitNewArray()
4280 __ Ldr(XRegisterFrom(temp), MemOperand(tr, QUICK_ENTRY_POINT(pNewEmptyString))); in VisitNewInstance()
4281 __ Ldr(lr, MemOperand(XRegisterFrom(temp), code_offset.Int32Value())); in VisitNewInstance()
4282 __ Blr(lr); in VisitNewInstance()
4303 __ Mvn(OutputRegister(instruction), InputOperandAt(instruction, 0)); in VisitNot()
4318 __ Eor(OutputRegister(instruction), InputRegisterAt(instruction, 0), vixl::Operand(1)); in VisitBooleanNot()
4339 __ Ldr(wzr, HeapOperandFrom(obj, Offset(0))); in GenerateImplicitNullCheck()
4350 __ Cbz(RegisterFrom(obj, instruction->InputAt(0)->GetType()), slow_path->GetEntryLabel()); in GenerateExplicitNullCheck()
4687 __ Mov(output.W(), source.W()); in VisitTypeConversion()
4690 __ Ubfx(output, in VisitTypeConversion()
4694 __ Sbfx(output, output.IsX() ? source.X() : source.W(), 0, min_size * kBitsPerByte); in VisitTypeConversion()
4697 __ Scvtf(OutputFPRegister(conversion), InputRegisterAt(conversion, 0)); in VisitTypeConversion()
4700 __ Fcvtzs(OutputRegister(conversion), InputFPRegisterAt(conversion, 0)); in VisitTypeConversion()
4703 __ Fcvt(OutputFPRegister(conversion), InputFPRegisterAt(conversion, 0)); in VisitTypeConversion()
4763 __ Subs(temp, value_reg, Operand(lower_bound)); in VisitPackedSwitch()
4767 __ B(eq, codegen_->GetLabelOf(successors[0])); in VisitPackedSwitch()
4770 __ Subs(temp, temp, Operand(2)); in VisitPackedSwitch()
4772 __ B(lo, codegen_->GetLabelOf(successors[last_index + 1])); in VisitPackedSwitch()
4774 __ B(eq, codegen_->GetLabelOf(successors[last_index + 2])); in VisitPackedSwitch()
4778 __ Cmp(temp, Operand(1)); in VisitPackedSwitch()
4779 __ B(eq, codegen_->GetLabelOf(successors[last_index + 1])); in VisitPackedSwitch()
4784 __ B(codegen_->GetLabelOf(default_block)); in VisitPackedSwitch()
4798 __ Sub(index, value_reg, Operand(lower_bound)); in VisitPackedSwitch()
4804 __ Cmp(index, Operand(num_entries)); in VisitPackedSwitch()
4805 __ B(hs, codegen_->GetLabelOf(default_block)); in VisitPackedSwitch()
4812 __ Adr(table_base, jump_table->GetTableStartLabel()); in VisitPackedSwitch()
4814 __ Ldr(jump_offset, MemOperand(table_base, index, UXTW, 2)); in VisitPackedSwitch()
4818 __ Add(target_address, table_base, Operand(jump_offset, SXTW)); in VisitPackedSwitch()
4819 __ Br(target_address); in VisitPackedSwitch()
4846 __ Mov(temp_reg, out_reg); in GenerateReferenceLoadOneRegister()
4848 __ Ldr(out_reg, HeapOperand(out_reg, offset)); in GenerateReferenceLoadOneRegister()
4854 __ Ldr(out_reg, HeapOperand(out_reg, offset)); in GenerateReferenceLoadOneRegister()
4882 __ Ldr(out_reg, HeapOperand(obj_reg, offset)); in GenerateReferenceLoadTwoRegisters()
4888 __ Ldr(out_reg, HeapOperand(obj_reg, offset)); in GenerateReferenceLoadTwoRegisters()
4911 __ Ldr(root_reg, MemOperand(obj, offset)); in GenerateGcRootFieldLoad()
4914 __ Bind(fixup_label); in GenerateGcRootFieldLoad()
4915 __ ldr(root_reg, MemOperand(obj, offset)); in GenerateGcRootFieldLoad()
4934 __ Ldr(temp, MemOperand(tr, Thread::IsGcMarkingOffset<kArm64WordSize>().Int32Value())); in GenerateGcRootFieldLoad()
4935 __ Cbnz(temp, slow_path->GetEntryLabel()); in GenerateGcRootFieldLoad()
4936 __ Bind(slow_path->GetExitLabel()); in GenerateGcRootFieldLoad()
4942 __ Add(root_reg.X(), obj.X(), offset); in GenerateGcRootFieldLoad()
4945 __ Bind(fixup_label); in GenerateGcRootFieldLoad()
4946 __ add(root_reg.X(), obj.X(), offset); in GenerateGcRootFieldLoad()
4955 __ Ldr(root_reg, MemOperand(obj, offset)); in GenerateGcRootFieldLoad()
4958 __ Bind(fixup_label); in GenerateGcRootFieldLoad()
4959 __ ldr(root_reg, MemOperand(obj, offset)); in GenerateGcRootFieldLoad()
5045 __ Ldr(temp, HeapOperand(obj, monitor_offset)); in GenerateReferenceLoadWithBakerReadBarrier()
5053 __ Lsr(temp, temp, LockWord::kReadBarrierStateShift); in GenerateReferenceLoadWithBakerReadBarrier()
5054 __ And(temp, temp, Operand(LockWord::kReadBarrierStateMask)); in GenerateReferenceLoadWithBakerReadBarrier()
5064 __ Bic(temp2, temp, Operand(LockWord::kReadBarrierStateMask)); in GenerateReferenceLoadWithBakerReadBarrier()
5067 __ Add(obj, obj, Operand(temp2)); in GenerateReferenceLoadWithBakerReadBarrier()
5083 __ Add(temp2, obj, offset); in GenerateReferenceLoadWithBakerReadBarrier()
5107 __ Cmp(temp, ReadBarrier::gray_ptr_); in GenerateReferenceLoadWithBakerReadBarrier()
5108 __ B(eq, slow_path->GetEntryLabel()); in GenerateReferenceLoadWithBakerReadBarrier()
5109 __ Bind(slow_path->GetExitLabel()); in GenerateReferenceLoadWithBakerReadBarrier()
5135 __ B(slow_path->GetEntryLabel()); in GenerateReadBarrierSlow()
5136 __ Bind(slow_path->GetExitLabel()); in GenerateReadBarrierSlow()
5170 __ B(slow_path->GetEntryLabel()); in GenerateReadBarrierForRootSlow()
5171 __ Bind(slow_path->GetExitLabel()); in GenerateReadBarrierForRootSlow()
5191 __ Ldr(XRegisterFrom(locations->Out()), in VisitClassTableGet()
5197 #undef __