diff options
Diffstat (limited to 'compiler/optimizing/code_generator_x86_64.cc')
-rw-r--r-- | compiler/optimizing/code_generator_x86_64.cc | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/compiler/optimizing/code_generator_x86_64.cc b/compiler/optimizing/code_generator_x86_64.cc index 07ba95dcfb..90d87d4b9f 100644 --- a/compiler/optimizing/code_generator_x86_64.cc +++ b/compiler/optimizing/code_generator_x86_64.cc @@ -72,7 +72,7 @@ class NullCheckSlowPathX86_64 : public SlowPathCodeX86_64 { __ Bind(GetEntryLabel()); __ gs()->call( Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86_64WordSize, pThrowNullPointer), true)); - codegen->RecordPcInfo(instruction_, instruction_->GetDexPc()); + RecordPcInfo(codegen, instruction_, instruction_->GetDexPc()); } private: @@ -88,7 +88,7 @@ class DivZeroCheckSlowPathX86_64 : public SlowPathCodeX86_64 { __ Bind(GetEntryLabel()); __ gs()->call( Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86_64WordSize, pThrowDivZero), true)); - codegen->RecordPcInfo(instruction_, instruction_->GetDexPc()); + RecordPcInfo(codegen, instruction_, instruction_->GetDexPc()); } private: @@ -136,10 +136,10 @@ class SuspendCheckSlowPathX86_64 : public SlowPathCodeX86_64 { void EmitNativeCode(CodeGenerator* codegen) OVERRIDE { CodeGeneratorX86_64* x64_codegen = down_cast<CodeGeneratorX86_64*>(codegen); __ Bind(GetEntryLabel()); - codegen->SaveLiveRegisters(instruction_->GetLocations()); + SaveLiveRegisters(codegen, instruction_->GetLocations()); __ gs()->call(Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86_64WordSize, pTestSuspend), true)); - codegen->RecordPcInfo(instruction_, instruction_->GetDexPc()); - codegen->RestoreLiveRegisters(instruction_->GetLocations()); + RecordPcInfo(codegen, instruction_, instruction_->GetDexPc()); + RestoreLiveRegisters(codegen, instruction_->GetLocations()); if (successor_ == nullptr) { __ jmp(GetReturnLabel()); } else { @@ -181,7 +181,7 @@ class BoundsCheckSlowPathX86_64 : public SlowPathCodeX86_64 { Location::RegisterLocation(calling_convention.GetRegisterAt(1))); __ gs()->call(Address::Absolute( QUICK_ENTRYPOINT_OFFSET(kX86_64WordSize, pThrowArrayBounds), true)); - codegen->RecordPcInfo(instruction_, instruction_->GetDexPc()); + RecordPcInfo(codegen, instruction_, instruction_->GetDexPc()); } private: @@ -207,7 +207,7 @@ class LoadClassSlowPathX86_64 : public SlowPathCodeX86_64 { CodeGeneratorX86_64* x64_codegen = down_cast<CodeGeneratorX86_64*>(codegen); __ Bind(GetEntryLabel()); - codegen->SaveLiveRegisters(locations); + SaveLiveRegisters(codegen, locations); InvokeRuntimeCallingConvention calling_convention; __ movl(CpuRegister(calling_convention.GetRegisterAt(0)), Immediate(cls_->GetTypeIndex())); @@ -215,7 +215,7 @@ class LoadClassSlowPathX86_64 : public SlowPathCodeX86_64 { __ gs()->call(Address::Absolute((do_clinit_ ? QUICK_ENTRYPOINT_OFFSET(kX86_64WordSize, pInitializeStaticStorage) : QUICK_ENTRYPOINT_OFFSET(kX86_64WordSize, pInitializeType)) , true)); - codegen->RecordPcInfo(at_, dex_pc_); + RecordPcInfo(codegen, at_, dex_pc_); Location out = locations->Out(); // Move the class to the desired location. @@ -224,7 +224,7 @@ class LoadClassSlowPathX86_64 : public SlowPathCodeX86_64 { x64_codegen->Move(out, Location::RegisterLocation(RAX)); } - codegen->RestoreLiveRegisters(locations); + RestoreLiveRegisters(codegen, locations); __ jmp(GetExitLabel()); } @@ -255,7 +255,7 @@ class LoadStringSlowPathX86_64 : public SlowPathCodeX86_64 { CodeGeneratorX86_64* x64_codegen = down_cast<CodeGeneratorX86_64*>(codegen); __ Bind(GetEntryLabel()); - codegen->SaveLiveRegisters(locations); + SaveLiveRegisters(codegen, locations); InvokeRuntimeCallingConvention calling_convention; x64_codegen->LoadCurrentMethod(CpuRegister(calling_convention.GetRegisterAt(1))); @@ -263,9 +263,9 @@ class LoadStringSlowPathX86_64 : public SlowPathCodeX86_64 { Immediate(instruction_->GetStringIndex())); __ gs()->call(Address::Absolute( QUICK_ENTRYPOINT_OFFSET(kX86_64WordSize, pResolveString), true)); - codegen->RecordPcInfo(instruction_, instruction_->GetDexPc()); + RecordPcInfo(codegen, instruction_, instruction_->GetDexPc()); x64_codegen->Move(locations->Out(), Location::RegisterLocation(RAX)); - codegen->RestoreLiveRegisters(locations); + RestoreLiveRegisters(codegen, locations); __ jmp(GetExitLabel()); } @@ -293,7 +293,7 @@ class TypeCheckSlowPathX86_64 : public SlowPathCodeX86_64 { CodeGeneratorX86_64* x64_codegen = down_cast<CodeGeneratorX86_64*>(codegen); __ Bind(GetEntryLabel()); - codegen->SaveLiveRegisters(locations); + SaveLiveRegisters(codegen, locations); // We're moving two locations to locations that could overlap, so we need a parallel // move resolver. @@ -312,13 +312,13 @@ class TypeCheckSlowPathX86_64 : public SlowPathCodeX86_64 { __ gs()->call( Address::Absolute(QUICK_ENTRYPOINT_OFFSET(kX86_64WordSize, pCheckCast), true)); } - codegen->RecordPcInfo(instruction_, dex_pc_); + RecordPcInfo(codegen, instruction_, dex_pc_); if (instruction_->IsInstanceOf()) { x64_codegen->Move(locations->Out(), Location::RegisterLocation(RAX)); } - codegen->RestoreLiveRegisters(locations); + RestoreLiveRegisters(codegen, locations); __ jmp(GetExitLabel()); } @@ -374,7 +374,6 @@ void CodeGeneratorX86_64::GenerateStaticOrDirectCall(HInvokeStaticOrDirect* invo } DCHECK(!IsLeafMethod()); - RecordPcInfo(invoke, invoke->GetDexPc()); } void CodeGeneratorX86_64::DumpCoreRegister(std::ostream& stream, int reg) const { @@ -1216,6 +1215,7 @@ void InstructionCodeGeneratorX86_64::VisitInvokeStaticOrDirect(HInvokeStaticOrDi codegen_->GenerateStaticOrDirectCall( invoke, invoke->GetLocations()->GetTemp(0).AsRegister<CpuRegister>()); + codegen_->RecordPcInfo(invoke, invoke->GetDexPc()); } void LocationsBuilderX86_64::HandleInvoke(HInvoke* invoke) { |