Home | History | Annotate | Download | only in optimizing

Lines Matching refs:vixl

31 // TODO(VIXL): Make VIXL compile with -Wshadow.
48 static constexpr int kMaxMacroInstructionSizeInBytes = 15 * vixl::aarch64::kInstructionSize;
51 static const vixl::aarch64::Register kParameterCoreRegisters[] = {
52 vixl::aarch64::x1,
53 vixl::aarch64::x2,
54 vixl::aarch64::x3,
55 vixl::aarch64::x4,
56 vixl::aarch64::x5,
57 vixl::aarch64::x6,
58 vixl::aarch64::x7
61 static const vixl::aarch64::FPRegister kParameterFPRegisters[] = {
62 vixl::aarch64::d0,
63 vixl::aarch64::d1,
64 vixl::aarch64::d2,
65 vixl::aarch64::d3,
66 vixl::aarch64::d4,
67 vixl::aarch64::d5,
68 vixl::aarch64::d6,
69 vixl::aarch64::d7
74 const vixl::aarch64::Register tr = vixl::aarch64::x19;
76 static const vixl::aarch64::Register kArtMethodRegister = vixl::aarch64::x0;
77 const vixl::aarch64::CPURegList vixl_reserved_core_registers(vixl::aarch64::ip0,
78 vixl::aarch64::ip1);
79 const vixl::aarch64::CPURegList vixl_reserved_fp_registers(vixl::aarch64::d31);
81 const vixl::aarch64::CPURegList runtime_reserved_core_registers(tr, vixl::aarch64::lr);
84 const vixl::aarch64::CPURegList callee_saved_core_registers(vixl::aarch64::CPURegister::kRegister,
85 vixl::aarch64::kXRegSize,
86 vixl::aarch64::x20.GetCode(),
87 vixl::aarch64::x30.GetCode());
88 const vixl::aarch64::CPURegList callee_saved_fp_registers(vixl::aarch64::CPURegister::kFPRegister,
89 vixl::aarch64::kDRegSize,
90 vixl::aarch64::d8.GetCode(),
91 vixl::aarch64::d15.GetCode());
99 vixl::aarch64::Label* GetEntryLabel() { return &entry_label_; }
100 vixl::aarch64::Label* GetExitLabel() { return &exit_label_; }
106 vixl::aarch64::Label entry_label_;
107 vixl::aarch64::Label exit_label_;
117 vixl::aarch64::Label* GetTableStartLabel() { return &table_start_; }
123 vixl::aarch64::Label table_start_;
128 static const vixl::aarch64::Register kRuntimeParameterCoreRegisters[] =
129 { vixl::aarch64::x0,
130 vixl::aarch64::x1,
131 vixl::aarch64::x2,
132 vixl::aarch64::x3,
133 vixl::aarch64::x4,
134 vixl::aarch64::x5,
135 vixl::aarch64::x6,
136 vixl::aarch64::x7 };
139 static const vixl::aarch64::FPRegister kRuntimeParameterFpuRegisters[] =
140 { vixl::aarch64::d0,
141 vixl::aarch64::d1,
142 vixl::aarch64::d2,
143 vixl::aarch64::d3,
144 vixl::aarch64::d4,
145 vixl::aarch64::d5,
146 vixl::aarch64::d6,
147 vixl::aarch64::d7 };
151 class InvokeRuntimeCallingConvention : public CallingConvention<vixl::aarch64::Register,
152 vixl::aarch64::FPRegister> {
169 class InvokeDexCallingConvention : public CallingConvention<vixl::aarch64::Register,
170 vixl::aarch64::FPRegister> {
210 return helpers::LocationFrom(vixl::aarch64::x1);
213 return helpers::LocationFrom(vixl::aarch64::x0);
216 return helpers::LocationFrom(vixl::aarch64::x0);
221 ? helpers::LocationFrom(vixl::aarch64::x2)
222 : helpers::LocationFrom(vixl::aarch64::x1);
225 return helpers::LocationFrom(vixl::aarch64::d0);
251 vixl::aarch64::MacroAssembler* GetVIXLAssembler() { return GetAssembler()->GetVIXLAssembler(); }
255 vixl::aarch64::Register class_reg);
302 vixl::aarch64::Register obj,
304 vixl::aarch64::Label* fixup_label,
313 vixl::aarch64::Label* true_target,
314 vixl::aarch64::Label* false_target);
321 vixl::aarch64::MemOperand CreateVecMemRegisters(
326 vixl::aarch64::UseScratchRegisterScope* temps_scope);
381 vixl::aarch64::MacroAssembler* GetVIXLAssembler() const {
386 vixl::aarch64::UseScratchRegisterScope vixl_temps_;
402 vixl::aarch64::CPURegList GetFramePreservedCoreRegisters() const;
403 vixl::aarch64::CPURegList GetFramePreservedFPRegisters() const;
407 vixl::aarch64::Label* GetLabelOf(HBasicBlock* block) {
423 vixl::aarch64::Label* block_entry_label = GetLabelOf(block);
432 vixl::aarch64::MacroAssembler* GetVIXLAssembler() { return GetAssembler()->GetVIXLAssembler(); }
435 void MarkGCCard(vixl::aarch64::Register object,
436 vixl::aarch64::Register value,
456 static const int kNumberOfAllocatableRegisters = vixl::aarch64::kNumberOfRegisters - 1;
457 static const int kNumberOfAllocatableFPRegisters = vixl::aarch64::kNumberOfFPRegisters;
477 uint32_t GetPreferredSlotsAlignment() const OVERRIDE { return vixl::aarch64::kXRegSizeInBytes; }
487 void MoveConstant(vixl::aarch64::CPURegister destination, HConstant* constant);
493 vixl::aarch64::CPURegister dst,
494 const vixl::aarch64::MemOperand& src);
496 vixl::aarch64::CPURegister src,
497 const vixl::aarch64::MemOperand& dst);
499 vixl::aarch64::CPURegister dst,
500 const vixl::aarch64::MemOperand& src,
504 vixl::aarch64::CPURegister src,
505 const vixl::aarch64::MemOperand& dst,
555 vixl::aarch64::Label* NewPcRelativeStringPatch(const DexFile& dex_file,
557 vixl::aarch64::Label* adrp_label = nullptr);
563 vixl::aarch64::Label* NewPcRelativeTypePatch(const DexFile& dex_file,
565 vixl::aarch64::Label* adrp_label = nullptr);
571 vixl::aarch64::Label* NewBssEntryTypePatch(const DexFile& dex_file,
573 vixl::aarch64::Label* adrp_label = nullptr);
579 vixl::aarch64::Label* NewPcRelativeDexCacheArrayPatch(
582 vixl::aarch64::Label* adrp_label = nullptr);
586 vixl::aarch64::Label* NewBakerReadBarrierPatch(uint32_t custom_data);
588 vixl::aarch64::Literal<uint32_t>* DeduplicateBootImageStringLiteral(
591 vixl::aarch64::Literal<uint32_t>* DeduplicateBootImageTypeLiteral(const DexFile& dex_file,
593 vixl::aarch64::Literal<uint32_t>* DeduplicateBootImageAddressLiteral(uint64_t address);
594 vixl::aarch64::Literal<uint32_t>* DeduplicateJitStringLiteral(const DexFile& dex_file,
597 vixl::aarch64::Literal<uint32_t>* DeduplicateJitClassLiteral(const DexFile& dex_file,
601 void EmitAdrpPlaceholder(vixl::aarch64::Label* fixup_label, vixl::aarch64::Register reg);
602 void EmitAddPlaceholder(vixl::aarch64::Label* fixup_label,
603 vixl::aarch64::Register out,
604 vixl::aarch64::Register base);
605 void EmitLdrOffsetPlaceholder(vixl::aarch64::Label* fixup_label,
606 vixl::aarch64::Register out,
607 vixl::aarch64::Register base);
617 vixl::aarch64::Register obj,
626 vixl::aarch64::Register obj,
629 vixl::aarch64::Register temp,
642 vixl::aarch64::Register obj,
646 vixl::aarch64::Register temp,
654 vixl::aarch64::Register obj,
715 using Uint64ToLiteralMap = ArenaSafeMap<uint64_t, vixl::aarch64::Literal<uint64_t>*>;
716 using Uint32ToLiteralMap = ArenaSafeMap<uint32_t, vixl::aarch64::Literal<uint32_t>*>;
718 vixl::aarch64::Literal<uint64_t>*,
721 vixl::aarch64::Literal<uint32_t>*,
724 vixl::aarch64::Literal<uint32_t>*,
727 vixl::aarch64::Literal<uint32_t>* DeduplicateUint32Literal(uint32_t value,
729 vixl::aarch64::Literal<uint64_t>* DeduplicateUint64Literal(uint64_t value);
730 vixl::aarch64::Literal<uint64_t>* DeduplicateMethodLiteral(MethodReference target_method,
743 vixl::aarch64::Label label;
744 vixl
750 vixl::aarch64::Label label;
754 vixl::aarch64::Label* NewPcRelativePatch(const DexFile& dex_file,
756 vixl::aarch64::Label* adrp_label,
766 // We use a deque so that the `vixl::aarch64::Label` objects do not move in memory.
767 ArenaDeque<vixl::aarch64::Label> block_labels_; // Indexed by block id.
768 vixl::aarch64::Label frame_entry_label_;