Lines Matching refs:__
38 #ifdef __
104 #define __ down_cast<CodeGeneratorARM64*>(codegen)->GetVIXLAssembler()-> macro
119 __ Bind(GetEntryLabel()); in EmitNativeCode()
145 __ Bind(GetEntryLabel()); in EmitNativeCode()
170 __ Bind(GetEntryLabel()); in EmitNativeCode()
174 __ Mov(calling_convention.GetRegisterAt(0).W(), cls_->GetTypeIndex()); in EmitNativeCode()
193 __ B(GetExitLabel()); in EmitNativeCode()
222 __ Bind(GetEntryLabel()); in EmitNativeCode()
226 __ Mov(calling_convention.GetRegisterAt(0).W(), instruction_->GetStringIndex()); in EmitNativeCode()
234 __ B(GetExitLabel()); in EmitNativeCode()
249 __ Bind(GetEntryLabel()); in EmitNativeCode()
269 __ Bind(GetEntryLabel()); in EmitNativeCode()
276 __ B(GetReturnLabel()); in EmitNativeCode()
278 __ B(arm64_codegen->GetLabelOf(successor_)); in EmitNativeCode()
319 __ Bind(GetEntryLabel()); in EmitNativeCode()
344 __ B(GetExitLabel()); in EmitNativeCode()
362 __ Bind(GetEntryLabel()); in EmitNativeCode()
376 #undef __
420 #undef __
421 #define __ GetVIXLAssembler()-> macro
425 __ FinalizeCode(); in Finalize()
485 __ Bind(&frame_entry_label_); in GenerateFrameEntry()
492 __ Sub(temp, sp, static_cast<int32_t>(GetStackOverflowReservedBytes(kArm64))); in GenerateFrameEntry()
493 __ Ldr(wzr, MemOperand(temp, 0)); in GenerateFrameEntry()
505 __ Str(kArtMethodRegister, MemOperand(sp, -frame_size, PreIndex)); in GenerateFrameEntry()
523 __ Drop(frame_size); in GenerateFrameExit()
526 __ Ret(); in GenerateFrameExit()
532 __ Bind(GetLabelOf(block)); in Bind()
554 __ Mov(dst, value); in Move()
561 __ Mov(temp, value); in Move()
562 __ Str(temp, StackOperandFrom(location)); in Move()
611 __ Cbz(value, &done); in MarkGCCard()
612 __ Ldr(card, MemOperand(tr, Thread::CardTableOffset<kArm64WordSize>().Int32Value())); in MarkGCCard()
613 __ Lsr(temp, object, gc::accounting::CardTable::kCardShift); in MarkGCCard()
614 __ Strb(card, MemOperand(card, temp.X())); in MarkGCCard()
615 __ Bind(&done); in MarkGCCard()
670 __ Str(reg, MemOperand(sp, stack_index)); in SaveCoreRegister()
676 __ Ldr(reg, MemOperand(sp, stack_index)); in RestoreCoreRegister()
682 __ Str(reg, MemOperand(sp, stack_index)); in SaveFloatingPointRegister()
688 __ Ldr(reg, MemOperand(sp, stack_index)); in RestoreFloatingPointRegister()
702 __ Mov(Register(destination), constant->AsIntConstant()->GetValue()); in MoveConstant()
704 __ Mov(Register(destination), constant->AsLongConstant()->GetValue()); in MoveConstant()
706 __ Mov(Register(destination), 0); in MoveConstant()
708 __ Fmov(FPRegister(destination), constant->AsFloatConstant()->GetValue()); in MoveConstant()
711 __ Fmov(FPRegister(destination), constant->AsDoubleConstant()->GetValue()); in MoveConstant()
760 __ Ldr(dst, StackOperandFrom(source)); in MoveLocation()
766 __ Mov(Register(dst), RegisterFrom(source, type)); in MoveLocation()
769 __ Fmov(FPRegister(dst), FPRegisterFrom(source, type)); in MoveLocation()
784 __ Str(CPURegisterFrom(source, type), StackOperandFrom(destination)); in MoveLocation()
801 __ Str(temp, StackOperandFrom(destination)); in MoveLocation()
808 __ Ldr(temp, StackOperandFrom(source)); in MoveLocation()
809 __ Str(temp, StackOperandFrom(destination)); in MoveLocation()
819 __ Ldrb(Register(dst), src); in Load()
822 __ Ldrsb(Register(dst), src); in Load()
825 __ Ldrsh(Register(dst), src); in Load()
828 __ Ldrh(Register(dst), src); in Load()
836 __ Ldr(dst, src); in Load()
856 __ Add(temp_base, src.base(), OperandFromMemOperand(src)); in LoadAcquire()
860 __ Ldarb(Register(dst), base); in LoadAcquire()
864 __ Ldarb(Register(dst), base); in LoadAcquire()
866 __ Sbfx(Register(dst), Register(dst), 0, Primitive::ComponentSize(type) * kBitsPerByte); in LoadAcquire()
869 __ Ldarh(Register(dst), base); in LoadAcquire()
873 __ Ldarh(Register(dst), base); in LoadAcquire()
875 __ Sbfx(Register(dst), Register(dst), 0, Primitive::ComponentSize(type) * kBitsPerByte); in LoadAcquire()
881 __ Ldar(Register(dst), base); in LoadAcquire()
890 __ Ldar(temp, base); in LoadAcquire()
892 __ Fmov(FPRegister(dst), temp); in LoadAcquire()
906 __ Strb(Register(src), dst); in Store()
910 __ Strh(Register(src), dst); in Store()
918 __ Str(src, dst); in Store()
936 __ Add(temp_base, dst.base(), op); in StoreRelease()
941 __ Stlrb(Register(src), base); in StoreRelease()
945 __ Stlrh(Register(src), base); in StoreRelease()
951 __ Stlr(Register(src), base); in StoreRelease()
959 __ Fmov(temp, FPRegister(src)); in StoreRelease()
960 __ Stlr(temp, base); in StoreRelease()
971 __ Ldr(current_method, MemOperand(sp, kCurrentMethodStackOffset)); in LoadCurrentMethod()
979 __ Ldr(lr, MemOperand(tr, entry_point_offset)); in InvokeRuntime()
980 __ Blr(lr); in InvokeRuntime()
1001 __ Add(temp, class_reg, status_offset); in GenerateClassInitializationCheck()
1002 __ Ldar(temp, HeapOperand(temp)); in GenerateClassInitializationCheck()
1003 __ Cmp(temp, mirror::Class::kStatusInitialized); in GenerateClassInitializationCheck()
1004 __ B(lt, slow_path->GetEntryLabel()); in GenerateClassInitializationCheck()
1006 __ Ldr(temp, HeapOperand(class_reg, status_offset)); in GenerateClassInitializationCheck()
1007 __ Cmp(temp, mirror::Class::kStatusInitialized); in GenerateClassInitializationCheck()
1008 __ B(lt, slow_path->GetEntryLabel()); in GenerateClassInitializationCheck()
1009 __ Dmb(InnerShareable, BarrierReads); in GenerateClassInitializationCheck()
1011 __ Bind(slow_path->GetExitLabel()); in GenerateClassInitializationCheck()
1034 __ Dmb(InnerShareable, type); in GenerateMemoryBarrier()
1056 __ Ldrh(temp, MemOperand(tr, Thread::ThreadFlagsOffset<kArm64WordSize>().SizeValue())); in GenerateSuspendCheck()
1058 __ Cbnz(temp, slow_path->GetEntryLabel()); in GenerateSuspendCheck()
1059 __ Bind(slow_path->GetReturnLabel()); in GenerateSuspendCheck()
1061 __ Cbz(temp, codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
1062 __ B(slow_path->GetEntryLabel()); in GenerateSuspendCheck()
1089 __ Brk(UNIMPLEMENTED_INSTRUCTION_BREAK_CODE(name)); \
1212 __ Add(dst, lhs, rhs); in HandleBinaryOp()
1214 __ And(dst, lhs, rhs); in HandleBinaryOp()
1216 __ Orr(dst, lhs, rhs); in HandleBinaryOp()
1218 __ Sub(dst, lhs, rhs); in HandleBinaryOp()
1221 __ Eor(dst, lhs, rhs); in HandleBinaryOp()
1231 __ Fadd(dst, lhs, rhs); in HandleBinaryOp()
1233 __ Fsub(dst, lhs, rhs); in HandleBinaryOp()
1277 __ Lsl(dst, lhs, shift_value); in HandleShift()
1279 __ Asr(dst, lhs, shift_value); in HandleShift()
1281 __ Lsr(dst, lhs, shift_value); in HandleShift()
1287 __ Lsl(dst, lhs, rhs_reg); in HandleShift()
1289 __ Asr(dst, lhs, rhs_reg); in HandleShift()
1291 __ Lsr(dst, lhs, rhs_reg); in HandleShift()
1346 __ Add(temp, obj, Operand(index_reg, LSL, Primitive::ComponentSizeShift(type))); in VisitArrayGet()
1362 __ Ldr(OutputRegister(instruction), in VisitArrayLength()
1416 __ Add(temp, obj, Operand(index_reg, LSL, Primitive::ComponentSizeShift(value_type))); in VisitArraySet()
1445 __ Cmp(InputRegisterAt(instruction, 0), InputOperandAt(instruction, 1)); in VisitBoundsCheck()
1446 __ B(slow_path->GetEntryLabel(), hs); in VisitBoundsCheck()
1469 __ Cbz(obj, slow_path->GetExitLabel()); in VisitCheckCast()
1472 __ Ldr(obj_cls, HeapOperand(obj, mirror::Object::ClassOffset())); in VisitCheckCast()
1473 __ Cmp(obj_cls, cls); in VisitCheckCast()
1474 __ B(ne, slow_path->GetEntryLabel()); in VisitCheckCast()
1475 __ Bind(slow_path->GetExitLabel()); in VisitCheckCast()
1536 __ Cmp(left, right); in VisitCompare()
1537 __ Cset(result, ne); in VisitCompare()
1538 __ Cneg(result, result, lt); in VisitCompare()
1552 __ Fcmp(left, 0.0); in VisitCompare()
1554 __ Fcmp(left, InputFPRegisterAt(compare, 1)); in VisitCompare()
1557 __ Cset(result, ne); in VisitCompare()
1559 __ Csetm(result, ne); in VisitCompare()
1561 __ Cneg(result, result, compare->IsGtBias() ? mi : gt); in VisitCompare()
1589 __ Cmp(lhs, rhs); in VisitCondition()
1590 __ Cset(res, cond); in VisitCondition()
1635 __ Sdiv(OutputRegister(div), InputRegisterAt(div, 0), InputRegisterAt(div, 1)); in VisitDiv()
1640 __ Fdiv(OutputFPRegister(div), InputFPRegisterAt(div, 0), InputFPRegisterAt(div, 1)); in VisitDiv()
1673 __ B(slow_path->GetEntryLabel()); in VisitDivZeroCheck()
1679 __ Cbz(InputRegisterAt(instruction, 0), slow_path->GetEntryLabel()); in VisitDivZeroCheck()
1733 __ B(codegen_->GetLabelOf(successor)); in VisitGoto()
1748 __ B(always_true_target); in GenerateTestAndBranch()
1758 __ Cbnz(InputRegisterAt(instruction, 0), true_target); in GenerateTestAndBranch()
1768 __ Cbz(lhs, true_target); in GenerateTestAndBranch()
1771 __ Cbnz(lhs, true_target); in GenerateTestAndBranch()
1775 __ Tbnz(lhs, (lhs.IsX() ? kXRegSize : kWRegSize) - 1, true_target); in GenerateTestAndBranch()
1779 __ Tbz(lhs, (lhs.IsX() ? kXRegSize : kWRegSize) - 1, true_target); in GenerateTestAndBranch()
1787 __ Cmp(lhs, rhs); in GenerateTestAndBranch()
1788 __ B(arm64_cond, true_target); in GenerateTestAndBranch()
1792 __ B(false_target); in GenerateTestAndBranch()
1874 __ Mov(out, 0); in VisitInstanceOf()
1875 __ Cbz(obj, &done); in VisitInstanceOf()
1879 __ Ldr(out, HeapOperand(obj, mirror::Object::ClassOffset())); in VisitInstanceOf()
1880 __ Cmp(out, cls); in VisitInstanceOf()
1883 __ Cset(out, eq); in VisitInstanceOf()
1891 __ B(ne, slow_path->GetEntryLabel()); in VisitInstanceOf()
1892 __ Mov(out, 1); in VisitInstanceOf()
1893 __ Bind(slow_path->GetExitLabel()); in VisitInstanceOf()
1896 __ Bind(&done); in VisitInstanceOf()
1955 __ Mov(ip1, invoke->GetDexMethodIndex()); in VisitInvokeInterface()
1959 __ Ldr(temp.W(), StackOperandFrom(receiver)); in VisitInvokeInterface()
1960 __ Ldr(temp.W(), HeapOperand(temp.W(), class_offset)); in VisitInvokeInterface()
1962 __ Ldr(temp.W(), HeapOperandFrom(receiver, class_offset)); in VisitInvokeInterface()
1966 __ Ldr(temp, MemOperand(temp, method_offset)); in VisitInvokeInterface()
1968 __ Ldr(lr, MemOperand(temp, entry_point.Int32Value())); in VisitInvokeInterface()
1970 __ Blr(lr); in VisitInvokeInterface()
2020 __ Ldr(temp.X(), MemOperand(tr, invoke->GetStringInitOffset())); in GenerateStaticOrDirectCall()
2022 __ Ldr(lr, MemOperand( in GenerateStaticOrDirectCall()
2025 __ Blr(lr); in GenerateStaticOrDirectCall()
2031 __ Ldr(temp.W(), MemOperand(temp.X(), in GenerateStaticOrDirectCall()
2034 __ Ldr(temp.X(), MemOperand(temp, index_in_cache)); in GenerateStaticOrDirectCall()
2036 __ Ldr(lr, MemOperand(temp.X(), ArtMethod::EntryPointFromQuickCompiledCodeOffset( in GenerateStaticOrDirectCall()
2039 __ Blr(lr); in GenerateStaticOrDirectCall()
2041 __ Bl(&frame_entry_label_); in GenerateStaticOrDirectCall()
2080 __ Ldr(temp.W(), MemOperand(sp, receiver.GetStackIndex())); in VisitInvokeVirtual()
2081 __ Ldr(temp.W(), HeapOperand(temp.W(), class_offset)); in VisitInvokeVirtual()
2084 __ Ldr(temp.W(), HeapOperandFrom(receiver, class_offset)); in VisitInvokeVirtual()
2088 __ Ldr(temp, MemOperand(temp, method_offset)); in VisitInvokeVirtual()
2090 __ Ldr(lr, MemOperand(temp, entry_point.SizeValue())); in VisitInvokeVirtual()
2092 __ Blr(lr); in VisitInvokeVirtual()
2110 __ Ldr(out, MemOperand(out.X(), ArtMethod::DeclaringClassOffset().Int32Value())); in VisitLoadClass()
2114 __ Ldr(out, MemOperand(out.X(), ArtMethod::DexCacheResolvedTypesOffset().Int32Value())); in VisitLoadClass()
2115 __ Ldr(out, HeapOperand(out, CodeGenerator::GetCacheOffset(cls->GetTypeIndex()))); in VisitLoadClass()
2120 __ Cbz(out, slow_path->GetEntryLabel()); in VisitLoadClass()
2124 __ Bind(slow_path->GetExitLabel()); in VisitLoadClass()
2137 __ Ldr(OutputRegister(instruction), exception); in VisitLoadException()
2138 __ Str(wzr, exception); in VisitLoadException()
2162 __ Ldr(out, MemOperand(out.X(), ArtMethod::DeclaringClassOffset().Int32Value())); in VisitLoadString()
2163 __ Ldr(out, HeapOperand(out, mirror::Class::DexCacheStringsOffset())); in VisitLoadString()
2164 __ Ldr(out, HeapOperand(out, CodeGenerator::GetCacheOffset(load->GetStringIndex()))); in VisitLoadString()
2165 __ Cbz(out, slow_path->GetEntryLabel()); in VisitLoadString()
2166 __ Bind(slow_path->GetExitLabel()); in VisitLoadString()
2230 __ Mul(OutputRegister(mul), InputRegisterAt(mul, 0), InputRegisterAt(mul, 1)); in VisitMul()
2235 __ Fmul(OutputFPRegister(mul), InputFPRegisterAt(mul, 0), InputFPRegisterAt(mul, 1)); in VisitMul()
2268 __ Neg(OutputRegister(neg), InputOperandAt(neg, 0)); in VisitNeg()
2273 __ Fneg(OutputFPRegister(neg), InputFPRegisterAt(neg, 0)); in VisitNeg()
2301 __ Mov(type_index, instruction->GetTypeIndex()); in VisitNewArray()
2327 __ Mov(type_index, instruction->GetTypeIndex()); in VisitNewInstance()
2346 __ Mvn(OutputRegister(instruction), InputOperandAt(instruction, 0)); in VisitNot()
2361 __ Eor(OutputRegister(instruction), InputRegisterAt(instruction, 0), vixl::Operand(1)); in VisitBooleanNot()
2380 __ Ldr(wzr, HeapOperandFrom(obj, Offset(0))); in GenerateImplicitNullCheck()
2391 __ Cbz(RegisterFrom(obj, instruction->InputAt(0)->GetType()), slow_path->GetEntryLabel()); in GenerateExplicitNullCheck()
2488 __ Sdiv(temp, dividend, divisor); in VisitRem()
2489 __ Msub(output, temp, divisor, dividend); in VisitRem()
2679 __ Ubfx(output, source, 0, result_size * kBitsPerByte); in VisitTypeConversion()
2682 __ Ubfx(output, output.IsX() ? source.X() : source.W(), 0, min_size * kBitsPerByte); in VisitTypeConversion()
2684 __ Sbfx(output, output.IsX() ? source.X() : source.W(), 0, min_size * kBitsPerByte); in VisitTypeConversion()
2687 __ Scvtf(OutputFPRegister(conversion), InputRegisterAt(conversion, 0)); in VisitTypeConversion()
2690 __ Fcvtzs(OutputRegister(conversion), InputFPRegisterAt(conversion, 0)); in VisitTypeConversion()
2693 __ Fcvt(OutputFPRegister(conversion), InputFPRegisterAt(conversion, 0)); in VisitTypeConversion()
2728 #undef __