summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/code_generator.h
diff options
context:
space:
mode:
authorRoland Levillain <rpl@google.com>2015-04-28 15:48:45 +0100
committerRoland Levillain <rpl@google.com>2015-04-29 14:09:17 +0100
commit2d27c8e338af7262dbd4aaa66127bb8fa1758b86 (patch)
treee01e0bc57359df0bdf00c3da694c5403fb7fc9e6 /compiler/optimizing/code_generator.h
parent3adfc4bbe6c42d574bd2069d8e38a13d5ad98ccf (diff)
downloadart-2d27c8e338af7262dbd4aaa66127bb8fa1758b86.tar.gz
art-2d27c8e338af7262dbd4aaa66127bb8fa1758b86.tar.bz2
art-2d27c8e338af7262dbd4aaa66127bb8fa1758b86.zip
Refactor InvokeDexCallingConventionVisitor in Optimizing.
Change-Id: I7ede0f59d5109644887bf5d39201d4e1bf043f34
Diffstat (limited to 'compiler/optimizing/code_generator.h')
-rw-r--r--compiler/optimizing/code_generator.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator.h b/compiler/optimizing/code_generator.h
index 6342f91684..beaff5cc4c 100644
--- a/compiler/optimizing/code_generator.h
+++ b/compiler/optimizing/code_generator.h
@@ -105,6 +105,25 @@ class SlowPathCode : public ArenaObject<kArenaAllocSlowPaths> {
DISALLOW_COPY_AND_ASSIGN(SlowPathCode);
};
+class InvokeDexCallingConventionVisitor {
+ public:
+ virtual Location GetNextLocation(Primitive::Type type) = 0;
+
+ protected:
+ InvokeDexCallingConventionVisitor() {}
+ virtual ~InvokeDexCallingConventionVisitor() {}
+
+ // The current index for core registers.
+ uint32_t gp_index_ = 0u;
+ // The current index for floating-point registers.
+ uint32_t float_index_ = 0u;
+ // The current stack index.
+ uint32_t stack_index_ = 0u;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(InvokeDexCallingConventionVisitor);
+};
+
class CodeGenerator {
public:
// Compiles the graph to executable instructions. Returns whether the compilation