/art/compiler/optimizing/ |
D | locations.h | 31 class Location; variable 33 std::ostream& operator<<(std::ostream& os, const Location& location); 39 class Location : public ValueObject { 81 Location() : ValueObject(), value_(kInvalid) { in Location() function 97 Location(const Location& other) = default; 99 Location& operator=(const Location& other) = default; 105 static Location ConstantLocation(HConstant* constant) { in ConstantLocation() 107 return Location(kConstant | reinterpret_cast<uintptr_t>(constant)); in ConstantLocation() 124 static Location NoLocation() { in NoLocation() 125 return Location(); in NoLocation() [all …]
|
D | locations.cc | 27 static_assert(std::is_trivially_copyable<Location>::value, "Location should be trivially copyable"); 38 output_overlaps_(Location::kOutputOverlap), in LocationSummary() 58 Location Location::RegisterOrConstant(HInstruction* instruction) { in RegisterOrConstant() 60 ? Location::ConstantLocation(instruction->AsConstant()) in RegisterOrConstant() 61 : Location::RequiresRegister(); in RegisterOrConstant() 64 Location Location::RegisterOrInt32Constant(HInstruction* instruction) { in RegisterOrInt32Constant() 69 return Location::ConstantLocation(constant); in RegisterOrInt32Constant() 72 return Location::RequiresRegister(); in RegisterOrInt32Constant() 75 Location Location::FpuRegisterOrInt32Constant(HInstruction* instruction) { in FpuRegisterOrInt32Constant() 80 return Location::ConstantLocation(constant); in FpuRegisterOrInt32Constant() [all …]
|
D | parallel_move_test.cc | 37 static void DumpLocationForTest(std::ostream& os, Location location) { in DumpLocationForTest() 108 Location AllocateScratchLocationFor(Location::Kind kind) override { in AllocateScratchLocationFor() 109 if (kind == Location::kStackSlot || kind == Location::kFpuRegister || in AllocateScratchLocationFor() 110 kind == Location::kRegister) { in AllocateScratchLocationFor() 111 kind = Location::kRegister; in AllocateScratchLocationFor() 114 kind = Location::kRegisterPair; in AllocateScratchLocationFor() 116 Location scratch = GetScratchLocation(kind); in AllocateScratchLocationFor() 117 if (scratch.Equals(Location::NoLocation())) { in AllocateScratchLocationFor() 118 AddScratchLocation(Location::RegisterLocation(scratch_index_)); in AllocateScratchLocationFor() 119 AddScratchLocation(Location::RegisterLocation(scratch_index_ + 1)); in AllocateScratchLocationFor() [all …]
|
D | register_allocation_resolver.h | 32 class Location; variable 69 Location source, 70 Location destination) const; 73 Location source, 74 Location destination) const; 75 void InsertMoveAfter(HInstruction* instruction, Location source, Location destination) const; 78 Location source, 79 Location destination) const; 82 Location source, 83 Location destination) const; [all …]
|
D | parallel_move_resolver.cc | 80 Location LowOf(Location location) { in LowOf() 82 return Location::RegisterLocation(location.low()); in LowOf() 84 return Location::FpuRegisterLocation(location.low()); in LowOf() 86 return Location::StackSlot(location.GetStackIndex()); in LowOf() 88 return Location::NoLocation(); in LowOf() 92 Location HighOf(Location location) { in HighOf() 94 return Location::RegisterLocation(location.high()); in HighOf() 96 return Location::FpuRegisterLocation(location.high()); in HighOf() 98 return Location::StackSlot(location.GetHighStackIndex(4)); in HighOf() 100 return Location::NoLocation(); in HighOf() [all …]
|
D | code_generator_x86.h | 86 Location GetNextLocation(DataType::Type type) override; 87 Location GetReturnLocation(DataType::Type type) const override; 88 Location GetMethodLocation() const override; 103 Location GetNextLocation(DataType::Type type) override; 104 Location GetReturnLocation(DataType::Type type) const override; 105 Location GetMethodLocation() const override; 123 Location GetObjectLocation() const override { in GetObjectLocation() 124 return Location::RegisterLocation(ECX); in GetObjectLocation() 126 Location GetFieldIndexLocation() const override { in GetFieldIndexLocation() 127 return Location::RegisterLocation(EAX); in GetFieldIndexLocation() [all …]
|
D | parallel_move_resolver.h | 82 bool IsScratchLocation(Location loc); 150 virtual Location AllocateScratchLocationFor(Location::Kind kind) = 0; 154 virtual void FreeScratchLocation(Location loc) = 0; 161 Location GetScratchLocation(Location::Kind kind); 165 void AddScratchLocation(Location loc); 168 void RemoveScratchLocation(Location loc); 171 ArenaVector<Location> scratches_; 178 void UpdateMoveSource(Location from, Location to); 180 void AddPendingMove(Location source, Location destination, DataType::Type type); 185 MoveOperands* GetUnblockedPendingMove(Location loc); [all …]
|
D | code_generator_x86_64.h | 89 Location GetNextLocation(DataType::Type type) override; 90 Location GetReturnLocation(DataType::Type type) const override; 91 Location GetMethodLocation() const override; 111 Location GetObjectLocation() const override { in GetObjectLocation() 112 return Location::RegisterLocation(RSI); in GetObjectLocation() 114 Location GetFieldIndexLocation() const override { in GetFieldIndexLocation() 115 return Location::RegisterLocation(RDI); in GetFieldIndexLocation() 117 Location GetReturnLocation(DataType::Type type ATTRIBUTE_UNUSED) const override { in GetReturnLocation() 118 return Location::RegisterLocation(RAX); in GetReturnLocation() 120 Location GetSetValueLocation(DataType::Type type ATTRIBUTE_UNUSED, bool is_instance) in GetSetValueLocation() [all …]
|
D | code_generator_arm64.h | 102 inline Location FixedTempLocation() { in FixedTempLocation() 103 return Location::RegisterLocation(vixl::aarch64::x15.GetCode()); in FixedTempLocation() 119 Location ARM64ReturnLocation(DataType::Type return_type); 190 Location GetReturnLocation(DataType::Type return_type); 206 Location GetReturnLocation(DataType::Type return_type) const { in GetReturnLocation() 220 Location GetNextLocation(DataType::Type type) override; 221 Location GetReturnLocation(DataType::Type return_type) const override { in GetReturnLocation() 224 Location GetMethodLocation() const override; 239 Location GetNextLocation(DataType::Type type) override; 240 Location GetReturnLocation(DataType::Type type) const override; [all …]
|
D | common_arm.h | 40 inline vixl::aarch32::Register HighRegisterFrom(Location location) { in HighRegisterFrom() 45 inline vixl::aarch32::DRegister HighDRegisterFrom(Location location) { in HighDRegisterFrom() 50 inline vixl::aarch32::Register LowRegisterFrom(Location location) { in LowRegisterFrom() 55 inline vixl::aarch32::SRegister LowSRegisterFrom(Location location) { in LowSRegisterFrom() 60 inline vixl::aarch32::SRegister HighSRegisterFrom(Location location) { in HighSRegisterFrom() 65 inline vixl::aarch32::Register RegisterFrom(Location location) { in RegisterFrom() 70 inline vixl::aarch32::Register RegisterFrom(Location location, DataType::Type type) { in RegisterFrom() 75 inline vixl::aarch32::DRegister DRegisterFrom(Location location) { in DRegisterFrom() 82 inline vixl::aarch32::SRegister SRegisterFrom(Location location) { in SRegisterFrom() 169 inline int32_t Int32ConstantFrom(Location location) { in Int32ConstantFrom() [all …]
|
D | code_generator_arm_vixl.h | 180 Location GetNextLocation(DataType::Type type) override; 181 Location GetReturnLocation(DataType::Type type) const override; 182 Location GetMethodLocation() const override; 198 Location GetNextLocation(DataType::Type type) override; 199 Location GetReturnLocation(DataType::Type type) const override; 200 Location GetMethodLocation() const override; 219 Location GetObjectLocation() const override { in GetObjectLocation() 222 Location GetFieldIndexLocation() const override { in GetFieldIndexLocation() 225 Location GetReturnLocation(DataType::Type type) const override { in GetReturnLocation() 230 Location GetSetValueLocation(DataType::Type type, bool is_instance) const override { in GetSetValueLocation() [all …]
|
D | code_generator_x86_64.cc | 67 caller_saves.Add(Location::RegisterLocation(RAX)); in OneRegInReferenceOutSaveEverythingCallerSaves() 207 Location length_loc = locations->InAt(1); in EmitNativeCode() 213 Location array_loc = array_length->GetLocations()->InAt(0); in EmitNativeCode() 215 length_loc = Location::RegisterLocation(calling_convention.GetRegisterAt(1)); in EmitNativeCode() 219 length_loc = Location::RegisterLocation(calling_convention.GetRegisterAt(2)); in EmitNativeCode() 231 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode() 234 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode() 262 Location out = locations->Out(); in EmitNativeCode() 286 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode() 287 x86_64_codegen->Move(Location::RegisterLocation(RAX), source); in EmitNativeCode() [all …]
|
D | register_allocation_resolver.cc | 62 Location location = locations->Out(); in Resolve() 66 location = Location::StackSlot(location.GetStackIndex() + codegen_->GetFrameSize()); in Resolve() 70 location = Location::DoubleStackSlot(location.GetStackIndex() + codegen_->GetFrameSize()); in Resolve() 129 Location source = current->ToLocation(); in Resolve() 132 if (location.GetPolicy() == Location::kSameAsFirstInput) { in Resolve() 192 Location source = input->GetLiveInterval()->GetLocationAt( in Resolve() 194 Location destination = phi->GetLiveInterval()->ToLocation(); in Resolve() 212 locations->SetTempAt(temp_index, Location::RegisterLocation(temp->GetRegister())); in Resolve() 217 Location location = Location::FpuRegisterPairLocation( in Resolve() 221 locations->SetTempAt(temp_index, Location::FpuRegisterLocation(temp->GetRegister())); in Resolve() [all …]
|
D | common_arm64.h | 66 inline vixl::aarch64::Register XRegisterFrom(Location location) { in XRegisterFrom() 71 inline vixl::aarch64::Register WRegisterFrom(Location location) { in WRegisterFrom() 76 inline vixl::aarch64::Register RegisterFrom(Location location, DataType::Type type) { in RegisterFrom() 90 inline vixl::aarch64::VRegister DRegisterFrom(Location location) { in DRegisterFrom() 95 inline vixl::aarch64::VRegister QRegisterFrom(Location location) { in QRegisterFrom() 100 inline vixl::aarch64::VRegister VRegisterFrom(Location location) { in VRegisterFrom() 105 inline vixl::aarch64::ZRegister ZRegisterFrom(Location location) { in ZRegisterFrom() 110 inline vixl::aarch64::VRegister SRegisterFrom(Location location) { in SRegisterFrom() 115 inline vixl::aarch64::VRegister HRegisterFrom(Location location) { in HRegisterFrom() 120 inline vixl::aarch64::VRegister FPRegisterFrom(Location location, DataType::Type type) { in FPRegisterFrom() [all …]
|
D | code_generator_x86.cc | 66 caller_saves.Add(Location::RegisterLocation(calling_convention.GetRegisterAt(0))); in OneRegInReferenceOutSaveEverythingCallerSaves() 161 Location length_loc = locations->InAt(1); in EmitNativeCode() 167 Location array_loc = array_length->GetLocations()->InAt(0); in EmitNativeCode() 169 length_loc = Location::RegisterLocation(calling_convention.GetRegisterAt(1)); in EmitNativeCode() 173 length_loc = Location::RegisterLocation(calling_convention.GetRegisterAt(2)); in EmitNativeCode() 182 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode() 185 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode() 258 x86_codegen->Move32(locations->Out(), Location::RegisterLocation(EAX)); in EmitNativeCode() 280 Location out = locations->Out(); in EmitNativeCode() 304 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode() [all …]
|
D | intrinsics_x86.cc | 96 Location src_pos = locations->InAt(1); in EmitNativeCode() 98 Location dest_pos = locations->InAt(3); in EmitNativeCode() 99 Location length = locations->InAt(4); in EmitNativeCode() 100 Location temp1_loc = locations->GetTemp(0); in EmitNativeCode() 173 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations() 174 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations() 176 locations->AddTemp(Location::RequiresFpuRegister()); in CreateFPToIntLocations() 183 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations() 184 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations() 186 locations->AddTemp(Location::RequiresFpuRegister()); in CreateIntToFPLocations() [all …]
|
D | code_generator_arm_vixl.cc | 82 static bool ExpectedPairLayout(Location location) { in ExpectedPairLayout() 521 Location out = locations->Out(); in EmitNativeCode() 545 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode() 732 Location out, in ReadBarrierForHeapReferenceSlowPathARMVIXL() 733 Location ref, in ReadBarrierForHeapReferenceSlowPathARMVIXL() 734 Location obj, in ReadBarrierForHeapReferenceSlowPathARMVIXL() 736 Location index) in ReadBarrierForHeapReferenceSlowPathARMVIXL() 784 Location index = index_; in EmitNativeCode() 914 const Location out_; 915 const Location ref_; [all …]
|
D | intrinsics_x86_64.cc | 129 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations() 130 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations() 136 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations() 137 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations() 141 Location input = locations->InAt(0); in MoveFPToInt() 142 Location output = locations->Out(); in MoveFPToInt() 147 Location input = locations->InAt(0); in MoveIntToFP() 148 Location output = locations->Out(); in MoveIntToFP() 183 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToIntLocations() 184 locations->SetOut(Location::SameAsFirstInput()); in CreateIntToIntLocations() [all …]
|
D | code_generator_arm64.cc | 137 Location ARM64ReturnLocation(DataType::Type return_type) { in ARM64ReturnLocation() 148 return Location::NoLocation(); in ARM64ReturnLocation() 154 Location InvokeRuntimeCallingConvention::GetReturnLocation(DataType::Type return_type) { in GetReturnLocation() 161 caller_saves.Add(Location::RegisterLocation(calling_convention.GetRegisterAt(0).GetCode())); in OneRegInReferenceOutSaveEverythingCallerSaves() 273 Location out = locations->Out(); in EmitNativeCode() 297 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode() 457 Location ret_loc = calling_convention.GetReturnLocation(ret_type); in EmitNativeCode() 571 Location out, in ReadBarrierForHeapReferenceSlowPathARM64() 572 Location ref, in ReadBarrierForHeapReferenceSlowPathARM64() 573 Location obj, in ReadBarrierForHeapReferenceSlowPathARM64() [all …]
|
D | code_generator_vector_arm64_sve.cc | 67 inline Location SVEEncodableConstantOrRegister(HInstruction* constant, HInstruction* instr) { in SVEEncodableConstantOrRegister() 70 return Location::ConstantLocation(constant->AsConstant()); in SVEEncodableConstantOrRegister() 73 return Location::RequiresRegister(); in SVEEncodableConstantOrRegister() 93 locations->SetOut(Location::RequiresFpuRegister()); in VisitVecReplicateScalar() 99 locations->SetInAt(0, Location::ConstantLocation(input->AsConstant())); in VisitVecReplicateScalar() 100 locations->SetOut(Location::RequiresFpuRegister()); in VisitVecReplicateScalar() 102 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitVecReplicateScalar() 103 locations->SetOut(Location::RequiresFpuRegister(), Location::kNoOutputOverlap); in VisitVecReplicateScalar() 115 Location src_loc = locations->InAt(0); in VisitVecReplicateScalar() 180 locations->SetInAt(0, Location::RequiresFpuRegister()); in VisitVecExtractScalar() [all …]
|
D | ssa_liveness_analysis.cc | 335 static int RegisterOrLowRegister(Location location) { in RegisterOrLowRegister() 389 Location phi_location = user->GetLiveInterval()->ToLocation(); in FindFirstRegisterHint() 405 Location location = inputs[i]->GetLiveInterval()->GetLocationAt( in FindFirstRegisterHint() 418 Location expected = locations->InAt(use.GetInputIndex()); in FindFirstRegisterHint() 447 Location input_location = input_interval->ToLocation(); in FindHintAtDefinition() 456 Location out = locations->Out(); in FindHintAtDefinition() 457 if (out.IsUnallocated() && out.GetPolicy() == Location::kSameAsFirstInput) { in FindHintAtDefinition() 464 Location location = input_interval->ToLocation(); in FindHintAtDefinition() 475 bool LiveInterval::SameRegisterKind(Location other) const { in SameRegisterKind() 505 Location LiveInterval::ToLocation() const { in ToLocation() [all …]
|
D | intrinsics_arm_vixl.cc | 78 const Location& pos, in GenSystemArrayCopyBaseAddress() 100 const Location& copy_length, in GenSystemArrayCopyEndAddress() 142 Location dest_pos = locations->InAt(3); in EmitNativeCode() 213 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations() 214 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations() 220 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations() 221 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations() 225 Location input = locations->InAt(0); in MoveFPToInt() 226 Location output = locations->Out(); in MoveFPToInt() 235 Location input = locations->InAt(0); in MoveIntToFP() [all …]
|
D | code_generator.h | 151 virtual Location GetNextLocation(DataType::Type type) = 0; 152 virtual Location GetReturnLocation(DataType::Type type) const = 0; 153 virtual Location GetMethodLocation() const = 0; 172 virtual Location GetObjectLocation() const = 0; 173 virtual Location GetFieldIndexLocation() const = 0; 174 virtual Location GetReturnLocation(DataType::Type type) const = 0; 175 virtual Location GetSetValueLocation(DataType::Type type, bool is_instance) const = 0; 176 virtual Location GetFpuLocation(DataType::Type type) const = 0; 219 virtual void MoveConstant(Location destination, int32_t value) = 0; 220 virtual void MoveLocation(Location dst, Location src, DataType::Type dst_type) = 0; [all …]
|
D | intrinsics_arm64.cc | 70 ALWAYS_INLINE inline MemOperand AbsoluteHeapOperandFrom(Location location, size_t offset = 0) { in AbsoluteHeapOperandFrom() 93 ReadBarrierSystemArrayCopySlowPathARM64(HInstruction* instruction, Location tmp) in ReadBarrierSystemArrayCopySlowPathARM64() 155 Location tmp_; 175 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations() 176 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations() 182 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations() 183 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations() 187 Location input = locations->InAt(0); in MoveFPToInt() 188 Location output = locations->Out(); in MoveFPToInt() 194 Location input = locations->InAt(0); in MoveIntToFP() [all …]
|
/art/test/910-methods/ |
D | expected-stdout.txt | 6 Location start: 0 7 Location end: 36 16 Location start: JVMTI_ERROR_NATIVE_METHOD 17 Location end: JVMTI_ERROR_NATIVE_METHOD 26 Location start: JVMTI_ERROR_NATIVE_METHOD 27 Location end: JVMTI_ERROR_NATIVE_METHOD 36 Location start: -1 37 Location end: -1 46 Location start: -1 47 Location end: -1 [all …]
|