Home | History | Annotate | Download | only in optimizing

Lines Matching full:vixl

30 // TODO(VIXL): make vixl clean wrt -Wshadow.
44 15 * vixl::aarch32::kMaxInstructionSizeInBytes;
46 static const vixl::aarch32::Register kParameterCoreRegistersVIXL[] = {
47 vixl::aarch32::r1,
48 vixl::aarch32::r2,
49 vixl::aarch32::r3
52 static const vixl::aarch32::SRegister kParameterFpuRegistersVIXL[] = {
53 vixl::aarch32::s0,
54 vixl::aarch32::s1,
55 vixl::aarch32::s2,
56 vixl::aarch32::s3,
57 vixl::aarch32::s4,
58 vixl::aarch32::s5,
59 vixl::aarch32::s6,
60 vixl::aarch32::s7,
61 vixl::aarch32::s8,
62 vixl::aarch32::s9,
63 vixl::aarch32::s10,
64 vixl::aarch32::s11,
65 vixl::aarch32::s12,
66 vixl::aarch32::s13,
67 vixl::aarch32::s14,
68 vixl::aarch32::s15
72 static const vixl::aarch32::Register kMethodRegister = vixl::aarch32::r0;
74 static const vixl::aarch32::Register kCoreAlwaysSpillRegister = vixl::aarch32::r5;
78 static const vixl::aarch32::RegisterList kCoreCalleeSaves = vixl::aarch32::RegisterList::Union(
79 vixl::aarch32::RegisterList(vixl::aarch32::r5,
80 vixl::aarch32::r6,
81 vixl::aarch32::r7),
84 ? vixl::aarch32::RegisterList()
85 : vixl::aarch32::RegisterList(vixl::aarch32::r8)),
86 vixl::aarch32::RegisterList(vixl::aarch32::r10,
87 vixl::aarch32::r11,
88 vixl::aarch32::lr));
91 static const vixl::aarch32::SRegisterList kFpuCalleeSaves =
92 vixl::aarch32::SRegisterList(vixl::aarch32::s16, 16);
94 static const vixl::aarch32::Register kRuntimeParameterCoreRegistersVIXL[] = {
95 vixl::aarch32::r0,
96 vixl::aarch32::r1,
97 vixl::aarch32::r2,
98 vixl::aarch32::r3
102 static const vixl::aarch32::SRegister kRuntimeParameterFpuRegistersVIXL[] = {
103 vixl::aarch32::s0,
104 vixl::aarch32::s1,
105 vixl::aarch32::s2,
106 vixl::aarch32::s3
114 using VIXLInt32Literal = vixl::aarch32::Literal<int32_t>;
115 using VIXLUInt32Literal = vixl::aarch32::Literal<uint32_t>;
130 vixl::aarch32::Label* GetTableStartLabel() { return &table_start_; }
137 vixl::aarch32::Label table_start_;
144 : public CallingConvention<vixl::aarch32::Register, vixl::aarch32::SRegister> {
158 : public CallingConvention<vixl::aarch32::Register, vixl::aarch32::SRegister> {
192 return helpers::LocationFrom(vixl::aarch32::r1);
195 return helpers::LocationFrom(vixl::aarch32::r0);
199 ? helpers::LocationFrom(vixl::aarch32::r0, vixl::aarch32::r1)
200 : helpers::LocationFrom(vixl::aarch32::r0);
204 ? helpers::LocationFrom(vixl::aarch32::r2, vixl::aarch32::r3)
206 ? helpers::LocationFrom(vixl::aarch32::r2)
207 : helpers::LocationFrom(vixl::aarch32::r1));
211 ? helpers::LocationFrom(vixl::aarch32::s0, vixl::aarch32::s1)
212 : helpers::LocationFrom(vixl::aarch32::s0);
224 vixl::aarch32::Label* GetEntryLabel() { return &entry_label_; }
225 vixl::aarch32::Label* GetExitLabel() { return &exit_label_; }
231 vixl::aarch32::Label entry_label_;
232 vixl::aarch32::Label exit_label_;
325 void GenerateAndConst(vixl::aarch32::Register out, vixl::aarch32::Register first, uint32_t value);
326 void GenerateOrrConst(vixl::aarch32::Register out, vixl::aarch32::Register first, uint32_t value);
327 void GenerateEorConst(vixl::aarch32::Register out, vixl::aarch32::Register first, uint32_t value);
335 void GenerateWideAtomicStore(vixl::aarch32::Register addr,
337 vixl::aarch32::Register value_lo,
338 vixl::aarch32::Register value_hi,
339 vixl::aarch32::Register temp1,
340 vixl::aarch32::Register temp2,
342 void GenerateWideAtomicLoad(vixl::aarch32::Register addr,
344 vixl::aarch32::Register out_lo,
345 vixl::aarch32::Register out_hi);
389 vixl::aarch32::Register obj,
394 vixl::aarch32::Label* true_target,
395 vixl::aarch32::Label* false_target,
398 vixl::aarch32::Label* true_target,
399 vixl::aarch32::Label* false_target,
407 vixl::aarch32::MemOperand VecAddress(
410 vixl::aarch32::UseScratchRegisterScope* temps_scope,
412 vixl::aarch32::AlignedMemOperand VecAddressUnaligned(
415 vixl::aarch32::UseScratchRegisterScope* temps_scope,
448 size_t GetFloatingPointSpillSlotSize() const OVERRIDE { return vixl::aarch32::kRegSizeInBytes; }
461 vixl::aarch32::Label* block_entry_label = GetLabelOf(block);
479 vixl::aarch32::Register base,
480 vixl::aarch32::Register reg_index,
481 vixl::aarch32::Condition cond = vixl::aarch32::al);
484 vixl::aarch32::Register base,
485 vixl::aarch32::Register reg_index,
486 vixl::aarch32::Condition cond = vixl::aarch32::al);
501 void MarkGCCard(vixl::aarch32::Register temp,
502 vixl::aarch32::Register card,
503 vixl::aarch32::Register object,
504 vixl::aarch32::Register value,
509 vixl::aarch32::Label* GetLabelOf(HBasicBlock* block) {
530 vixl::aarch32::Label* GetFrameEntryLabel() { return &frame_entry_label_; }
572 vixl::aarch32::Label movw_label;
573 vixl::aarch32::Label movt_label;
574 vixl::aarch32::Label add_pc_label;
588 vixl::aarch32::Label* NewBakerReadBarrierPatch(uint32_t custom_data);
610 vixl::aarch32::Register obj,
618 vixl::aarch32::Register obj,
631 vixl::aarch32::Register obj,
652 vixl::aarch32::Register obj,
656 vixl::aarch32::Register temp2);
661 vixl::aarch32::Register obj,
749 vixl::aarch32::Register out);
755 vixl::aarch32::Register out,
756 vixl::aarch32::Register in,
757 vixl::aarch32::Register temp = vixl32::Register());
760 vixl::aarch32::Register GetInvokeStaticOrDirectExtraParameter(HInvokeStaticOrDirect* invoke,
761 vixl::aarch32::Register temp);
774 vixl::aarch32::Label label;
787 // We use a deque so that the `vixl::aarch32::Label` objects do not move in memory.
788 ArenaDeque<vixl::aarch32::Label> block_labels_; // Indexed by block id.
789 vixl::aarch32::Label frame_entry_label_;