diff options
author | David Srbecky <dsrbecky@google.com> | 2015-04-13 20:00:25 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-04-13 20:00:26 +0000 |
commit | c4542866d2e68dcdfa2c7efa5cddbb131003da81 (patch) | |
tree | 213112de64b20d2c8e8a681f7649de89793c24cc /compiler/optimizing/code_generator_arm.cc | |
parent | 180b315f435517604530beaa52eddbd270199050 (diff) | |
parent | c34dc9362b9ec624b3bdd97d36b6b2098814cd73 (diff) | |
download | art-c4542866d2e68dcdfa2c7efa5cddbb131003da81.tar.gz art-c4542866d2e68dcdfa2c7efa5cddbb131003da81.tar.bz2 art-c4542866d2e68dcdfa2c7efa5cddbb131003da81.zip |
Merge "Move 'ret' instruction generation inside GenerateFrameExit."
Diffstat (limited to 'compiler/optimizing/code_generator_arm.cc')
-rw-r--r-- | compiler/optimizing/code_generator_arm.cc | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/compiler/optimizing/code_generator_arm.cc b/compiler/optimizing/code_generator_arm.cc index a799a519c0..e434e9e7ef 100644 --- a/compiler/optimizing/code_generator_arm.cc +++ b/compiler/optimizing/code_generator_arm.cc @@ -560,6 +560,7 @@ void CodeGeneratorARM::GenerateFrameExit() { __ bx(LR); return; } + __ cfi().RememberState(); int adjust = GetFrameSize() - FrameEntrySpillSize(); __ AddConstant(SP, adjust); __ cfi().AdjustCFAOffset(-adjust); @@ -570,6 +571,8 @@ void CodeGeneratorARM::GenerateFrameExit() { __ cfi().RestoreMany(DWARFReg(SRegister(0)), fpu_spill_mask_); } __ PopList(core_spill_mask_); + __ cfi().RestoreState(); + __ cfi().DefCFAOffset(GetFrameSize()); } void CodeGeneratorARM::Bind(HBasicBlock* block) { @@ -1209,10 +1212,7 @@ void LocationsBuilderARM::VisitReturnVoid(HReturnVoid* ret) { void InstructionCodeGeneratorARM::VisitReturnVoid(HReturnVoid* ret) { UNUSED(ret); - __ cfi().RememberState(); codegen_->GenerateFrameExit(); - __ cfi().RestoreState(); - __ cfi().DefCFAOffset(codegen_->GetFrameSize()); } void LocationsBuilderARM::VisitReturn(HReturn* ret) { @@ -1223,10 +1223,7 @@ void LocationsBuilderARM::VisitReturn(HReturn* ret) { void InstructionCodeGeneratorARM::VisitReturn(HReturn* ret) { UNUSED(ret); - __ cfi().RememberState(); codegen_->GenerateFrameExit(); - __ cfi().RestoreState(); - __ cfi().DefCFAOffset(codegen_->GetFrameSize()); } void LocationsBuilderARM::VisitInvokeStaticOrDirect(HInvokeStaticOrDirect* invoke) { |