diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2014-04-07 13:20:42 +0100 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2014-04-07 15:24:23 +0100 |
commit | f583e5976e1de9aa206fb8de4f91000180685066 (patch) | |
tree | 0e7c2d30af5c713012f0a33e6dd7d8f71e7fc85d /compiler/optimizing/builder.h | |
parent | 7ab4e5c5288e04b7beb6d8ddfd5e8bf878002732 (diff) | |
download | art-f583e5976e1de9aa206fb8de4f91000180685066.zip art-f583e5976e1de9aa206fb8de4f91000180685066.tar.gz art-f583e5976e1de9aa206fb8de4f91000180685066.tar.bz2 |
Add support for taking parameters in optimizing compiler.
- Fix stack layout to mimic Quick's.
- Implement some sub operations.
Change-Id: I8cf75a4d29b662381a64f02c0bc61d859482fc4e
Diffstat (limited to 'compiler/optimizing/builder.h')
-rw-r--r-- | compiler/optimizing/builder.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler/optimizing/builder.h b/compiler/optimizing/builder.h index 46ca9aa..df64d71 100644 --- a/compiler/optimizing/builder.h +++ b/compiler/optimizing/builder.h @@ -66,11 +66,20 @@ class HGraphBuilder : public ValueObject { HIntConstant* GetConstant0(); HIntConstant* GetConstant1(); HIntConstant* GetConstant(int constant); - void InitializeLocals(int count); + void InitializeLocals(uint16_t count); HLocal* GetLocalAt(int register_index) const; void UpdateLocal(int register_index, HInstruction* instruction) const; HInstruction* LoadLocal(int register_index) const; + // Temporarily returns whether the compiler supports the parameters + // of the method. + bool InitializeParameters(uint16_t number_of_parameters); + + template<typename T> void Binop_32x(const Instruction& instruction); + template<typename T> void Binop_12x(const Instruction& instruction); + template<typename T> void Binop_22b(const Instruction& instruction, bool reverse); + template<typename T> void Binop_22s(const Instruction& instruction, bool reverse); + ArenaAllocator* const arena_; // A list of the size of the dex code holding block information for |