/art/compiler/optimizing/ |
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 | 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 | 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 | 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.h | 86 Location GetNextLocation(DataType::Type type) override; 87 Location GetReturnLocation(DataType::Type type) const override; 88 Location GetMethodLocation() const override; 100 Location GetObjectLocation() const override { in GetObjectLocation() 101 return Location::RegisterLocation(ECX); in GetObjectLocation() 103 Location GetFieldIndexLocation() const override { in GetFieldIndexLocation() 104 return Location::RegisterLocation(EAX); in GetFieldIndexLocation() 106 Location GetReturnLocation(DataType::Type type) const override { in GetReturnLocation() 108 ? Location::RegisterPairLocation(EAX, EDX) in GetReturnLocation() 109 : Location::RegisterLocation(EAX); in GetReturnLocation() [all …]
|
D | code_generator_x86_64.h | 86 Location GetObjectLocation() const override { in GetObjectLocation() 87 return Location::RegisterLocation(RSI); in GetObjectLocation() 89 Location GetFieldIndexLocation() const override { in GetFieldIndexLocation() 90 return Location::RegisterLocation(RDI); in GetFieldIndexLocation() 92 Location GetReturnLocation(DataType::Type type ATTRIBUTE_UNUSED) const override { in GetReturnLocation() 93 return Location::RegisterLocation(RAX); in GetReturnLocation() 95 Location GetSetValueLocation(DataType::Type type ATTRIBUTE_UNUSED, bool is_instance) in GetSetValueLocation() 98 ? Location::RegisterLocation(RDX) in GetSetValueLocation() 99 : Location::RegisterLocation(RSI); in GetSetValueLocation() 101 Location GetFpuLocation(DataType::Type type ATTRIBUTE_UNUSED) const override { in GetFpuLocation() [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 | 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 | code_generator_x86.cc | 63 caller_saves.Add(Location::RegisterLocation(calling_convention.GetRegisterAt(0))); in OneRegInReferenceOutSaveEverythingCallerSaves() 158 Location length_loc = locations->InAt(1); in EmitNativeCode() 164 Location array_loc = array_length->GetLocations()->InAt(0); in EmitNativeCode() 166 length_loc = Location::RegisterLocation(calling_convention.GetRegisterAt(1)); in EmitNativeCode() 170 length_loc = Location::RegisterLocation(calling_convention.GetRegisterAt(2)); in EmitNativeCode() 179 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode() 182 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode() 255 x86_codegen->Move32(locations->Out(), Location::RegisterLocation(EAX)); in EmitNativeCode() 277 Location out = locations->Out(); in EmitNativeCode() 296 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode() [all …]
|
D | code_generator_arm_vixl.h | 179 Location GetNextLocation(DataType::Type type) override; 180 Location GetReturnLocation(DataType::Type type) const override; 181 Location GetMethodLocation() const override; 194 Location GetObjectLocation() const override { in GetObjectLocation() 197 Location GetFieldIndexLocation() const override { in GetFieldIndexLocation() 200 Location GetReturnLocation(DataType::Type type) const override { in GetReturnLocation() 205 Location GetSetValueLocation(DataType::Type type, bool is_instance) const override { in GetSetValueLocation() 212 Location GetFpuLocation(DataType::Type type) const override { in GetFpuLocation() 290 Location ArithmeticZeroOrFpuRegister(HInstruction* input); 291 Location ArmEncodableConstantOrRegister(HInstruction* constant, Opcode opcode); [all …]
|
D | code_generator_x86_64.cc | 64 caller_saves.Add(Location::RegisterLocation(RAX)); in OneRegInReferenceOutSaveEverythingCallerSaves() 204 Location length_loc = locations->InAt(1); in EmitNativeCode() 210 Location array_loc = array_length->GetLocations()->InAt(0); in EmitNativeCode() 212 length_loc = Location::RegisterLocation(calling_convention.GetRegisterAt(1)); in EmitNativeCode() 216 length_loc = Location::RegisterLocation(calling_convention.GetRegisterAt(2)); in EmitNativeCode() 228 Location::RegisterLocation(calling_convention.GetRegisterAt(0)), in EmitNativeCode() 231 Location::RegisterLocation(calling_convention.GetRegisterAt(1)), in EmitNativeCode() 259 Location out = locations->Out(); in EmitNativeCode() 278 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode() 279 x86_64_codegen->Move(Location::RegisterLocation(RAX), source); in EmitNativeCode() [all …]
|
D | code_generator_arm64.h | 101 inline Location FixedTempLocation() { in FixedTempLocation() 102 return Location::RegisterLocation(vixl::aarch64::x15.GetCode()); in FixedTempLocation() 118 Location ARM64ReturnLocation(DataType::Type return_type); 189 Location GetReturnLocation(DataType::Type return_type); 205 Location GetReturnLocation(DataType::Type return_type) const { in GetReturnLocation() 219 Location GetNextLocation(DataType::Type type) override; 220 Location GetReturnLocation(DataType::Type return_type) const override { in GetReturnLocation() 223 Location GetMethodLocation() const override; 235 Location GetObjectLocation() const override { in GetObjectLocation() 238 Location GetFieldIndexLocation() const override { in GetFieldIndexLocation() [all …]
|
D | intrinsics_x86.cc | 99 Location src_pos = locations->InAt(1); in EmitNativeCode() 101 Location dest_pos = locations->InAt(3); in EmitNativeCode() 102 Location length = locations->InAt(4); in EmitNativeCode() 103 Location temp1_loc = locations->GetTemp(0); in EmitNativeCode() 176 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations() 177 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations() 179 locations->AddTemp(Location::RequiresFpuRegister()); in CreateFPToIntLocations() 186 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations() 187 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations() 189 locations->AddTemp(Location::RequiresFpuRegister()); in CreateIntToFPLocations() [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::VRegister SRegisterFrom(Location location) { in SRegisterFrom() 110 inline vixl::aarch64::VRegister HRegisterFrom(Location location) { in HRegisterFrom() 115 inline vixl::aarch64::VRegister FPRegisterFrom(Location location, DataType::Type type) { in FPRegisterFrom() 129 inline vixl::aarch64::CPURegister CPURegisterFrom(Location location, DataType::Type type) { in CPURegisterFrom() [all …]
|
D | intrinsics_x86_64.cc | 134 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations() 135 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations() 141 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations() 142 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations() 146 Location input = locations->InAt(0); in MoveFPToInt() 147 Location output = locations->Out(); in MoveFPToInt() 152 Location input = locations->InAt(0); in MoveIntToFP() 153 Location output = locations->Out(); in MoveIntToFP() 188 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToIntLocations() 189 locations->SetOut(Location::SameAsFirstInput()); in CreateIntToIntLocations() [all …]
|
D | code_generator_arm_vixl.cc | 78 static bool ExpectedPairLayout(Location location) { in ExpectedPairLayout() 517 Location out = locations->Out(); in EmitNativeCode() 536 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode() 723 Location out, in ReadBarrierForHeapReferenceSlowPathARMVIXL() 724 Location ref, in ReadBarrierForHeapReferenceSlowPathARMVIXL() 725 Location obj, in ReadBarrierForHeapReferenceSlowPathARMVIXL() 727 Location index) in ReadBarrierForHeapReferenceSlowPathARMVIXL() 774 Location index = index_; in EmitNativeCode() 894 const Location out_; 895 const Location ref_; [all …]
|
D | code_generator_arm64.cc | 131 Location ARM64ReturnLocation(DataType::Type return_type) { in ARM64ReturnLocation() 142 return Location::NoLocation(); in ARM64ReturnLocation() 148 Location InvokeRuntimeCallingConvention::GetReturnLocation(DataType::Type return_type) { in GetReturnLocation() 155 caller_saves.Add(Location::RegisterLocation(calling_convention.GetRegisterAt(0).GetCode())); in OneRegInReferenceOutSaveEverythingCallerSaves() 314 Location out = locations->Out(); in EmitNativeCode() 333 Location source = instruction_->IsLoadClass() ? out : locations->InAt(0); in EmitNativeCode() 493 Location ret_loc = calling_convention.GetReturnLocation(ret_type); in EmitNativeCode() 607 Location out, in ReadBarrierForHeapReferenceSlowPathARM64() 608 Location ref, in ReadBarrierForHeapReferenceSlowPathARM64() 609 Location obj, in ReadBarrierForHeapReferenceSlowPathARM64() [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_arm64.cc | 63 ALWAYS_INLINE inline MemOperand AbsoluteHeapOperandFrom(Location location, size_t offset = 0) { in AbsoluteHeapOperandFrom() 79 static void MoveFromReturnRegister(Location trg, in MoveFromReturnRegister() 138 Location out = invoke_->GetLocations()->Out(); in EmitNativeCode() 161 ReadBarrierSystemArrayCopySlowPathARM64(HInstruction* instruction, Location tmp) in ReadBarrierSystemArrayCopySlowPathARM64() 223 Location tmp_; 243 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations() 244 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations() 250 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations() 251 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations() 255 Location input = locations->InAt(0); in MoveFPToInt() [all …]
|
D | code_generator.h | 150 virtual Location GetNextLocation(DataType::Type type) = 0; 151 virtual Location GetReturnLocation(DataType::Type type) const = 0; 152 virtual Location GetMethodLocation() const = 0; 171 virtual Location GetObjectLocation() const = 0; 172 virtual Location GetFieldIndexLocation() const = 0; 173 virtual Location GetReturnLocation(DataType::Type type) const = 0; 174 virtual Location GetSetValueLocation(DataType::Type type, bool is_instance) const = 0; 175 virtual Location GetFpuLocation(DataType::Type type) const = 0; 218 virtual void MoveConstant(Location destination, int32_t value) = 0; 219 virtual void MoveLocation(Location dst, Location src, DataType::Type dst_type) = 0; [all …]
|
D | intrinsics_utils.h | 44 Location MoveArguments(CodeGenerator* codegen) { in MoveArguments() 56 Location method_loc = MoveArguments(codegen); in EmitNativeCode() 65 Location out = invoke_->GetLocations()->Out(); in EmitNativeCode()
|
D | intrinsics_arm_vixl.cc | 82 Location MoveArguments(CodeGenerator* codegen) { in MoveArguments() 94 Location method_loc = MoveArguments(codegen); in EmitNativeCode() 103 Location out = invoke_->GetLocations()->Out(); in EmitNativeCode() 127 const Location& pos, in GenSystemArrayCopyBaseAddress() 149 const Location& copy_length, in GenSystemArrayCopyEndAddress() 191 Location dest_pos = locations->InAt(3); in EmitNativeCode() 262 locations->SetInAt(0, Location::RequiresFpuRegister()); in CreateFPToIntLocations() 263 locations->SetOut(Location::RequiresRegister()); in CreateFPToIntLocations() 269 locations->SetInAt(0, Location::RequiresRegister()); in CreateIntToFPLocations() 270 locations->SetOut(Location::RequiresFpuRegister()); in CreateIntToFPLocations() [all …]
|
/art/test/910-methods/ |
D | expected.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 …]
|