From 705ad49f353d3f90d8b63625aca2c2035bacdbef Mon Sep 17 00:00:00 2001 From: Alex Light Date: Mon, 21 Sep 2015 11:36:30 -0700 Subject: Support directly invoking interface default methods With the Java 8 Language one is allowed to directly call default interface methods of interfaces one (directly) implements through the use of the super keyword. We support this behavior through the invoke-super opcode with the target being an interface. We add 3 tests for this behavior. Currently only supports slow-path interpreter. Invoke-super is currently extremely slow. Bug: 24618811 Change-Id: I7e06e17326f7dbae0116bd7dfefca151f0092bd2 --- compiler/dex/quick/quick_compiler.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'compiler/dex/quick/quick_compiler.h') diff --git a/compiler/dex/quick/quick_compiler.h b/compiler/dex/quick/quick_compiler.h index d512b256cd..55f45f1ab0 100644 --- a/compiler/dex/quick/quick_compiler.h +++ b/compiler/dex/quick/quick_compiler.h @@ -18,6 +18,7 @@ #define ART_COMPILER_DEX_QUICK_QUICK_COMPILER_H_ #include "compiler.h" +#include "dex/mir_graph.h" namespace art { @@ -74,6 +75,8 @@ class QuickCompiler : public Compiler { explicit QuickCompiler(CompilerDriver* driver); private: + bool CanCompileInstruction(const MIR* mir, const DexFile& dex_file) const; + std::unique_ptr pre_opt_pass_manager_; std::unique_ptr post_opt_pass_manager_; DISALLOW_COPY_AND_ASSIGN(QuickCompiler); -- cgit v1.2.3-59-g8ed1b