Home
last modified time | relevance | path

Searched refs:Location (Results 1 – 25 of 32) sorted by relevance

12

/art/compiler/optimizing/
Dparallel_move_test.cc36 static void DumpLocationForTest(std::ostream& os, Location location) { in DumpLocationForTest()
107 Location AllocateScratchLocationFor(Location::Kind kind) OVERRIDE { in AllocateScratchLocationFor()
108 if (kind == Location::kStackSlot || kind == Location::kFpuRegister || in AllocateScratchLocationFor()
109 kind == Location::kRegister) { in AllocateScratchLocationFor()
110 kind = Location::kRegister; in AllocateScratchLocationFor()
113 kind = Location::kRegisterPair; in AllocateScratchLocationFor()
115 Location scratch = GetScratchLocation(kind); in AllocateScratchLocationFor()
116 if (scratch.Equals(Location::NoLocation())) { in AllocateScratchLocationFor()
117 AddScratchLocation(Location::RegisterLocation(scratch_index_)); in AllocateScratchLocationFor()
118 AddScratchLocation(Location::RegisterLocation(scratch_index_ + 1)); in AllocateScratchLocationFor()
[all …]
Dlocations.h30 class Location; variable
32 std::ostream& operator<<(std::ostream& os, const Location& location);
38 class Location : public ValueObject {
72 Location() : value_(kInvalid) { in Location() function
87 Location(const Location& other) : ValueObject(), value_(other.value_) {} in Location() function
89 Location& operator=(const Location& other) {
98 static Location ConstantLocation(HConstant* constant) { in ConstantLocation()
100 return Location(kConstant | reinterpret_cast<uintptr_t>(constant)); in ConstantLocation()
117 static Location NoLocation() { in NoLocation()
118 return Location(); in NoLocation()
[all …]
Dlocations.cc28 output_overlaps_(Location::kOutputOverlap), in LocationSummary()
36 inputs_.Put(i, Location()); in LocationSummary()
47 Location Location::RegisterOrConstant(HInstruction* instruction) { in RegisterOrConstant()
49 ? Location::ConstantLocation(instruction->AsConstant()) in RegisterOrConstant()
50 : Location::RequiresRegister(); in RegisterOrConstant()
53 Location Location::RegisterOrInt32LongConstant(HInstruction* instruction) { in RegisterOrInt32LongConstant()
55 return Location::RequiresRegister(); in RegisterOrInt32LongConstant()
62 ? Location::ConstantLocation(instruction->AsConstant()) in RegisterOrInt32LongConstant()
63 : Location::RequiresRegister(); in RegisterOrInt32LongConstant()
66 Location Location::ByteRegisterOrConstant(int reg, HInstruction* instruction) { in ByteRegisterOrConstant()
[all …]
Dparallel_move_resolver.cc65 Location LowOf(Location location) { in LowOf()
67 return Location::RegisterLocation(location.low()); in LowOf()
69 return Location::FpuRegisterLocation(location.low()); in LowOf()
71 return Location::StackSlot(location.GetStackIndex()); in LowOf()
73 return Location::NoLocation(); in LowOf()
77 Location HighOf(Location location) { in HighOf()
79 return Location::RegisterLocation(location.high()); in HighOf()
81 return Location::FpuRegisterLocation(location.high()); in HighOf()
83 return Location::StackSlot(location.GetHighStackIndex(4)); in HighOf()
85 return Location::NoLocation(); in HighOf()
[all …]
Dparallel_move_resolver.h79 bool IsScratchLocation(Location loc);
142 virtual Location AllocateScratchLocationFor(Location::Kind kind) = 0;
146 virtual void FreeScratchLocation(Location loc) = 0;
153 Location GetScratchLocation(Location::Kind kind);
157 void AddScratchLocation(Location loc);
160 void RemoveScratchLocation(Location loc);
163 GrowableArray<Location> scratches_;
170 void UpdateMoveSource(Location from, Location to);
172 void AddPendingMove(Location source, Location destination, Primitive::Type type);
177 MoveOperands* GetUnblockedPendingMove(Location loc);
[all …]
Dcode_generator_arm.cc37 static bool ExpectedPairLayout(Location location) { in ExpectedPairLayout()
133 Location index_location, in BoundsCheckSlowPathARM()
134 Location length_location) in BoundsCheckSlowPathARM()
147 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode()
150 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode()
158 const Location index_location_;
159 const Location length_location_;
189 Location out = locations->Out(); in EmitNativeCode()
192 arm_codegen->Move32(locations->Out(), Location::RegisterLocation(R0)); in EmitNativeCode()
231 arm_codegen->Move32(locations->Out(), Location::RegisterLocation(R0)); in EmitNativeCode()
[all …]
Dregister_allocator.h33 class Location; variable
101 void BlockRegister(Location location, size_t start, size_t end);
115 Location source,
116 Location destination) const;
119 Location source,
120 Location destination) const;
121 void InsertMoveAfter(HInstruction* instruction, Location source, Location destination) const;
124 Location source,
125 Location destination) const;
128 Location source,
[all …]
Dintrinsics_x86.cc62 static void MoveFromReturnRegister(Location target, in MoveFromReturnRegister()
149 Location out = invoke_->GetLocations()->Out(); in EmitNativeCode()
174 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations()
175 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations()
177 locations->AddTemp(Location::RequiresFpuRegister()); in CreateFPToIntLocations()
185 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations()
186 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations()
188 locations->AddTemp(Location::RequiresFpuRegister()); in CreateIntToFPLocations()
189 locations->AddTemp(Location::RequiresFpuRegister()); in CreateIntToFPLocations()
194 Location input = locations->InAt(0); in MoveFPToInt()
[all …]
Dcode_generator_x86.cc101 Location index_location, in BoundsCheckSlowPathX86()
102 Location length_location) in BoundsCheckSlowPathX86()
115 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode()
118 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode()
126 const Location index_location_;
127 const Location length_location_;
184 x86_codegen->Move32(locations->Out(), Location::RegisterLocation(EAX)); in EmitNativeCode()
220 Location out = locations->Out(); in EmitNativeCode()
223 x86_codegen->Move32(out, Location::RegisterLocation(EAX)); in EmitNativeCode()
250 Location class_to_check, in TypeCheckSlowPathX86()
[all …]
Dintrinsics_arm.cc43 static void MoveFromReturnRegister(Location trg, Primitive::Type type, CodeGeneratorARM* codegen) { in MoveFromReturnRegister()
112 Location out = invoke_->GetLocations()->Out(); in EmitNativeCode()
144 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations()
145 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations()
152 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations()
153 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations()
157 Location input = locations->InAt(0); in MoveFPToInt()
158 Location output = locations->Out(); in MoveFPToInt()
169 Location input = locations->InAt(0); in MoveIntToFP()
170 Location output = locations->Out(); in MoveIntToFP()
[all …]
Dcommon_arm64.h54 static inline vixl::Register XRegisterFrom(Location location) { in XRegisterFrom()
59 static inline vixl::Register WRegisterFrom(Location location) { in WRegisterFrom()
64 static inline vixl::Register RegisterFrom(Location location, Primitive::Type type) { in RegisterFrom()
78 static inline vixl::FPRegister DRegisterFrom(Location location) { in DRegisterFrom()
83 static inline vixl::FPRegister SRegisterFrom(Location location) { in SRegisterFrom()
88 static inline vixl::FPRegister FPRegisterFrom(Location location, Primitive::Type type) { in FPRegisterFrom()
102 static inline vixl::CPURegister CPURegisterFrom(Location location, Primitive::Type type) { in CPURegisterFrom()
119 static inline int64_t Int64ConstantFrom(Location location) { in Int64ConstantFrom()
131 static inline vixl::Operand OperandFrom(Location location, Primitive::Type type) { in OperandFrom()
144 static inline vixl::MemOperand StackOperandFrom(Location location) { in StackOperandFrom()
[all …]
Dintrinsics_x86_64.cc58 static void MoveFromReturnRegister(Location trg, in MoveFromReturnRegister()
140 Location out = invoke_->GetLocations()->Out(); in EmitNativeCode()
165 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations()
166 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations()
173 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations()
174 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations()
178 Location input = locations->InAt(0); in MoveFPToInt()
179 Location output = locations->Out(); in MoveFPToInt()
184 Location input = locations->InAt(0); in MoveIntToFP()
185 Location output = locations->Out(); in MoveIntToFP()
[all …]
Dcode_generator_x86_64.cc154 Location index_location, in BoundsCheckSlowPathX86_64()
155 Location length_location) in BoundsCheckSlowPathX86_64()
167 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode()
170 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode()
179 const Location index_location_;
180 const Location length_location_;
209 Location out = locations->Out(); in EmitNativeCode()
213 x64_codegen->Move(out, Location::RegisterLocation(RAX)); in EmitNativeCode()
255 x64_codegen->Move(locations->Out(), Location::RegisterLocation(RAX)); in EmitNativeCode()
269 Location class_to_check, in TypeCheckSlowPathX86_64()
[all …]
Dcode_generator_arm64.cc84 Location ARM64ReturnLocation(Primitive::Type return_type) { in ARM64ReturnLocation()
100 Location InvokeRuntimeCallingConvention::GetReturnLocation(Primitive::Type return_type) { in GetReturnLocation()
110 Location index_location, in BoundsCheckSlowPathARM64()
111 Location length_location) in BoundsCheckSlowPathARM64()
133 const Location index_location_;
134 const Location length_location_;
185 Location out = locations->Out(); in EmitNativeCode()
305 Location class_to_check, in TypeCheckSlowPathARM64()
306 Location object_class, in TypeCheckSlowPathARM64()
333 Location ret_loc = calling_convention.GetReturnLocation(ret_type); in EmitNativeCode()
[all …]
Dcode_generator_mips64.cc45 Location Mips64ReturnLocation(Primitive::Type return_type) { in Mips64ReturnLocation()
54 return Location::RegisterLocation(V0); in Mips64ReturnLocation()
58 return Location::FpuRegisterLocation(F0); in Mips64ReturnLocation()
61 return Location(); in Mips64ReturnLocation()
66 Location InvokeDexCallingConventionVisitorMIPS64::GetReturnLocation(Primitive::Type type) const { in GetReturnLocation()
70 Location InvokeDexCallingConventionVisitorMIPS64::GetNextLocation(Primitive::Type type) { in GetNextLocation()
71 Location next_location; in GetNextLocation()
78 next_location = Location::FpuRegisterLocation( in GetNextLocation()
83 next_location = Location::RegisterLocation(calling_convention.GetRegisterAt(gp_index_++)); in GetNextLocation()
87 next_location = Primitive::Is64BitType(type) ? Location::DoubleStackSlot(stack_offset) in GetNextLocation()
[all …]
Dintrinsics_arm64.cc52 ALWAYS_INLINE inline MemOperand AbsoluteHeapOperandFrom(Location location, size_t offset = 0) { in AbsoluteHeapOperandFrom()
68 static void MoveFromReturnRegister(Location trg, in MoveFromReturnRegister()
121 Location out = invoke_->GetLocations()->Out(); in EmitNativeCode()
153 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations()
154 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations()
161 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations()
162 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations()
166 Location input = locations->InAt(0); in MoveFPToInt()
167 Location output = locations->Out(); in MoveFPToInt()
173 Location input = locations->InAt(0); in MoveIntToFP()
[all …]
Dcode_generator_x86.h85 Location GetNextLocation(Primitive::Type type) OVERRIDE;
168 void GenerateShlLong(const Location& loc, Register shifter);
169 void GenerateShrLong(const Location& loc, Register shifter);
170 void GenerateUShrLong(const Location& loc, Register shifter);
171 void GenerateShlLong(const Location& loc, int shift);
172 void GenerateShrLong(const Location& loc, int shift);
173 void GenerateUShrLong(const Location& loc, int shift);
179 void PushOntoFPStack(Location source, uint32_t temp_offset,
205 void Move(HInstruction* instruction, Location location, HInstruction* move_for) OVERRIDE;
238 Location AllocateFreeRegister(Primitive::Type type) const OVERRIDE;
[all …]
Dcode_generator.cc41 static bool CheckType(Primitive::Type type, Location location) { in CheckType()
43 || (location.IsUnallocated() && (location.GetPolicy() == Location::kRequiresFpuRegister))) { in CheckType()
46 (location.IsUnallocated() && (location.GetPolicy() == Location::kRequiresRegister))) { in CheckType()
72 return location.IsInvalid() || (location.GetPolicy() == Location::kAny); in CheckType()
84 && (locations->Out().GetPolicy() == Location::kSameAsFirstInput)) { in CheckTypeConsistency()
261 Location CodeGenerator::GetTemporaryLocation(HTemporary* temp) const { in GetTemporaryLocation()
271 return temp_size == 2 ? Location::DoubleStackSlot(slot) : Location::StackSlot(slot); in GetTemporaryLocation()
291 void CodeGenerator::BlockIfInRegister(Location location, bool is_out) const { in BlockIfInRegister()
336 Location loc = locations->GetTemp(i); in AllocateRegistersLocally()
339 Location result_location = locations->Out(); in AllocateRegistersLocally()
[all …]
Dssa_liveness_analysis.cc319 static int RegisterOrLowRegister(Location location) { in RegisterOrLowRegister()
368 Location phi_location = user->GetLiveInterval()->ToLocation(); in FindFirstRegisterHint()
385 Location location = input->GetLiveInterval()->GetLocationAt( in FindFirstRegisterHint()
398 Location expected = locations->InAt(use->GetInputIndex()); in FindFirstRegisterHint()
428 Location input_location = input_interval->ToLocation(); in FindHintAtDefinition()
437 Location out = locations->Out(); in FindHintAtDefinition()
438 if (out.IsUnallocated() && out.GetPolicy() == Location::kSameAsFirstInput) { in FindHintAtDefinition()
445 Location location = input_interval->ToLocation(); in FindHintAtDefinition()
456 bool LiveInterval::SameRegisterKind(Location other) const { in SameRegisterKind()
476 Location LiveInterval::ToLocation() const { in ToLocation()
[all …]
Dcode_generator_arm64.h64 Location ARM64ReturnLocation(Primitive::Type return_type);
100 Location GetReturnLocation(Primitive::Type return_type);
115 Location GetReturnLocation(Primitive::Type return_type) { in GetReturnLocation()
129 Location GetNextLocation(Primitive::Type type) OVERRIDE;
130 Location GetReturnLocation(Primitive::Type return_type) { in GetReturnLocation()
206 Location AllocateScratchLocationFor(Location::Kind kind) OVERRIDE;
207 void FreeScratchLocation(Location loc) OVERRIDE;
248 void Move(HInstruction* instruction, Location location, HInstruction* move_for) OVERRIDE;
278 Location AllocateFreeRegister(Primitive::Type type) const OVERRIDE;
280 Location GetStackLocation(HLoadLocal* load) const OVERRIDE;
[all …]
Dcode_generator_mips64.h84 Location GetNextLocation(Primitive::Type type) OVERRIDE;
85 Location GetReturnLocation(Primitive::Type type) const;
102 Location GetReturnLocation(Primitive::Type return_type);
217 void Move(HInstruction* instruction, Location location, HInstruction* move_for) OVERRIDE;
238 Location AllocateFreeRegister(Primitive::Type type) const OVERRIDE;
240 Location GetStackLocation(HLoadLocal* load) const OVERRIDE;
268 void MoveLocation(Location destination, Location source, Primitive::Type type);
270 void SwapLocations(Location loc1, Location loc2, Primitive::Type type);
Dregister_allocator.cc127 void RegisterAllocator::BlockRegister(Location location, in BlockRegister()
209 Location temp = locations->GetTemp(i); in ProcessInstruction()
215 case Location::kRequiresRegister: { in ProcessInstruction()
224 case Location::kRequiresFpuRegister: { in ProcessInstruction()
279 BlockRegister(Location::RegisterLocation(i), in ProcessInstruction()
286 BlockRegister(Location::FpuRegisterLocation(i), in ProcessInstruction()
294 Location input = locations->InAt(i); in ProcessInstruction()
347 Location output = locations->Out(); in ProcessInstruction()
348 if (output.IsUnallocated() && output.GetPolicy() == Location::kSameAsFirstInput) { in ProcessInstruction()
349 Location first = locations->InAt(0); in ProcessInstruction()
[all …]
Dcode_generator_arm.h89 Location GetNextLocation(Primitive::Type type) OVERRIDE;
90 Location GetReturnLocation(Primitive::Type type);
212 void Move(HInstruction* instruction, Location location, HInstruction* move_for) OVERRIDE;
245 Location AllocateFreeRegister(Primitive::Type type) const OVERRIDE;
247 Location GetStackLocation(HLoadLocal* load) const OVERRIDE;
264 void Move32(Location destination, Location source);
266 void Move64(Location destination, Location source);
Dcode_generator.h110 virtual Location GetNextLocation(Primitive::Type type) = 0;
157 virtual void Move(HInstruction* instruction, Location location, HInstruction* move_for) = 0;
168 Location GetTemporaryLocation(HTemporary* temp) const;
272 void EmitParallelMoves(Location from1,
273 Location to1,
275 Location from2,
276 Location to2,
285 void AddAllocatedRegister(Location location) { in AddAllocatedRegister()
369 virtual Location AllocateFreeRegister(Primitive::Type type) const = 0;
374 virtual Location GetStackLocation(HLoadLocal* load) const = 0;
[all …]
Dcode_generator_x86_64.h78 Location GetNextLocation(Primitive::Type type) OVERRIDE;
183 void PushOntoFPStack(Location source, uint32_t temp_offset,
206 void Move(HInstruction* instruction, Location location, HInstruction* move_for) OVERRIDE;
240 Location GetStackLocation(HLoadLocal* load) const OVERRIDE;
243 Location AllocateFreeRegister(Primitive::Type type) const OVERRIDE;
256 void Move(Location destination, Location source);

12