summaryrefslogtreecommitdiff
path: root/compiler/optimizing/code_generator.h
diff options
context:
space:
mode:
author Roland Levillain <rpl@google.com> 2015-02-17 15:40:09 +0000
committer Roland Levillain <rpl@google.com> 2015-02-19 12:13:09 +0000
commitaa9b7c48069699e2aabedc6c0f62cb131fee0c73 (patch)
treedafc6b514825490e65ecee4385f08f066add8c95 /compiler/optimizing/code_generator.h
parentcf3fb94a90d74361b13e7bae5aa6e0e4ae58479d (diff)
Have the opt. compiler set the size of "empty" frames to zero.
This is to mimic Quick's behavior and honor stack frame alignment constraints after changes introduced by Change-Id I0fdb31e8c631e99091b818874a558c9aa04b1628. This issue use to make oatdump crash on oat files produced by the optimized compiler (e.g. out/host/linux-x86/framework/x86_64/core-optimizing.oat). Change-Id: I8ba52601edb0a0993eaf8923eba55aafdce5043e
Diffstat (limited to 'compiler/optimizing/code_generator.h')
-rw-r--r--compiler/optimizing/code_generator.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/compiler/optimizing/code_generator.h b/compiler/optimizing/code_generator.h
index 6c78f10500..0310877f18 100644
--- a/compiler/optimizing/code_generator.h
+++ b/compiler/optimizing/code_generator.h
@@ -238,6 +238,13 @@ class CodeGenerator {
void AllocateLocations(HInstruction* instruction);
+ // Tells whether the stack frame of the compiled method is
+ // considered "empty", that is either actually having a size of zero,
+ // or just containing the saved return address register.
+ bool HasEmptyFrame() const {
+ return GetFrameSize() == (CallPushesPC() ? GetWordSize() : 0);
+ }
+
protected:
CodeGenerator(HGraph* graph,
size_t number_of_core_registers,
@@ -312,10 +319,6 @@ class CodeGenerator {
return instruction_set == kX86 || instruction_set == kX86_64;
}
- bool HasEmptyFrame() const {
- return GetFrameSize() == (CallPushesPC() ? GetWordSize() : 0);
- }
-
// Arm64 has its own type for a label, so we need to templatize this method
// to share the logic.
template <typename T>